C++ 程序设计(谭浩强)教材例题程序

来源:互联网 发布:ant 执行指定java 编辑:程序博客网 时间:2024/06/05 14:12
C++程序设计题解与上机指导教材例题程序第一章Ch1-1#include <iostream>using namespace std;int main(){ cout<<"This is a C++ program."; return 0;}Ch1-2#include <iostream>using namespace std;int main(){ int a,b, sum; cin>>a>>b; sum=a+b; cout<<"a+b="<<sum<<endl; return 0;}Ch1-3-1#include <iostream>using namespace std;int max(int x,int y){ int z;  if(x>y) z=x;  else z=y;  return(z);}int main(){ int a,b,m;  cin>>a>>b;  m=max(a,b);  cout<<"max="<<m<<endl;  return 0;}Ch1-3-2#include <iostream>using namespace std;int main(){ int max(int x,int y);  int a,b,c;  cin>>a>>b;  c=max(a,b);  cout<<"max="<<c<<endl;  return 0;}int max(int x,int y){  int z;  if(x>y) z=x;  else z=y;  return(z);}Ch1-4#include <iostream>using namespace std;class Student{ private:  int num;  int score; public:  void setdata()  {   cin>>num;   cin>>score;  }  void display()  {   cout<<"num="<<num<<endl;   cout<<"score="<<score<<endl;  };};Student stud1,stud2;int main(){  stud1.setdata();  stud2.setdata();  stud1.display();  stud2.display();  return 0; }第二章Ch2-1#include <iostream>using namespace std;int main ( )   {int i,j;     i='A'; j='B'; cout<<i<<' '<<j<<'\n'; return 0;}  Ch2-2#include <iostream>using namespace std;int main(){char c1,c2; c1='a'; c2='b'; c1=c1-32; c2=c2-32; cout<<c1<<' '<<c2<<endl; return 0;}Ch2-3#include <iostream>#define PRICE 30using namespace std;int main ( ){int num,total; num=10; total=num * PRICE; cout<<"total="<<total<<endl; return 0;}Ch2-4#include <iostream>using namespace std;int main(){ float x;  int i;  x=3.6;  i=(int)x;  cout<<"x="<<x<<",i="<<i<<endl;  return 0;}Ch2-5#include <iostream>using namespace std;int main(){ unsigned short a;  short int b=-1;  a=b;  cout<<"a="<<a<<endl;  return 0;}第三章Ch3-1#include <iostream>#include <iomanip>using namespace std;int main(){  double a=123.456,b=3.14159,c=-3214.67;  cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2); cout<<setw(10)<<a<<endl; cout<<setw(10)<<b<<endl; cout<<setw(10)<<c<<endl;  return 0;}Ch3-2#include <iostream>using namespace std;int main(){char a,b,c; a='B';b='O';c='y'; putchar(a);putchar(b);putchar(c);putchar(10); putchar(66);putchar(79);putchar(89);putchar(10); return 0;}Ch3-3#include <iostream>using namespace std;int main(){char c; c=getchar(); putchar(c+32); putchar('\n'); return 0;}Ch3-3-2#include <iostream>using namespace std;int main(){putchar(getchar()+32);putchar('\n'); return 0;}Ch3-4#include <iostream>using namespace std;int main(){int a; float b; char c; scanf("%d %c %f",&a,&c,&b); printf("a=%d,b=%f,c=%c\n",a,b,c); return 0;}Ch3-5#include <iostream>#include <cmath>using namespace std;int main(){float  a,b,c,x1,x2; cin>>a>>b>>c; x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); cout<<"x1="<<x1<<endl; cout<<"x2="<<x2<<endl; return 0;}Ch3-6#include <iostream>#include <cmath>#include <iomanip>using namespace std;int main(){ double a,b,c; cout<<"please enter a,b,c:"; cin>>a>>b>>c; if (a+b>c && b+c>a && c+a>b)  {   double s,area;   s=(a+b+c)/2;   area=sqrt(s*(s-a)*(s-b)*(s-c));   cout<<setiosflags(ios::fixed)<<setprecision(4);   cout<<"area="<<area<<endl;  } else cout<<"it is not a trilateral!"<<endl; return 0;}Ch3-7#include <iostream>using namespace std;int main(){  char ch;  cin>>ch;  ch=(ch>='A' && ch<='Z')?(ch+32):ch;  cout<<ch<<endl;  return 0;}Ch3-8#include <iostream>using namespace std;int main(){  int year;  bool leap;  cout<<"please enter year:";  cin>>year;  if (year%4==0)    {if(year%100==0)      {if (year%400==0)          leap=true;       else leap=false;}     else leap=true;}  else      leap=false;  if (leap)     cout<<year<<" is ";  else     cout<<year<<" is not ";     cout<<" a leap year."<<endl;  return 0;}Ch3-9#include <iostream>using namespace std;int main(){int c,s; float p,w,d,f; cout<<"please enter p,w,s:"; cin>>p>>w>>s; if(s>=3000) c=12; else c=s/250; switch (c) { case 0:d=0;break;   case 1:d=2;break;   case 2:   case 3:d=5;break;   case 4:   case 5:   case 6:   case 7:d=8;break;   case 8:   case 9:   case 10:   case 11:d=10;break;   case 12:d=15;break; }  f=p*w*s*(1-d/100.0);  cout<<"freight="<<f<<endl;  return 0;}Ch3-10#include <iostream>using namespace std;int main(){ int i=1,sum=0; while (i<=100)  {sum=sum+i;   i++;  } cout<<"sum="<<sum<<endl; return 0;}Ch3-11#include <iostream>using namespace std;int main(){int i=1,sum=0; do   { sum=sum+i;    i++;   }while (i<=100); cout<<"sum="<<sum<<endl; return 0;}Ch3-12#include <iostream>#include <iomanip>#include <cmath>using namespace std;int main(){int s=1; double n=1,t=1,pi=0; while((fabs(t)) > 1e-7)   {pi=pi+t;    n=n+2;    s=-s;    t=s/n;} pi=pi*4; cout<<"pi="<<setiosflags(ios::fixed)<<setprecision(6)<<pi<<endl; return 0;}Ch3-13#include <iostream>#include <iomanip>using namespace std;int main(){long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++)   {cout<<setw(12)<<f1<<setw(12)<<f2;    if(i%2==0) cout<<endl;    f1=f1+f2;    f2=f2+f1;   }  return 0; }Ch3-14#include <iostream>#include <cmath>#include <iomanip>using namespace std;int main(){int m,k,i,n=0; bool prime; for(m=101;m<=200;m=m+2)   {prime=true;k=int(sqrt(m));    for(i=2;i<=k;i++)if(m%i==0) {prime=false;break;}    if (prime)      {cout<<setw(5)<<m;       n=n+1;      }    if(n%10==0) cout<<endl;   } cout<<endl; return 0;}Ch3-15#include <iostream>using namespace std;int main(){char c; while ((c=getchar())!='\n')   {if((c>='a' && c<='z') || (c>='A' && c<='Z'))      {c=c+4;       if(c>'Z' && c<='Z'+4 || c>'z') c=c-26;      }    cout<<c;   } cout<<endl; return 0;}第四章Ch4-1#include <iostream>using namespace std;void printstar(void){ cout<<"******************************"<<endl;}void print_message(void){ cout<<"      Welcome  to  C++!"<<endl;}int main(void){ printstar(); print_message(); printstar(); return 0;}Ch4-2#include <iostream>using namespace std;int max(int x,int y){int z; z=x>y?x:y; return(z);}int main(){int a,b,c; cout<<"please enter two integer numbers:";  cin>>a>>b; c=max(a,b); cout<<"max="<<c<<endl; return 0;}Ch4-3#include <iostream>using namespace std;int main(){float add(float,float); float a,b,c; cout<<"please enter a,b:"; cin>>a>>b; c=add(a,b); cout<<"sum="<<c<<endl; return 0;}float add(float x,float y){float z; z=x+y; return (z);}Ch4-4#include <iostream>using namespace std;inline int max(int,int, int);int main(){ int i=10,j=20,k=30,m; m=max(i,j,k); cout<<"max="<<m<<endl; return 0;}inline int max(int a,int b,int c){if(b>a) a=b;                           if(c>a) a=c; return a;}Ch4-5#include <iostream>using namespace std;int main(){int max(int a,int b,int c); double max(double a,double b,double c); long max(long a,long b,long c); int i1,i2,i3,i; cin>>i1>>i2>>i3; i=max(i1,i2,i3); cout<<"i_max="<<i<<endl; double d1,d2,d3,d; cin>>d1>>d2>>d3; d=max(d1,d2,d3); cout<<"d_max="<<d<<endl; long g1,g2,g3,g; cin>>g1>>g2>>g3; g=max(g1,g2,g3); cout<<"g_max="<<g<<endl; return 0;}int max(int a,int b,int c){if(b>a) a=b; if(c>a) a=c; return a;}double max(double a,double b,double c){if(b>a) a=b; if(c>a) a=c; return a;}long max(long a,long b,long c){if(b>a) a=b; if(c>a) a=c; return a;}Ch4-6#include <iostream>using namespace std;int main(){int max(int a,int b,int c); int max(int a,int b); int a=8,b=-12,c=7; cout<<"max(a,b,c)="<<max(a,b,c)<<endl; cout<<"max(a,b)="<<max(a,b)<<endl; return 0;}int max(int a,int b,int c){if(b>a) a=b; if(c>a) a=c; return a;}int max(int a,int b){if(a>b) return a; else return b;}Ch4-7#include <iostream>using namespace std;template <typename T>T max(T a,T b,T c){if(b>a) a=b; if(c>a) a=c; return a;}int main(){int i1=185,i2=-76,i3=567,i; double d1=56.87,d2=90.23,d3=-3214.76,d; long g1=67845,g2=-912456,g3=673456,g; i=max(i1,i2,i3); d=max(d1,d2,d3); g=max(g1,g2,g3); cout<<"i_max="<<i<<endl; cout<<"d_max="<<d<<endl; cout<<"g_max="<<g<<endl; return 0;}Ch4-8#include <iostream>using namespace std;int main(){int max(int a,int b,int c=0); int a,b,c; cin>>a>>b>>c; cout<<"max(a,b,c)="<<max(a,b,c)<<endl; cout<<"max(a,b)="<<max(a,b)<<endl; return 0;}int max(int a,int b,int c){if(b>a) a=b; if(c>a) a=c; return a;}Ch4-9#include <iostream>#include <iomanip>#include <cmath>using namespace std;double root(double,double);double f(double);double xpoint(double,double); int main(){double x1,x2,f1,f2,x; do  {   cout<<"input x1,x2:";   cin>>x1>>x2;   f1=f(x1);   f2=f(x2);  }while(f1*f2>=0); x=root(x1,x2); cout<<setiosflags(ios::fixed)<<setprecision(7); cout<<"A root of equation is "<<x<<endl; return 0;}double f(double x){ double y; y=x*x*x-5*x*x+16*x-80; return y;}double xpoint(double x1,double x2){ double y; y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)); return y;}double root(double x1,double x2){double x,y,y1; y1=f(x1); do  {   x=xpoint(x1,x2);   y=f(x);   if (y*y1>0)    {y1=y;     x1=x;    }   else    x2=x;  }while(fabs(y)>=0.000001); return x;}Ch4-10#include <iostream>using namespace std;int age(int);int main() {cout<<age(5)<<endl;  return 0; }int age(int n){ int c; if(n==1) c=10; else c=age(n-1)+2; return c;}Ch4-11#include <iostream>using namespace std;long fac(int);int main() {int n;  long y;  cout<<"please input an integer:";  cin>>n;  y=fac(n);  cout<<n<<"!="<<y<<endl;  return 0; }long fac(int n){ long f; if(n<0)  {cout<<"n<0,data error!"<<endl;   f=-1;  } else if (n==0||n==1) f=1; else f=fac(n-1)*n; return f;}Ch4-12#include <iostream>using namespace std;int f(int a){auto int b=0; static int c=3; b=b+1; c=c+1; return a+b+c;}int main() {int a=2,i;  for(i=0;i<3;i++)cout<<f(a)<<" ";  cout<<endl;  return 0; }Ch4-13#include <iostream>using namespace std;int fac(int);int main() {  int i;  for(i=1;i<=5;i++)   cout<<i<<"!="<<fac(i)<<endl;   return 0; }int fac(int n) {static int f=1;  f=f*n;  return f; }Ch4-14#include <iostream>using namespace std;int max(int,int);int main() {extern int a,b;  cout<<max(a,b)<<endl;  return 0; }int a=15,b=-7;int max(int x,int y) {int z;  z=x>y?x:y;  return z; }Ch4-15-1//file1.cpp#include <iostream>using namespace std;int main() { extern int max(int,int);   int a,b;   cin>>a>>b;   cout<<max(a,b)<<endl;   return 0; }Ch4-15-2//file2.cppint max(int x,int y){ int z; z=x>y?x:y; return z; }Ch4-16#include <iostream>using namespace std;#define RUNint main(){int x=1,y=2,z=3; #ifndef RUN  cout<<"x="<<x<<",y="<<y<<",z="<<z<<endl; #endif cout<<x*y*z<<endl; return 0;}第五章Ch5-1#include <iostream>using namespace std;int main(){int i,a[10]; for (i=0;i<=9;i++)a[i]=i; for (i=9;i>=0;i--)cout<<a[i]<<" "; cout<<endl; return 0;}Ch5-2#include <iostream>#include <iomanip>using namespace std;int main()  {    int i;    int f[20]={1,1};    for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1];    for(i=0;i<20;i++)      {        if(i%5==0) cout<<endl;        cout<<setw(8)<<f[i];      }cout<<endl;return 0;}Ch5-3#include <iostream>using namespace std;int main(){  int a[10];  int i,j,t;  cout<<"input 10 numbers :"<<endl;  for (i=0;i<10;i++)    cin>>a[i];  cout<<endl;  for (j=0;j<9;j++)    for(i=0;i<9-j;i++)       if (a[i]>a[i+1])   {t=a[i];a[i]=a[i+1];a[i+1]=t;}  cout<<"the sorted numbers :"<<endl;  for(i=0;i<10;i++)  cout<<a[i]<<" ";  cout<<endl;  return 0;}Ch5-4#include <iostream> using namespace std;int main(){ int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; cout<<"array a:"<<endl; for (i=0;i<=1;i++) {   for (j=0;j<=2;j++)   {  cout<<a[i][j]<<" ";      b[j][i]=a[i][j];   }   cout<<endl;  }  cout<<"array b:"<<endl;  for (i=0;i<=2;i++)  {    for(j=0;j<=1;j++)      cout<<b[i][j]<<" ";    cout<<endl;                }   return 0;}Ch5-5#include <iostream>using namespace std;int main(){ int i,j,row=0,colum=0,max;  int a[3][4]={{5,12,23,56},{19,28,37,46},{-12,-34,6,8}};  max=a[0][0];  for (i=0;i<=2;i++)    for (j=0;j<=3;j++)      if (a[i][j]>max)  {max=a[i][j];        row=i;        colum=j;       }  cout<<"max="<<max<<",row="<<row<<",colum="<<colum<<endl;  return 0; }Ch5-6#include <iostream>using namespace std;int main(){ int max_value(int x,int max);  int i,j,row=0,colum=0,max;  int a[3][4]={{5,12,23,56},{19,28,37,46},{-12,-34,6,8}};  max=a[0][0];  for (i=0;i<=2;i++)    for (j=0;j<=3;j++){ max=max_value(a[i][j],max); if(max==a[i][j]) { row=i;       colum=j;      }}  cout<<"max="<<max<<",row="<<row<<",colum="<<colum<<endl;  return 0; }int max_value(int x,int max){ if(x>max) return x;  else return max;}Ch5-7#include <iostream>using namespace std;int main(){void select_sort(int array[],int n);              int a[10],i; cout<<"enter the originl array:"<<endl; for(i=0;i<10;i++)                                   cin>>a[i]; cout<<endl; select_sort(a,10);                               cout<<"the sorted array:"<<endl; for(i=0;i<10;i++)                                cout<<a[i]<<"  "; cout<<endl; return 0;}void select_sort(int array[],int n)              {int i,j,k,t; for(i=0;i<n-1;i++) {k=i;  for(j=i+1;j<n;j++)                        if(array[j]<array[k]) k=j; t=array[k];array[k]=array[i];array[i]=t;}}Ch5-8#include <iostream> using namespace std;int main(){int max_value(int array[][4]); int a[3][4]={{11,32,45,67},{22,44,66,88},{15,72,43,37}}; cout<<"max value is "<<max_value(a)<<endl; return 0;}int max_value(int array[][4]){int i,j,max; max=array[0][0]; for( i=0;i<3;i++)     for(j=0;j<4;j++)       if(array[i][j]>max) max=array[i][j]; return max;}Ch5-9#include <iostream>using namespace std;int main(){char diamond[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}}; int i,j; for (i=0;i<5;i++)   {for (j=0;j<5;j++)     cout<<diamond[i][j];    cout<<endl;}  return 0; }Ch5-10#include <iostream>#include <string>using namespace std;int main(){ void max_string(char str[][30],int i);  int i;  char country_name[3][30];  for(i=0;i<3;i++)    cin>>country_name[i];  max_string(country_name,3);  return 0;}void max_string(char str[][30],int n){  int i;  char string[30];  strcpy(string,str[0]);  for(i=0;i<n;i++)  if(strcmp(str[i],string)>0) strcpy(string,str[i]);  cout<<endl<<"the largest string is∶"<<string<<endl;}Ch5-11#include <iostream>#include <string>using namespace std;int main(){void swap(string,string); string string1,string2,string3,temp; cout<<"please input three strings:"; cin>>string1>>string2>>string3; if(string2>string3) {temp=string2;string2=string3;string3=temp;} if(string1<string2) cout<<string1<<" "<<string2<<" "<<string3<<endl; else if(string1<string3) cout<<string2<<" "<<string1<<" "<<string3<<endl; else cout<<string2<<" "<<string3<<" "<<string1<<endl; return 0;}Ch5-12#include <iostream>#include <string>using namespace std;string name[50],num[50];int n;int main(){void input_data(); void search(string find_name); string find_name; cout<<"please input number of this class:"; cin>>n; input_data(); cout<<"please input name you want find:"; cin>>find_name; search(find_name); return 0;}void input_data(){ int i; for (i=0;i<n;i++)   {cout<<"input name and number of student "<<i+1<<":";    cin>>name[i]>>num[i];}}void search(string find_name){int i; bool flag=false; for(i=0;i<n;i++)   if(name[i]==find_name)     {cout<<name[i]<<" "<<num[i]<<endl;flag=true;break;} if(flag==false) cout<<"can't find this name";}第六章Ch6-1#include <iostream>using namespace std;int main(){int a,b; int *pointer_1,*pointer_2; a=100;b=10; pointer_1=&a;      //把变量a的地址赋给pointer_1 pointer_2=&b;      //把变量b的地址赋给pointer_2 cout<<a<<" "<<b<<endl; cout<<*pointer_1<<" "<<*pointer_2<<endl; return 0;}Ch6-2#include  <iostream>using namespace std;int main(){  int *p1,*p2,*p,a,b;  cin>>a>>b;  p1=&a;  p2=&b;  if(a<b)  {p=p1;p1=p2;p2=p;}  cout<<"a="<<a<<" b="<<b<<endl;  cout<<"max="<<*p1<<" min="<<*p2<<endl;  return 0;}Ch6-3-1#include  <iostream>using namespace std;int main(){ void swap(int *p1,int *p2);  int *pointer_1,*pointer_2,a,b;  cin>>a>>b;  pointer_1=&a;  pointer_2=&b;  if(a<b) swap(pointer_1,pointer_2);  cout<<"max="<<a<<" min="<<b<<endl;  return 0;}void swap(int *p1,int *p2){ int temp;  temp=*p1;  *p1=*p2;  *p2=temp;}Ch6-3-2#include  <iostream>using namespace std;int main(){ void swap(int *p1,int *p2);  int *pointer_1,*pointer_2,a,b;  cin>>a>>b;  pointer_1=&a;  pointer_2=&b;  if(a<b) swap(pointer_1,pointer_2);  cout<<"max="<<a<<" min="<<b<<endl;  return 0;}void swap(int *p1,int *p2){ int *temp;  temp=p1;  p1=p2;  p2=temp;}Ch6-4#include <iostream>using namespace std;int main(){ void exchange(int *,int *,int *);  int a,b,c,*p1,*p2,*p3;  cin>>a>>b>>c;  p1=&a;p2=&b;p3=&c;  exchange(p1,p2,p3);  cout<<a<<" "<<b<<" "<<c<<endl;  return 0;}void exchange(int *q1,int *q2,int *q3){void swap(int *,int *); if(*q1<*q2) swap(q1,q2); if(*q1<*q3) swap(q1,q3); if(*q2<*q3) swap(q2,q3);}void swap(int *pt1,int *pt2){int temp; temp=*pt1; *pt1=*pt2; *pt2=temp;}Ch6-5-1#include <iostream>using namespace std;int main(){  int a[10];  int i;  for(i=0;i<10;i++)    cin>>a[i];  cout<<endl;  for(i=0;i<10;i++)    cout<<a[i]<<" ";  cout<<endl;  return 0;}Ch6-5-2#include <iostream>using namespace std;int main(){  int a[10];  int i;  for(i=0;i<10;i++)    cin>>*(a+i);  cout<<endl;  for(i=0;i<10;i++)    cout<<*(a+i)<<" ";  cout<<endl;  return 0;}Ch6-5-3#include <iostream>using namespace std;int main(){  int a[10];  int i,*p=a ;  for(i=0;i<10;i++)    cin>>*(p+i);  cout<<endl;    for(p=a;p<(a+10);p++)    cout<<*p<<" ";  cout<<endl;  return 0;}Ch6-6#include <iostream>using namespace std;int main(){void select_sort(int *p,int n);             //函数声明 int a[10],i; double c=3.6,*q=&c; cout<<"enter the originl array:"<<endl; for(i=0;i<10;i++)                                //输入10个数   cin>>a[i]; cout<<endl; select_sort(a,10);                              //函数调用,数组名作实参 cout<<"the sorted array:"<<endl; for(i=0;i<10;i++)                               //输出10已排好序的数   cout<<a[i]<<"  "; cout<<endl; return 0;}void select_sort(int *p,int n)              {int i,j,k,t; for(i=0;i<n-1;i++) {k=i;     for(j=i+1;j<n;j++)                            if(*(p+j)<*(p+k)) k=j;   t=*(p+k);*(p+k)=*(p+i);*(p+i)=t; }}Ch6-7#include <iostream>using namespace std;int main(){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};  int *p;  for(p=a[0];p<a[0]+12;p++)    cout<<*p<<" ";  cout<<endl;  return 0;}Ch6-8#include <iostream>using namespace std;int main(){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};  int (*p)[4],i,j;  cin>>i>>j;  p=a;  cout<<*(*(p+i)+j)<<endl;  return 0;}Ch6-9#include <iostream>using namespace std;int main(){ void output(int (*p)[4]);  int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};  output(a);  return 0;}void output(int (*p)[4])  { int i,j;  for(i=0;i<3;i++)for(j=0;j<4;j++)        cout<<*(*(p+i)+j)<<" ";  cout<<endl;}Ch6-10#include <iostream>using namespace std;int main(){ char str[]="I love CHINA!";  cout<<str<<endl;  return 0;}Ch6-11#include <string>#include <iostream>using namespace std;int main(){ string str="I love CHINA!";  cout<<str<<endl;  return 0;}Ch6-12#include <iostream>using namespace std;int main(){ char *str="I love CHINA!";  cout<<str<<endl;  return 0;}Ch6-13#include <iostream>using namespace std;int main(){ char str1[]="I love CHINA!",str2[20],*p1,*p2;  p1=str1;p2=str2;  for(;*p1!='\0';p1++,p2++)    *p2=*p1;  *p2='\0';  p1=str1;p2=str2;  cout<<"str1 is: "<<p1<<endl;  cout<<"str2 is: "<<p2<<endl;  return 0;}Ch6-14-1#include <iostream>using namespace std;int main(){int max(int x,int y);              //函数声明 int a,b,m; cin>>a>>b; m=max(a,b);                        //调用函数max,求出最大值,赋予m cout<<"max="<<m<<endl; return 0;}int max(int x,int y){int z; if(x>y) z=x; else z=y; return(z);}Ch6-14-2#include <iostream>using namespace std;int main(){int max(int x,int y); int (*p)(int,int); int a,b,m; p=max; cin>>a>>b; m=p(a,b); cout<<"max="<<m<<endl; return 0;}int max(int x,int y){int z; if(x>y) z=x; else z=y; return(z);}Ch6-15-1#include <iostream>using namespace std;int main(){ void sort(char *name[],int n);  void print(char *name[],int n);  char *name[]={"BASIC","FORTRAN","C++","PASCAL","COBOL"};  int n=5;  sort(name,n);  print(name,n);  return 0;}void sort(char *name[],int n){char *temp; int i,j,k; for(i=0;i<n-1;i++) {k=i;  for(j=i+1;j<n;j++)    if(strcmp(name[k],name[j])>0) k=j;  if(k!=i)  { temp=name[i];name[i]=name[k];name[k]=temp;} }}void print(char *name[],int n){int i; for(i=0;i<n;i++)   cout<<name[i]<<endl;}Ch6-15-2#include <iostream>using namespace std;int main(){ void sort(char *name[],int n);  void print(char *name[],int n);  char *name[]={"BASIC","FORTRAN","C++","PASCAL","COBOL"};  int n=5;  sort(name,n);  print(name,n);  return 0;}void sort(char *name[],int n){char *temp; int i,j,k; for(i=0;i<n-1;i++) {k=i;  for(j=i+1;j<n;j++)    if(strcmp(name[k],name[j])>0) k=j;  if(k!=i)  { temp=name[i];name[i]=name[k];name[k]=temp;} }}void print(char *name[],int n){int i=0; char *p; p=name[0]; while(i<n)  {p=*(name+i++);   cout<<p<<endl;  }}Ch6-16#include <iostream>using namespace std;int main(){ char **p;  char *name[]={"BASIC","FORTRAN","C++","PASCAL","COBOL"};  p=name+2;  cout<<*p<<endl;  cout<<**p<<endl;  return 0; }Ch6-17#include <iostream>#include <iomanip>using namespace std;int main(){ int a=10; int &b=a; a=a*a; cout<<a<<setw(6)<<b<<endl; b=b/5; cout<<b<<setw(6)<<a<<endl; return 0;}Ch6-18#include <iostream>using namespace std;int main(){void swap(int,int); int i=3; int j=5; swap(i,j); cout<<i<<" "<<j<<endl; return 0;}void swap(int a,int b){int temp; temp=a; a=b; b=temp;}Ch6-19#include <iostream>using namespace std;int main(){void swap(int *,int *); int i=3,j=5; swap(&i,&j); cout<<i<<" "<<j<<endl; return 0;}void swap(int *p1,int *p2){int temp; temp=*p1; *p1=*p2; *p2=temp;}Ch6-20#include <iostream>using namespace std;int main(){void swap(int &,int &); int i=3,j=5; swap(i,j); cout<<"i="<<i<<" "<<"j="<<j<<endl; return 0;}void swap(int &a,int &b){int temp; temp=a; a=b; b=temp;}Ch6-21#include <iostream>using namespace std;int main(){void sort(int &,int &,int &); int a,b,c,a1,b1,c1; cout<<"Please enter 3 integers:"; cin>>a>>b>>c; a1=a;b1=b;c1=c; sort(a1,b1,c1); cout<<a<<" "<<b<<" "<<c<<" in sorted order is "; cout<<a1<<" "<<b1<<" "<<c1<<endl; return 0;}void sort(int &i,int &j,int &k){ void change(int &,int &);  if (i>j) change(i,j);  if (i>k) change(i,k);  if (j>k) change(j,k);}void change(int &x,int &y){ int temp;  temp=x;  x=y;  y=temp;}第七章Ch7-1#include <iostream>using namespace std;struct Date  {int month;   int day;   int year;  }; struct Student  {int num;   char name[20];   char sex;   Date birthday;   float score;  }student1,student2={10002,"Wang Li",'f',5,23,1982,89.5};int main(){student1=student2; cout<<student1.num<<endl; cout<<student1.name<<endl; cout<<student1.sex<<endl; cout<<student1.birthday.month<<'/'<<student1.birthday.day<<'/'; cout<<student1.birthday.year<<endl; cout<<student1.score<<endl; return 0;}Ch7-2-1#include <iostream>#include <string>using namespace std;struct Person { char name[20];   int count; };int main() {Person leader[3]={"Li",0,"Zhang",0,"Fun",0};  int i,j;  char leader_name[20];  for(i=0;i<10;i++)    {cin>>leader_name;     for(j=0;j<3;j++)       if(strcmp(leader_name,leader[j].name)==0) leader[j].count++;     }  cout<<endl;  for(i=0;i<3;i++)    {cout<<leader[i].name<<":"<<leader[i].count<<endl;}  return 0; }Ch7-2-2#include <iostream>#include <string>using namespace std;struct Person { string name;   int count; };int main() {Person leader[3]={"Li",0,"Zhang",0,"Fun",0};  int i,j;  string leader_name;  for(i=0;i<3;i++)    {cin>>leader_name;     for(j=0;j<10;j++)       if(leader_name==leader[j].name) leader[j].count++;     }  cout<<endl;  for(i=0;i<3;i++)    {cout<<leader[i].name<<":"<<leader[i].count<<endl;}  return 0; }Ch7-3#include <iostream>#include <string>using namespace std;int main() {struct student   {int num;    string name;    char sex;    float score; }; student stu; student *p=&stu; stu.num=10301; stu.name="Wang Fun"; stu.sex='f'; stu.score=89.5; cout<<stu.num<<" "<<stu.name<<" "<<stu.sex<<" "<<stu.score<<endl; cout<<(*p).num<<" "<<(*p).name<<" "<<(*p).sex<<" "<<(*p).score<<endl; return 0;}Ch7-4#define NULL 0   #include <iostream>using namespace std; struct Student {long num;  float score;  struct Student *next; };int main(){Student a,b,c,*head,*p; a.num=31001; a.score=89.5; b.num=31003; b.score=90; c.num=31007; c.score=85; head=&a; a.next=&b; b.next=&c; c.next=NULL; p=head; do           {cout<<p->num<<"  "<<p->score<<endl;    p=p->next;   } while(p!=NULL); return 0;}Ch7-5-1#include <iostream>#include <string>using namespace std;struct Student{int num; string name; float score[3];};int main(){void print(Student); Student stu; stu.num=12345; stu.name="Li Fung"; stu.score[0]=67.5; stu.score[1]=89; stu.score[2]=78.5; print(stu); return 0;}void print(Student stu){cout<<stu.num<<" "<<stu.name<<" "<<stu.score[0]<<" "     <<stu.score[1]<<" "<<stu.score[2]<<endl;}Ch7-5-2#include <iostream>#include <string>using namespace std;struct Student{int num; string name; float score[3];}stu={12345,"Li Fung",67.5,89,78.5};int main(){void print(Student *); Student *pt=&stu; print(pt); return 0;}void print(Student *p){cout<<p->num<<" "<<p->name<<" "<<p->score[0]<<" "     <<p->score[1]<<" "<<p->score[2]<<endl;}Ch7-5-3#include <iostream>#include <string>using namespace std;struct Student{int num; string name; float score[3];}stu={12345,"Li Fung",67.5,89,78.5};int main(){void print(Student &); print(stu); return 0;}void print(Student &stud){cout<<stud.num<<" "<<stud.name<<" "<<stud.score[0]<<" "<<stud.score[1]<<" "<<stud.score[2]<<endl;}Ch7-6#include <iostream>#include <string>using namespace std;struct Student {string name; int num; char sex;};int main ( ){ Student *p; p=new Student; p->name="Wang Fun"; p->num=10123; p->sex='m'; cout<<p->name<<endl<<p->num<<endl<<p->sex<<endl; delete p; return 0;}Ch7-7#include <iostream>#include <string>#include <iomanip>using namespace std;struct S  {int num;   string name;   char sex;   char job;   union     {int grade;      char position[10];     }category;  }person[2];int main(){ int i;  for(i=0;i<2;i++)   {cin>>person[i].num>>person[i].name>>person[i].sex>>person[i].job;    if(person[i].job=='s') cin>>person[i].category.grade;    else if (person[i].job=='t') cin>>person[i].category.position;        else cout<<"input error!";   }  cout<<endl<<"No.  Name   sex  job  grade/position"<<endl;  for(i=0;i<2;i++)    {if (person[i].job=='s')      cout<<person[i].num<<setw(6)<<person[i].name<<"    "<<person[i].sex      <<"    "<<person[i].job<<setw(10)<<person[i].category.grade<<endl;     else      cout<<person[i].num<<setw(6)<<person[i].name<<"    "<<person[i].sex      <<"    "<<person[i].job<<setw(10)<<person[i].category.position<<endl;    }  return 0; }Ch7-8#include <iostream>#include <iomanip>using namespace std;int main(){enum color {red,yellow,blue,white,black}; color pri; int i,j,k,n=0,loop; for (i=red;i<=black;i++)   for (j=red;j<=black;j++)     if (i!=j)      { for (k=red;k<=black;k++)        if ((k!=i) && (k!=j))         {n=n+1;          cout<<n;          for (loop=1;loop<=3;loop++)           {switch (loop)             {case 1: pri=color(i);break;              case 2: pri=color(j);break;              case 3: pri=color(k);break;              default:break;             }          switch (pri)            {case red:    cout<<setw(8)<<"red"; break;             case yellow: cout<<setw(8)<<"yellow"; break;             case blue:   cout<<setw(8)<<"blue"; break;             case white:  cout<<setw(8)<<"white"; break;             case black:  cout<<setw(8)<<"black"; break;             default   :                   break;            }         }      cout<<endl;     }   }   cout<<"total:"<<n<<endl;   return 0;}第八章Ch8-1#include <iostream>using namespace std;class Time {public:  int hour;  int minute;  int sec; };int main() { Time t1;   Time &t2=t1;   cin>>t2.hour;   cin>>t2.minute;   cin>>t1.sec;   cout<<t1.hour<<":"<<t1.minute<<":"<<t2.sec<<endl; }Ch8-2-a#include <iostream>using namespace std;class Time {public:  int hour;  int minute;  int sec; };int main() {Time t1;  cin>>t1.hour;  cin>>t1.minute;  cin>>t1.sec;  cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<endl;  Time t2;  cin>>t2.hour;  cin>>t2.minute;  cin>>t2.sec;  cout<<t2.hour<<":"<<t2.minute<<":"<<t2.sec<<endl;  return 0; }Ch8-2-b#include <iostream>using namespace std;class Time {public:  int hour;  int minute;  int sec; };int main() {  void set_time(Time&) ;  void show_time(Time&);  Time t1;  set_time(t1);  show_time(t1);  Time t2;  set_time(t2);  show_time(t2);  return 0; } void set_time(Time& t) {  cin>>t.hour;  cin>>t.minute;  cin>>t.sec; } void show_time(Time& t) {  cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl; }Ch8-2-c#include <iostream>using namespace std;class Time {public:  int hour;  int minute;  int sec; };int main() {  void set_time(Time&,int hour=0,int minute=0,int sec=0);  void show_time(Time&);  Time t1;  set_time(t1,12,23,34);  show_time(t1);  Time t2;  set_time(t2);  show_time(t2);  return 0; } void set_time(Time& t,int hour=9,int minute=30,int sec=0) {  t.hour=hour;  t.minute=minute;  t.sec=sec; } void show_time(Time& t) {  cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl; }Ch8-3#include <iostream>using namespace std;class Time {public:   void set_time() ;   void show_time();  private:   int hour;   int minute;   int sec; };int main() {  Time t1;  t1.set_time();  t1.show_time();  Time t2;  t2.set_time();  t2.show_time();  return 0; } void Time::set_time() {  cin>>hour;  cin>>minute;  cin>>sec; } void Time::show_time() {  cout<<hour<<":"<<minute<<":"<<sec<<endl; }Ch8-4#include <iostream>using namespace std;class Array_max{public:   void set_value();   void max_value();   void show_value(); private:   int array[10];   int max;};void Array_max::set_value() { int i;   for (i=0;i<10;i++)     cin>>array[i]; }void Array_max::max_value() {int i;  max=array[0];  for (i=1;i<10;i++)   if(array[i]>max) max=array[i];  }void Array_max::show_value() {cout<<"max="<<max; }int main() {Array_max  arrmax;  arrmax.set_value();  arrmax.max_value();  arrmax.show_value();  return 0; }Main//main.cpp#include <iostream>#include "student.h"int main(){Student stud; stud.display(); return 0;}Student//student.cpp                            这是源文件,在此文件中进行函数的定义#include <iostream>#include "student.h"                    //不要漏写此行void Student::display( )                 //在类外定义display类函数{cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl;}第九章Ch9-1#include <iostream>using namespace std;class Time {public:   Time()   {hour=0;    minute=0;    sec=0;   }     void set_time();   void show_time();  private:   int hour;   int minute;   int sec; };void Time::set_time(){cin>>hour; cin>>minute; cin>>sec;}void Time::show_time() {  cout<<hour<<":"<<minute<<":"<<sec<<endl; }int main() {  Time t1;  t1.show_time();  Time t2;  t2.show_time();  return 0; }Ch9-1-1#include <iostream>using namespace std;class Time {public:   Time()   {hour=0;    minute=0;    sec=0;   }   void set_time();   void show_time();  private:   int hour;   int minute;   int sec; };int main() {  Time t1;  t1.set_time();  t1.show_time();  Time t2;  t2.show_time();  return 0; }void Time::set_time(){cin>>hour; cin>>minute; cin>>sec;}void Time::show_time() {  cout<<hour<<":"<<minute<<":"<<sec<<endl; }Ch9-1-2#include <iostream>using namespace std;class Time {public:   Time();   void show_time();  private:   int hour;   int minute;   int sec; };Time::Time() {  hour=0;  minute=0;  sec=0; }int main() {  Time t1;  t1.show_time();  Time t2;  t2.show_time();  return 0; } void Time::show_time() {  cout<<hour<<":"<<minute<<":"<<sec<<endl; }Ch9-2#include <iostream>using namespace std;class Box {public:   Box(int,int,int);   int volume();  private:   int height;   int width;   int length; };Box::Box(int h,int w,int len) {height=h;  width=w;  length=len; }int Box::volume() {return(height*width*length); }     int main() {  Box box1(12,25,30);  cout<<"The volume of box1 is "<<box1.volume()<<endl;  Box box2(15,30,21);  cout<<"The volume of box2 is "<<box2.volume()<<endl;  return 0; }Ch9-3#include <iostream>using namespace std;class Box {public:   Box();                     Box(int h,int w ,int len):height(h),width(w),length(len){}   int volume();  private:   int height;   int width;   int length; };Box::Box()                  {height=10;  width=10;  length=10; }int Box::volume() {return(height*width*length); }    int main() {  Box box1;                                      cout<<"The volume of box1 is "<<box1.volume()<<endl;  Box box2(15,30,25);                            cout<<"The volume of box2 is "<<box2.volume()<<endl;  return 0; }Ch9-4#include <iostream>using namespace std;class Box {public:   Box(int w=10,int h=10,int len=10);   int volume();  private:   int height;   int width;   int length; };Box::Box(int w,int h,int len) {height=h;  width=w;  length=len; }int Box::volume() {return(height*width*length); }     int main() {  Box box1;  cout<<"The volume of box1 is "<<box1.volume()<<endl;  Box box2(15);  cout<<"The volume of box2 is "<<box2.volume()<<endl;  Box box3(15,30);  cout<<"The volume of box3 is "<<box3.volume()<<endl;  Box box4(15,30,20);  cout<<"The volume of box4 is "<<box4.volume()<<endl;  return 0; }Ch9-4-2#include <iostream>using namespace std;class Box {public:   Box(int=10,int=10,int=10);   int volume();  private:   int height;   int width;   int length; }; Box::Box(int h,int w,int len):height(h),width(w),length(len){ }int Box::volume() {return(height*width*length); }     int main() {  Box box1;  cout<<"The volume of box1 is "<<box1.volume()<<endl;  Box box2(15);  cout<<"The volume of box2 is "<<box2.volume()<<endl;  Box box3(15,30);  cout<<"The volume of box3 is "<<box3.volume()<<endl;  Box box4(15,30,20);  cout<<"The volume of box4 is "<<box4.volume()<<endl;  return 0; }Ch9-5#include <iostream>#include <string>using namespace std;class Student {public:   Student(int n,string nam,char s)    {num=n;     name=nam;     sex=s;     cout<<"Constructor called."<<endl;    }   ~Student()   {cout<<"Destructor called."<<endl;}   void display()   {cout<<"num:"<<num<<endl;    cout<<"name:"<<name<<endl;cout<<"sex:"<<sex<<endl<<endl;   }  private:    int num;    string name;    char sex;};int main()  {Student stud1(10010,"Wang_li",'f');   stud1.display();   Student stud2(10011,"Zhang_fun",'m');   stud2.display();   return 0;}Ch9-6#include <iostream>using namespace std;class Box {public:   Box(int h=10,int w=12,int len=15):height(h),width(w),length(len){ }   int volume();  private:   int height;   int width;   int length; };int Box::volume() {return(height*width*length); }    int main() {  Box a[3]={   Box(10,12,15),   Box(15,18,20),   Box(16,20,26)   };  cout<<"volume of a[0] is "<<a[0].volume()<<endl;  cout<<"volume of a[0] is "<<a[1].volume()<<endl;  cout<<"volume of a[0] is "<<a[2].volume()<<endl;  return 0; }Ch9-7#include <iostream>using namespace std; class Time {public:   Time(int,int,int);   int hour;   int minute;   int sec;   void get_time(); }; Time::Time(int h,int m,int s) {hour=h;  minute=m;  sec=s; }void Time::get_time()   {cout<<hour<<":"<<minute<<":"<<sec<<endl;}int main() {Time t1(10,13,56);  int *p1=&t1.hour;  cout<<*p1<<endl;  t1.get_time();  Time *p2=&t1;  p2->get_time();  void (Time::*p3)();  p3=&Time::get_time;  (t1.*p3)();  return 0;}Ch9-8#include <iostream>using namespace std;class Time {public:   Time(int,int,int);   int hour;   int minute;   int sec; }; Time::Time(int h,int m,int s) {hour=h;  minute=m;  sec=s; } void fun(Time &t){t.hour=18;}int main(){Time t1(10,13,56); fun(t1); cout<<t1.hour<<endl; return 0;}Ch9-9#include <iostream>using namespace std;class Box {public:   Box(int=10,int=10,int=10);                  int volume();  private:   int height;   int width;   int length; };Box::Box(int h,int w,int len) {height=h;  width=w;  length=len; }int Box::volume() {return(height*width*length);       }     int main() {  Box box1(15,30,25),box2;                         cout<<"The volume of box1 is "<<box1.volume()<<endl;  box2=box1;                                     cout<<"The volume of box2 is "<<box2.volume()<<endl;  return 0; }Ch9-9-2#include <iostream>using namespace std;class Box {public:   Box(int=10,int=10,int=10);   int volume();  private:   int height;   int width;   int length; };Box::Box(int h,int w,int len) {height=h;  width=w;  length=len; }int Box::volume() {return(height*width*length); }     int main() {Box box1(15,30,25);  cout<<"The volume of box1 is "<<box1.volume()<<endl;  Box box2=box1,box3=box2;  cout<<"The volume of box2 is "<<box2.volume()<<endl;  cout<<"The volume of box3 is "<<box3.volume()<<endl;  return 0;   }Ch9-10#include <iostream>using namespace std;class Box {public:   Box(int,int);   int volume();   static int height;   int width;   int length; };Box::Box(int w,int len) {  width=w;  length=len; }int Box::volume() {return(height*width*length); }int Box::height=10;int main() {  Box a(15,20),b(20,30);  cout<<a.height<<endl;  cout<<b.height<<endl;  cout<<Box::height<<endl;  cout<<a.volume()<<endl;  return 0; }Ch9-11#include <iostream>using namespace std;class Student {public:   Student(int,int,int);   void total();   static float average();  private:   int num;   int age;   float score;   static float sum;   static int count; }; Student::Student(int m,int a,int s) {num=m;  age=a;  score=s; } void Student::total()   {    sum+=score;    count++;   }   float  Student::average() { return(sum/count); }float Student::sum=0;int Student::count=0;int main() {   Student stud[3]={     Student(1001,18,70),     Student(1002,19,79),     Student(1005,20,98)    };   int n;   cout<<"please input the number of students:";   cin>>n;   for(int i=0;i<n;i++)     stud[i].total();   cout<<"The average score of "<<n<<" students is "<<stud[0].average()<<endl;   return 0; }Ch9-12#include <iostream>using namespace std;class Time {public:   Time(int,int,int);   friend void display(Time &);  private:   int hour;   int minute;   int sec; }; Time::Time(int h,int m,int s) {hour=h;  minute=m;  sec=s; }void display(Time &t) {  cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl; }   int main(){ Time t1(10,13,56); display(t1); return 0;}Ch9-13#include <iostream>using namespace std;class Date;class Time {public:   Time(int,int,int);   void display(const Date&);  private:   int hour;   int minute;   int sec; }; class Date {public:   Date(int,int,int);   friend void Time::display(const Date &);  private:   int month;   int day;   int year; }; Time::Time(int h,int m,int s) {hour=h;  minute=m;  sec=s; }void Time::display(const Date &da) {cout<<da.month<<"/"<<da.day<<"/"<<da.year<<endl;  cout<<hour<<":"<<minute<<":"<<sec<<endl; }  Date::Date(int m,int d,int y) {month=m;  day=d;  year=y; }   int main(){Time t1(10,13,56); Date d1(12,25,2004); t1.display(d1); return 0;}Ch9-14#include <iostream>using namespace std;template<class numtype>class Compare {public:   Compare(numtype a,numtype b)    {x=a;y=b;}   numtype max()    {return (x>y)?x:y;}   numtype min()    {return (x<y)?x:y;}  private:    numtype x,y; };int main(){Compare<int> cmp1(3,7); cout<<cmp1.max()<<" is the Maximum of two inteder numbers."<<endl; cout<<cmp1.min()<<" is the Minimum of two inteder numbers."<<endl<<endl; Compare<float> cmp2(45.78,93.6); cout<<cmp2.max()<<" is the Maximum of two float numbers."<<endl; cout<<cmp2.min()<<" is the Minimum of two float numbers."<<endl<<endl; Compare<char> cmp3('a','A'); cout<<cmp3.max()<<" is the Maximum of two characters."<<endl; cout<<cmp3.min()<<" is the Minimum of two characters."<<endl; return 0;}第十章Ch10-1#include <iostream>using namespace std;class Complex {public:   Complex(){real=0;imag=0;}   Complex(double r,double i){real=r;imag=i;}   Complex complex_add(Complex &c2);   void display();  private:   double real;   double imag; };Complex Complex::complex_add(Complex &c2){return Complex(real+c2.real,imag+c2.imag);}   void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){Complex c1(3,4),c2(5,-10),c3; c3=c1.complex_add(c2); cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); cout<<"c1+c2="; c3.display(); return 0;}Ch10-2#include <iostream>using namespace std;class Complex {public:   Complex(){real=0;imag=0;}   Complex(double r,double i){real=r;imag=i;}   Complex operator + (Complex &c2);   void display();  private:   double real;   double imag; };Complex Complex::operator + (Complex &c2){Complex c; c.real=real+c2.real; c.imag=imag+c2.imag;return c;}   void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; cout<<"c1=";c1.display(); cout<<"c2=";c2.display(); cout<<"c1+c2=";c3.display(); return 0;}Ch10-2-2#include <iostream>using namespace std;class Complex {public:   Complex(){real=0;imag=0;}   Complex(double r,double i){real=r;imag=i;}   Complex operator + (Complex &c2);   void display();  private:   double real;   double imag; };Complex Complex::operator + (Complex &c2) {return Complex(real+c2.real,imag+c2.imag);}   void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); cout<<"c1+c2="; c3.display(); return 0;}Ch10-3#include <iostream>using namespace std;class Complex {public:   Complex(){real=0;imag=0;}   Complex(double r){real=r;imag=0;}   Complex(double r,double i){real=r;imag=i;}   friend Complex operator+ (Complex &c1,Complex &c2);   void display();  private:   double real;   double imag; };Complex operator+ (Complex &c1,Complex &c2) {return Complex(c1.real+c2.real, c1.imag+c2.imag);}   void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); cout<<"c1+c2="; c3.display(); return 0;}Ch10-4-1#include <iostream>using namespace std;class String           //String 是用户自己指定的类名 {public:   String(){p=NULL;}   String(char *str);   void display();  private:   char *p; }; String::String(char *str)  {p=str;}void String::display()  {cout<<p;}int main()  {String string1("Hello"),string2("Book");   string1.display();   cout<<endl;   string2.display();   return 0;}Ch10-4-2(vc)//本程序适用于VC++ 6.0#include <iostream.h>#include <string.h>class String {public:   String(){p=NULL;}   String(char *str);   friend bool operator>(String &string1,String &string2);   friend bool operator<(String &string1,String &string2);   friend bool operator==(String &string1,String &string2);   void display();  private:   char *p; }; String::String(char *str)  {p=str;}void String::display(){cout<<p;}bool operator>(String &string1,String &string2)  {if(strcmp(string1.p,string2.p)>0)    return true;   else return false;  }int main(){String string1("Hello"),string2("Book"); cout<<(string1>string2)<<endl; return 0;}Ch10-4-2#include <iostream>#include <cstring>using namespace std;class String {public:   String(){p=NULL;}   String(char *str);   friend bool operator>(String &string1,String &string2);   friend bool operator<(String &string1,String &string2);   friend bool operator==(String &string1,String &string2);   void display();  private:   char *p; }; String::String(char *str)  {p=str;}void String::display(){cout<<p;}bool operator>(String &string1,String &string2)  {if(strcmp(string1.p,string2.p)>0)    return true;   else return false;  }int main(){String string1("Hello"),string2("Book"); cout<<(string1>string2)<<endl; return 0;}Ch10-4-3(vc)//本程序适用于VC++ 6.0#include <iostream.h>#include <string.h>class String {public:   String(){p=NULL;}   String(char *str);   friend bool operator>(String &string1,String &string2);   friend bool operator<(String &string1,String &string2);   friend bool operator==(String &string1,String &string2);   void display();  private:   char *p; }; String::String(char *str)  {p=str;}void String::display(){cout<<p;}bool operator>(String &string1,String &string2)  {if(strcmp(string1.p,string2.p)>0)    return true;   else    return false;  }bool operator<(String &string1,String &string2)  {if(strcmp(string1.p,string2.p)<0)    return true;   else    return false;  }bool operator==(String &string1,String &string2)  {if(strcmp(string1.p,string2.p)==0)    return true;   else    return false;  }int main(){String string1("Hello"),string2("Book"),string3("Computer"); cout<<(string1>string2)<<endl; cout<<(string1<string3)<<endl; cout<<(string1==string2)<<endl; return 0;}Ch10-4-3#include <iostream>#include <string>using namespace std;class String {public:   String(){p=NULL;}   String(char *str);   friend bool operator>(String &string1,String &string2);   friend bool operator<(String &string1,String &string2);   friend bool operator==(String &string1,String &string2);   void display();  private:   char *p; }; String::String(char *str)  {p=str;}void String::display(){cout<<p;}bool operator>(String &string1,String &string2)  {if(strcmp(string1.p,string2.p)>0)    return true;   else    return false;  }bool operator<(String &string1,String &string2)  {if(strcmp(string1.p,string2.p)<0)    return true;   else    return false;  }bool operator==(String &string1,String &string2)  {if(strcmp(string1.p,string2.p)==0)    return true;   else    return false;  }int main(){String string1("Hello"),string2("Book"),string3("Computer"); cout<<(string1>string2)<<endl; cout<<(string1<string3)<<endl; cout<<(string1==string2)<<endl; return 0;}Ch10-4-4(vc)//本程序适用于VC++ 6.0#include <iostream.h>#include <string.h>class String {public:   String(){p=NULL;}   String(char *str);   friend bool operator>(String &string1,String &string2);   friend bool operator<(String &string1,String &string2);   friend bool operator==(String &string1,String &string2);  void display();  private:   char *p; }; String::String(char *str){p=str;}void String::display() {cout<<p;} bool operator>(String &string1,String &string2){if(strcmp(string1.p,string2.p)>0)   return true; else   return false;}bool operator<(String &string1,String &string2){if(strcmp(string1.p,string2.p)<0)   return true; else   return false;}bool operator==(String &string1,String &string2){if(strcmp(string1.p,string2.p)==0)   return true; else   return false;}void compare(String &string1,String &string2){if(operator>(string1,string2)==1)  {string1.display();cout<<">";string2.display();} else  if(operator<(string1,string2)==1)   {string1.display();cout<<"<";string2.display();} else  if(operator==(string1,string2)==1)   {string1.display();cout<<"=";string2.display();} cout<<endl;}int main(){String string1("Hello"),string2("Book"),string3("Computer"),string4("Hello"); compare(string1,string2); compare(string2,string3); compare(string1,string4); return 0;}Ch10-4-4#include <iostream>#include <cstring>using namespace std;class String {public:   String(){p=NULL;}   String(char *str);   friend bool operator>(String &string1,String &string2);   friend bool operator<(String &string1,String &string2);   friend bool operator==(String &string1,String &string2);  void display();  private:   char *p; }; String::String(char *str){p=str;}void String::display() {cout<<p;} bool operator>(String &string1,String &string2){if(strcmp(string1.p,string2.p)>0)   return true; else   return false;}bool operator<(String &string1,String &string2){if(strcmp(string1.p,string2.p)<0)   return true; else   return false;}bool operator==(String &string1,String &string2){if(strcmp(string1.p,string2.p)==0)   return true; else   return false;}void compare(String &string1,String &string2){if(operator>(string1,string2)==1)  {string1.display();cout<<">";string2.display();} else  if(operator<(string1,string2)==1)   {string1.display();cout<<"<";string2.display();} else  if(operator==(string1,string2)==1)   {string1.display();cout<<"=";string2.display();} cout<<endl;}int main(){String string1("Hello"),string2("Book"),string3("Computer"),string4("Hello"); compare(string1,string2); compare(string2,string3); compare(string1,string4); return 0;}Ch10-5#include <iostream>using namespace std;class Time{public:   Time(){minute=0;sec=0;}   Time(int m,int s):minute(m),sec(s){}   Time operator++();   void display(){cout<<minute<<":"<<sec<<endl;}  private:   int minute;   int sec; };Time Time::operator++(){if(++sec>=60)  {sec-=60;   ++minute;}   return *this;}   int main(){Time time1(34,0); for (int i=0;i<61;i++){++time1;     time1.display();} return 0;}Ch10-6#include <iostream>using namespace std;class Time{public:   Time(){minute=0;sec=0;}   Time(int m,int s):minute(m),sec(s){}   Time operator++();   Time operator++(int);   void display(){cout<<minute<<":"<<sec<<endl;}  private:   int minute;   int sec; }; Time Time::operator++(){if(++sec>=60)  {sec-=60;   ++minute;} return *this;}Time Time::operator++(int){Time temp(*this); sec++; if(sec>=60)  {sec-=60;   ++minute;} return temp;}   int main(){Time time1(34,59),time2; cout<<" time1 : "; time1.display(); ++time1; cout<<"++time1: "; time1.display(); time2=time1++; cout<<"time1++: "; time1.display(); cout<<" time2 : "; time2.display(); return 0;}Ch10-7(vc)//本程序适用于VC++ 6.0#include <iostream.h>          class Complex {public:   Complex(){real=0;imag=0;}   Complex(double r,double i){real=r;imag=i;}   Complex operator + (Complex &c2);   friend ostream& operator << (ostream&,Complex&);  private:   double real;   double imag; };Complex Complex::operator + (Complex &c2) {return Complex(real+c2.real,imag+c2.imag);}   ostream& operator << (ostream& output,Complex& c){output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl; return output;}int  main(){Complex c1(2,4),c2(6,10),c3; c3=c1+c2; cout<<c3; return 0;}Ch10-7#include <iostream>using namespace std;class Complex {public:   Complex(){real=0;imag=0;}   Complex(double r,double i){real=r;imag=i;}   Complex operator + (Complex &c2);   friend ostream& operator << (ostream&,Complex&);  private:   double real;   double imag; };Complex Complex::operator + (Complex &c2) {return Complex(real+c2.real,imag+c2.imag);}   ostream& operator << (ostream& output,Complex& c){output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl; return output;}int  main(){Complex c1(2,4),c2(6,10),c3; c3=c1+c2; cout<<c3; return 0;}Ch10-8(vc)//本程序适用于VC++ 6.0#include <iostream.h>class Complex {public:   friend ostream& operator << (ostream&,Complex&);   friend istream& operator >> (istream&,Complex&);  private:   double real;   double imag; };   ostream& operator << (ostream& output,Complex& c){output<<"("<<c.real; if(c.imag>=0) output<<"+"; output<<c.imag<<"i)"; return output;}istream& operator >> (istream& input,Complex& c){cout<<"input real part and imaginary part of complex number:"; input>>c.real>>c.imag; return input;}int main(){Complex c1,c2; cin>>c1>>c2; cout<<"c1="<<c1<<endl; cout<<"c2="<<c2<<endl; return 0;}Ch10-8#include <iostream>using namespace std;class Complex {public:   friend ostream& operator << (ostream&,Complex&);   friend istream& operator >> (istream&,Complex&);  private:   double real;   double imag; };   ostream& operator << (ostream& output,Complex& c){output<<"("<<c.real<<"+"<<c.imag<<"i)"; return output;}istream& operator >> (istream& input,Complex& c){cout<<"input real part and imaginary part of complex number:"; input>>c.real>>c.imag; return input;}int main(){Complex c1,c2; cin>>c1>>c2; cout<<"c1="<<c1<<endl; cout<<"c2="<<c2<<endl; return 0;}Ch10-9#include <iostream>using namespace std;class Complex {public:   Complex(){real=0;imag=0;}   Complex(double r,double i){real=r;imag=i;}   operator double() {return real;}      private:   double real;   double imag; }; int main(){Complex c1(3,4),c2(5,-10),c3; double d; d=2.5+c1; cout<<d<<endl; return 0;}Ch10-10#include <iostream>using namespace std;class Complex {public:   Complex(){real=0;imag=0;}   Complex(double r){real=r;imag=0;}   Complex(double r,double i){real=r;imag=i;}   friend Complex operator + (Complex c1,Complex c2);   void display();  private:   double real;   double imag; }; Complex operator + (Complex c1,Complex c2) {return Complex(c1.real+c2.real, c1.imag+c2.imag);}   void Complex::display(){cout<<"("<<real<<"+"<<imag<<"i)"<<endl;}int main(){Complex c1(3,4),c2(5,-10),c3; c3=c1+2.5; c3.display(); return 0;}Ch10-10-2#include <iostream>using namespace std;class Complex {public:   Complex(){real=0;imag=0;}   Complex(double r){real=r;imag=0;}   Complex(double r,double i){real=r;imag=i;}   operator double(){cout<<return real;}   friend Complex operator + (Complex c1,Complex c2);                   void display();  private:   double real;   double imag; }; Complex operator + (Complex c1,Complex c2) {return Complex(c1.real+c2.real, c1.imag+c2.imag);}   void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){Complex c1(3,4),c2(5,-10),c3; c3=c1+2.5; c3.display(); return 0;}第十一章Ch11-1#include <iostream>#include <string>using namespace std;class Student{public:  void get_value()   {cin>>num>>name>>sex;}  void display( )    {cout<<"num: "<<num<<endl;     cout<<"name: "<<name<<endl;     cout<<"sex: "<<sex<<endl;} private :   int num;   string name;   char sex;};   class Student1: public Student {public:   void get_value_1()    {cin>>age>>addr;}   void display_1()    {  //cout<<"num: "<<num<<endl;        //企图引用基类的私有成员,错误       //cout<<"name: "<<name<<endl;      //企图引用基类的私有成员,错误       //cout<<"sex: "<<sex<<endl;        //企图引用基类的私有成员,错误       cout<<"age: "<<age<<endl;          //引用派生类的私有成员,正确       cout<<"address: "<<addr<<endl;}    //引用派生类的私有成员,正确  private:       int age;       string addr; }; int main() {Student1 stud1;  stud1.get_value();  stud1.get_value_1();  stud1.display();  stud1.display_1();  return 0;}Ch11-2#include <iostream>#include <string>using namespace std;class Student{public:  void display( )    {cout<<"num: "<<num<<endl;     cout<<"name: "<<name<<endl;     cout<<"sex: "<<sex<<endl;} private :   int num;   string name;   char sex;};   class Student1: private Student {public:   void display_1()       {display();       cout<<"age: "<<age<<endl;          //引用派生类的私有成员,正确       cout<<"address: "<<addr<<endl;}    //引用派生类的私有成员,正确  private:       int age;       string addr; }; int main() {Student1 stud1;  stud1.display_1();  return 0;}Ch11-3#include <iostream>#include <string>using namespace std;class Student                        //声明基类{public:                             //基类公用成员                  void display( ); protected :                         //基类保护成员    int num;    string name;    char sex;};void Student::display( )   {cout<<"num: "<<num<<endl;    cout<<"name: "<<name<<endl;    cout<<"sex: "<<sex<<endl;   }   class Student1: protected Student     //用protected继承方式声明一个派生类{public:   void display1( ); private:   int age;                             string addr;};void Student1::display1( )    {cout<<"num: "<<num<<endl;         //引用基类的保护成员,合法     cout<<"name: "<<name<<endl;       //引用基类的保护成员,合法     cout<<"sex: "<<sex<<endl;         //引用基类的保护成员,合法     cout<<"age: "<<age<<endl;         //引用派生类的私有成员,合法     cout<<"address: "<<addr<<endl;    //引用派生类的私有成员,合法   int main( ) {Student1 stud1;                      //stud2是派生类student2的对象  stud1.display1( );                  //display是派生类中的公用成员函数  return 0; }Ch11-5#include <iostream>#include<string>using namespace std;class Student                              //声明基类 {public:                                  //公用部分   Student(int n,string nam,char s )       //基类构造函数    {num=n;     name=nam;     sex=s; }   ~Student( ) { }  protected:                               //保护部分    int num;    string name;    char sex ;                            //基类析构函数};class Student1: public Student                   //声明公用派生类student {public:   Student1(int n,string nam,char s,int a,char ad[]) : Student(n,nam,s),age(a)                                             //派生类构造函数    {age=a;                          //在函数体中只对派生类新增的数据成员初始化     addr=ad;    }   void show( )    {cout<<"num: "<<num<<endl;     cout<<"name: "<<name<<endl;     cout<<"sex: "<<sex<<endl;     cout<<"age: "<<age<<endl;     cout<<"address: "<<addr<<endl<<endl;    }   ~Student1( ) { }                      //派生类析构函数  private:                               //派生类的私有部分   int age;                             string addr;                 }; int main( ) {Student1 stud1(10010,"Wang-li",'f',19,"115 Beijing Road,Shanghai");  Student1 stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing");  stud1.show( );            //输出第一个学生的数据  stud2.show( );            //输出第二个学生的数据  return 0;}Ch11-6#include <iostream>#include <string>using namespace std;class Student                              //声明基类 {public:                                  //公用部分   Student(int n,string nam)              //基类构造函数    {num=n;     name=nam;    }   void display()                           //输出基类数据成员    {cout<<"num:"<<num<<endl<<"name:"<<name<<endl;}  protected:                                //保护部分    int num;    string name;};class Student1: public Student              //用public继承方式声明派生类student {public:   Student1(int n,string nam,int n1,string nam1,int a,string ad)      :Student(n,nam),monitor(n1,nam1)               //派生类构造函数    {age=a;                                 //在此处只对派生类新增的数据成员初始化     addr=ad;    }   void show( )    {cout<<"This student is:"<<endl;     display();                               //输出num和name     cout<<"age: "<<age<<endl;     cout<<"address: "<<addr<<endl<<endl;    }       void show_monitor()                        //输出子对象的数据成员    {cout<<endl<<"Class monitor is:"<<endl;     monitor.display();                       //调用基类成员函数    }   private:                                //派生类的私有数据    Student monitor;                       //定义子对象(班长)    int age;    string addr;                  }; int main( ) {Student1 stud1(10010,"Wang-li",10001,"Li-sun",19,"115 Beijing Road,Shanghai");  stud1.show( );                             //输出第一个学生的数据  stud1.show_monitor();                       //输出子对象的数据  return 0; }Ch11-7#include <iostream>#include<string>using namespace std;class Student                              //声明基类 {public:                                  //公用部分   Student(int n, string nam )            //基类构造函数    {num=n;     name=nam;    }   void display()                           //输出基类数据成员    {cout<<"num:"<<num<<endl;     cout<<"name:"<<name<<endl;    }  protected:                                //保护部分    int num;                                //基类有两个数据成员    string name;};class Student1: public Student               //声明公用派生类Student1 {public:   Student1(int n,char nam[10],int a):Student(n,nam)        //派生类构造函数    {age=a; }                         //在此处只对派生类新增的数据成员初始化   void show( )                               //输出num,name和age     {display();                               //输出num和name     cout<<"age: "<<age<<endl;    }   private:                                   //派生类的私有数据    int age;                                  //增加一个数据成员  };class Student2:public Student1               //声明间接公用派生类student2 {public:   //下面是间接派生类构造函数   Student2(int n, string nam,int a,int s):Student1(n,nam,a)    {score=s;}   void show_all()                              //输出全部数据成员    {show();                                    //输出num和name      cout<<"score:"<<score<<endl;               //输出age    }  private:   int score;                                   //增加一个数据成员 }; int main( ) {Student2 stud(10010,"Li",17,89);  stud.show_all( );                            //输出学生的全部数据return 0; }Ch11-8#include <iostream>#include <string>using namespace std;class Teacher                              //声明Teacher(教师)类 {public:                                  //公用部分   Teacher(string nam,int a,string t)      //构造函数    {name=nam;     age=a;     title=t;}   void display()                          //输出教师有关数据     {cout<<"name:"<<name<<endl;      cout<<"age"<<age<<endl;      cout<<"title:"<<title<<endl;     }  protected:                               //保护部分    string name;    int age;    string title;                          //职称};class Student                              //声明类Student(学生) {public:   Student(string nam,char s,float sco)     {name1=nam;      sex=s;      score=sco;}                         //构造函数   void display1()                        //输出学生有关数据    {cout<<"name:"<<name1<<endl;     cout<<"sex:"<<sex<<endl;     cout<<"score:"<<score<<endl;    }  protected:                               //保护部分   string name1;   char sex;   float score;                            //成绩 };class Graduate:public Teacher,public Student   //声明多重继承的派生类Graduate {public:   Graduate(string nam,int a,char s,string t,float sco,float w):        Teacher(nam,a,t),Student(nam,s,sco),wage(w) {}   void show( )                                 //输出人员的有关数据    {cout<<"name:"<<name<<endl;     cout<<"age:"<<age<<endl;     cout<<"sex:"<<sex<<endl;     cout<<"score:"<<score<<endl;     cout<<"title:"<<title<<endl;     cout<<"wages:"<<wage<<endl;     }  private:    float wage;                     //工资 }; int main( ) {Graduate grad1("Wang-li",24,'f',"assistant",89.5,1234.5);  grad1.show( );  return 0;}Ch11-9#include <iostream>#include <string>using namespace std;//定义公共基类Personclass Person                              {public:  Person(char *nam,char s,int a)            //构造函数        {strcpy(name,nam);sex=s;age=a;} protected:                                 //保护成员   char name[20];   char sex;   int age;};//定义类Teacherclass Teacher:virtual public Person                //声明Person为公用继承的虚基类 {public:                                    Teacher(char *nam,char s,int a,char *t):Person(nam,s,a)       //构造函数    {strcpy(title,t);     }  protected:                                       //保护成员    char title[10];                                //职称};//定义类Studentclass Student:virtual public Person               //声明Person为公用继承的虚基类 {public:   Student(char *nam,char s,int a,float sco):    //构造函数      Person(nam,s,a),score(sco){}               //初始化表  protected:                                     //保护成员    float score;                                 //成绩 };//定义多重继承的派生类Graduateclass Graduate:public Teacher,public Student     //声明Teacher和Student类为公用继承的直接基类 {public:   Graduate(char *nam,char s,int a,char *t,float sco,float w):                  //构造函数       Person(nam,s,a),Teacher(nam,s,a,t),Student(nam,s,a,sco),wage(w){}       //初始化表    void show( )                                 //输出研究生的有关数据    {cout<<"name:"<<name<<endl;     cout<<"age:"<<age<<endl;     cout<<"sex:"<<sex<<endl;     cout<<"score:"<<score<<endl;     cout<<"title:"<<title<<endl;     cout<<"wages:"<<wage<<endl;     }  private:    float wage;                     //工资 }; int main( ) {Graduate grad1("Wang-li",'f',24,"assistant",89.5,1234.5);  grad1.show( );  return 0;}第十二章Ch12-1-1(vc)#include <iostream.h>//using namespace std;//声明类Pointclass Point{public:  Point(float=0,float=0);  void setPoint(float,float);  float getX() const {return x;}  float getY() const {return y;}  friend ostream & operator<<(ostream &,const Point &);protected:  float x,y;};//定义Point类的成员函数//Point的构造函数Point::Point(float a,float b){x=a;y=b;}//设置x和y的坐标值void Point::setPoint(float a,float b){x=a;y=b;}//输出点的坐标ostream & operator<<(ostream &output,const Point &p){output<<"["<<p.x<<","<<p.y<<"]"<<endl; return output;}int main(){Point p(3.5,6.4); cout<<"x="<<p.getX()<<",y="<<p.getY()<<endl; p.setPoint(8.5,6.8); cout<<"p(new):"<<p<<endl; return 0;}Ch12-1-1#include <iostream>using namespace std;//声明类Pointclass Point{public:  Point(float=0,float=0);  void setPoint(float,float);  float getX() const {return x;}  float getY() const {return y;}  friend ostream & operator<<(ostream &,const Point &);protected:  float x,y;};//定义Point类的成员函数//Point的构造函数Point::Point(float a,float b){x=a;y=b;}//设置x和y的坐标值void Point::setPoint(float a,float b){x=a;y=b;}//输出点的坐标ostream & operator<<(ostream &output,const Point &p){output<<"["<<p.x<<","<<p.y<<"]"<<endl; return output;}int main(){Point p(3.5,6.4); cout<<"x="<<p.getX()<<",y="<<p.getY()<<endl; p.setPoint(8.5,6.8); cout<<"p(new):"<<p<<endl; return 0;}Ch12-1-2(vc)#include <iostream.h>//using namespace std;//声明类Pointclass Point{public:  Point(float=0,float=0);  void setPoint(float,float);  float getX() const {return x;}  float getY() const {return y;}  friend ostream & operator<<(ostream &,const Point &);protected:  float x,y;};//定义Point类的成员函数//Point的构造函数Point::Point(float a,float b){x=a;y=b;}//设置x和y的坐标值void Point::setPoint(float a,float b){x=a;y=b;}//输出点的坐标ostream & operator<<(ostream &output,const Point &p){output<<"["<<p.x<<","<<p.y<<"]"<<endl; return output;}class Circle:public Point{public:  Circle(float x=0,float y=0,float r=0);  void setRadius(float);  float getRadius() const;  float area () const;  friend ostream &operator<<(ostream &,const Circle &); private:  float radius;};Circle::Circle(float a,float b,float r):Point(a,b),radius(r){}void Circle::setRadius(float r){radius=r;}float Circle::getRadius() const {return radius;}float Circle::area() const{return 3.14159*radius*radius;}ostream &operator<<(ostream &output,const Circle &c){output<<"Center=["<<c.x<<","<<c.y<<"], Radius="<<c.radius<<", area="<<c.area()<<endl; return output;}int main(){Circle c(3.5,6.4,5.2); cout<<"original circle:\nx="<<c.getX()<<", y="<<c.getY()<<", r="<<c.getRadius()     <<", area="<<c.area()<<endl; c.setRadius(7.5); c.setPoint(5,5); cout<<"new circle:\n"<<c; Point &pRef=c; cout<<"pRef:"<<pRef; return 0;}Ch12-1-2#include <iostream>using namespace std;//声明类Pointclass Point{public:  Point(float=0,float=0);  void setPoint(float,float);  float getX() const {return x;}  float getY() const {return y;}  friend ostream & operator<<(ostream &,const Point &);protected:  float x,y;};//定义Point类的成员函数//Point的构造函数Point::Point(float a,float b){x=a;y=b;}//设置x和y的坐标值void Point::setPoint(float a,float b){x=a;y=b;}//输出点的坐标ostream & operator<<(ostream &output,const Point &p){output<<"["<<p.x<<","<<p.y<<"]"<<endl; return output;}class Circle:public Point{public:  Circle(float x=0,float y=0,float r=0);  void setRadius(float);  float getRadius() const;  float area () const;  friend ostream &operator<<(ostream &,const Circle &); private:  float radius;};Circle::Circle(float a,float b,float r):Point(a,b),radius(r){}void Circle::setRadius(float r){radius=r;}float Circle::getRadius() const {return radius;}float Circle::area() const{return 3.14159*radius*radius;}ostream &operator<<(ostream &output,const Circle &c){output<<"Center=["<<c.x<<","<<c.y<<"], Radius="<<c.radius<<", area="<<c.area()<<endl; return output;}int main(){Circle c(3.5,6.4,5.2); cout<<"original circle:\nx="<<c.getX()<<", y="<<c.getY()<<", r="<<c.getRadius()     <<", area="<<c.area()<<endl; c.setRadius(7.5); c.setPoint(5,5); cout<<"new circle:\n"<<c; Point &pRef=c; cout<<"pRef:"<<pRef; return 0;}Ch12-1-3(vc)#include <iostream.h>class Point{public:  Point(float=0,float=0);  void setPoint(float,float);  float getX() const {return x;}  float getY() const {return y;}  friend ostream & operator<<(ostream &,const Point &);protected:  float x,y;};Point::Point(float a,float b){x=a;y=b;}void Point::setPoint(float a,float b){x=a;y=b;}ostream & operator<<(ostream &output,const Point &p){output<<"["<<p.x<<","<<p.y<<"]"<<endl; return output;}class Circle:public Point{public:  Circle(float x=0,float y=0,float r=0);  void setRadius(float);  float getRadius() const;  float area () const;  friend ostream &operator<<(ostream &,const Circle &); protected:  float radius;};Circle::Circle(float a,float b,float r):Point(a,b),radius(r){}void Circle::setRadius(float r){radius=r;}float Circle::getRadius() const {return radius;}float Circle::area() const{return 3.14159*radius*radius;}ostream &operator<<(ostream &output,const Circle &c){output<<"Center=["<<c.x<<","<<c.y<<"], r="<<c.radius<<", area="<<c.area()<<endl; return output;}class Cylinder:public Circle{public:  Cylinder (float x=0,float y=0,float r=0,float h=0);  void setHeight(float);  float getHeight() const;  float area() const;  float volume() const;  friend ostream& operator<<(ostream&,const Cylinder&); protected:  float height;};Cylinder::Cylinder(float a,float b,float r,float h)    :Circle(a,b,r),height(h){}void Cylinder::setHeight(float h){height=h;}float Cylinder::getHeight() const {return height;}float Cylinder::area() const{ return 2*Circle::area()+2*3.14159*radius*height;}float Cylinder::volume() const{return Circle::area()*height;}ostream &operator<<(ostream &output,const Cylinder& cy){output<<"Center=["<<cy.x<<","<<cy.y<<"], r="<<cy.radius<<", h="<<cy.height       <<"\narea="<<cy.area()<<", volume="<<cy.volume()<<endl; return output;}int main(){Cylinder cy1(3.5,6.4,5.2,10); cout<<"\noriginal cylinder:\nx="<<cy1.getX()<<", y="<<cy1.getY()<<", r="     <<cy1.getRadius()<<", h="<<cy1.getHeight()<<"\narea="<<cy1.area()     <<", volume="<<cy1.volume()<<endl; cy1.setHeight(15); cy1.setRadius(7.5); cy1.setPoint(5,5); cout<<"\nnew cylinder:\n"<<cy1; Point &pRef=cy1; cout<<"\npRef as a point:"<<pRef; Circle &cRef=cy1; cout<<"\ncRef as a Circle:"<<cRef; return 0;}Ch12-1-3#include <iostream>using namespace std;class Point{public:  Point(float=0,float=0);  void setPoint(float,float);  float getX() const {return x;}  float getY() const {return y;}  friend ostream & operator<<(ostream &,const Point &);protected:  float x,y;};Point::Point(float a,float b){x=a;y=b;}void Point::setPoint(float a,float b){x=a;y=b;}ostream & operator<<(ostream &output,const Point &p){output<<"["<<p.x<<","<<p.y<<"]"<<endl; return output;}class Circle:public Point{public:  Circle(float x=0,float y=0,float r=0);  void setRadius(float);  float getRadius() const;  float area () const;  friend ostream &operator<<(ostream &,const Circle &); protected:  float radius;};Circle::Circle(float a,float b,float r):Point(a,b),radius(r){}void Circle::setRadius(float r){radius=r;}float Circle::getRadius() const {return radius;}float Circle::area() const{return 3.14159*radius*radius;}ostream &operator<<(ostream &output,const Circle &c){output<<"Center=["<<c.x<<","<<c.y<<"], r="<<c.radius<<", area="<<c.area()<<endl; return output;}class Cylinder:public Circle{public:  Cylinder (float x=0,float y=0,float r=0,float h=0);  void setHeight(float);  float getHeight() const;  float area() const;  float volume() const;  friend ostream& operator<<(ostream&,const Cylinder&); protected:  float height;};Cylinder::Cylinder(float a,float b,float r,float h)    :Circle(a,b,r),height(h){}void Cylinder::setHeight(float h){height=h;}float Cylinder::getHeight() const {return height;}float Cylinder::area() const{ return 2*Circle::area()+2*3.14159*radius*height;}float Cylinder::volume() const{return Circle::area()*height;}ostream &operator<<(ostream &output,const Cylinder& cy){output<<"Center=["<<cy.x<<","<<cy.y<<"], r="<<cy.radius<<", h="<<cy.height       <<"\narea="<<cy.area()<<", volume="<<cy.volume()<<endl; return output;}int main(){Cylinder cy1(3.5,6.4,5.2,10); cout<<"\noriginal cylinder:\nx="<<cy1.getX()<<", y="<<cy1.getY()<<", r="     <<cy1.getRadius()<<", h="<<cy1.getHeight()<<"\narea="<<cy1.area()     <<", volume="<<cy1.volume()<<endl; cy1.setHeight(15); cy1.setRadius(7.5); cy1.setPoint(5,5); cout<<"\nnew cylinder:\n"<<cy1; Point &pRef=cy1; cout<<"\npRef as a point:"<<pRef; Circle &cRef=cy1; cout<<"\ncRef as a Circle:"<<cRef; return 0;}Ch12-2#include <iostream>#include <string>using namespace std;class Student {public:   Student(int,string,float);   void display();  protected:   int num;   string name;   float score; };Student::Student(int n,string nam,float s) {num=n;name=nam;score=s;}void Student::display() {cout<<"num:"<<num<<"\nname:"<<name<<"\nscore:"<<score<<"\n\n";} class Graduate:public Student {public:   Graduate(int,string,float,float);   void display();  private:   float pay;};void Graduate::display() {cout<<"num:"<<num<<"\nname:"<<name<<"\nscore:"<<score<<"\npay="<<pay<<endl;}Graduate::Graduate(int n,string nam,float s,float p):Student(n,nam,s),pay(p){}int main() {Student stud1(1001,"Li",87.5);  Graduate grad1(2001,"Wang",98.5,563.5);  Student *pt=&stud1;  pt->display();  pt=&grad1;  pt->display();  return 0; }Ch12-2-2#include <iostream>#include <string>using namespace std;class Student {public:   Student(int,string,float);   virtual void display();  protected:   int num;   string name;   float score; };Student::Student(int n,string nam,float s) {num=n;name=nam;score=s;}void Student::display() {cout<<"num:"<<num<<"\nname:"<<name<<"\nscore:"<<score<<"\n\n";} class Graduate:public Student {public:   Graduate(int,string,float,float);   void display(); private:  float pay;};void Graduate::display() {cout<<"num:"<<num<<"\nname:"<<name<<"\nscore:"<<score<<"\npay="<<pay<<endl;}Graduate::Graduate(int n,string nam,float s,float p):Student(n,nam,s),pay(p){}int main() {Student stud1(1001,"Li",87.5);  Graduate grad1(2001,"Wang",98.5,1200);  Student *pt=&stud1;  pt->display();  pt=&grad1;  pt->display();  return 0; }Ch12-3#include <iostream>using namespace std;class Point{public:  Point(){}  ~Point(){cout<<"executing Point destructor"<<endl;}};class Circle:public Point{public:  Circle(){}  ~Circle(){cout<<"executing Circle destructor"<<endl;} private:  int radus;};int main(){Point *p=new Circle; delete p; return 0;}Ch12-3-2#include <iostream>using namespace std;class Point{public:  Point(){}  virtual ~Point(){cout<<"executing Point destructor"<<endl;}};class Circle:public Point{public:  Circle(){}  ~Circle(){cout<<"executing Circle destructor"<<endl;} private:  int radus;};void main(){Point *p=new Circle; delete p;}Ch12-4(vc)#include <iostream.h>//声明抽象基类Shapeclass Shape{public: virtual float area() const {return 0.0;}        //虚函数 virtual float volume() const {return 0.0;}      //虚函数 virtual void shapeName() const =0;              //纯虚函数};//声明Point类class Point:public Shape                         //Point是Shape的公用派生类{public:  Point(float=0,float=0);  void setPoint(float,float);  float getX() const {return x;}  float getY() const {return y;}  virtual void shapeName() const {cout<<"Point:";}  //对纯虚函数进行定义  friend ostream & operator<<(ostream &,const Point &);protected:  float x,y;};Point::Point(float a,float b){x=a;y=b;}void Point::setPoint(float a,float b){x=a;y=b;}ostream & operator<<(ostream &output,const Point &p){output<<"["<<p.x<<","<<p.y<<"]"; return output;}//声明Circle类class Circle:public Point{public:  Circle(float x=0,float y=0,float r=0);  void setRadius(float);  float getRadius() const;  virtual float area() const;  virtual void shapeName() const {cout<<"Circle:";}         //对纯虚函数进行再定义  friend ostream &operator<<(ostream &,const Circle &); protected:  float radius;};Circle::Circle(float a,float b,float r):Point(a,b),radius(r){}void Circle::setRadius(float r){radius=r;}float Circle::getRadius() const {return radius;}float Circle::area() const{return 3.14159*radius*radius;}ostream &operator<<(ostream &output,const Circle &c){output<<"["<<c.x<<","<<c.y<<"], r="<<c.radius; return output;}//声明Cylinder类class Cylinder:public Circle{public:  Cylinder (float x=0,float y=0,float r=0,float h=0);  void setHeight(float);  float getHeight() const;  virtual float area() const;  virtual float volume() const;  virtual void shapeName() const {cout<<"Cylinder:";}         //对纯虚函数进行再定义  friend ostream& operator<<(ostream&,const Cylinder&); protected:  float height;};Cylinder::Cylinder(float a,float b,float r,float h)    :Circle(a,b,r),height(h){}void Cylinder::setHeight(float h){height=h;}float Cylinder::getHeight() const {return height;}float Cylinder::area() const{ return 2*Circle::area()+2*3.14159*radius*height;}float Cylinder::volume() const{return Circle::area()*height;}ostream &operator<<(ostream &output,const Cylinder& cy){output<<"["<<cy.x<<","<<cy.y<<"], r="<<cy.radius<<", h="<<cy.height; return output;}int main(){Point point(3.2,4.5);                           //建立Point类对象point Circle circle(2.4,12,5.6);                      //建立Circle类对象circle Cylinder cylinder(3.5,6.4,5.2,10.5);            //建立Cylinder类对象cylinder point.shapeName();                              //静态关联 cout<<point<<endl;  circle.shapeName();                             //静态关联 cout<<circle<<endl; cylinder.shapeName();                           //静态关联 cout<<cylinder<<endl<<endl; Shape *pt;                                      //定义基类指针 pt=&point;                                      //指针指向Point类对象 pt->shapeName();                                //动态关联 cout<<"x="<<point.getX()<<",y="<<point.getY()<<"\narea="<<pt->area()     <<"\nvolume="<<pt->volume()<<"\n\n"; pt=&circle;                                     //指针指向Circle类对象 pt->shapeName();                                //动态关联 cout<<"x="<<circle.getX()<<",y="<<circle.getY()<<"\narea="<<pt->area()     <<"\nvolume="<<pt->volume()<<"\n\n"; pt=&cylinder;                                   //指针指向Cylinder类对象 pt->shapeName();                                //动态关联 cout<<"x="<<cylinder.getX()<<",y="<<cylinder.getY()<<"\narea="<<pt->area()     <<"\nvolume="<<pt->volume()<<"\n\n"; return 0;}Ch12-4#include <iostream>using namespace std;//声明抽象基类Shapeclass Shape{public: virtual float area() const {return 0.0;}        //虚函数 virtual float volume() const {return 0.0;}      //虚函数 virtual void shapeName() const =0;              //纯虚函数};//声明Point类class Point:public Shape                         //Point是Shape的公用派生类{public:  Point(float=0,float=0);  void setPoint(float,float);  float getX() const {return x;}  float getY() const {return y;}  virtual void shapeName() const {cout<<"Point:";}  //对纯虚函数进行定义  friend ostream & operator<<(ostream &,const Point &);protected:  float x,y;};Point::Point(float a,float b){x=a;y=b;}void Point::setPoint(float a,float b){x=a;y=b;}ostream & operator<<(ostream &output,const Point &p){output<<"["<<p.x<<","<<p.y<<"]"; return output;}//声明Circle类class Circle:public Point{public:  Circle(float x=0,float y=0,float r=0);  void setRadius(float);  float getRadius() const;  virtual float area() const;  virtual void shapeName() const {cout<<"Circle:";}         //对纯虚函数进行再定义  friend ostream &operator<<(ostream &,const Circle &); protected:  float radius;};Circle::Circle(float a,float b,float r):Point(a,b),radius(r){}void Circle::setRadius(float r){radius=r;}float Circle::getRadius() const {return radius;}float Circle::area() const{return 3.14159*radius*radius;}ostream &operator<<(ostream &output,const Circle &c){output<<"["<<c.x<<","<<c.y<<"], r="<<c.radius; return output;}//声明Cylinder类class Cylinder:public Circle{public:  Cylinder (float x=0,float y=0,float r=0,float h=0);  void setHeight(float);  float getHeight() const;  virtual float area() const;  virtual float volume() const;  virtual void shapeName() const {cout<<"Cylinder:";}         //对纯虚函数进行再定义  friend ostream& operator<<(ostream&,const Cylinder&); protected:  float height;};Cylinder::Cylinder(float a,float b,float r,float h)    :Circle(a,b,r),height(h){}void Cylinder::setHeight(float h){height=h;}float Cylinder::getHeight() const {return height;}float Cylinder::area() const{ return 2*Circle::area()+2*3.14159*radius*height;}float Cylinder::volume() const{return Circle::area()*height;}ostream &operator<<(ostream &output,const Cylinder& cy){output<<"["<<cy.x<<","<<cy.y<<"], r="<<cy.radius<<", h="<<cy.height; return output;}int main(){Point point(3.2,4.5);                           //建立Point类对象point Circle circle(2.4,12,5.6);                      //建立Circle类对象circle Cylinder cylinder(3.5,6.4,5.2,10.5);            //建立Cylinder类对象cylinder point.shapeName();                              //静态关联 cout<<point<<endl;  circle.shapeName();                             //静态关联 cout<<circle<<endl; cylinder.shapeName();                           //静态关联 cout<<cylinder<<endl<<endl; Shape *pt;                                      //定义基类指针 pt=&point;                                      //指针指向Point类对象 pt->shapeName();                                //动态关联 cout<<"x="<<point.getX()<<",y="<<point.getY()<<"\narea="<<pt->area()     <<"\nvolume="<<pt->volume()<<"\n\n"; pt=&circle;                                     //指针指向Circle类对象 pt->shapeName();                                //动态关联 cout<<"x="<<circle.getX()<<",y="<<circle.getY()<<"\narea="<<pt->area()     <<"\nvolume="<<pt->volume()<<"\n\n"; pt=&cylinder;                                   //指针指向Cylinder类对象 pt->shapeName();                                //动态关联 cout<<"x="<<cylinder.getX()<<",y="<<cylinder.getY()<<"\narea="<<pt->area()     <<"\nvolume="<<pt->volume()<<"\n\n"; return 0;}第十三章Ch13-1#include <iostream>#include <math.h>using namespace std;int main(){float a,b,c,disc; cout<<"please input a,b,c:"; cin>>a>>b>>c; if (a==0)  cerr<<"a is equal to zero,error!"<<endl; else  if ((disc=b*b-4*a*c)<0)   cerr<<"disc=b*b-4*a*c<0"<<endl;  else   {cout<<"x1="<<(-b+sqrt(disc))/(2*a)<<endl;    cout<<"x2="<<(-b-sqrt(disc))/(2*a)<<endl;   } return 0;}Ch13-2#include <iostream>#include <iomanip>using namespace std;int main(){int a; cout<<"input a:"; cin>>a; cout<<"dec:"<<dec<<a<<endl; cout<<"hex:"<<hex<<a<<endl; cout<<"oct:"<<setbase(8)<<a<<endl; char *pt="China"; cout<<setw(10)<<pt<<endl; cout<<setfill('*')<<setw(10)<<pt<<endl; double pi=22.0/7.0; cout<<setiosflags(ios::scientific)<<setprecision(8); cout<<"pi="<<pi<<endl; cout<<"pi="<<setprecision(4)<<pi<<endl; cout<<"pi="<<setiosflags(ios::fixed)<<pi<<endl; return 0;}Ch13-3#include <iostream>using namespace std;int main(){int a=21; cout.setf(ios::showbase); cout<<"dec:"<<a<<endl; cout.unsetf(ios::dec); cout.setf(ios::hex); cout<<"hex:"<<a<<endl; cout.unsetf(ios::hex); cout.setf(ios::oct); cout<<"oct:"<<a<<endl; char *pt="China"; cout.width(10); cout<<pt<<endl; cout.width(10); cout.fill('*'); cout<<pt<<endl; double pi=22.0/7.0; cout.setf(ios::scientific); cout<<"pi="; cout.width(14); cout<<pi<<endl; cout.unsetf(ios::scientific); cout.setf(ios::fixed); cout.width(12); cout.setf(ios::showpos); cout.setf(ios::internal); cout.precision(6); cout<<pi<<endl; return 0;}Ch13-4#include <iostream>using namespace std;int main(){char *a="BASIC"; for(int i=4;i>=0;i--)  cout.put(*(a+i)); cout.put('\n'); return 0;}Ch13-4-2#include <iostream>int main(){char *a="BASIC"; for(int i=4;i>=0;i--)  putchar(*(a+i)); putchar('\n'); return 0;}Ch13-5#include <iostream>using namespace std;int main(){float grade; cout<<"enter grade:"; while(cin>>grade)  {if(grade>=85) cout<<grade<<" GOOD!"<<endl;   if(grade<60) cout<<grade<<" fail!"<<endl;   cout<<"enter grade:";  } cout<<"The end."<<endl; return 0;}Ch13-6#include <iostream>using namespace std;int main(){char c; cout<<"enter a sentence:"<<endl; while((c=cin.get())!=EOF)  cout.put(c); return 0;}Ch13-6-2#include <iostream>using namespace std;int main(){char c; cout<<"enter a sentence:"<<endl; while(cin.get(c))  {cout.put(c);  } cout<<"end"<<endl; return 0;}Ch13-6-3#include <iostream>using namespace std;int main(){char ch[20]; cout<<"enter a sentence:"<<endl; cin.get(ch,10,'\n'); cout<<ch<<endl; return 0;}Ch13-7#include <iostream>using namespace std;int main(){char ch[20]; cout<<"enter a sentence:"<<endl; cin>>ch; cout<<"The string read with cin is:"<<ch<<endl; cin.getline(ch,20,'/'); cout<<"The second part is:"<<ch<<endl; cin.getline(ch,20); cout<<"The third part is:"<<ch<<endl; return 0;}Ch13-8#include <iostream>using namespace std;int main(){char c; while(!cin.eof())  if((c=cin.get())!=' ')     cout.put(c); return 0;}Ch13-9#include <iostream>using namespace std;int main(){char c[20]; int ch; cout<<"please enter a sentence."<<endl; cin.getline(c,15,'/'); cout<<"The first part is:"<<c<<endl; ch=cin.peek(); cout<<"The next character(ASCII code) is:"<<ch<<endl; cin.putback(c[0]); cin.getline(c,15,'/'); cout<<"The second part is:"<<c<<endl; return 0;}Ch13-10#include <iostream>using namespace std;int main(){char ch[20]; cin.get(ch,20,'/'); cout<<"The first part is:"<<ch<<endl; cin.get(ch,20,'/'); cout<<"The second part is:"<<ch<<endl; return 0;}Ch13-10-2#include <iostream>using namespace std;int main(){char ch[20]; cin.get(ch,20,'/'); cout<<"The first part is:"<<ch<<endl; cin.ignore(); cin.get(ch,20,'/'); cout<<"The second part is:"<<ch<<endl; return 0;}Ch13-11#include <fstream>using namespace std;int main(){int a[10]; ofstream outfile("f1.dat"); if(!outfile)  {cerr<<"open error!"<<endl;   exit(1);  } cout<<"enter 10 integer numbers:"<<endl; for(int i=0;i<10;i++)  {cin>>a[i];   outfile<<a[i]<<" ";} outfile.close(); return 0;}Ch13-12#include <fstream>using namespace std;int main(){int a[10],max,i,order; ifstream infile("f1.dat",ios::in);  if(!infile)  {cerr<<"open error!"<<endl;   exit(1);  } for(i=0;i<10;i++)   {infile>>a[i];    cout<<a[i]<<" ";} cout<<endl; max=a[0]; order=0; for(i=1;i<10;i++)   if(a[i]>max)     {max=a[i];      order=i;     } cout<<"max="<<max<<endl<<"order="<<order<<endl; infile.close(); return 0;}Ch13-13#include <fstream>using namespace std;void save_to_file(){ofstream outfile("f2.dat"); if(!outfile)  {cerr<<"open f2.dat error!"<<endl;   exit(1);  } char c[80]; cin.getline(c,80); for(int i=0;c[i];i++)  if(c[i]>=65 && c[i]<=90||c[i]>=97 && c[i]<=122)    {outfile.put(c[i]);     cout<<c[i];} cout<<endl; outfile.close();}void get_from_file(){char ch; ifstream infile("f2.dat",ios::in); if(!infile)  {cerr<<"open f2.dat error!"<<endl;   exit(1);  } ofstream outfile("f3.dat"); if(!outfile)  {cerr<<"open f3.dat error!"<<endl;   exit(1);  } while(infile.get(ch))  {if(ch>=97 && ch<=122)     ch=ch-32;   outfile.put(ch);   cout<<ch;  } cout<<endl; infile.close(); outfile.close();}int main(){save_to_file(); get_from_file(); return 0;}Ch13-13-2#include <fstream>using namespace std;void display_file(char *filename){ifstream infile(filename,ios::in); if(!infile)  {cerr<<"open error!"<<endl;   exit(1);} char ch; while(infile.get(ch))   cout.put(ch); cout<<endl; infile.close();}int main(){display_file("f3.dat"); return 0;}Ch13-14#include <fstream>using namespace std;struct student{char name[20]; int num; int age; char sex;};int main(){student stud[3]={"Li",1001,18,'f',"Fun",1002,19,'m',"Wang",1004,17,'f'}; ofstream outfile("stud.dat",ios::binary); if(!outfile)  {cerr<<"open error!"<<endl;   abort();  } for(int i=0;i<3;i++)   outfile.write((char *)&stud[i],sizeof(stud[i]));  outfile.close(); return 0;}Ch13-14-2#include <fstream>using namespace std;struct student{char name[20]; int num; int age; char sex;};int main(){student stud[3]={"Li",1001,18,'f',"Fun",1002,19,'m',"Wang",1004,17,'f'}; ofstream outfile("stud.dat",ios::binary); if(!outfile)  {cerr<<"open error!"<<endl;   abort();  }  outfile.write((char *)&stud[0],sizeof(stud));  outfile.close();  return 0;}Ch13-15#include <fstream>using namespace std;struct student{char name[20]; int num; int age; char sex; };int main(){student stud[3]; int i; ifstream infile("stud.dat",ios::binary); if(!infile)  {cerr<<"open error!"<<endl;   abort();  }  for(i=0;i<3;i++)   infile.read((char*)&stud[i],sizeof(stud[i]));  infile.close();  for(i=0;i<3;i++)   {cout<<"NO."<<i+1<<endl;    cout<<"name:"<<stud[i].name<<endl;    cout<<"num:"<<stud[i].num<<endl;;    cout<<"age:"<<stud[i].age<<endl;    cout<<"sex:"<<stud[i].sex<<endl<<endl;   }   return 0;  }Ch13-16#include <fstream>using namespace std;struct student{int num; char name[20]; float score;};int main(){int i; student stud[5]={1001,"Li",85,1002,"Fun",97.5,1004,"Wang",54,                  1006,"Tan",76.5,1010,"ling",96}; fstream iofile("stud.dat",ios::in|ios::out|ios::binary); if(!iofile)  {cerr<<"open error!"<<endl;   abort();  } for(i=0;i<5;i++)   iofile.write((char *)&stud[i],sizeof(stud[i])); student stud1[5]; for(i=0;i<5;i=i+2)   {iofile.seekg(i*sizeof(stud[i]),ios::beg);    iofile.read((char *)&stud1[i/2],sizeof(stud1[i]));    cout<<stud1[i/2].num<<" "<<stud1[i/2].name<<" "<<stud1[i/2].score<<endl;   } cout<<endl; stud[2].num=1012; strcpy(stud[2].name,"Wu"); stud[2].score=60; iofile.seekp(2*sizeof(stud[0]),ios::beg); iofile.write((char *)&stud[2],sizeof(stud[2])); iofile.seekg(0,ios::beg); for(i=0;i<5;i++)   {iofile.read((char *)&stud[i],sizeof(stud[i]));    cout<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].score<<endl;   } iofile.close(); return 0;}Ch13-17#include <strstream>#include <iostream>using namespace std;struct student{int num; char name[20]; float score;};int main(){student stud[3]={1001,"Li",78,1002,"Wang",89.5,1004,"Fun",90}; char c[50]; ostrstream strout(c,30); for(int i=0;i<3;i++)  strout<<stud[i].num<<stud[i].name<<stud[i].score; strout<<ends; cout<<"array c:"<<endl<<c<<endl; return 0;}Ch13-18#include <strstream>#include <iostream>using namespace std;int main(){char c[50]="12 34 65 -23 -32 33 61 99 321 32"; int a[10],i,j,t; cout<<"array c:"<<c<<endl; istrstream strin(c,sizeof(c)); for(i=0;i<10;i++)  strin>>a[i]; cout<<"array a:"; for(i=0;i<10;i++)   cout<<a[i]<<" "; cout<<endl; for(i=0;i<9;i++)   for(j=0;j<9-i;j++)      if(a[j]>a[j+1])        {t=a[j];a[j]=a[j+1];a[j+1]=t;} ostrstream strout(c,sizeof(c)); for(i=0;i<10;i++)   strout<<a[i]<<" "; strout<<ends; cout<<"array c:"<<c<<endl; return 0;}第十四章Ch14-1-1#include <iostream>#include <cmath>using namespace std;int main(){double triangle(double,double,double); double a,b,c; cin>>a>>b>>c;   while(a>0 && b>0 && c>0)    {cout<<triangle(a,b,c)<<endl;     cin>>a>>b>>c;    } return 0;}  double triangle(double a,double b,double c){double area; double s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); return area; }Ch14-1-2#include <iostream>#include <cmath>using namespace std;int main(){double triangle(double,double,double); double a,b,c; cin>>a>>b>>c; try  {while(a>0 && b>0 && c>0)    {cout<<triangle(a,b,c)<<endl;     cin>>a>>b>>c;}  } catch(double)  {cout<<"a="<<a<<",b="<<b<<",c="<<c<<",that is not a traingle!"<<endl;} cout<<"end"<<endl; return 0;}  double triangle(double a,double b,double c){double s=(a+b+c)/2; if (a+b<=c||b+c<=a||c+a<=b) throw a; return sqrt(s*(s-a)*(s-b)*(s-c));}Ch14-2-1#include <iostream>using namespace std;int main(){void f1(); try  {f1();} catch(double)  {cout<<"OK0!"<<endl;} cout<<"end0"<<endl; return 0;}void f1(){void f2(); try  {f2();} catch(char)  {cout<<"OK1!";} cout<<"end1"<<endl;}void f2(){void f3(); try {f3();} catch(int) {cout<<"Ok2!"<<endl;} cout<<"end2"<<endl;}void f3(){double a=0; try  {throw a;} catch(float)  {cout<<"OK3!"<<endl;} cout<<"end3"<<endl;}Ch14-2-2#include <iostream>using namespace std;int main(){void f1(); try  {f1();} catch(double)  {cout<<"OK0!"<<endl;} cout<<"end0"<<endl; return 0;}void f1(){void f2(); try  {f2();} catch(char)  {cout<<"OK1!";} cout<<"end1"<<endl;}void f2(){void f3(); try {f3();} catch(int) {cout<<"Ok2!"<<endl;} cout<<"end2"<<endl;}void f3(){double a=0; try  {throw a;} catch(double)  {cout<<"OK3!"<<endl;} cout<<"end3"<<endl;}Ch14-2-3#include <iostream>using namespace std;int main(){void f1(); try  {f1();} catch(double)  {cout<<"OK0!"<<endl;} cout<<"end0"<<endl; return 0;}void f1(){void f2(); try  {f2();} catch(char)  {cout<<"OK1!";} cout<<"end1"<<endl;}void f2(){void f3(); try {f3();} catch(int) {cout<<"Ok2!"<<endl;} cout<<"end2"<<endl;}void f3(){double a=0; try  {throw a;} catch(double)  {cout<<"OK3!"<<endl;throw;} cout<<"end3"<<endl;}Ch14-3#include <iostream>#include <string>using namespace std;class Student {public:   Student(int n,string nam)    {cout<<"construtot-"<<n<<endl;     num=n;name=nam;}   ~Student(){cout<<"destructor-"<<num<<endl;}   void get_data();  private:   int num;   string name; };void Student::get_data() {if(num==0) throw num;  else cout<<num<<" "<<name<<endl;  cout<<"in get_data()"<<endl; }void fun(){Student stud1(1101,"tan"); stud1.get_data(); Student stud2(0,"Li"); stud2.get_data();}int main(){cout<<"main begin"<<endl; cout<<"call fun()"<<endl; try  {fun();} catch(int n)  {cout<<"num="<<n<<",error!"<<endl;} cout<<"main end"<<endl; return 0;}Ch14-4-1#include <iostream>using namespace std;#include "header1.h"int main() {Student stud1(101,"Wang",18);  stud1.get_data();  cout<<fun(5,3)<<endl;  return 0; }Ch14-4-2#include <iostream>using namespace std;#include "header1.h"#include "header2.h"int main() {Student stud1(101,"Wang",18);  stud1.get_data();  cout<<fun(5,3)<<endl;  return 0; }Ch14-5//main file#include <iostream>#include "header11.h"#include "header22.h"int main() {Ns1::Student stud1(101,"Wang",18);  stud1.get_data();  cout<<Ns1::fun(5,3)<<endl;  Ns2::Student stud2(102,"Li",'f');  stud2.get_data();  cout<<Ns2::fun(5,3)<<endl;  return 0; }