《面向对象程序设计与VC++实现》--第一章:例题代码

《面向对象程序设计与VC++实现》--第一章:例题代码

//--《面向对象程序设计与VC++实现》
//--11/6/2005 Sun.
//--Computer Lab
//--Liwei
//--例1-1  如何建立和使用引用例题
#include <iostream>
using namespace std;
int main()
{
 
  int someint;
  int &rint=someint;

  someint=6;
  cout<<"someint:"<<someint<<endl;
  cout<<"rint:"<<rint<<endl;
  cout<<"========================"<<endl;
  rint=7;
  cout<<"someint:"<<someint<<endl;
  cout<<"rint:"<<rint<<endl;

  return 0;
}

//--《面向对象程序设计与VC++实现》
//--11/6/2005 Sun.
//--Computer Lab
//--Liwei
//--例1-2  内联函数例题
#include <iostream>
#include <iomanip>
using namespace std;

inline int max(int a,int b);

void main()
{
  int a=210,b=150,c=20,d;
  d=max(a,b);//内联函数代码是被展开而不是被调用的
  d=max(d,c);
  cout<<"The biggest of"<<setw(5)<<a<<setw(5)<<b<<setw(5)<<c<<" is:"<<d<<endl;
}

inline int max(int a,int b)
{
  if(a>b)
   return a;
  else
   return b;
}


//--《面向对象程序设计与VC++实现》
//--11/6/2005 Sun.
//--Computer Lab
//--Liwei
//--例1-3  冒泡排序法的程序代码
#include <iostream>
using namespace std;

void main()
{
 int a[6]={1,7,3,22,9,5};
 int i,j,t,flag;
 for(i=0;i<6;i++)
 {
    flag=0;
    for(j=0;j<6-1-i;j++)
     if(a[j]>a[j+1])
     {
        t=a[j];
     a[j]=a[j+1];
     a[j+1]=t;
     flag=1;
     }
    if(flag==0)  break;
 }

 cout<<"result:"<<endl;
 for(i=0;i<6;i++)
  cout<<" "<<a[i]<<endl;

}


//--《面向对象程序设计与VC++实现》
//--11/6/2005 Sun.
//--Computer Lab
//--Liwei
//--例1-3(amelioration)  选择排序法代码
#include <iostream>
using namespace std;

void main()
{
 int a[6]={1,7,3,22,9,5};
 int i,j,t,k=0,count=0;
 for(i=0;i<6-1;i++)
 {
    for(j=i+1;j<6;j++)
     if(a[i]>a[j])
     {
              t=a[j];
     a[j]=a[i];
     a[i]=t;
     count++;
             
     for(k=0;k<6;k++)
      cout<<a[k]<<'/t';
     cout<<"========"<<"i:"<<i<<"j:"<<j<<"==="<<endl;
     }
 }
 cout<<endl<<"result:"<<endl;
 for(i=0;i<6;i++)
  cout<<" "<<a[i]<<endl;
 cout<<"count:"<<count<<endl;

}

//--《面向对象程序设计与VC++实现》
//--11/6/2005 Sun.
//--Computer Lab
//--Liwei
//--例1-3(amelioration)  二分查找法代码
#include <iostream>
using namespace std;

void efFind(int DataArray[],int nSize,int fValue);

void main()
{
 int data[6]={1,2,3,4,5,6};
    int i;
 for(i=0;i<6;i++)
  cout<<data[i]<<' ';
 cout<<endl;
 efFind(data,6,4);
}

void efFind(int dataarray[],int nsize,int fvalue)
{
  int flag=0;//查找标记
  int nstart=0;//开始元素下标
  int nend=nsize-1;//结尾元素下标
  int nmid;//二分法中间元素下标
  while(nstart<=nend)
  {
 nmid=(nstart+nend)/2;
 cout<<"nstrat: "<<nstart<<"==="<<"nend: "<<nend<<"==="<<"nmid: "<<nmid<<endl;
 if(dataarray[nmid]==fvalue)
 {flag=1; break;}
 if(fvalue>dataarray[nmid])
  nstart=nmid+1;
 else
  nend=nmid-1;
  }
  if(flag)
   cout<<"元素找到了,是第 "<<nmid+1<<" 个"<<endl;
  else
   cout<<"没有找到元素!"<<endl;
}


//--《面向对象程序设计与VC++实现》
//--11/6/2005 Sun.
//--Computer Lab
//--Liwei
//--例1-4  统计的代码
#include <iostream>
using namespace std;

const int size=8;

void main()
{
 int i;
 int tj[size];//存放统计结果
    for(i=0;i<size;i++)
  tj[i]=0;//初始化
 int tjdata;
 cout<<"Please enter data(0--"<<size-1<<"): "<<endl;
 cin>>tjdata;
 while(tjdata>=0&&tjdata<size)
 {
  tj[tjdata]++;
  cin>>tjdata;
 }
    cout<<"result: "<<endl;
 for(i=0;i<size;i++)
  cout<<"  "<<i<<": "<<tj[i]<<endl;

}

//--《面向对象程序设计与VC++实现》
//--11/6/2005 Sun.
//--Computer Lab
//--Liwei
//--例1-5  歌唱比赛给选手打分的代码
#include <iostream>
using namespace std;
double context(double *parray,int nnum);
void main()
{
   double pfsoredata[5][6]=
   {
    {9.31,9.20,9.00,9.40,9.35,9.20},
    {9.71,9.52,9.50,9.66,9.49,9.57},
    {8.89,8.80,9.10,9.25,8.90,9.00},
    {9.38,9.50,9.40,9.20,9.90,8.90},
    {9.30,8.84,9.40,9.45,9.10,8.89}
   };
   int nrow;
   cout.precision(3);//设置小数点位数
   for(nrow=0;nrow<5;nrow++)
   {
      cout<<nrow+1<<" 号选手成绩为:";
   cout<<context(pfsoredata[nrow],6)<<endl;
   //cout<<context(*pfsoredata+6*nrow,6)<<endl;//也可以这样 但麻烦
   }

}

double context(double *parray,int nnum)
{
   int ninum;
   double fmark,fmax,fmin;
   fmark=fmax=fmin=parray[0];
   for(ninum=1;ninum<nnum;ninum++)
   {
    if(parray[ninum]>fmax)
     fmax=parray[ninum];
    if(parray[ninum]<fmin)
     fmin=parray[ninum];
    fmark+=parray[ninum];
   }
   return (fmark-fmax-fmin)/4;
}


//--《面向对象程序设计与VC++实现》
//--11/6/2005 Sun.
//--Computer Lab
//--Liwei
//--例1-6  使用char* 型指针变量写字符串的复制的的代码
#include <iostream>
using namespace std;
void copy_string(char *from,char *to);

void main()
{
   char psource[]="I am a teacher."; 
   char pdestination[]="You are a student.";
   copy_string(psource,pdestination);
   cout<<psource<<endl;
   cout<<pdestination<<endl;

}

void copy_string(char *from,char *to)
{
   for(; *from!='/0'; )// 也可加在这里 from++,to++
    *to++=*from++;
   *to='/0';
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值