《物件導向程式設計與VC++實現》–第一章:例題代碼

來源:互聯網
上載者:User

《物件導向程式設計與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';
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.