C++经典程序代码大全
来源:互联网 发布:中兴网络机顶盒遥控器 编辑:程序博客网 时间:2024/05/16 15:56
//根据半径计算圆的周长和面积#include <iostream.h>const float PI=3.1416; //声明常量(只读变量)PI为3.1416float fCir_L(float); //声明自定义函数fCir_L()的原型 float fCir_S(float); //声明自定义函数fCir_S()的原型 //以下是main()函数 main() { float r,l,s; //声明3个变量 cout<<"r="; //显示字符串 cin>>r; //键盘输入 l=fCir_L(r); //计算圆的周长,赋值给变量l s=fCir_S(r); //计算圆的面积,赋值给变量s cout<<"l="<<l; //显示计算结果 cout<<"\ns="<<s; } //定义计算圆的周长的函数fCir_L()float fCir_L(float x){ float z=-1.0; //声明局部变量 if (x>=0.0) //如果参数大于0,则计算圆的周长 z=2*PI*x; return(z); //返回函数值 } //定义计算圆的面积的函数fCir_S()float fCir_S(float x){ float z=-1.0; //声明局部变量 if (x>=0.0) //如果参数大于0,则计算圆的面积 z=PI*x*x; return(z); //返回函数值 }/* Program: P1-2.CPP Written by: Hap Date written: 02:11:10*/#include <iostream.h>void main(void){ double s1,s2,s3; s1=1.5; /* 对变量s1赋值*/ cout<<"s1="<<s1<<endl; /* 对变量s2赋值*/ s2=2.5; cout<<"s2="<<s2<<endl; s3= /* 对变量s3赋值*/ 3.5; cout<<"s3="<<s3<<endl; cout<<"s1+s2+s3="<<s1+s2+s3<<endl; //计算并显示 //计算并显示 cout<<"s1+s2+s3="<<s1+s2+s3<<endl; }#include <iostream.h>main(){ double r=1.0; cout<<"r="<<r<<endl; double l; l=2*3.1416*r; //计算圆的周长,赋值给变量l cout<<"l="<<l<<endl; //显示圆的周长 double s=3.1416*r*r; //计算圆的面积,赋值给变量s cout<<"s="<<s<<endl; //显示圆的面积 cout<<"r="; //显示提示输入的信息 cin>>r; //键盘输入 l=2*3.1416*r; //计算圆的周长,赋值给变量l cout<<"l="<<l<<endl; //显示圆的周长 s=3.1416*r*r; cout<<"s="<<s<<endl; //显示圆的面积}#include <iostream.h> //包含iostream.h头文件void main(){ //输出字符常量、变量和字符串 char c1='A'; cout<<'W'; cout<<c1<<endl; cout<<"This is a test."<<endl; cout<<"------------------"<<endl; //输出整型常量、变量和表达式 int n=100; cout<<10; cout<<n; cout<<2*n<<endl; //输出整型表达式 cout<<"------------------"<<endl; //输出浮点型常量、变量和表达式 double pi=3.1415926,r=10.0,s=pi*r*r; cout<<pi<<endl; cout<<r; cout<<s; cout<<2*r*pi<<endl; //输出浮点型表达式 cout<<"------------------"<<endl; //一个cout可以输出多项数据 cout<<'W'<<" "<<c1<<endl; cout<<"This is a test."<<endl; cout<<"pi="<<pi<<" r="<<r<<" s="<<s<<endl;}#include <iostream.h> //包含iostream.h头文件main(){ //输入输出字符 char c; cin>>c; cout<<"c="<<c<<endl; //输入输出整型数据 int n; cin>>n; cout<<"n="<<n<<endl; //输入输出浮点型数据 double x; cin>>x; cout<<"x="<<x<<endl; //输入提示 cout<<"n="; cin>>n; cout<<"n="<<n<<endl; //多项输入 cout<<"c n x"<<endl; cin>>c>>n>>x; cout<<"c="<<c<<" n="<<n<<" x="<<x<<endl;}#include <iostream.h> //包含iostream.h头文件main(){ //声明整型变量 int a,b; //从键盘上为整型变量赋值 cout<<"a="; cin>>a; cout<<"b="; cin>>b; //整型数的算术运算 cout<<a<<"+"<<b<<"="<<a+b<<endl; cout<<a<<"-"<<b<<"="<<a-b<<endl; cout<<a<<"*"<<b<<"="<<a*b<<endl; cout<<a<<"/"<<b<<"="<<a/b<<endl; cout<<a<<"%"<<b<<"="<<a%b<<endl; //测试溢出 short n=32767,m; //n取short类型的最大值 cout<<"n="<<n<<endl; m=n+1; //引起溢出 cout<<"n+1="<<m<<endl;}#include <iostream.h> //包含iostream.h头文件main(){ //声明变量,并初始化 int a=010,b=10,c=0X10; //以十进制形式显示数据 cout<<"DEC:"; cout<<" a="<<a; cout<<" b="<<b; cout<<" c="<<c<<endl; //以八进制形式显示数据 cout<<"OCT:"; cout<<oct; //指定八进制输出 cout<<" a="<<a; cout<<" b="<<b; cout<<" c="<<c<<endl; //以十六进制形式显示数据 cout<<"HEX:"; cout<<hex; //指定十六进制输出 cout<<" a="<<a; cout<<" b="<<b; cout<<" c="<<c<<endl; //八、十和十六进制数混合运算并输出 cout<<"a+b+c="; cout<<dec; //恢复十进制输出 cout<<a+b+c<<endl; //测试八、十和十六进制输入 cout<<"DEC:a="; cin>>a; cout<<"OCT:b="; cin>>b; cout<<"HEX:a="; cin>>c; cout<<"DEC:"<<dec<<endl; //指定十进制输出 cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; cout<<"c="<<c<<endl;}#include <iostream.h> //包含iostream.h头文件#include<iomanip.h> // iomanip.h头文件包含setprecision()的定义main(){ //float型变量的声明、输入、计算和输出 float fx,fy; cout<<"fx="; cin>>fx; cout<<"fy="; cin>>fy; cout<<fx<<"+"<<fy<<"="<<fx+fy<<endl; cout<<fx<<"-"<<fy<<"="<<fx-fy<<endl; cout<<fx<<"*"<<fy<<"="<<fx*fy<<endl; cout<<fx<<"/"<<fy<<"="<<fx/fy<<endl<<endl; //cout<<fx<<"%"<<fy<<"="<<fx%fy<<endl; Error! //double型变量的声明、输入、计算和输出 float dx,dy; cout<<"dx="; cin>>dx; cout<<"dy="; cin>>dy; cout<<dx<<"+"<<dy<<"="<<dx+dy<<endl; cout<<dx<<"-"<<dy<<"="<<dx-dy<<endl; cout<<dx<<"*"<<dy<<"="<<dx*dy<<endl; cout<<dx<<"/"<<dy<<"="<<dx/dy<<endl<<endl; //cout<<fx<<"%"<<fy<<"="<<fx%fy<<endl; Error! //测试float和double类型数据的有效位 fx=10.0;fy=6.0; float fz=fx/fy; dx=10.0;dy=6.0; double dz=dx/dy; cout<<"fz="; cout<<setprecision(20)<<fx<<"/"<<fy<<"="<<fz<<endl; cout<<"dz="; cout<<setprecision(20)<<dx<<"/"<<dy<<"="<<dz<<endl<<endl;; //float型溢出 float x=3.5e14; cout<<"x="<<x<<endl; cout<<"x*x="<<x*x<<endl; cout<<"x*x*x="<<x*x*x<<endl;}#include <iostream.h> //包含iostream.h头文件main(){ //字符类型变量的声明 char c1='A'; char c2; //字符数据的运算及输出 c2=c1+32; cout<<"c1="<<c1<<endl; cout<<"c2="<<c2<<endl; //输出字符及ASCII码 cout<<c1<<" : "<<int(c1)<<endl; cout<<c2<<" : "<<int(c2)<<endl; cout<<'$'<<" : "<<int('$')<<endl; //输入字符 cout<<"c1 c2"<<endl; cin>>c1>>c2; cout<<"c1="<<c1<<" c2="<<c2<<endl;}#include <iostream.h> //包含iostream.h头文件main(){ char c1='\a',TAB='\t'; //阵铃一声 cout<<c1<<endl; //使用水平制表符 cout<<1<<TAB<<2<<TAB<<3<<TAB<<4<<endl; //使用双引号 cout<<"He said \"Thank you\"."<<endl; //使用回车换行 cout<<"abc\n"<<"def"<<'\n';}#include <iostream.h> //包含iostream.h头文件main(){ //声明bool变量,并初始化 bool flag1=false,flag2=true; //输出布尔常量和变量 cout<<"false:"<<false<<endl; cout<<"true: "<<true<<endl; cout<<"flag1="<<flag1<<endl; cout<<"flag2="<<flag2<<endl; //布尔变量的赋值和输出 int x=1; flag1=x>0; //存放关系运算结果 cout<<"flag1="<<flag1<<endl; flag2=flag1; //bool类型变量相互赋值 cout<<"flag2="<<flag2<<endl; //布尔变量超界处理 flag1=100; cout<<"flag1="<<flag1<<endl; flag2=-100; cout<<"flag2="<<flag2<<endl;}#include <iostream.h>const double PI=3.1416; //声明常量(const变量)PI为3.1416main() { //声明3个变量 double r,l,s; //输入圆的半径 cout<<"r="; cin>>r; //计算圆的周长 l=2*PI*r; cout<<"l="<<l<<endl; //计算圆的面积 s=PI*r*r; cout<<"s="<<s<<endl; }#include<iostream.h>main(){ //定义枚举类型,并指定其枚举元素的值 enum color { RED=3, YELLOW=6, BLUE=9 }; //声明枚举变量a和b,并为枚举变量a赋初值 enum color a=RED; color b; //合法,与C语言不同 // 输出枚举常量 cout<<"RED="<<RED<<endl; cout<<"YELLOW="<<YELLOW<<endl; cout<<"BLUE="<<BLUE<<endl; //枚举变量的赋值和输出 b=a; a=BLUE; cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; //a=100; 错误! //a=6 也错误! //枚举变量的关系运算 b=BLUE; // 枚举变量的赋值运算 cout<<"a<b="<<(a<b)<<endl;}#include <iostream.h>const double PI=3.1416; //声明常量(const变量)PI为3.1416main() { //声明3个变量 double r=3,l,s; //计算圆的周长 l=2*PI*r; cout<<"l="<<l<<endl; //计算圆的面积 s=PI*r*r; cout<<"s="<<s<<endl; //验证赋值误差 int il,is; il=l; is=s; cout<<"il="<<il<<endl; cout<<"is="<<is<<endl; }#include <iostream.h>main() { //变量声明 char c; double x,y; //测试自增cout<<"++E and E++ :"<<endl; c='B'; cout<<"c="<<++c<<endl; //输出c=C c='B'; cout<<"c="<<c++<<endl; //输出c=B x=1.5; y=5+ ++x; //加号后的空格不能少 cout<<"y="<<y<<endl; //输出y=7.5 x=1.5; y=5+x++; cout<<"y="<<y<<endl; //输出y=6.5 cout<<"--------------------"<<endl;//测试自减cout<<"--E and E-- :"<<endl; c='B'; cout<<"c="<<--c<<endl; //输出c=A c='B'; cout<<"c="<<c--<<endl; //输出c=B x=1.5; y=5+--x; cout<<"y="<<y<<endl; //输出y=5.5 x=1.5; y=5+x--; cout<<"y="<<y<<endl; //输出y=6.5}#include <iostream.h>main(){ int a=3, b=2; //输出关系表达式 cout<<a<b<<endl; cout<<(a<b)<<(a>b)<<(a>=b)<<(a==b)<<(a!=b)<<endl; bool flag=2*a<b+10; cout<<"flag="<<flag;}#include <iostream.h>main() { float a=3.5,b=2.1,c=0; cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl; //与运算 cout<<"a&&b="<<(a&&b)<<endl;//输出1 cout<<"a&&c="<<(a&&c)<<endl;//输出0 //或运算 cout<<"a||b="<<(a||b)<<endl;//输出1 cout<<"a||c="<<(a||c)<<endl;//输出1 //非运算 cout<<"!a="<<!a<<endl<<"!c="<<!c<<endl;//输出0 1 //关系运算和逻辑运算 bool flag=a>=0 && a<=5; //变量a在[0,5]区间内 cout<<"a=>0 && a<=5="<<flag<<endl;//输出1 //算术运算、关系运算和逻辑运算 cout<<"a+5>2*b+2||a<b+3="<<(a+5>2*b+2||a<b+3)<<endl;//输出1}#include <iostream.h>main() { //按位与运算 cout<<"24&12="<<(24&12)<<endl; //按位异或运算 cout<<"24^12="<<(24^12)<<endl; //按位或运算 cout<<"24|12="<<(24|12)<<endl; //按位取反运算 cout<<"~24="<<(~24)<<endl; //左移位运算 cout<<"5<<3="<<(5<<3)<<endl; cout<<"-5<<3="<<(-5<<3)<<endl; //右移位运算 cout<<"5>>3="<<(5>>3)<<endl; cout<<"-5>>3="<<(-5>>3)<<endl;}#include <iostream.h>main(){ int a=1,b=1,c=3; //显示a,b,c的值 cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl; //计算显示(1) b+=a+2*c%5; 的结果 b+=a+2*c%5; //相当于表达式语句 b=b+(a+2*c%5); cout<<"(1) b="<<b<<endl; //计算显示(2) a<<=c-2*b; 的结果 a=1,b=1,c=3; a<<=c-2*b; // 相当于表达式语句 a=a<<(c-2*b); cout<<"(2) a="<<a<<endl; //计算显示(3) a*=b=c=3;的结果 a=1,b=1,c=3; a*=b=c=3; //相当于语句组 c=3;b=c;a=a*b; cout<<"(3) a="<<a<<" b="<<b<<" c="<<c<<endl; //计算显示(4) a+=b+=c;的结果 a=1,b=1,c=3; a+=b+=c; //相当于语句组 b=b+c; a=a+b; cout<<"(4) a="<<a<<" b="<<b<<" c="<<c<<endl; //计算显示(5) a-=b=++c+2;的结果 a=1,b=1,c=3; a-=b=++c+2; //相当于语句组 ++c;b=b+c+2;a=a-b; cout<<"(5) a="<<a<<" b="<<b<<" c="<<c<<endl;}#include <iostream.h>main(){ //用 sizeof 计算各类种常量的字节长度 cout<<"sizeof('$')="<<sizeof('$')<<endl; cout<<"sizeof(1)="<<sizeof(1)<<endl; cout<<"sizeof(1.5)="<<sizeof(1.5)<<endl; cout<<"sizeof(\"Good!\")="<<sizeof("Good!")<<endl; //用sizeof 计算各类型变量的字节长度 int i=100; char c='A'; float x=3.1416; double p=0.1; cout<<"sizeof(i)="<<sizeof(i)<<endl; cout<<"sizeof(c)="<<sizeof(c)<<endl; cout<<"sizeof(x)="<<sizeof(x)<<endl; cout<<"sizeof(p)="<<sizeof(p)<<endl; //用sizeof 计算表达式的字节长度 cout<<"sizeof(x+1.732)="<<sizeof(x+1.732)<<endl; //用 sizeof 计算各类型的字节长度 cout<<"sizeof(char)="<<sizeof(char)<<endl; cout<<"sizeof(int)="<<sizeof(int)<<endl; cout<<"sizeof(float)="<<sizeof(float)<<endl; cout<<"sizeof(double)="<<sizeof(double)<<endl; //用sizeof 计算数组的字节长度 char str[]="This is a test."; int a[10]; double xy[10]; cout<<"sizeof(str)="<<sizeof(str)<<endl; cout<<"sizeof(a)="<<sizeof(a)<<endl; cout<<"sizeof(xy)="<<sizeof(xy)<<endl; //用sizeof 计算自定义类型的长度 struct st { short num; float math_grade; float Chinese_grade; float sum_grade; }; st student1; cout<<"sizeof(st)="<<sizeof(st)<<endl; cout<<"sizeof(student1)="<<sizeof(student1)<<endl;}#include <iostream.h>main(){ //声明变量语句中使用顺序运算 int x, y; //计算中使用顺序运算 x=50; y=(x=x-5, x/5); cout<<"x="<<x<<endl; cout<<"y="<<y<<endl;}#include <iostream.h>main(){ //测试表达式类型的转换 int n=100,m; double x=3.791,y; cout<<"n*x="<<n*x<<endl; //赋值类型转换 m=x; y=n; cout<<"m="<<m<<endl; cout<<"y="<<y<<endl; //强制类型转换 cout<<"int(x)="<<int(x)<<endl; cout<<"(int)x="<<(int)x<<endl; cout<<"int(1.732+x)="<<int(1.732+x)<<endl; cout<<"(int)1.732+x="<<(int)1.723+x<<endl; cout<<"double(100)="<<double(100)<<endl;}#include <iostream.h>main(){ float a,b,s; cout<<"a b"<<endl; cin>>a>>b; //利用cin从键盘上为变量 a,b 赋值 s=a; if (a<b) { s=b; //if语句中只有这一个语句,可省略花括号 } s=s*s; //变量s中保存a,b中较大的一个数的平方 cout<<"s="<<s;}#include <iostream.h>main(){ int x,y; cout<<"x="; cin>>x; if (x<=0) { //满足条件执行 y=2*x; cout<<"y="<<y; //输出结果 } else { //不满足条件执行 y=x*x; cout<<"y="<<y; //输出结果 }}#include <iostream.h>main(){ int a,b,c; int smallest; cout<<"a b c"<<endl; cin>>a>>b>>c; if (a<=b) //外层条件语句 { if (a<=c) //内层条件语句 smallest=a; else smallest=c; } else { if (b<=c) //内层条件语句 smallest=b; else smallest=c; } cout<<"Smallest="<<smallest<<endl;}#include <iostream.h>main(){ int score; //从键盘上输入分数 cout<<"score="; cin>>score; //用带else if的条件语句判断处理 if (score<0 || score>100) { cout<<"The score is out of range!"<<endl; } else if (score>=90) cout<<"Your grade is a A."<<endl; else if (score>=80) cout<<"Your grade is a B."<<endl; else if (score>=70) cout<<"Your grade is a C."<<endl; else if (score>=60) cout<<"Your grade is a D."<<endl; else cout<<"Your grade is a E."<<endl;}#include <iostream.h>main(){ int n; cout<<"n="; cin>>n; if (n>=0 && n<=100 &&n%2==0) cout<<"n="<<n<<endl; else cout<<"The "<<n<<" is out of range!"<<endl;}#include <iostream.h>main(){ int a,b,Max; //输入数据 cout<<"a="; cin>>a; cout<<"b="; cin>>b; //找出较大值 Max=a>b?a:b; cout<<"Max="<<Max<<endl;}#include <iostream.h>main(){ int a,b; //输入数据 cout<<"a="; cin>>a; cout<<"b="; cin>>b; //除法判断 if (b!=0 && a%b==0) { cout<<b<<" divides "<<a<<endl; cout<<"a/b="<<a/b<<endl; } else cout<<b<<" does not divide "<<a<<endl;}#include <iostream.h>main(){ //x,y 为操作数,c为运算符 int x,y,z; char c1; cin>>x>>c1>>y; //c1 //多路选择语句选择不同表达式计算语句 switch(c1) { case '+':cout<<x<<"+"<<y<<"="<<x+y<<endl; break; case '-':cout<<x<<"-"<<y<<"="<<x-y<<endl; break; case '*':cout<<x<<"*"<<y<<"="<<x*y<<endl; break; case '/':cout<<x<<"/"<<y<<"="<<x/y<<endl; break; case '%':cout<<x<<"%"<<y<<"="<<x%y<<endl; break; default :cout<<"Wrong !"<<endl; //当不符合上述情况时执行本子句 }}#include<iostream.h>float x=365.5; //声明全局变量main() { int x=1,y=2; double w=x+y; { double x=1.414,y=1.732,z=3.14; cout<<"inner:x="<<x<<endl; cout<<"inner:y="<<y<<endl; cout<<"inner:z="<<z<<endl; cout<<"outer:w="<<w<<endl; cout<<"::x="<<::x<<endl; //访问重名的全局变量 } cout<<"outer:x="<<x<<endl; cout<<"outer:y="<<y<<endl; cout<<"outer:w="<<w<<endl; //cout<<"inner:z="<<z<<endl;无效 cout<<"::x="<<::x<<endl; //访问重名的全局变量}#include<iostream.h>main() { //显示1,2,3...10 for(int i=1;i<=10;i++) cout<<i<<" "; cout<<endl; //显示10,9,8...1 for(int j=10;j>=1;j--) cout<<j<<" "; cout<<endl; //显示1,3,5...9 for(int k=1;k<=10;k=k+2) cout<<k<<" "; cout<<endl; //显示ABC...Z for(char c='A';c<='Z';c++) cout<<c; cout<<endl; //显示0,0.1,0.2...1.0 for(float x=0;x<=1.0;x=x+0.1) cout<<x<<" "; cout<<endl; //显示0,0.1,0.2...1.0 for(float x1=0;x1<=1.0+0.1/2;x1=x1+0.1) cout<<x1<<" "; cout<<endl; //计算s=1+2+3...+100 int s=0; for(int n=1;n<=100;n++) s=s+n; cout<<"s="<<s<<endl;}#include<iostream.h>main(){ //计算s=1+2+3...+100 int s=0,n=1; while(n<=100) { s=s+n; n++; } cout<<"s="<<s<<endl; //累加键盘输入的数据 double x,sum=0.0; cout<<"x="; cin>>x; while(x!=0) { sum+=x; cout<<"x="; cin>>x; } cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){ //计算s=1+2+3...+100 int s=0,n=0; do { n++; s+=n; }while(n<100); cout<<"s="<<s<<endl; //累加键盘输入的数据 double x,sum=0.0; do { cout<<"x="; cin>>x; sum+=x; } while(x!=0); cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){ //计算和打印打印乘法九九表 for (int i=1;i<=9;i++) { cout<<i; for (int j=1;j<=9;j++) cout<<'\t'<<i<<"*"<<j<<"="<<i*j; cout<<endl; }}#include<iostream.h>main(){ int x,sum=0; //定义标号L1L1: cout<<"x="; cin>>x; if (x==-1) goto L2; //无条件转移语句,转到L2语句处 else sum+=x; goto L1; //无条件转移语句,转到L1语句处 //定义标号L2L2: cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){ //累加键盘输入的数据 double x,sum=0.0; while(1) { cout<<"x="; cin>>x; if (x<=0) break; sum+=x; } cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){ int i; for (i=1;i<=20;i++) { if (i%3==0) //能被 3 整除的整数,返回进行下次循环 continue; cout<<i<<" "; } cout<<endl;}#include<iostream.h>main(){ //声明数组和变量 int a[5],i,sum; double avg; //从键盘上循环为数组赋值 for (i=0;i<5;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } //直接显示数组元素 cout<<a[0]<<a[1]<<a[2]<<a[3]<<a[4]<<endl; //利用for循环显示数组各元素的值 for (i=0;i<5;i++) cout<<a[i]<<" "; cout<<endl; //计算数组元素之和,并显示计算结果 sum=a[0]+a[1]+a[2]+a[3]+a[4]; cout<<"sum="<<sum<<endl; //利用循环计算数组的累加和 for (sum=0,i=0;i<5;i++) sum+=a[i]; //显示累加和及平均值 cout<<"sum="<<sum<<endl; avg=sum/5.0; cout<<"avg="<<avg<<endl;}#include<iostream.h>main(){ int i,max,index,a[5]; //从键盘上为数组赋值 for (i=0;i<=4;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } // 利用循环遍历数组,找出最大值的元素及其下标 max=a[0]; for (i=0;i<=4;i++) { if (max<a[i]) { max=a[i]; index=i; } } cout<<"\nMax="<<max<<" index="<<index;}#include<iostream.h>#define size 5main(){ //声明变量 int i,j; float t,a[size]; //从键盘上为数组赋值 for (i=0;i<size;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } //对数组按从小到大顺序排序 for (i=0;i<size-1;i++) for (j=i+1;j<size;j++) if (a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } //显示排序结果 for (i=0;i<size;i++) cout<<a[i]<<" "; cout<<endl; //输入要查找的数据 int value; int found; //找到为1,否则为0 intlow,high,mid; for (i=1;i<=3;i++) { cout<<"value="; cin>>value; //二分法查找数组a found=0; low=0; high=size-1; while(low<=high) { mid=(high+low)/2; if (a[mid]==value) { found=1; break; } if (a[mid]<value) low=mid+1; else high=mid-1; } if (found) cout<<"The valu found at:a["<<mid<<"]="<<a[mid]<<endl; else cout<<"The "<<value<<" is not found!"<<endl; }}#include<iostream.h>main(){//声明变量 int i,j; float t,a[5]; //从键盘上为数组赋值 for (i=0;i<=4;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } //对数组按从大到小顺序排序 for (i=0;i<=3;i++) for (j=i+1;j<=4;j++) if (a[i]<=a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } //显示排序结果 for (i=0;i<=4;i++) cout<<a[i]<<" ";}#include<iostream.h>main(){ //声明二维数组及变量 int a[2][3],i,j; //从键盘上为数组a赋值 for (i=0;i<2;i++) for (j=0;j<3;j++) { cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j]; } //显示数组a for (i=0;i<2;i++) { for (j=0;j<3;j++) { cout<<a[i][j]<<" "; } cout<<endl; } //找出该数组的最大元素及其下标 int h,l,Max=a[0][0]; for (i=0;i<2;i++) { for (j=0;j<3;j++) { if (Max<a[i][j]) { Max=a[i][j]; h=i; l=j; } } } cout<<"Max:"<<"a["<<h<<"]["<<l<<"]="<<a[h][l]<<endl;}#include<iostream.h>main(){ //声明字符数组和变量 char str[6]; int i; //从键盘上输入字符串 cout<<"str="; cin>>str; cout<<str<<endl; //按数组和下标变量两种方式显示字符数组 cout<<str<<endl; for (i=0;i<6;i++) cout<<str[i]; cout<<endl; //字符串反向输出 for (i=5;i>=0;i--) cout<<str[i]; cout<<endl; //将字符数组变成大写字母后输出 for (i=0;i<=5;i++) str[i]-=32; //小写字母转换成大写字母 cout<<str<<endl; //显示字符串}#include<iostream.h>main(){ //声明变量和指针变量 int a,b,c,*ip; //指针变量ip指向变量a a=100; ip=&a; //使指针变量 ip 指向变量a cout<<"a="<<a<<endl; cout<<"*ip="<<*ip<<endl; cout<<"ip="<<ip<<endl; //指针变量ip指向变量b ip=&b; //使指针变量 ip 指向变量b b=200; cout<<"b="<<b<<endl; cout<<"*ip="<<*ip<<endl; cout<<"ip="<<ip<<endl; //指针变量ip指向变量c ip=&c; //使指针变量 ip 指向变量b *ip=a+b; cout<<"c="<<c<<endl; cout<<"*ip="<<*ip<<endl; cout<<"ip="<<ip<<endl;}#include<iostream.h>main(){ //声明数组、变量和指针变量 int a[2][3],i,j; int* ip; //从键盘上为数组a赋值 for (i=0;i<2;i++) //为数组a赋值 for (j=0;j<3;j++) { cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j]; } //利用下标变量显示数组a for (i=0;i<2;i++) { for (j=0;j<3;j++) { cout<<a[i][j]<<" "; } cout<<endl; } //利用指针变量显示数组a ip=&a[0][0]; for (i=0;i<2;i++) { for (j=0;j<3;j++) { cout<<"a["<<i<<"]["<<j<<"]="; cout<<ip<<" "; cout<<*ip<<endl; ip++; } }}#include<iostream.h>main(){ //声明数组、变量和指针变量 int a[]={1,2,3,4,5,6}; int *ip1,*ip2; //测试指针的赋值运算 ip1=a; ip2=ip1; cout<<"*ip1="<<(*ip1)<<endl; cout<<"*ip2="<<(*ip2)<<endl; //测试指针的自增自减运算和组合运算 ip1++; ip2+=4; cout<<"*ip1="<<(*ip1)<<endl; cout<<"*ip2="<<(*ip2)<<endl; //测试指针变量之间的关系运算 int n=ip2>ip1; cout<<"ip2>ip1="<<n<<endl; cout<<"ip2!=NULL="<<(ip2!=NULL)<<endl; //指针变量之间的减法 n=ip2-ip1; cout<<"ip2-ip1="<<n<<endl;}#include<iostream.h>main(){ //声明字符型数组和指针变量 char str[10]; char *strip=str; //输入输出 cout<<"str="; cin>>str; //用字符数组输入字符串 cout<<"str="<<str<<endl; cout<<"strip="<<strip<<endl; cout<<"strip="; cin>>strip; //用字符指针变量输入字符串 cout<<"str="<<str<<endl; cout<<"strip="<<strip<<endl; //利用指针变量改变其指向字符串的内容 *(strip+2)='l'; cout<<"str="<<str<<endl; cout<<"strip="<<strip<<endl; //动态为字符型指针变量分配内存 strip=new char(100); cout<<"strip="; cin>>strip; //用字符指针变量输入字符串 cout<<"str="<<str<<endl; cout<<"strip="<<strip<<endl;}#include<iostream.h>main(){ // 声明用于存放运动员号码的数组 int h[]={1001,1002,1003,1004}; // 声明用于存放运动员成绩的数组 float x[]={12.3,13.1,11.9,12.1}; //声明用于存放运动姓名的字符型指针数组 char *p[]={"Wang hua","Zhang jian","Li wei","Hua ming"}; //i,j,it是用做循环控制变量和临时变量 int i,j,it; //ft 用做暂存变量 float ft; //pt为字符型指针变量用做暂存指针变量 char *pt; //用选择法对数组x进行排序,并相应调整数组h和p中的数据 for (i=0;i<=3;i++) for (j=i+1;j<=3;j++) if (x[i]>=x[j]) { ft=x[i],x[i]=x[j],x[j]=ft; it=h[i],h[i]=h[j],h[j]=it; pt=p[i],p[i]=p[j],p[j]=pt; } //以下打印排序结果 for (i=0;i<=3;i++) cout<<h[i]<<" ,"<<p[i]<<" ,"<<x[i]<<endl;}#include<iostream.h>main(){ //声明指针数组 char *colors[]={"Red","Blue","Yellow","Green"}; //指向指针的指针变量 char **pt; //通过指向指针的变量访问其指向的内容 pt=colors; for (int i=0;i<=3;i++) { cout<<"pt="<<pt<<endl; cout<<"*pt="<<*pt<<endl; cout<<"**pt="<<**pt<<endl; pt++; }}#include<iostream.h>main(){ //定义结构类型 struct books { char title[20]; char author[15]; int pages; float price; } ; //声明结构变量 struct books Zbk={"VC++ ","Zhang",295,35.5}; books Wbk; //对结构变量的输出 cout<<"Zbk:"<<endl; cout<<Zbk.title <<endl; cout<<Zbk.author<<endl; cout<<Zbk.pages<<endl; cout<<Zbk.price<<endl; cout<<"--------------------"<<endl; //对结构成员的运算 Zbk.pages+=10; Zbk.price+=0.5; cout<<"Zbk.pages="<<Zbk.pages<<endl; cout<<"Zbk.price="<<Zbk.price<<endl; cout<<"--------------------"<<endl; //对结构变量的输入输出 cout<<"Wbk.title ="; cin>>Wbk.title; cout<<"Wbk.author="; cin>>Wbk.author; cout<<"Wbk.pages="; cin>>Wbk.pages; cout<<"Wbk.price="; cin>>Wbk.price; cout<<"Wbk:"<<endl; cout<<Wbk.title <<endl; cout<<Wbk.author<<endl; cout<<Wbk.pages<<endl; cout<<Wbk.price<<endl; cout<<"--------------------"<<endl; //结构变量之间的相互赋值 books temp; temp=Wbk; cout<<"temp:"<<endl; cout<<temp.title<<endl; cout<<temp.author<<endl; cout<<temp.pages<<endl; cout<<temp.price<<endl;}#include<iostream.h>main(){ int i; //定义结构类型 struct student { int num; char name[10]; float maths; float physics; float chemistry; double total; }; //声明结构数组st student st[3]; //从键盘上为结构数组输入值 cout<<" num name maths physics chemistry "<<endl; for (i=0;i<3;i++) { cout<<i+1<<" "; cin>>st[i].num; cin>>st[i].name; cin>>st[i].maths; cin>>st[i].physics; cin>>st[i].chemistry; } //计算每个学生的总成绩 for (i=0;i<3;i++) st[i].total=st[i].maths+st[i].physics+st[i].chemistry; //输出结构数组各元素的值 for (i=0;i<3;i++) { cout<<"st["<<i<<"]: "; cout<<st[i].num<<'\t'; cout<<st[i].name<<'\t'; cout<<st[i].maths<<'\t'; cout<<st[i].physics<<'\t'; cout<<st[i].chemistry<<'\t'; cout<<st[i].total<<endl; }}#include<iostream.h>main(){ //定义结构类型 struct human { char name[10]; int sex; int age; }; //声明结构变量和结构指针变量,并初始化 struct human x={"WangPing",1,30},*p=NULL; //结构指针变量指向对象 p=&x; //显示结构变量的值 cout<<"x.name="<<x.name<<endl; cout<<"x.sex="<<x.sex<<endl; cout<<"x.age="<<x.age<<endl; //利用结构指针显示结构对象中的数据 cout<<"(*p).name="<<(*p).name<<endl; cout<<"(*p).sex="<<(*p).sex<<endl; cout<<"(*p).age="<<(*p).age<<endl; cout<<"p->name="<<p->name<<endl; cout<<"p->sex="<<p->sex<<endl; cout<<"p->age="<<p->age<<endl; //通过结构指针为结构对象输入数据 cout<<"name:"; cin>>(*p).name; cout<<"sex:"; cin>>(*p).sex; cout<<"age:"; cin>>(*p).age; //显示结构变量的值 cout<<"x.name="<<x.name<<endl; cout<<"x.sex="<<x.sex<<endl; cout<<"x.age="<<x.age<<endl;}include<iostream.h>main(){ //定义结构类型 struct human { char name[10]; int sex; int age; }; //声明结构变量和结构指针,并初始化 struct human x={"WangPing",1,30},*p=&x; //利用结构指针显示结构中的数据 cout<<"(*p).name="<<(*p).name<<endl; cout<<"(*p).sex="<<(*p).sex<<endl; cout<<"(*p).age="<<(*p).age<<endl; cout<<"-------------------------"<<endl; //利用new运算符为p分配内存 p=new human; //从键盘上为p指向的结构对象赋值 cout<<"p->name="; cin>>p->name; cout<<"p->sex="; cin>>p->sex; cout<<"p->age="; cin>>p->age; cout<<"-------------------------"<<endl; //显示p所指结构对象的值 cout<<"p->name="<<p->name<<endl; cout<<"p->sex="<<p->sex<<endl; cout<<"p->age="<<p->age<<endl; cout<<"-------------------------"<<endl; //显示结构变量的值 cout<<"x.name="<<x.name<<endl; cout<<"x.sex="<<x.sex<<endl; cout<<"x.age="<<x.age<<endl; //释放p指向的内存 delete p; }#include<iostream.h>main(){ //定义结构类型 struct human { char name[10]; int sex; int age; }; //声明结构数组和结构指针变量,并初始化 human x[]={{"WeiPing",1,30},{"LiHua",1,25},{"LiuMin",0,23}},*p=NULL; //用下标变量的输出结构数组的元素 for (int i=0;i<3;i++) { cout<<x[i].name<<'\t'; cout<<x[i].sex<<'\t'; cout<<x[i].age<<endl; } cout<<"----------------"<<endl; //用结构指针输出结构数组的元素 for (p=x;p<=&x[2];p++) { cout<<p->name<<'\t'; cout<<p->sex<<'\t'; cout<<p->age<<endl; }}#include<iostream.h>main(){ //定义一个包含指针成员的结构类型 struct test { char *str; int *ip; } x; //使用结构变量x中的整型指针ip x.ip=new int; //分配1个单元 *(x.ip)=100; cout<<"x.ip:"<<x.ip<<'\t'<<*(x.ip)<<endl; cout<<"---------------"<<endl; delete x.ip; x.ip=new int[5]; //分配5个单元 for(int i=0;i<5;i++) *(x.ip+i)=100+i; cout<<"x.ip:"<<endl; for(i=0;i<5;i++) cout<<x.ip+i<<'\t'<<(*(x.ip+i))<<endl; delete x.ip; cout<<"---------------"<<endl; //使用结构变量x中的字符型指针str x.str=new char('A'); //分配1个单元 cout<<"x.str:"<<(*x.str)<<endl; cout<<"---------------"<<endl; delete x.str; x.str=new char[5]; //分配多个单元 *x.str='G'; *(x.str+1)='o'; *(x.str+2)='o'; *(x.str+3)='d'; *(x.str+4)='\0'; cout<<"x.str:"<<x.str<<endl; delete x.str; cout<<"---------------"<<endl; //在声明结构变量时初始化 test y={"Very Good!",NULL}; cout<<"y.str:"<<y.str<<endl; cout<<"y.ip:"<<y.ip<<endl;}#include<iostream.h>main(){ //定义date结构 struct date { int year; int month; int day; }; //定义baby结构 struct baby { int num; float weight; date birthday; // date为结构类型 }; //声明baby结构变量并初始化 baby b1={10001,10,{2002,12,25}}; //下列是baby结构变量b1的引用。 cout<<"b1.num="<<b1.num<<endl; cout<<"b1.weight="<<b1.weight<<endl; cout<<"b1.birthday.year="<<b1.birthday.year<<endl; cout<<"b1.birthday.month="<<b1.birthday.month<<endl; cout<<"b1.birthday.day="<<b1.birthday.day<<endl; cout<<"--------------------------"<<endl; //声明baby结构变量temp,并进行赋值运算 baby temp; temp=b1; cout<<"temp.num="<<temp.num<<endl; cout<<"temp.weight="<<temp.weight<<endl; cout<<"temp.birthday.year="<<temp.birthday.year<<endl; cout<<"temp.birthday.month="<<temp.birthday.month<<endl; cout<<"temp.birthday.day="<<temp.birthday.day<<endl;}#include<iostream.h>main(){ //定义名为list的递归结构 struct list { char name[10]; int sex; int age; list *next; //成员next为指向其自身结构的指针 }; //使用递归结构变量 list L1={"WeiPing",1,35.5,NULL}; cout<<"L1:"<<endl; cout<<"name\t"<<L1.name<<endl; cout<<"sex\t"<<L1.sex<<endl; cout<<"age\t"<<L1.age<<endl; cout<<"next\t"<<L1.next<<endl;}#include<iostream.h>main(){ int i; //定义名为student的递归结构 struct student { char name[10]; int math; int computer; float sum; student *next; //next成员是指向自身的结构指针 }; //用student声明3个结构指针变量 struct student *head,*tail,*temp; //申请第1块数据,并设置各结构指针的初值 temp=new struct student; //申请内存 head=temp; // 头指针 tail=head; // 尾指针 //循环为链表输入数据 cout<<"\tname Math Computer"<<endl; for (i=1;;i++) { cout<<i<<"\t"; cin>>temp->name; if (temp->name[0]!='*') { cin>>temp->math>>temp->computer; temp->sum=temp->math+temp->computer; temp->next=NULL; tail=temp; //设置链表尾指针 } else { // 以下是输入结束处理 delete temp; tail->next=NULL; break; } //为下一个学生申请内存 temp->next=new struct student; temp=temp->next; // 使处理指针temp指向新内存块 } //将链表数据从头到尾打印出来 cout<<"--------------------"<<endl; temp=head; while (temp!=NULL) { cout<<temp->name<<","<<temp->math<<","; cout<<temp->computer<<","<<temp->sum<<endl; temp=temp->next; }}#include<iostream.h>main(){ int i; //定义名为student的递归结构 struct student { char name[10]; int math; int computer; float sum; student *forw; //forw成员是前指针 student *next; //next成员是后指针 }; //用student声明3个结构指针变量 struct student *head,*tail,*temp; //申请第1块数据,并设置各结构指针的初值 temp=new struct student; //申请内存 head=temp; // 头指针 tail=head; // 尾指针 head->forw=NULL; //循环为链表记录输入数据 cout<<"\tname Math Computer"<<endl; for (i=1;;i++) { cout<<i<<"\t"; cin>>temp->name; if (temp->name[0]!='*') { cin>>temp->math>>temp->computer; temp->sum=temp->math+temp->computer; temp->next=NULL; tail=temp; //设置链表尾指针 } else { // 以下是输入结束处理 delete temp; tail->next=NULL; break; } //为下一个学生申请内存 temp->next=new struct student; temp->next->forw=temp; //设置前指针 temp=temp->next; //使处理指针temp指向新内存块 } // 将链表数据从头到尾打印出来 cout<<"head------>tail:"<<endl; temp=head; while (temp!=NULL) { cout<<temp->name<<","<<temp->math<<","; cout<<temp->computer<<","<<temp->sum<<endl; temp=temp->next; } // 将链表数据从尾到头打印出来 cout<<"tail------>head:"<<endl; temp=tail; while (temp!=NULL) { cout<<temp->name<<","<<temp->math<<","; cout<<temp->computer<<","<<temp->sum<<endl; temp=temp->forw; }}#include<iostream.h>main(){ int i; //定义联合类型 union utag { char c; int k; float x; }; //声明联合变量 union utag u; // 使用联合变量中的字符型成员 u.c='*'; cout<<"u.c="<<u.c<<endl; // 使用联合变量中的整型成员 u.k=1000; cout<<"u.k="<<u.k<<endl; // 使用联合变量中的浮点型成员 u.x=3.1416; cout<<"u.x="<<u.x<<endl; //声明联合变量时初始化 utag u1={'A'}; //同时引用联合变量的各成员 cout<<"u1.c="<<u1.c<<endl; cout<<"u1.k="<<u1.k<<endl; cout<<"u1.x="<<u1.x<<endl;}#include<iostream.h>main() { //定义结构类型,并为声明的结构变量赋初值 struct s_tag { short i; float x; } sx={100,3.1416}; //定义联合类型,并为声明的联合变量赋初值 union u_tag { short i; float x; } ux={1000}; //输出结构类型和结构变量的有关信息 cout<<"sizeof(struct s_tag)="<<sizeof(struct s_tag)<<endl; cout<<"sx.i="<<sx.i<<endl; cout<<"sx.x="<<sx.x<<endl; cout<<"sizeof(sx)="<<sizeof(sx)<<endl; cout<<"------------------------------"<<endl; //输出联合类型和联合变量的有关信息 cout<<"sizeof(union u_tag)="<<sizeof(union u_tag)<<endl; ux.i=200; cout<<"ux.i="<<ux.i<<endl; //输出联合变量ux 的i成员 ux.x=123.456; cout<<"ux.x="<<ux.x<<endl; //输出联合变量ux 的x成员 cout<<"sizeof(ux)="<<sizeof(ux)<<endl;}#include<iostream.h>main(){ //自定义类型 typedef int ARRAY_INT[50]; int i; ARRAY_INT a; //用自定义类型声明数组变量a //以下为数组a赋值,并打印 for (i=0;i<50;i++) { if (i%10==0) //每10个数换一次行 cout<<endl; a[i]=i; cout<<a[i]<<"\t"; } cout<<endl;}#include<iostream.h>//定义结构类型struct student{ int num; char name[20]; float grade;};void main(void){ //声明数组 int i,size; char str[]="This is a string."; int int_values[] = {51, 23, 2, 44, 45,0,11}; float float_values[] = {15.1, 13.3, 22.2, 10.4, 1.5}; student st_arr[]={101,"WangLin",92,102,"LiPing",85,103,"ZhaoMin",88}; //显示char类型数组元素及其大小 size=sizeof(str) / sizeof(char); cout<<"Number of elements in str: "; cout<<size<<endl; for(i=0;i<size;i++) { cout<<str[i]; } cout<<endl; //显示int类型数组元素及其大小 size=sizeof(int_values) / sizeof(int); cout<<"Number of elements in int_values: "; cout<<size<<endl; for(i=0;i<size;i++) { cout<<int_values[i]<<" "; } cout<<endl; //显示float类型数组元素及其大小 size=sizeof(float_values) / sizeof(float); cout<<"Number of elements in float_values: "; cout<<size<<endl; for(i=0;i<size;i++) { cout<<float_values[i]<<" "; } cout<<endl; //显示student类型数组元素及其大小 size=sizeof(st_arr) / sizeof(student); cout<<"Number of elements in st_arr: "; cout<<size<<endl; for(i=0;i<size;i++) { cout<<st_arr[i].num<<" "; cout<<st_arr[i].name<<" "; cout<<st_arr[i].grade<<endl; }}#include<iostream.h>//add()函数的定义,其有返回值double add(double x,double y){ double z; z=x+y; cout<<x<<"+"<<y<<"="<<z<<endl; return(z);}main(){ double a=0.5,b=1.0; //以不同参数形式调用函数add() cout<<"add(1.5,2.5)="<<add(1.5,2.5)<<endl; cout<<"add(a,b)="<<add(a,b)<<endl; cout<<"add(2*a,a+b)="<<add(2*a,a+b)<<endl; cout<<"----------------------"<<endl; //以表达式方式调用函数add() double c=2*add(a,b); cout<<"c="<<c<<endl; cout<<"----------------------"<<endl; //以语句式方式调用函数add() add(2*a,b); cout<<"----------------------"<<endl; //用其他类型参数调用函数add() int n=1,m=2; cout<<"add("<<n<<","<<m<<")="<<add(n,m)<<endl;}#include<iostream.h>//定义符号函数sgn(),其返回值为int类型int sgn(double x){ if (x>0) return(1); //返回出口1 if (x<0) return(-1); //返回出口2 return(0); //返回出口3}//main()函数定义main(){ double x; int i; for (i=0;i<=2;i++) { cout<<"x="; cin>>x; cout<<"sgn("<<x<<")="<<sgn(x)<<endl; }}#include<iostream.h>//函数原型语句可以在这里//定义main()函数 main() { //max()函数原型声明语句 float max(float,float); //变量声明语句 float a,b,Max; //输入参数并计算 cout<<"a="; cin>>a; cout<<"b="; cin>>b; Max=max(a,b); //调用max()函数 cout<<"max("<<a<<","<<b<<")="<<Max<<endl;}//定义max()函数float max(float x,float y) //max()返回值类型为浮点型{ float z; z=(x>y)?x:y; return(z);}#include<iostream.h>//定义f()函数f(int x,int y) //f()的参数以值方式传递{ ++x; --y; cout<<"x="<<x<<",y="<<y<<endl;}main() { int a,b; //设置实际参数的值 a=b=10; //以变量为参数调用f()函数 f(a,b); //验证实际参数的值 cout<<"a="<<a<<",b="<<b<<endl; //以表达式参数形式调用f()函数 f(2*a,a+b);}#include<iostream.h>//定义公共结构类型struct student { int num; char name[10]; float maths; float physics; float chemistry; double total;}; //定义结构输入函数input_Rec(struct student *p) //参数为student类型的结构指针变量{ cin>>p->num; cin>>p->name; cin>>p->maths; cin>>p->physics; cin>>p->chemistry;}//定义结构数据交换函数swap_Rec(struct student *p1,struct student *p2){ struct student x; //交换两个记录的数据 x=*p1; *p1=*p2; *p2=x;}//输出结构的值put_Rec(struct student *p){ cout<<p->num<<'\t'; cout<<p->name<<'\t'; cout<<p->maths<<'\t'; cout<<p->physics<<'\t'; cout<<p->chemistry<<'\t'; cout<<p->total<<endl;}//定义main()函数main() { int i,j; // 声明结构指针变量和结构数组 struct student *p1,a[3]; //输入3个学生的数据并计算总成绩 cout<<"num\tname\tmaths\tphysics\tchemistry"<<endl; for (p1=a;p1<=a+2;p1++) { input_Rec(p1); p1->total=p1->maths+p1->physics+p1->chemistry; } //对3个学生的数据排序 for (i=0;i<=2;i++) for (j=i+1;j<=2;j++) if (a[i].total<a[j].total) swap_Rec(&a[i],&a[j]); //交换两个结构变量中的数据 cout<<"-------------------"<<endl; //输出一分界线 //输出排序后的结构数组 cout<<"num\tname\tmaths\tphysics\tchemistry\ttotal"<<endl; for (p1=a;p1<=a+2;p1++) put_Rec(p1);}#include<iostream.h>//定义结构struct student { char name[10]; float grade;};//交换student类型的数据 void swap(student &x,student &y) //swap的参数为引用传递方式{ student temp; temp=x; x=y; y=temp;}//返回student类型的引用,求优者 student& max(student &x,student &y) //swap的参数为引用传递方式{ return (x.grade>y.grade?x:y);}//显示student类型的数据 void show(student &x) //show的参数为引用传递方式{ cout<<x.name<<" "<<x.grade<<endl;}void main() { student a={"ZhangHua",351.5},b={"WangJun",385}; //显示a和b的数据 cout<<"a:"; show(a); cout<<"b:"; show(b); cout<<"------------------"<<endl; //交换a和b的数据,并显示 swap(a,b); cout<<"a:";show(a); cout<<"b:";show(b); cout<<"------------------"<<endl; //计算和显示成绩高者 student t=max(a,b); cout<<"Max:"; show(t);}#include <iostream.h>//参数带有默认值的函数disp(int x=1,int y=1,int z=1){ cout<<"参数1: "<<x<<endl; cout<<"参数2: "<<y<<endl; cout<<"参数3: "<<z<<endl; cout<<"------------------"<<endl;}//main()函数中测试参数带有默认值的函数disp()void main(){ disp(); disp(10); disp(10,20); disp(10,20,30); int a=1,b=2,c=3; disp(a,b,c);}#include <iostream.h>//计算字符串长度的函数int str_len(const char *string){ //char *temp=string; 编译报错! //*string='x'; 编译报错! int i=0; while (*(string+i)!=NULL) i++; return i;}//main()函数中测试str_len()void main(){ char a[]="ABCDE"; cout<<a<<"\t"<<str_len(a)<<endl; char *str="Hello!"; cout<<str<<"\t"<<str_len(str)<<endl; cout<<"This is a test."<<"\t"<<str_len("This is a test.")<<endl;}#include<iostream.h>void disp(void); //这个函数声明语句不能少//定义main()函数的参数和返回值类型是void类型void main(void) { //调用void类型函数 disp(); }//以下定义disp()函数void disp(void) { cout<<" You are welcome."<<endl;}#include<iostream.h>//函数原型语句int abs(int x);long abs(long x);float abs(float x);//main()函数的定义void main(void) { //声明变量 int i1=32767,i2=-32767; long l1=456789,l2=-456789; float x1=1.1234,x2=-1.1234; //直接在cout输出中调用函数 cout<<abs(i1)<<","<<abs(i2)<<endl; cout<<abs(l1)<<","<<abs(l2)<<endl; cout<<abs(x1)<<","<<abs(x2)<<endl;}//定义int型的abs()函数int abs(int x) { if (x<0) return(-x); else return(x);}//定义long型的abs()函数 long abs(long x) { if (x<0) return(-x); else return(x);}//定义float型 abs函数float abs(float x) { if (x<0.0) return(-x); else return(x);}#include<iostream.h>//max()为内联函数inline int max(int x,int y) //注意inline关键字{ return x>y?x:y;}//定义main()函数 main() { int a=3,b=5,c; c=max(a,b); cout<<"max("<<a<<","<<b<<")="<<c<<endl; cout<<"max("<<15<<","<<11<<")="<<max(15,11)<<endl;}#include<iostream.h>main() { //函数原型声明 int fact(int x); int n,sn; //依次从键盘上输入3个正整型数据计算它们的阶乘 for (int i=1;i<=3;i++) { cout<<i<<" n="; cin>>n; sn=fact(n); cout<<n<<"!="<<sn<<endl; }}//以下是采用递归方法定义的fact()函数int fact(int x){ if (x==0) return(1); return(x*fact(x-1)); //此处又调用了它自身}#include<iostream.h>//带参数的main()函数int main(int argc,char *argv[]){ int i; for(i=0;i<argc;i++) cout<<i<<":"<<argv[i]<<endl; return 0;}#include<iostream.h>//用函数原型声明要使用的函数void show_array1(int*,int);void show_array2(int a[],int);void sort(int*,int);main(){ //声明数组并初始化 int a[]={2,4,6,1,3,5}; int b[3][3]={{2,4,6},{1,3,5},{0,1,2}}; //显示数组的值 cout<<"show_array1(int*,int):"<<endl; show_array1(a,6); show_array1(&b[0][0],3*3); //用sort1排序并显示 cout<<"sort(int*,int) and show_array1(int*,int): "<<endl; sort(a,6); show_array1(a,6); sort(&b[0][0],3*3); show_array1(&b[0][0],9); //显示数组的值 cout<<"show_array2(int a[],int):"<<endl; show_array2(a,6); show_array2(&b[0][0],3*3);}//显示数组,用指针当参数void show_array1(int *p,int size) { for(int i=0;i<size;i++) cout<<*(p+i)<<" "; cout<<endl;}//显示数组,用数组当参数void show_array2(int a[],int size) { for(int i=0;i<size;i++) cout<<a[i]<<" "; cout<<endl;} //对数组按从大到小顺序排序void sort(int *p,int size) { int t; for (int i=0;i<size-1;i++) for (int j=i+1;j<size;j++) if (*(p+i)<=*(p+j)) { t=*(p+i); *(p+i)=*(p+j); *(p+j)=t; }}#include<iostream.h>//定义结构struct student { char name[10]; float grade;};//更改student数据的grade成员,参数形式为引用 void change(student &x,float grade) { x.grade=grade;}//更改student数据的grade成员,参数形式为指针 void change1(student *p,float grade) { p->grade=grade;}//更改student类型的数据,普通参数形式 void change2(student x,float grade) { x.grade=grade;}//显示student类型的数据,参数形式为引用void show(student &x) { cout<<x.name<<" "<<x.grade<<endl;}//在main()函数中,测试对结构的处理函数void main() { student a={"ZhangHua",351.5}; //显示a的数据 show(a); //用change修改分数,并显示cout<<"change(student &x,float grade):"<<endl; change(a,360); show(a); //用change1修改分数,并显示cout<<"change1(student *p,float grade):"<<endl; change1(&a,375); show(a); //用change2修改分数,并显示cout<<"change2(student x,float grade):"<<endl; change2(a,380.5); show(a);}#include<iostream.h>//定义函数计算数组的和和平均值void calculate(int a[],int size,int& sum,float& average){ sum=0; for (int i=0;i<size;i++) { sum+=a[i]; } average=sum/size;}//定义显示数组的函数void put_arr(int a[],int size){ for(int i=0;i<size;i++) cout<<a[i]<<" "; cout<<endl;}main(){ //声明数组并初始化 int asize,bsize; int a[]={2,4,6,1,3,5}; int b[]={1,3,5,7,9,11,13,15}; //显示数组的值 asize=sizeof(a)/sizeof(int);cout<<"put_arr(a,asize):"<<endl; put_arr(a,asize); bsize=sizeof(b)/sizeof(int);cout<<"put_arr(b,bsize):"<<endl; put_arr(b,bsize); //计算数组的和和平均值 float a_ave,b_ave; int a_sum,b_sum;cout<<"calculate(a,asize,a_sum,a_ave):"<<endl; calculate(a,asize,a_sum,a_ave); cout<<"a_sum="<<a_sum; cout<<" a_ave="<<a_ave<<endl;cout<<"calculate(b,bsize,b_sum,b_ave):"<<endl; calculate(b,bsize,b_sum,b_ave); cout<<"b_sum="<<b_sum; cout<<" b_ave="<<b_ave<<endl;}#include<iostream.h>//参数为函数指针的函数int get_result(int a, int b, int (*sub)(int,int)){ int r; r=sub(a,b); return r;} //计算最大值int max(int a, int b){ cout<<"In max"<<endl; return((a > b) ? a: b);}//计算最小值int min(int a, int b){ cout<<"In min"<<endl; return((a < b) ? a: b);}//求和int sum(int a, int b){ cout<<"In sum"<<endl; return(a+b);}//测试指向函数的指针void main(void){ int a,b,result; //测试3次 for (int i=1;i<=3;i++) { cout<<"Input a and b :"; cin>>a>>b;cout<<i<<"\tget_result("<<a<<","<<b<<", &max):"<<endl; result =get_result(a, b, &max); cout<<"Max of "<<a<<" and "<<b<<" is "<<result<<endl; result = get_result(a, b, &min); cout<<"Min of "<<a<<" and "<<b<<" is "<<result<<endl; result = get_result(a, b, &sum); cout<<"Sum of "<<a<<" and "<<b<<" is "<<result<<endl; }}#include<iostream.h>#include<stdio.h>#define size 3//定义book结构类型struct book{ char title[20]; char author[15]; int pages; float price;};//book结构的输入函数input_book(book& bk,char *name){ cout<<name<<":"<<endl; cout<<"title:"; cin>>bk.title; cout<<"author:"; cin>>bk.author; cout<<"pages:"; cin>>bk.pages; cout<<"price:"; cin>>bk.price;}//book结构的输出函数output_book(book& bk,char *name){ cout<<name<<": "; cout<<bk.title<<" "; cout<<bk.author<<" "; cout<<bk.pages<<" "; cout<<bk.price<<endl;}void main(void){ //声明变量和结构数组 int i; char str[20]; book bk[size]; //输入结构数组 for(i=0;i<size;i++) { sprintf(str,"bk[%d]",i+1); input_book(bk[i],str); } //显示结构数组 for(i=0;i<size;i++) { sprintf(str,"bk[%d]",i+1); output_book(bk[i],str); }}#include<iostream.h>//声明全局变量并初始化extern int a[]={1,2,3};extern float p=3.14;//在show()函数中使用外部变量show() { int i; cout<<"In show():"<<endl;cout<<"p="<<p<<endl;cout<<"a[]: "; for (i=0;i<=2;i++) cout<<a[i]<<" "; cout<<endl; //cout<<"y="<<y<<endl; 编译出错!}//声明外部变量并初始化int y=5678;//在main()函数中使用外部变量main() { //声明局部变量 int i,p=100; //显示重名变量cout<<"In main():"<<endl; cout<<"p="<<p<<endl; //显示全局变量 cout<<"::p="<<::p<<endl;cout<<"a[]: "; for (i=0;i<=2;i++) cout<<a[i]<<" "; cout<<endl; cout<<"y="<<y<<endl; //编译正确! show(); //调用函数}#include <iostream.h>//使用静态变量的计数器函数 count1() { //声明静态变量i,并置初值为0。i在count()中局部可见 static int i=0; return(++i);}//使用局部变量的计数器函数 count2() { int i=0; return(++i);}//在main()函数中调用count()函数main() { int i; //调用count1()10次 cout<<"count1():"<<endl; for (i=1;i<=12;i++) cout<<count1()<<" "; cout<<endl; //调用count2()10次 cout<<"count2():"<<endl; for (i=1;i<=12;i++) cout<<count2()<<" "; cout<<endl;}// p1-851.cpp 为main()函数文件#include<iostream.h>main(){ int i,s=0; extern int fact(int x); for (i=2;i<=6;i=i+2) s+=fact(i); cout<<"s="<<s<<endl;}// p1-852.cpp为计算阶乘函数文件//定义fact()函数为外部(extern)函数extern int fact(int x) { int i,t=1; if(x==0) return(1); for(i=1;i<=x;i++) t*=i; return(t);}#include<iostream.h>#include<stdio.h>#include<string.h>#include<process.h>main() { //声明变量 FILE *fp1; char str[80]; //从键盘上任意输入一个字符串 cout<<"Inupt a string:"; cin.getline(str,80); //以写入方式打开d.dat文件 if ((fp1=fopen("d.dat","w"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 写"流"文件 fputs(str,fp1); fputs("\n",fp1); fclose(fp1); //关闭文件 // 以读方式打开d.dat文件 if ((fp1=fopen("d.dat","r"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 循环从"流"文件读取字符,并显示 char ch; while ((ch=fgetc(fp1))!=EOF) cout<<ch; cout<<endl; fclose(fp1); //关闭文件}#include<iostream.h>#include <process.h>#include<stdio.h>#include<conio.h>void main(void) { //变量声明 char ch; FILE *fp1; //以写入方式打开d.dat文件 if ((fp1=fopen("d.dat","w"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } //循环从键盘上读取字符,写入"流"文件 cout<<"char:"<<endl; cin>>ch; while (ch!='*') { fputc(ch,fp1); //将字符写到fp1指向的"流"文件中 cin>>ch; } fclose(fp1); //关闭文件 // 以读方式打开d.dat文件 if ((fp1=fopen("d.dat","r"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 循环从"流"文件读取字符,并显示 while ((ch=fgetc(fp1))!=EOF) cout<<ch<<" "; cout<<endl; fclose(fp1); //关闭文件}#include<iostream.h>#include<stdio.h>#include<string.h>#include<process.h>main() { //声明变量 int i=0; char p[100]; // 声明输入缓冲区 FILE *fp1; // 声明文件指针变量 //以写入方式打开d.dat文件 if ((fp1=fopen("d.dat","w"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 写文件操作 for (i=1;;i++) { //无条件循环 cout<<i<<" string:"; cin>>p; //从键盘上输入数据 if (stricmp(p,"end")) { //如果输入的字符串为end,则结束循环 fputs(p,fp1); //写入文件操作 fputs("\n",fp1); } else break; //退出循环 } fclose(fp1); //关闭文件 // 以读方式打开d.dat文件 if ((fp1=fopen("d.dat","r"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 循环从文件读取字符,并显示 while (fgets(p,100,fp1)!=NULL) cout<<p; fclose(fp1); //关闭文件}#include<iostream.h>#include<stdio.h>#include<string.h>#include<process.h>#include<stdlib.h>#define MAX 10main() { //声明变量 int i,n; FILE *fp1; // 声明文件指针变量 //以写入方式打开d.dat文件 if ((fp1=fopen("d.dat","w"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 写文件操作 for (i=1;i<=MAX;i++) { n=rand(); //产生1个整数随机数 putw(n,fp1); cout<<n<<" "; } cout<<endl<<"--------------------"<<endl; fclose(fp1); //关闭文件 // 以读方式打开d.dat文件 if ((fp1=fopen("d.dat","r"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 循环从"流"文件读取字符,并显示 while ((n=getw(fp1))!=EOF) cout<<n<<" "; fclose(fp1); //关闭文件}#include<iostream.h>#include<stdio.h>#include<string.h>#include<process.h>#include<stdlib.h>#define MAX 3main() { //定义结构类型 struct student { int num; char name[10]; float grade; }; //声明数组和变量 student st[3]; int i; FILE *fp1; // 声明文件指针变量 //以写入方式打开d.dat文件 if ((fp1=fopen("d.dat","w"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } //从键盘上读数据,写入文件 cout<<" num name grade"<<endl; for (i=0;i<MAX;i++) { cout<<i+1<<" "; cin>>st[i].num; cin>>st[i].name; cin>>st[i].grade; fprintf(fp1,"%d %s %f\n",st[i].num,st[i].name,st[i].grade); } fclose(fp1); //关闭文件 // 以读方式打开d.dat文件 if ((fp1=fopen("d.dat","r"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 循环从"流"文件读取字符,并显示 student t; while ((fscanf(fp1, "%d %s %f",&t.num,t.name,&t.grade))!=EOF) { cout<<t.num<<" "; cout<<t.name<<" "; cout<<t.grade<<endl; } fclose(fp1); //关闭文件}#include<iostream.h>#include <process.h>#include <stdlib.h> #include <stdio.h> int main(void) { FILE *fpd,*fpw; // 声明FILE结构指针变量 unsigned char dw; int i=0; //以二进制读方式打开Calc.exe文件 if((fpd=fopen("C:\WINDOWS\Calc.exe", "rb"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 以二进制写方式打开test.exe文件 if((fpw=fopen("test.exe", "wb+"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } // 二进制文件读写操作,每次指定读写1个字节 while(!feof(fpd)) { //使用feof()判断文件尾 fread(&dw, 1, 1, fpd); fwrite(&dw, 1, 1, fpw); } // 关闭文件 fclose(fpd); fclose(fpw); //执行Calc.exe和Calc.exe文件 cout<<"1 Run C:\WINDOWS\Calc.exe"<<endl; system("C:\WINDOWS\Calc.exe"); cout<<"-------------------"<<endl; cout<<"2 Run test.exe!"<<endl; system("test.exe");}#include<iostream.h>#include <process.h>#include<stdio.h>#include<conio.h>void main(void) { //声明变量 int i; char ch; FILE *fp1; //以写入方式打开d.dat文件 if ((fp1=fopen("d.dat","w"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } //循环从键盘上读取字符,写入文件 cout<<"char:"; cin>>ch; while (ch!='*') { fputc(ch,fp1); //将字符写到fp1指向的"流"文件中 cin>>ch; } cout<<"--------------------"<<endl; fclose(fp1); //关闭文件 //以读方式打开d.dat文件 if ((fp1=fopen("d.dat","r"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } //循环从文件读取字符,并显示 while ((ch=fgetc(fp1))!=EOF) cout<<ch; cout<<endl<<"--------------------"<<endl; //以下按倒序方式读取文件中的字符,并显示 for (i=-1;;i--) { fseek(fp1,i,2); //设置文件指针,偏移量为i,相对文件尾 if ((ch=fgetc(fp1))!=EOF) cout<<ch; else break; } cout<<endl<<"--------------------"<<endl; //以下读取"流"文件中偶数位置上的字符,并打印 long position; for (i=0;;i=i+2) { fseek(fp1,i,0); //设置文件指针,偏移量为i,相对文件头 position=ftell(fp1); if ((ch=fgetc(fp1))==EOF) //遇到文件尾,则退出,否则打印读取的字符 break; else { cout<<position<<" :"<<ch<<endl; } } cout<<endl; fclose(fp1); //关闭文件}#include<iostream.h>#include<stdio.h>#include<process.h>#include<stdlib.h>#define MAX 5//显示数组的数据void show_array(double x[],int size) { for(int i=0;i<size;i++) cout<<x[i]<<" "; cout<<endl;}//main函数测试数组数据的文件读写int main(void) { //声明变量 FILE *fp; // 声明FILE结构指针变量 int i; double a[MAX]={1.0,1.2,1.4,1.6,1.8}; //显示数组a的数据 cout<<"a:"; show_array(a,MAX); //打开d.dat文件 if ((fp=fopen("d.dat","wb+"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } //以单个元素对数组进行文件读操作 for(i=0;i<MAX;i++) { fwrite(&a[i], sizeof(double), 1, fp); } rewind(fp); //恢复读写指针的位置 //以单个元素对数组进行文件读操作 double b[MAX]; for(i=0;i<MAX;i++) { if (!feof(fp)) //使用feof()判断文件尾 fread(&b[i], sizeof(double), 1, fp); else break; } cout<<"b:"; show_array(b,MAX);//显示数组b的数据 fclose(fp); // 关闭文件 //打开d1.dat文件 if ((fp=fopen("d1.dat","wb+"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } //将数组当成数据块写入文件 fwrite(&a, sizeof(double), MAX, fp); rewind(fp); //恢复读写指针的位置 //将数组当成数据块从文件中读取 double c[MAX]; if (!feof(fp)) //使用feof()判断文件尾 fread(&c, sizeof(double),MAX,fp); cout<<"c:"; show_array(c,MAX); //显示数组c的数据 fclose(fp); // 关闭文件}#include<iostream.h>#include<stdio.h>#include<process.h>#include<stdlib.h>#define MAX 5//定义结构类型struct student { int num; char name[20]; float grade;};//显示student结构数据void show_str(student a,char *name) { cout<<name<<":"<<endl; cout<<a.num<<" "<<a.name<<" "<<a.grade; cout<<endl;}//main函数测试结构数据的文件读写int main(void) { //声明变量 FILE *fp; //声明FILE结构指针变量 student st={1001,"ZhangBin",85.5}; //显示st结构数据 show_str(st,"st"); //打开d.dat文件 if ((fp=fopen("d.dat","wb+"))==NULL) { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } //用fprintf()函数写结构数据到文件 fprintf(fp,"%d %s %f",st.num,st.name,st.grade); rewind(fp); //恢复读写指针的位置 //用fscanf()函数读文件中的数据赋值给结构并显示 student temp; fscanf(fp, "%d %s %f",&temp.num,temp.name,&temp.grade); show_str(temp,"temp"); cout<<"-----------------------"<<endl; fclose(fp); // 关闭文件 //将结构数据当成数据块进行读写 if ((fp=fopen("d1.dat","wb+"))==NULL) //打开d1.dat文件 { cout<<"\nCould not open the file."<<endl; cout<<"Exiting program."<<endl; exit(1); //结束程序执行 } //声明结构数组并初始化 int i; student starr[3]={{101,"WangPing",92},{102,"Li",85},{103,"LiuMin",97}}; //显示结构数组 for(i=0;i<3;i++) show_str(starr[i],"starr"); //将结构数组当成数据块写入文件 fwrite(starr, sizeof(student), 3, fp); rewind(fp); //恢复读写指针的位置 //按数据块从文件中读取数据赋值给结构数组 student temp_arr[3]; if (!feof(fp)) //使用feof()判断文件尾 fread(temp_arr, sizeof(student),3,fp); for(i=0;i<3;i++) show_str(temp_arr[i],"temp_arr"); fclose(fp); // 关闭文件}#include<stdio.h>#include<stdlib.h>#include<iostream.h>int main(void) { //声明变量 char ch; char str[20]; int n; float x; //用stdin从键盘上输入数据 fprintf(stdout,"ch str\n"); fscanf(stdin,"%c %s",&ch,str); fprintf(stdout,"n x \n"); fscanf(stdin,"%d %f",&n,&x); cout<<"----------------"<<endl; //输出显示 fprintf(stdout,"ch=%c str=%s",ch,str); fprintf(stdout,"\nn=%d x=%f",n,x); cout<<endl;}#include <stdio.h>void main( void ){ int c; /* Create an error by writing to standard input. */ putc( 'A', stdin ); if( ferror( stdin ) ) { perror( "Write error" ); clearerr( stdin ); } /* See if read causes an error. */ printf( "Will input cause an error? " ); c = getc( stdin ); if( ferror( stdin ) ) { perror( "Read error" ); clearerr( stdin ); }}#include<iostream.h>#include<math.h> //此预处理指令不可少const double HD=3.1415926/180;main() { cout<<"x\tsin(x)"<<endl; for (int i=0;i<=180;i=i+30) cout<<i<<"\t"<<sin(i*HD)<<endl;}#include<iostream.h>//以下是几个简单宏替换预处理指令#define YES 1#define PI 3.1415926#define RAD PI/180#define MESG "This is a string."//以下是主程序 main() { //以下各语句使用了宏替换 cout<<"YES="<<YES<<endl; if (YES) cout<<"PI="<<PI<<endl; cout<<"RAD="<<RAD<<endl; cout<<MESG<<endl;}#include<iostream.h>//以下为带参数宏替换的预处理指令 #define PRINT(k) cout<<(k)<<endl;#define MAX(a,b) ((a)>(b) ? (a):(b))main(){ int i=3,j=2; //MAX(a,b)宏替换的使用 cout<<"MAX(10,12)="<<MAX(10,12)<<endl; cout<<"MAX(i,j)="<<MAX(i,j)<<endl; cout<<"MAX(2*i,j+3)="<<MAX(2*i,j+3)<<endl; //PRINT(k)宏替换的使用 PRINT(5); PRINT(MAX(7,i*j)); }#include<iostream.h>#define PI 3.1416main() { int i=100;#if 1 cout<<"i="<<i<<endl;#endif#ifdef PI cout<<"1 PI="<<PI<<endl;#endif#ifndef PI cout<<"2 PI="<<PI<<endl; //此语句不被编译执行#endif}#include<iostream.h>const int MAX=5; //假定栈中最多保存5个数据//定义名为stack的类,其具有栈功能class stack { //数据成员 float num[MAX]; //存放栈数据的数组 int top; //指示栈顶位置的变量public: //成员函数 void init(void) { top=0; } //初始化函数 void push(float x) //入栈函数 { if (top==MAX){ cout<<"Stack is full !"<<endl; return; }; num[top]=x; top++; } float pop(void) //出栈函数 { top--; if (top<0){ cout<<"Stack is underflow !"<<endl; return 0; }; return num[top]; }}//以下是main()函数,其用stack类创建栈对象,并使用了这些对象main(void){ //声明变量和对象 int i; float x; stack a,b; //声明(创建)栈对象 //以下对栈对象初始化 a.init(); b.init(); //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈对象 for (i=1; i<=MAX; i++) a.push(2*i); //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示 for (i=1; i<=MAX; i++) cout<<a.pop()<<" "; cout<<endl; //以下利用循环和push()成员函数将键盘输入的数据依次入b栈 cout<<"Please input five numbers."<<endl; for (i=1; i<=MAX; i++) { cin>>x; b.push(x); } //以下利用循环和pop()成员函数依次弹出b栈中的数据并显示 for (i=1; i<=MAX; i++) cout<<b.pop()<<" ";}#include<iostream.h>const int MAX=5; //假定栈中最多保存5个数据//定义名为stack的具有栈功能的类class stack { //数据成员 float num[MAX]; //存放栈数据的数组 int top; //指示栈顶位置的变量public: //成员函数 stack(void) //初始化函数 { top=0; cout<<"Stack initialized."<<endl; } void push(float x) //入栈函数 { if (top==MAX){ cout<<"Stack is full !"<<endl; return; }; num[top]=x; top++; } float pop(void) //出栈函数 { top--; if (top<0){ cout<<"Stack is underflow !"<<endl; return 0; }; return num[top]; }}//以下是main()函数,其用stack类创建栈对象,并使用了这些对象main(void){ //声明变量和对象 int i; float x; stack a,b; //声明(创建)栈对象并初始化 //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈 for (i=1; i<=MAX; i++) a.push(2.0*i); //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示 for (i=1; i<=MAX; i++) cout<<a.pop()<<" "; cout<<endl; //以下利用循环和push()成员函数将键盘输入的数据依次入b栈 cout<<"Please input five numbers."<<endl; for (i=1; i<=MAX; i++) { cin>>x; b.push(x); } //以下利用循环和pop()成员函数依次弹出b栈中的数据并显示 for (i=1; i<=MAX; i++) cout<<b.pop()<<" "; cout<<endl;}#include<iostream.h>const int MAX=5; //假定栈中最多保存5个数据//定义名为stack的具有栈功能的类class stack { //数据成员 float num[MAX]; //存放栈数据的数组 int top; //指示栈顶位置的变量public: //成员函数 stack(char c) //初始化函数 { top=0; cout<<"Stack "<<c<<" initialized."<<endl; } void push(float x) //入栈函数 { if (top==MAX){ cout<<"Stack is full !"<<endl; return; }; num[top]=x; top++; } float pop(void) //出栈函数 { top--; if (top<0){ cout<<"Stack is underflow !"<<endl; return 0; }; return num[top]; }}//以下是main()函数,其用stack类创建栈对象,并使用了这些对象main(void){ //声明变量和对象 int i; float x; stack a('a'),b('b'); //声明(创建)栈对象并初始化 //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈 for (i=1; i<=MAX; i++) a.push(2.0*i); //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示 for (i=1; i<=MAX; i++) cout<<a.pop()<<" "; cout<<endl;}#include<iostream.h>main(){ //定义一个名为student的类 class student { int num; char *name; float grade; public: //定义构造函数 student(int n,char *p,float g): num(n),name(p),grade(g){} display(void) { cout<<num<<" ,"<<name<<","<<grade<<endl; } }; student a(1001,"Liming",95),b(1002,"ZhangHua",96.5); //创建对象,并初始化 //student c; 错误,没提供参数 a.display(); //显示对象a中的数据 b.display(); //显示对象b中的数据}#include <iostream.h>#include <stdlib.h>//定义timer类class timer{ long minutes;public: //无参数构造函数 timer(void) { minutes =0; }; //字符指针参数的构造函数 timer(char *m) { minutes = atoi(m); }; //整数类型的构造函数 timer(int h, int m) { minutes = 60*h+m ; }; //双精度浮点型构造函数 timer(double h) { minutes = (int) 60*h ; }; long getminutes(void) { return minutes ; };};//main()函数的定义main(void){ //使用double类型的构造函数创建对象 timer start(8.30),finish(17.30);cout<<"finish(17.30)-start(8.30)="; cout<<finish.getminutes()-start.getminutes()<<endl; //使用char指针类型的构造函数创建对象 timer start0("500"),finish0("800"); //创建对象cout<<"finish0(\"800\")-start0(\"500\")="; cout<<finish0.getminutes()-start0.getminutes()<<endl; //使用无参数构造函数和整型构造函数创建对象 timer start1; timer finish1(3,30); cout<<"finish1(3,30)-start1="; cout<<finish1.getminutes()-start1.getminutes()<<endl; return 0;}#include <iostream.h>//定义rect类class rect { int length; int width; int area;public: rect(int l=1,int w=1) { length=l; width=w; area=length*width; } void show_rect(char *name) { cout<<name<<":"<<endl; cout<<"length="<<length<<endl; cout<<"width="<<width<<endl; cout<<"area="<<area<<endl; }};//测试使用rect类void main(void){ //用rect类创建对象 rect a; rect b(2); rect c(2,3); //调用对象的函数显示对象中的数据 a.show_rect("a"); b.show_rect("b(2)"); c.show_rect("c(2,3)");}#include<iostream.h>const int MAX=5; //假定栈中最多保存5个数据//定义名为stack的具有栈功能的类class stack { //数据成员 double num[MAX]; //存放栈数据的数组 int top; //指示栈顶位置的变量public: //成员函数 stack(char *name) //构造函数 { top=0; cout<<"Stack "<<name<<" initialized."<<endl; } ~stack(void) //析构函数 { cout << "Stack destroyed." << endl; //显示信息 } void push(double x)//入栈函数 { if (top==MAX){ cout<<"Stack is full !"<<endl; return; }; num[top]=x; top++; } double pop(void) //出栈函数 { top--; if (top<0){ cout<<"Stack is underflow !"<<endl; return 0; }; return num[top]; }}//以下是main()函数,其用stack类创建栈对象,并使用了这些对象main(void){ double x; //声明(创建)栈对象并初始化 stack a("a"),b("b"); //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈 for (x=1; x<=MAX; x++) a.push(2.0*x); //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示cout<<"a: "; for (int i=1; i<=MAX; i++) cout<<a.pop()<<" "; cout<<endl; //从键盘上为b栈输入数据,并显示 for(i=1;i<=MAX;i++) { cout<<i<<" b:"; cin>>x; b.push(x); }cout<<"b: "; for(i=1;i<=MAX;i++) cout<<b.pop()<<" "; cout<<endl;}#include<iostream.h>#define MAX 5//定义stack类接口class stack{ int num[MAX]; int top;public: stack(char *name); //构造函数原型 ~stack(void); //析构函数原型 void push(int n); int pop(void);};//main()函数测试stack类main(void){ int i,n; //声明对象 stack a("a"),b("b"); //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈 for (i=1; i<=MAX; i++) a.push(2*i); //以下利用循环和pop()成员函数依次弹出a栈中的数据,并显示cout<<"a: "; for (i=1; i<=MAX; i++) cout<<a.pop()<<" "; cout<<endl; //从键盘上为b栈输入数据,并显示 for(i=1;i<=MAX;i++) { cout<<i<<" b:"; cin>>n; b.push(n); }cout<<"b: "; for(i=1;i<=MAX;i++) cout<<b.pop()<<" "; cout<<endl; return 0;}//-------------------------// stack成员函数的定义//-------------------------//定义构造函数stack::stack(char *name){ top=0; cout << "Stack "<<name<<" initialized." << endl;}//定义析构函数stack::~stack(void){ cout << "stack destroyed." << endl; //显示信息}//入栈成员函数void stack::push(int n){ if (top==MAX){ cout<<"Stack is full !"<<endl; return; }; num[top]=n; top++;}//出栈成员函数int stack::pop(void){ top--; if (top<0){ cout<<"Stack is underflow !"<<endl; return 0; }; return num[top];}#include<iostream.h>//定义一个全部为public:模式的类class ex {public: int value; void set(int n) { value=n; } int get(void) { return value; }};//测试使用ex类main(){ ex a; //创建对象 //以下通过成员函数访问对象数据 a.set(100);cout<<"a.get()="; cout<<a.get()<<endl; //以下直接访问对象的数据成员 a.value=200; cout<<"a.value="; cout<<a.value<<endl;}#include <iostream.h>// ex_class类接口定义class ex_class{private: int iv; double dv;public: ex_class(void); ex_class(int n,double x); void set_ex_class(int n,double x); void show_ex_class(char*);};//定义ex_class类的构造函数ex_class::ex_class(void):iv(1), dv(1.0) { }ex_class::ex_class(int n,double x):iv(n), dv(x) { }//定义ex_class类的成员函数void ex_class::set_ex_class(int n,double x){ iv=n; dv=x;}void ex_class::show_ex_class(char *name){ cout<<name<<": "<<endl; cout <<"iv=" <<iv<< endl; cout <<"dv=" <<dv<< endl;}//使用ex_class类void main(void){ ex_class obj1; obj1.show_ex_class("obj1"); obj1.set_ex_class(5,5.5); obj1.show_ex_class("obj1"); ex_class obj2(100,3.14); obj2.show_ex_class("obj2"); obj2.set_ex_class(2000,1.732); obj2.show_ex_class("obj2");}#include<iostream.h>//定义一个含有static数据成员的类class ex{ static int num; //static数据成员public: ex() {num++;} ~ex() {num--;} disp_count() { cout<<"The current instances count:"; cout<<num<<endl; }};int ex::num=0; //设置static数据成员的初值//main()函数测试ex类main(){ ex a; a.disp_count(); ex *p; p=new ex; p->disp_count(); ex x[10]; x[0].disp_count(); delete p; a.disp_count();}#include<iostream.h>//定义一个含有static数据成员的类class ex{ static int num; //static数据成员public: ex() {num++;} ~ex() {num--;} static disp_count(void) //static成员函数 { cout<<"The current instances count:"; cout<<num<<endl; }};int ex::num=0; //设置static数据成员的初值//main()函数测试ex类main(){ ex a; a.disp_count(); ex *p; p=new ex; p->disp_count(); ex x[10]; ex::disp_count(); //直接用类作用域符引用静态成员函数 delete p; ex::disp_count(); //直接用类作用域符引用静态成员函数}#include <iostream.h>class ex_class { int value;public: ex_class(int n) { value=n; cout << "Stack initialized." << endl; } ~ex_class() { cout << "The Object destroyed." <<endl; } void set_value(int n); void show_val(char *name);} ;//在类外定义内联成员函数inline void ex_class::set_value(int n) { value=n;}//在类外定义非内联成员函数void ex_class::show_val(char *name) {cout<<name<<": "; cout<<value<<endl;}//在main()函数中测试ex_class类main(void){ //创建对象x和y ex_class x(100),y(200); //显示对象的数据 x.show_val("x"); y.show_val("y"); //设置新值给对象 x.set_value(1); y.set_value(2); //显示对象的数据 x.show_val("x"); y.show_val("y"); return 0;}#include <iostream.h>//定义空类emptyclass empty{};//在main()函数中用空类创建对象main(){ empty a,*p; //编译通过 cout<<"Test a empty class."<<endl;}#include<iostream.h>//用struct关键字定义ex_class类struct ex_class { ex_class(int n=1): value(n) {} void set_value(int n) { value=n; } show_obj(char *name) {cout<<name<<": "<<value<<endl; }private: int value;}//测试 ex_class类main(){ //用ex_class创建对象 ex_class a,b(3); a.show_obj("a"); b.show_obj("b"); a.set_value(100); b.set_value(200); a.show_obj("a"); b.show_obj("b");}#include <iostream.h>#include<string.h>//定义双亲(parent)类class parent { char f_name[20]; char m_name[20]; char tel[10];public: // parent类的构造函数,其带有缺省值 parent(char *p1="",char *p2="",char *p3="") { strcpy(f_name,p1); strcpy(m_name,p2); strcpy(tel,p3); } //显示parent对象的数据 show_parent(void) { cout<<"The parent:"<<endl; cout<<" father's name:"<<f_name<<endl; cout<<" mother's name:"<<m_name<<endl; cout<<" tel:"<<tel<<endl; }};//定义student类class student { int num; char name[20]; float grade; parent pt; public: // student类的构造函数 student(int n,char *str,float g,class parent t) { num=n; strcpy(name,str); grade=g; pt=t; } //显示student对象的数据 show_student(void) { cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"grade:"<<grade<<endl; pt.show_parent(); }};//main()函数测试student类的对象main(void){ //创建双亲对象 parent p1("ZhangHua","LiLan","83665215");//创建学生对象 student st(10001,"ZhangHui",91.5,p1); //显示学生信息cout<<"p1:"<<endl;p1.show_parent(); //显示学生信息cout<<"st:"<<endl; st.show_student();}#include <iostream.h>#include <stdlib.h>//定义timer类class timer{ long minutes;public: //定义重载成员函数 settimer(char *m) { minutes = atoi(m); }; //定义重载成员函数 settimer(int h, int m) { minutes = 60*h+m ; }; //定义重载成员函数 settimer(double h) { minutes = (int) 60*h ; }; long getminutes(void) { return minutes; };};//main()函数的定义main(void){ timer start,finish; //创建对象 //使用重载成员函数 start.settimer(8,30); finish.settimer(9,40); cout<<"finish.settimer(9,40)-start.settimer(8,30):"; cout<<finish.getminutes()-start.getminutes()<<endl; //使用重载成员函数 start.settimer(2.0); finish.settimer("180"); cout<<"finish.settimer(\"180\")-start.settimer(2.0):"; cout<<finish.getminutes()-start.getminutes()<<endl; return 0;}#include <iostream.h>//定义复数类class complex{ float real; //实部 float image; //虚部public: //重载的运算符"+"的原型 complex operator+ (complex right); //重载赋值运算符"="的定义 complex operator= (complex right); void set_complex(float re, float im); void put_complex(char *name);};//重载加法运算符"+"的定义complex complex::operator+ (complex right) { complex temp; temp.real = this->real + right.real; temp.image = this->image + right.image; return temp;}//重载加赋值运算符"="的定义complex complex::operator= (complex right) { this->real = right.real; this->image = right.image; return *this;}//定义set_complex()成员函数void complex::set_complex(float re, float im) { real = re; image = im;}//定义put_complex()成员函数void complex::put_complex(char *name) { cout<<name<<": "; cout << real << ' '; if (image >= 0.0 ) cout << '+'; cout << image << "i\n";}//在main()函数中使用complex类的对象main(void){ complex A, B, C; //创建复数对象 //设置复数变量的值 A.set_complex(1.2, 0.3); B.set_complex(-0.5, -0.8); //显示复数数据 A.put_complex("A"); B.put_complex("B"); //赋值运算,显示结果 C = A; C.put_complex("C=A"); //加法及赋值运算,显示结果 C = A + B; C.put_complex("C=A+B"); return 0;}// Example of the friend class#include <iostream.h>//定义YourClass类,class YourClass{//指定YourOtherClass是它的友元类friend class YourOtherClass; private: int num;public: YourClass(int n){num=n;} display(char *YCname){ cout<<YCname<<".num :"; cout<<num<<endl; }};//定义YourOtherClass,它是YourClass类的友元类class YourOtherClass{public: //使用YourClass类的私有成员 void disp1(YourClass yc,char *YCname){ cout<<YCname<<".num :"; cout<<yc.num<<endl; } //使用YourClass类的公共成员 void disp2(YourClass yc,char* YCname){ yc.display(YCname); }};//在main()函数中创建和使用YourClass和YourOtherClass类对象main(void){ //声明YourClass类对象 YourClass a(10),b(100); //显示a和b对象的值 cout<<"YourClass:"<<endl; a.display("a"); b.display("b"); //声明YourOtherClass类对象 YourOtherClass temp; //通过temp显示a和b对象的值 cout<<"YourOtherClass:"<<endl; temp.disp1(a,"a"); temp.disp2(b,"b");}#include<iostream.h>//Y类的不完全定义class Y;//X类的定义 class X { public: void disp(Y py,char *name); //成员函数原型};//定义Y类class Y { //声明本类的友元函数 //X类的disp()为本例的友元函数 friend void X::disp(Y py,char *name); //普通函数putY() 为本例的友元函数 friend void putY(Y& yc,char *name); private: //私有成员 int num; dispY(char *name){ cout<<name<<".num="<<num<<endl; }public: //公共成员函数 Y(int n){ num=n; }};//X类成员函数的实现部分void X::disp(Y py,char *name){ cout<<"In X::disp():"<<endl; py.dispY(name); //访问Y类的私有函数}//普通函数putY()的定义void putY(Y& yc,char *name){ cout<<"In getY:"<<endl; yc.dispY(name); cout<<name<<".num="; cout<<yc.num<<endl;}//在main()函数测试X和Y类的功能main(){ //创建Y和X类的对象 Y y1(100),y2(200); X x; //不可用Y类对象的私有成员函数显示 //y1.dispY("y1"); //y2.dispY("y2"); //调用X类对象的友元函数显示 x.disp(y1,"y1"); x.disp(y2,"y2"); //用getY函数显示Y类的对象显示 putY(y1,"y1"); putY(y2,"y2");}#include <iostream.h>//定义日期类class Date { //定义友元重载输入运算符函数 friend istream& operator >> (istream& input,Date& dt ); //定义友元重载输出运算符函数 friend ostream& operator<< (ostream& output,Date& dt ); int mo, da, yr;public: Date(void){ //无参数构造函数 yr = 0; mo = 0; da = 0; } Date( int y, int m, int d ) //带参数构造函数 { yr = y; mo = m; da = d; }};//定义">>"运算符重载函数istream& operator >> ( istream& input, Date& dt ){ cout<<"Year:"; input>>dt.yr; cout<<"Month:"; input>>dt.mo; cout<<"Day:"; input>>dt.da; return input;}//定义"<<"运算符重载函数ostream& operator<< ( ostream& output, Date& dt ){ output<< dt.yr << '/' << dt.mo << '/' << dt.da<<endl; return output;}//在main()函数中测试Date类的插入(<<)和提取(>>)运算符void main(){ //声明对象 Date dt1(2002,5,1),dt2; //显示dt1对象 cout<<dt1; //对dt2对象进行输入和输出 cin>>dt2; cout<<dt2;}#include<iostream.h>//定义ex类class ex_class { int a; double b; public: ex_class(int n=1,double x=1.0):a(n),b(x) {} void show_value(char *name) { cout<<name<<" :"<<endl; cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; }};//定义main()函数main(){ //创建ex_class的对象并显示 ex_class obj1,obj2(100,3.5); obj1.show_value("obj1"); obj2.show_value("obj2"); //创建ex_class的指针变量 ex_class *p; //p指向obj1并显示 p=&obj1; p->show_value("p->obj1"); //p指向obj2并显示 p=&obj2; (*p).show_value("(*p)obj2"); //p指向动态创建的对象并显示 p=new ex_class; p->show_value("p->new"); delete p; //删除对象}#include<iostream.h>//基类Boxclass Box { int width,height;public: void SetWidth(int w) { width=w; } void SetHeight(int h) { height=h; } int GetWidth() {return width;} int GetHeight() {return height;}};//派生类ColoredBoxclass ColoredBox:public Box{ int color;public: void SetColor(int c){ color=c; } int GetColor() {return color;}};// 在main()中测试基类和派生类main(void){ //声明并使用ColoredBox类的对象 ColoredBox cbox; cbox.SetColor(3); //使用自己的成员函数 cbox.SetWidth(150); //使用基类的成员函数 cbox.SetHeight(100); //使用基类的成员函数 cout<<"cbox:"<<endl; cout<<"Color:"<<cbox.GetColor()<<endl; //使用自己的成员函数 cout<<"Width:"<<cbox.GetWidth()<<endl; //使用基类的成员函数 cout<<"Height:"<<cbox.GetHeight()<<endl; //使用基类的成员函数 //cout<<cbox.width; Error! }#include<iostream.h>//基类Firstclass First { int val1;public: SetVal1(int v) { val1=v; } void show_First(void) { cout<<"val1="<<val1<<endl; }};//派生类Secondclass Second:private First { //默认为private模式 int val2;public: void SetVal2(int v1,int v2) { SetVal1(v1); //可见,合法 val2=v2; } void show_Second(void) { // cout<<"val1="<<val1<<endl; 不能访问First私有成员 show_First(); cout<<"val2="<<val2<<endl; }};main() { Second s1; //s1.SetVal1(1); //不可见,非法 s1.SetVal2(2,3); //合法 //s1.show_First(); //不可见,非法 s1.show_Second();}#include<iostream.h>//基类Firstclass First { int val1;public: SetVal1(int v) { val1=v; } void show_First(void) { cout<<"val1="<<val1<<endl; }};//派生类Secondclass Second:public First { //默认为private模式 int val2;public: void SetVal2(int v1,int v2) { SetVal1(v1); //可见,合法 val2=v2; } void show_Second(void) { // cout<<"val1="<<val1<<endl; 不能访问First私有成员 show_First(); cout<<"val2="<<val2<<endl; }};main() { Second s1; //调用Second类定义的成员函数 s1.SetVal2(2,3); cout<<"s1.show_Second():"<<endl; s1.show_Second(); //调用First类定义的成员函数 s1.SetVal1(10); cout<<"s1.show_First():"<<endl; s1.show_First(); }#include<iostream.h>//定义最低层基类,它作为其他类的基类class First { int val1;public: First(void) { cout<<"The First initialized"<<endl; }};//定义派生类,它作为其他类的基类class Second :public First { int val2;public: Second(void) { cout<<"The Second initialized"<<endl; }};//定义最上层派生类class Three :public Second { int val3;public: Three() { cout<<"The Three initialized"<<endl; }};//定义各基类的对象,测试构造函数的执行情况//定义各基类的对象,测试构造函数的执行情况main() { cout<<"First f1;"<<endl; First f1; cout<<"Second s1;"<<endl; Second s1; cout<<"Three t1;"<<endl; Three t1;}#include<iostream.h>//定义基类Firstclass First { int num; float grade;public: //构造函数带参数 First(int n,float v ) : num(n),grade(v) { cout<<"The First initialized"<<endl; } DispFirst(void) { cout<<"num="<<num<<endl; cout<<"grade="<<grade<<endl; }};//定义派生类Secondclass Second :public First { double val;public: //无参数构造函数,要为基类的构造函数设置参数 Second(void):First(10000,0) { val=1.0; cout<<"The Second initialized"<<endl; } //带参数构造函数,为基类的构造函数设置参数 Second(int n,float x,double dx):First(n,x) { val=dx; cout<<"The Second initialized"<<endl; } Disp(char *name){ cout<<name<<".val="<<val<<endl; DispFirst(); }};//main()函数中创建和使用派生类对象main() { //调用派生类的无参数构造函数cout<<"Second s1;"<<endl; Second s1;cout<<"s1.Disp(\"s1\");"<<endl;s1.Disp("s1"); //调用派生类的有参数构造函数cout<<"Second s2(10002,95.7,3.1415926); "<<endl; Second s2(10002,95.7,3.1415926); cout<<"s2.Disp(\"s2\");"<<endl; s2.Disp("s2");}#include<iostream.h>//定义最低层基类First,它作为其他类的基类class First { int val1;public: First() { cout<<"The First initialized"<<endl; } ~First() { cout<<"The First destroyed"<<endl; }};//定义派生类Second,它作为其他类的基类class Second :public First { //默认为private模式 int val2;public: Second() { cout<<"The Second initialized"<<endl; } ~Second() { cout<<"The Second destroyed"<<endl; }};//定义最上层派生类Threeclass Three :public Second { int val3;public: Three() { cout<<"The Three initialized"<<endl; } ~Three() { cout<<"The Three destroyed"<<endl; }};//main()函数中测试构造函数和析构函数的执行情况main() { Three t1; cout<<"---- Use the t1----"<<endl;}#include<iostream.h>//基类class First { int val1;protected: void SetVal1(int v) { val1=v; }public: show_First(void) { cout<<"val1="<<val1<<endl; }};//派生类class Second:public First { int val2;protected: void SetVal2(int v) { SetVal1(v); //使用First 基类的保护成员 val2=v; }public: show_Second(void) { show_First(); cout<<"val2="<<val2<<endl; }};//派生类class Third:public Second { int val3;public: void SetVal3(int n) { SetVal1(n); //使用First 基类的保护成员 SetVal2(n); //使用Second基类的保护成员 val3=n; } show_Third(void) { show_Second(); cout<<"val3="<<val3<<endl; }};//main()函数的定义main(void){ First f1; //f1.SetVal1(1); 不可访问 Second s1; //s1.SetVal1(1); 不可访问 //s1.SetVal2(2); 不可访问 Third t1; //t1.SetVal1(1); 不可访问 //t1.SetVal2(2); 不可访问 t1.SetVal3(10);//显示t1对象的数据cout<<"t1.show_Third();"<<endl; t1.show_Third(); cout<<"t1.show_Second();"<<endl; t1.show_Second(); cout<<"t1.show_First();"<<endl; t1.show_First();}#include <iostream.h>enum Color {Red,Yellow,Green,White};//圆类Circle的定义class Circle { float radius;public: Circle(float r) {radius=r;} float Area() { return 3.1416*radius*radius; }};//桌子类Table的定义class Table { float height;public: Table(float h) {height=h;} float Height() { return height; }};//圆桌类RoundTable的定义class RoundTable:public Table,public Circle { Color color;public: RoundTable(float h,float r,Color c); //构造函数 int GetColor() { return color; }};//圆桌构造函数的定义RoundTable::RoundTable(float h,float r,Color c):Table(h),Circle(r){ color=c;}//main()函数的定义main() { RoundTable cir_table(15.0,2.0,Yellow); cout<<"The table properties are:"<<endl; //调用Height类的成员函数 cout<<"Height="<<cir_table.Height()<<endl; //调用circle类的成员函数 cout<<"Area="<<cir_table.Area()<<endl; //调用RoundTable类的成员函数 cout<<"Color="<<cir_table.GetColor()<<endl; }#include <iostream.h>//定义一个枚举类型enum Color {Red,Yellow,Green,White};//圆类Circle的定义class Circle { float radius;public: Circle(float r) { radius=r; cout<<"Circle initialized!"<<endl; } ~Circle() { //析构函数 cout<<"Circle destroyed!"<<endl; } float Area() { return 3.1416*radius*radius; }};//桌子类Table的定义class Table { float height;public: Table(float h) { height=h; cout<<"Table initialized!"<<endl; } ~Table() { //构造函数 cout<<"Table destroyed!"<<endl; } float Height() { return height; }};//圆桌类RoundTable的定义class RoundTable:public Table,public Circle { Color color;public: RoundTable(float h,float r,Color c); //构造函数 int GetColor() { return color; } ~RoundTable() { //构造函数 cout<<"RoundTable destroyed!"<<endl; }};//圆桌构造函数的定义RoundTable::RoundTable(float h,float r,Color c):Table(h),Circle(r){ color=c; cout<<"RoundTable initialized!"<<endl;}//测试多继承中构造函数和析构函数的执行方式main() { RoundTable cir_table(15.0,2.0,Yellow); cout<<"The table properties are:"<<endl; //调用Height类的成员函数 cout<<"Height="<<cir_table.Height()<<endl; //调用circle类的成员函数 cout<<"Area="<<cir_table.Area()<<endl; //调用RoundTable类的成员函数 cout<<"Color="<<cir_table.GetColor()<<endl; }#include<iostream.h>//定义有两个虚函数的基类class Base {public: //定义两个虚函数 virtual void aFn1(void){ cout<<"aFnl is in Base class."<<endl; } virtual void aFn2(void) { cout<<"aFn2 is in Base class."<<endl; } //定义非虚函数 void aFn3(void) { cout<<"aFn3 is in Base class."<<endl; }};//派生类Derived_1中重新定义了基类中的虚函数aFn1class Derived_1:public Base{public: void aFn1(void) { //覆盖aFn1()函数 cout<<"aFnl is in First derived class."<<endl; } // void aFn3(void) { 语法错误 // cout<<"aFn3 is in First derived class."<<endl; //}};//派生类Derived_2中重新定义了基类中的虚函数aFn2class Derived_2:public Base{public: void aFn2(void){ //覆盖aFn2()函数 cout<<"aFn2 is in Second derived class."<<endl; } // void aFn3(void) { 语法错误 // cout<<"aFn3 is in Second derived class."<<endl; //}};//main()函数的定义main(void){ //创建和使用基类Base的对象 Base b; cout<<"Base:"<<endl; b.aFn1(); b.aFn2(); b.aFn3(); cout<<"----------------------"<<endl; //创建和使用派生类Derived_1的对象 Derived_1 d1; cout<<"Derived_1:"<<endl; d1.aFn1(); d1.aFn2(); d1.aFn3(); cout<<"----------------------"<<endl; //创建和使用派生类Derived_2的对象 Derived_2 d2; cout<<"Derived_2:"<<endl; d2.aFn1(); d2.aFn2(); d2.aFn3();}#include<iostream.h>//定义抽象类class Base {public: //定义两个纯虚函数 virtual void aFn1(void)=0; virtual void aFn2(void)=0;};//派生类Derived_1中覆盖了基类中的纯虚函数class Derived_1:public Base{public: void aFn1(void) { cout<<"aFnl is in First derived class."<<endl; } void aFn2(void) { cout<<"aFn2 is in First derived class."<<endl; }};//派生类Derived_2中覆盖了基类中的纯虚函数class Derived_2:public Base{public: virtual void aFn1(void){ cout<<"aFn1 is in Second derived class."<<endl; } void aFn2(void){ cout<<"aFn2 is in Second derived class."<<endl; }};//main()函数中测试抽象类及其派生类的对象main(void){ //用抽象类不能创建对象 // Base b; 语法错误 // b.aFn1(); // b.aFn2(); //创建和使用Derived_1类的对象 Derived_1 d1; cout<<"Derived_1 d1:"<<endl; d1.aFn1(); d1.aFn2(); cout<<"------------------"<<endl; //创建和使用Derived_2类的对象 Derived_2 d2; cout<<"Derived_2 d2:"<<endl; d2.aFn1(); d2.aFn2();}#include<iostream.h>int extract_int(){ char ch; int n=0; while(ch=cin.get()) if (ch>='0' && ch<='9') { cin.putback(ch); cin>>n; break; } return n;}//main()函数main(void){ //提取字符串中的数字 int a=extract_int(); int b=extract_int(); int c=extract_int(); //显示结果 cout<<a<<"+"<<b<<"="<<c<<endl;}#include<iostream.h>//定义节点(数据对象)的接口class Node{ //声明list类为本类的友元类 friend class list;//私有成员 private: int Data; //节点数据 Node *previous; //前趋指针 Node *next; //后继指针};//定义双向链表list的接口声明class list{//私有成员 private: Node *Head; //链表头指针 Node *Tail; //链表尾指针//定义接口函数public: //构造函数 list(); //析构函数 ~list(); //从链表尾后添加数据 void Build_HT(int Data); //从链表前头添加数据 void Build_TH(int Data); //从头到尾显示数据 void list::Display_HT(); //从尾到头显示数据 void list::Display_TH(); //清除链表的全部数据 void Clear();};//main()函数测试双向链表int main(void){ list list1; int i; //从尾添加数据 cout<<"Add to the back of the list1:"<<endl; for (i=1;i<=20;i=i+2) { list1.Build_HT(i); cout<<i<<" "; } cout<<endl; //从头添加数据 cout<<"Add to the front of the list1:"<<endl; for (i=0;i<=20;i=i+2) { list1.Build_TH(i); cout<<i<<" "; } cout<<endl; //显示链表 list1.Display_HT(); list1.Display_TH(); return 0;}//list类函数的定义//构造函数的定义list::list(){ //初值 Head=0; Tail=0;}//析构函数的定义list::~list(){ Clear(); }//从链表尾后添加数据void list::Build_HT(int Data){ Node *Buffer; Buffer=new Node; Buffer->Data=Data; if(Head==0) { Head=Buffer; Head->next=0; Head->previous=0; Tail=Head; } else { Tail->next=Buffer; Buffer->previous=Tail; Buffer->next=0; Tail=Buffer; }}//从链表前头添加数据void list::Build_TH(int Data){ Node *NewNode; NewNode=new Node; NewNode->Data=Data; if(Tail==0) { Tail=NewNode; Tail->next=0; Tail->previous=0; Head=Tail; } else { NewNode->previous=0; NewNode->next=Head; Head->previous=NewNode; Head=NewNode; }}//从头到尾显示数据void list::Display_HT(){ Node *TEMP; TEMP=Head; cout<<"Display the list from Head to Tail:"<<endl; while(TEMP!=0) { cout<<TEMP->Data<<" "; TEMP=TEMP->next; } cout<<endl;}//从尾到头显示数据void list::Display_TH(){ Node *TEMP; TEMP=Tail; cout<<"Display the list from Tail to Head:"<<endl; while(TEMP!=0) { cout<<TEMP->Data<<" "; TEMP=TEMP->previous; } cout<<endl;}//清除链表的全部数据void list::Clear(){ Node *Temp_head=Head; if (Temp_head==0) return; do { Node *TEMP_NODE=Temp_head; Temp_head=Temp_head->next; delete TEMP_NODE; } while (Temp_head!=0);}#include <iostream>#include <string>using namespace std;//测试字符串(string)对象void main(){ //创建string对象,并显示 string s1; string s2="ABCDEFGHIJK"; string s3=s2; string s4(20,'A'); string s5(s2,3,3); cout<<"s1="<<s1<<endl; cout<<"s2="<<s2<<endl; cout<<"s3="<<s3<<endl; cout<<"s4="<<s4<<endl; cout<<"s5="<<s5<<endl; //为string对象输入数据,并显示 cout<<"s1="; cin>>s1; cout<<"s2="; cin>>s2; cout<<"s3="; cin>>s3; cout<<"s4="; cin>>s4; cout<<"s5="; cin>>s5; cout<<"s1="<<s1<<endl; cout<<"s2="<<s2<<endl; cout<<"s3="<<s3<<endl; cout<<"s4="<<s4<<endl; cout<<"s5="<<s5<<endl;}#include <iostream>#include <string>using namespace std;//测试字符串(string)对象void main(){ //创建string对象 string s1,s2; //string对象的赋值运算 s1="One"; s2="Two"; cout<<"s1="<<s1<<endl; cout<<"s2="<<s2<<endl; //string对象的连接运算 string s3; s3=s1+" and "+s2; cout<<"s3="<<s3<<endl; //组合赋值连接运算 s3+=" and Three"; cout<<"s3="<<s3<<endl; //比较运算及其结果显示 for (int i=1;i<=3;i++) { cout<<"---------------------"<<endl; cout<<"s1="; cin>>s1; cout<<"s2="; cin>>s2; if (s1<s2) //小于 cout<<s1<<" < "<<s2<<endl; if (s1<=s2) //小于等于 cout<<s1<<" <= "<<s2<<endl; if (s1==s2) //等于 cout<<s1<<" == "<<s2<<endl; if (s1>s2) //大于 cout<<s1<<" > "<<s2<<endl; if (s1>=s2) //大于等于 cout<<s1<<" >= "<<s2<<endl; if (s1!=s2) //不等 cout<<s1<<" != "<<s2<<endl; }}#include <iostream>#include <string>using namespace std;//测试字符串(string)对象void main(){ //创建string对象,并显示 string s1="This"; string s2="book."; cout<<"s1: "<<s1<<endl; cout<<"s2: "<<s2<<endl; //使用length成员函数 cout<<"s1.length()="<<s1.length()<<endl; cout<<"s2.length()="<<s2.length()<<endl; //使用append成员函数 s1.append(s2); cout<<"s1: "<<s1<<endl; //使用find成员函数和下标运算 int pos=s1.find('b'); cout<<"s1["<<pos<<"]="<<s1[pos]<<endl; //使用insert成员函数 s1.insert(pos," is a "); cout<<s1<<endl; //使用assign成员函数 s1.assign("Good"); cout<<s1<<endl;}//根据半径计算圆的周长和面积#include <iostream.h>const float PI=3.1416; //声明常量(只读变量)PI为3.1416float fCir_L(float); //声明自定义函数fCir_L()的原型 float fCir_S(float); //声明自定义函数fCir_S()的原型 //以下是main()函数 main() { float r,l,s; //声明3个变量 cout<<"R="; //显示字符串 cin>>r; //键盘输入 l=fCir_L(r); //计算圆的周长,赋值给变量l s=fCir_S(r); //计算圆的面积,赋值给变量s cout<<"l="<<l; //显示计算结果 cout<<"\ns="<<s; } //定义计算圆的周长的函数fCir_L()float fCir_L(float x){ float z=-1.0; //声明局部变量 if (x>=0.0) //如果参数大于0,则计算圆的周长 z=2*PI*x; return(z); //返回函数值 } //定义计算圆的面积的函数fCir_S()float fCir_S(float x){ float z=-1.0; //声明局部变量 if (x>=0.0) //如果参数大于0,则计算圆的面积 z=PI*x*x; return(z); //返回函数值 }#include<iostream.h>#include<stdlib.h>#define MAX 30//main()的定义int main(void){ char str[MAX],*p; //从键盘上输入int数 cout<<"Please input a int:"<<endl; int n; cin>>n; //将整型数n按十进制转换为字符串并输出 p=itoa(n,str,10); cout<<"str="<<str<<endl; cout<<"p="<<p<<endl; //将整型数n按十六进制转换为字符串并输出 p=itoa(n,str,16); cout<<"str="<<str<<endl; cout<<"p="<<p<<endl; //从键盘上输入double类型的数据 cout<<"Please input a double:"<<endl; double x; cout<<"x="; cin>>x; //将浮点数x转换为字符串后输出 p=gcvt(x,10,str); cout<<"str="<<str<<endl; cout<<"p="<<p<<endl; return 0;}#include<iostream.h>#include<stdlib.h>#define MAX 30//main()的定义int main(void){ char str[MAX]; //字符串转换为int和long类型数据 cout<<"Please input a string:"<<endl; cin>>str; int n=atoi(str); cout<<"n="<<n<<endl; long l=atol(str); cout<<"l="<<l<<endl; //字符串转换为double类型 cout<<"Please input a string:"<<endl; cin>>str; double x=atof(str); cout<<"x="<<x<<endl; return 0;}#include<iostream.h>#include <stdlib.h>#include <time.h>//定义产生[n1,n2]范围int随机数的函数int rand(int n1,int n2) { if (n1>n2) return -1; if (n1==n2) return 0; int temp=n1+int((n2-n1)*double(rand())/RAND_MAX); return temp;}//main()函数的定义,加法练习程序void main( void ){ int i; //使用当前的系统时间初始化随机数种子 srand( (unsigned)time( NULL ) ); //加法练习 int a,b,c; do { a=rand(0,20); b=rand(0,20);L1: cout<<a<<"+"<<b<<"="; cin>>c; if (c==0) break; if (c!=a+b) { cout<<"Error! Try again!"<<endl; goto L1; } cout<<"OK!"<<endl; } while (1);}#include<iostream.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926535//main()函数的定义void main( void ){ int i; double x=PI/180; cout<<"X\tSIN(X)\t\tCOS(X)"<<endl; cout<<"---------------------------------------"<<endl; for (i=0;i<=360;i=i+30) { cout<<i<<"\t"; cout.precision(2); cout<<sin(i*x)<<"\t\t"; cout<<cos(i*x)<<endl; }}#include<iostream.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926535//main()函数的定义void main( void ){ int i; double d=180/PI; cout<<"X\tASIN(X)\t\tACOS(X)"<<endl; cout<<"---------------------------------------"<<endl; for (double x=0;x<=1.0+0.05;x=x+0.1) { cout<<x<<"\t"; cout<<int(asin(x)*d)<<"\t\t"; cout<<int(acos(x)*d)<<endl; }}#include<iostream.h>#include <stdlib.h>#include <math.h>//main()函数的定义void main( void ){ _complex a={3,4},b={3,-4}; double d=cabs(a); cout<<"cabs("<<a.x<<","<<a.y<<")="<<d<<endl; cout<<"cabs("<<b.x<<","<<b.y<<")="<<cabs(b)<<endl;}##include<iostream.h>#include <stdlib.h>#include <math.h>//main()函数的定义void main( void ){ double x; //循环输入数据计算对数 do { cout<<"x="; cin>>x; if (x<=0) break; cout<<"log("<<x<<")="<<log(x)<<endl; cout<<"log10("<<x<<")="<<log10(x)<<endl; } while(1);}#include<iostream.h>#include <stdlib.h>#include <math.h>//main()函数的定义void main( void ){ double y; for(double x=-5;x<=5;x++){ y=exp(x); cout<<"exp("<<x<<")="<<y<<endl; }}#include<iostream.h>#include <stdlib.h>#include <math.h>//main()函数的定义void main( void ){ double y; int N; //输入一个大于等于0的数 do { cout<<"N="; cin>>N; if (N>=0) break; } while (1); //计算并显示 for(int i=0;i<=N;i++){ y=pow(2,i); cout<<"pow("<<2<<","<<i<<")="<<y<<endl; }}#include<iostream.h>#include <stdlib.h>#include <math.h>//main()函数的定义void main( void ){ double y; for(int i=0;i<=10;i++){ y=sqrt(i); cout<<"sqrt("<<i<<")="<<y<<endl; }}#include<iostream.h>#include <time.h>//时间延迟函数void Dtime(int dt) { time_t current_time; time_t start_time; // 得到开始时间 time(&start_time); do { time(¤t_time); } while ((current_time - start_time) < dt);}//main()函数的定义void main(void){ cout<<"The First information!"<<endl; cout<<"About to delay 5 seconds"<<endl; Dtime(5); cout<<"The Second information!"<<endl;}#include<iostream.h>#include <time.h>//main()函数的定义void main(void){ //声明time_t类型的变量,其以秒为单位存放系统时间 time_t current_time; //得到当前的系统时间(秒) time(¤t_time); //转换系统时间为tm结构的时间信息 tm *ptime=gmtime(¤t_time); //显示time_t结构的时间 cout<<"current_time:"<<current_time<<endl; //显示tm结构的时间信息 cout<<"seconds after the minute:"<<(ptime->tm_sec)<<endl; cout<<"minutes after the hour:"<<(ptime->tm_min)<<endl; cout<<"hours since midnight:"<<(ptime->tm_hour)<<endl; cout<<"day of the month:"<<(ptime->tm_mday)<<endl; cout<<"months since January:"<<(ptime->tm_mon)<<endl; cout<<"years since 1900:"<<(ptime->tm_year)<<endl; cout<<"days since Sunday:"<<(ptime->tm_wday)<<endl; cout<<"days since January 1:"<<(ptime->tm_yday)<<endl; cout<<"daylight savings time flag:"<<(ptime->tm_isdst)<<endl;}#include<iostream.h>#include <time.h>//main()函数的定义void main(void){ //声明变量 time_t current_time; //得到当前系统时间 time(¤t_time); //转换系统时间为tm结构 tm *ptime=gmtime(¤t_time); //转换time_t类型的时间字符串并显示 char *timep=ctime(¤t_time); cout<<"ctime(¤t_time):"<<endl; cout<<timep; //转换tm类型的数据转换为时间字符串并显示 char *tmp=asctime(ptime); cout<<"asctime(ptime):"<<endl; cout<<timep;}#include<iostream.h>#include<conio.h>#include <time.h>//定义时间延迟函数void Dtime(double dt) { time_t current_time; time_t start_time; //得到开始时间 time(&start_time); //延迟处理 do { time(¤t_time); } while (difftime(current_time,start_time)<dt);}//main()函数的定义void main(void){ //声明变量 int i; time_t current_time; char *timep; //循环10次,每隔2秒显示一次时间 for(i=0;i<10;i++) { time(¤t_time); timep=ctime(¤t_time); cputs(timep); Dtime(2); }}#include<iostream.h>#include<stdlib.h> #include<malloc.h>int main(void){ //定义结构类型 struct student { int num; char name[20]; float grade; }; //声明结构指针变量 struct student *sp; //计算申请的内存量 int size=sizeof(struct student); //申请需要的存储空间并强制类型转换 sp=(struct student*)malloc(size); //为结构对象输入数据 cout<<"nmu:"; cin>>(sp->num); cout<<"name:"; cin>>(sp->name); cout<<"grade:"; cin>>(sp->grade); //输出结构对象的数据 cout<<"num:"<<(sp->num)<<endl; cout<<"name:"<<(sp->name)<<endl; cout<<"grade:"<<(sp->grade); //释放内存 free(sp);}#include<iostream.h>#include<conio.h>#include <time.h>//定义时间延迟函数void Dtime(double dt) { time_t current_time; time_t start_time; // 得到开始时间 time(&start_time); //延迟处理 do { time(¤t_time); } while (difftime(current_time,start_time)<dt);}//控制台函数显示void cputs_show(int n) { time_t current_time; char *timep; cputs("Show time with cputs\n"); for(int i=0;i<5;i++) { time(¤t_time); timep=ctime(¤t_time); cputs(timep); Dtime(n); }}//cout对象显示void cout_show(int n) { time_t current_time; char *timep; cout<<"Show time with cout"<<endl; for(int i=0;i<5;i++) { time(¤t_time); timep=ctime(¤t_time); cout<<timep; Dtime(n); }}//main()函数的定义void main(void){ cputs_show(1); cout_show(1);}#include<stdio.h>main(){ //输出字符串 printf("He said \"Hello!\""); //输出各进制整数 int i=64; printf("\ni=%d",i); //以十进制格式输出 printf("\ni=%o",i); //以八进制格式输出 printf("\ni=%x",i); //以十六进制格式输出 printf("\ni=%d,%o,%x",i,i,i); //各种格式混合输出 //输出浮点数 float x=3141.5926; printf("\nx=%f",x); //指定输出浮点数的格式为十进制形式 printf("\nx=%e",x); //指定输出浮点数的格式为指数形式 //控制输出项宽度 int j=123; printf("\nj=%-10d",j); //任选项"-"指定左对齐,W 指定宽度为10 printf("\nj=%10d\n",j); //W 指定宽度为10 //控制输出精度 float y=3.1415926; printf("y=%10.2f\n",y); //W 指定宽度为10,P指定小数点后保留2位 printf("y=%10.5f\n",y); //W 指定宽度为10,P指定小数点后保留5位}#include<stdio.h>main(){ //输入字符串 char str[80]; printf("str:"); //显示提示 scanf("%s",str); printf("The string:%s",str); //输入各进制整数 int a,b,c,sum; printf("\na\tb\tc\n"); //显示提示 scanf("%d %o %x",&a,&b,&c); //以十进制、八进制、十六进制形式输入数据 sum=a+b+c; printf("a=%d b=%d c=%d sum=%d",a,b,c,sum); //输入浮点数并计算显示 float x,y; //声明变量 printf("\nx\ty\n"); //显示提示 scanf("%f %f",&x,&y); //对非空白字符"x= y="读入,不保存 printf("sum=%f product=%f\n",x+y, x*y); //显示表达式的值}#include<iostream.h>#include<direct.h>#include<errno.h>#define MAX_PATH 250main(){ //声明变量 char *p,str[MAX_PATH]; //设置新目录 if (mkdir("d:\\ABC")){ cout<<"mkdir Error!"<<endl; } //更该工作目录 if (chdir("d:\\ABC")){ cout<<"chdir Error!"<<endl; } //读取当前目录 if ((p=getcwd(str,MAX_PATH))==NULL) { cout<<"getcwd Error!"<<endl; } else { cout<<"p:"<<p<<endl; cout<<"str:"<<str<<endl; } //更该工作目录 if (chdir("d:\\")){ cout<<"chdir Error!"<<endl; } //删除指定目录 if (rmdir("d:\\ABC")==-1) cout<<"rmdir Error!"<<endl;}#include<iostream.h>#include <time.h>#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>void main( void ){ struct stat buf; int result; //获得c:\Windows\Calc.exe文件的状态信息 result =stat( "c:\\windows\\Calc.exe", &buf ); //显示Calc.exe文件的状态信息 if( result != 0 ) perror( "Problem getting information" ); else { cout<<"Size of the file in bytes:"<<buf.st_size<<endl; cout<<"Drive number of the disk containing the file :"; cout<<char(buf.st_dev + 'A')<<endl; cout<<"Time of creation of the file:"<<ctime(&buf.st_ctime); cout<<"Time of last access of the file:"<<ctime(&buf.st_atime); cout<<"Time of last modification of the file:"<<ctime(&buf.st_mtime); }}#include<iostream.h>#include <string.h>void main( void ){ //设置字符串 char string[] = "Fill the string with something"; cout<<"string:"<<string<<endl; char *p=strset(string,'*'); cout<<"p :"<<p<<endl; cout<<"string:"<<string<<endl; //按指定字符和指定数目设置字符数组 char string1[] = "Fill the string with something"; cout<<"string1:"<<string1<<endl; p=strnset(string1,'*',5); cout<<"p :"<<p<<endl; cout<<"string1:"<<string1<<endl;}#include<iostream.h>#include <string.h>void main( void ){ //拷贝字符串常量到字符数组 char string[80] = "Fill the string with something"; cout<<"string:"<<string<<endl; cout<<"strcpy:"<<endl; char *p=strcpy(string,"abc"); cout<<"p :"<<p<<endl; cout<<"string:"<<string<<endl; char str[80]; cout<<"str:"; cin>>str; p=strcpy(string,str); cout<<"p :"<<p<<endl; cout<<"string:"<<string<<endl; //拷贝前5个字符到string中 cout<<"str:"; cin>>str; cout<<"strncpy:"<<endl; p=strncpy(string,str,strlen(str)); cout<<"p :"<<p<<endl; cout<<"string:"<<string<<endl; }#include<iostream.h>#include <string.h>void main( void ){ //声明字符数组和字符型指针变量 char string[80],*p; //拷贝字符串 strcpy( string, "I'll see you"); cout<<"string:"<<string<<endl; //追加字符串 p=strcat( string, " in the morning."); cout<<"String: "<<string<<endl; cout<<"p : "<<p<<endl;}#include<iostream.h>#include <string.h>//字符串输入函数void str_input(char *p1,char *p2){ cout<<"string1:"; cin>>p1; cout<<"string2:"; cin>>p2;}//显示strcmp()函数的比较结果void strcmp_put(char *p1,char *p2){ cout<<"strcmp():"<<endl; int result=strcmp(p1,p2); if (result>0) cout<<p1<<" greater than "<<p2<<endl; if (result<0) cout<<p1<<" less than "<<p2<<endl; if (result==0) cout<<p1<<" identical to "<<p2<<endl;}//显示stricmp()函数的比较结果void stricmp_put(char *p1,char *p2){ cout<<"stricmp():"<<endl; int result=stricmp(p1,p2); if (result>0) cout<<p1<<" greater than "<<p2<<endl; if (result<0) cout<<p1<<" less than "<<p2<<endl; if (result==0) cout<<p1<<" identical to "<<p2<<endl;}//显示strncmp()函数的比较结果void strncmp_put(char *p1,char *p2,size_t count ){ cout<<"strncmp():"<<endl; int result=strncmp(p1,p2,count); if (result>0) cout<<p1<<" greater than "<<p2<<endl; if (result<0) cout<<p1<<" less than "<<p2<<endl; if (result==0) cout<<p1<<" identical to "<<p2<<endl;}//main()函数void main( void ){ //声明字符数组 char str1[80],str2[80],p; int i; //测试测试各字符串比较函数 for(i=1;i<=3;i++) { str_input(str1,str2); strcmp_put(str1,str2); stricmp_put(str1,str2); strncmp_put(str1,str2,3); cout<<"----------------------"<<endl; }}#include<iostream.h>#include <string.h>//main()函数void main( void ){ //声明字符数组 char string[80],*p; int i; //转换字符串中的小写字母为大写 cout<<"Convert a string to uppercase:"<<endl; cout<<"string:"; cin>>string; p=strupr(string); cout<<"p:"<<p<<endl; cout<<"string:"<<string<<endl; cout<<"----------------------"<<endl; //转换字符串中的大写字母为小写 cout<<"Convert a string to lowercase:"<<endl; cout<<"string:"; cin>>string; p=strlwr(string); cout<<"p:"<<p<<endl; cout<<"string:"<<string<<endl;}#include<iostream.h>#include <string.h>//main()函数void main( void ){ //声明字符数组 char string[]="This is a test."; int n; //获得字符串的长度 cout<<"string:"<<string<<endl; n=strlen(string); cout<<"The length of "<<"\""<<string<<"\": "<<n<<endl; //输入字符并计算其长度 cout<<"string:"; cin>>string; n=strlen(string); cout<<"The length of "<<"\""<<string<<"\": "<<n<<endl;}#include<iostream.h>#include <string.h>//main()函数void main( void ){ //声明字符数组 char ch,string[80],*p; int n; //输入字符串和要查找的字符 cout<<"Test strchr():"<<endl; cout<<"string:"; cin>>string; cout<<"ch :"; cin>>ch; //在string中查找ch中的字符并显示 p=strchr(string,ch); cout<<"p :"<<p<<endl; //输入字符串和要查找的字符串并查找 char substr[80]; cout<<"Test strstr():"<<endl; cout<<"substr:"; cin>>substr; //在string中查找substr中的字符串并显示 p=strstr(string,substr); cout<<"p :"<<p<<endl;}#include<iostream.h>#include <string.h>//main()函数void main( void ){ //声明字符数组 char string[80],*p; //输入字符串并将其反转 cout<<"string:"; cin>>string; p=strrev(string ); cout<<"p :"<<p<<endl; cout<<"string:"<<string<<endl;}#include<iostream.h>#include <string.h>char string[80];char seps[] = " ,\t\n";char *token;void main( void ){ //从键盘上输入两个语句 for (int i=1;i<3;i++) { cout<<"Please input a sentence:"<<endl; //整行输入 cin.getline(string,80); cout<<"Tokens:"<<endl; //首次分离字符串 token = strtok( string, seps ); while( token != NULL ) //结束分离判断 { cout<<token<<endl; //下次分离字符串 token = strtok( NULL, seps ); } }}#include<iostream.h>#include<stdio.h>#include <string.h>//main()函数void main( void ){ //声明变量和数组 char buffer[200], s[] = "computer", c = 'l'; int i = 35, j; float fp = 1.7320534f; //格式化输出到buffer j = sprintf( buffer, "\tString: %s\n", s ); j += sprintf( buffer + j, "\tCharacter: %c\n", c ); j += sprintf( buffer + j, "\tInteger: %d\n", i ); j += sprintf( buffer + j, "\tReal: %f\n", fp ); cout<<"Output:"<<endl; cout<<buffer; cout<<"character count ="<<j<<endl;}//根据半径计算圆的周长和面积#include <iostream.h>const float PI=3.1416; //声明常量(只读变量)PI为3.1416float fCir_L(float); //声明自定义函数fCir_L()的原型 float fCir_S(float); //声明自定义函数fCir_S()的原型 //以下是main()函数 main() { float r,l,s; //声明3个变量 cout<<"R="; //显示字符串 cin>>r; //键盘输入 l=fCir_L(r); //计算圆的周长,赋值给变量l s=fCir_S(r); //计算圆的面积,赋值给变量s cout<<"l="<<l; //显示计算结果 cout<<"\ns="<<s; } //定义计算圆的周长的函数fCir_L()float fCir_L(float x){ float z=-1.0; //声明局部变量 if (x>=0.0) //如果参数大于0,则计算圆的周长 z=2*PI*x; return(z); //返回函数值 } //定义计算圆的面积的函数fCir_S()float fCir_S(float x){ float z=-1.0; //声明局部变量 if (x>=0.0) //如果参数大于0,则计算圆的面积 z=PI*x*x; return(z); //返回函数值 }#include<iostream.h>//定义名为max_value的函数模板template <class T> T max_value (T a,T b) { return ((a> b)? a: b);}//在main()函数中测试max_value函数模板void main(void){ //double类型数据使用max_value模板函数 double x = 1.2, y = 2.1; cout<<"x="<<x<<"\t"; cout<<"y="<<y<<endl; double result=max_value(x,y); cout<<"max_value(x,y)="<<result<<endl; cout<<"max_value(2*3.0,2+3.0)="<<max_value(2*3.0,2+3.0)<<endl; cout<<"------------------"<<endl; //int类型数据使用max_value模板函数 int n= 1, m= 6; cout<<"n="<<n<<"\t"; cout<<"m="<<m<<endl; cout<<"max_value(n,m)="<<max_value(n,m)<<endl; cout<<"------------------"<<endl; //char类型数据使用max_value模板函数 char ch1='A',ch2='a'; cout<<"ch1="<<ch1<<"\t"; cout<<"ch2="<<ch2<<endl; cout<<"max_value(ch1,ch2)="<<max_value(ch1,ch2)<<endl; cout<<"------------------"<<endl; //字符串数据使用max_value模板函数 char str1[]="abc",str2[]="ABC",*p; p=max_value(str1,str2); cout<<"max_value("<<str1<<","<<str2<<")="<<p<<endl;}#include<iostream.h>//函数模板的原型template <class T1, class T2> void display(T1 x, T2 y);//在main()函数中测试display函数模板void main(void){ //声明变量 char c='A'; char str[]="This is a test"; int n=10; float x=1.5; double z=3.1415926; //两个参数类型相同 display(c, char(c+2)); display(str, str); display(n, 2*n); display(x,2*x); display(z, 2*z); cout<<"------------------"<<endl; //两个参数类型不同 display(c, str); display(str, c); display(n, str); display(str,2*x); display(z, n);}//定义名为display的函数模板template <class T1, class T2> void display(T1 x, T2 y){ cout << x << " " << y << endl;}#include<iostream.h>//声明引用参数的函数模板原型template <class T> void swap(T &x, T &y);//定义一个结构类型struct student { int n; char name[20]; float grade;};//在main()函数中测试swap()函数模板void main(void){ //交换两个int型变量中的数据 int m=3,n=5; cout<<"m="<<m<<" n="<<n<<endl; swap(m,n); cout<<"m="<<m<<" n="<<n<<endl; cout<<"-------------------"<<endl; //交换两个double型变量中的数据 double x=3.5,y=5.7; cout<<"x="<<x<<" y="<<y<<endl; swap(x,y); cout<<"x="<<x<<" y="<<y<<endl; cout<<"-------------------"<<endl; //交换两个char型变量中的数据 char c1='A',c2='a'; cout<<"c1="<<c1<<" c2="<<c2<<endl; swap(c1,c2); cout<<"c1="<<c1<<" c2="<<c2<<endl; cout<<"-------------------"<<endl; //交换两个结构变量中的数据 student s1={1001,"ZhangHua",90}; student s2={1011,"LiWei",95.5}; cout<<"s1: "; cout<<s1.n<<" "<<s1.name<<" "<<s1.grade<<endl; cout<<"s2: "; cout<<s2.n<<" "<<s2.name<<" "<<s2.grade<<endl; swap(s1,s2); cout<<"swap(s1,s2):"<<endl; cout<<"s1: "; cout<<s1.n<<" "<<s1.name<<" "<<s1.grade<<endl; cout<<"s2: "; cout<<s2.n<<" "<<s2.name<<" "<<s2.grade<<endl;}//定义名为swap的函数模板用于交换两个变量中的数据template <class T> void swap(T &x, T &y){ T temp; temp=x; x=y; y=temp;}#include<iostream.h>//声明函数模板的原型语句template <class T> void swap(T *x, T *y);//定义一个结构类型struct student { int n; char name[20]; float grade;};//在main()函数中测试swap()函数模板void main(void){ //交换两个int型变量中的数据 int m=3,n=5; cout<<"m="<<m<<" n="<<n<<endl; swap(&m,&n); cout<<"m="<<m<<" n="<<n<<endl; cout<<"-------------------"<<endl; //交换两个double型变量中的数据 double x=3.5,y=5.7; cout<<"x="<<x<<" y="<<y<<endl; swap(&x,&y); cout<<"x="<<x<<" y="<<y<<endl; cout<<"-------------------"<<endl; //交换两个char型变量中的数据 char c1='A',c2='a'; cout<<"c1="<<c1<<" c2="<<c2<<endl; swap(&c1,&c2); cout<<"c1="<<c1<<" c2="<<c2<<endl; cout<<"-------------------"<<endl; //交换两个结构变量中的数据 student s1={1001,"ZhangHua",90}; student s2={1011,"LiWei",95.5}; cout<<"s1: "; cout<<s1.n<<" "<<s1.name<<" "<<s1.grade<<endl; cout<<"s2: "; cout<<s2.n<<" "<<s2.name<<" "<<s2.grade<<endl; swap(&s1,&s2); cout<<"swap(s1,s2):"<<endl; cout<<"s1: "; cout<<s1.n<<" "<<s1.name<<" "<<s1.grade<<endl; cout<<"s2: "; cout<<s2.n<<" "<<s2.name<<" "<<s2.grade<<endl;}//定义名为swap的函数模板用于交换两个变量中的数据template <class T> void swap(T *x, T *y){ T temp; temp=*x; *x=*y; *y=temp;}#include<iostream.h>//定义输入函数模板template <class T> void input(char *str,T &x) { cout<<str<<"="; cin>>x;}//定义输出函数模板template <class T> void output(char *str,T x) { cout<<str<<"="<<x<<endl;}//在main()函数中测试输入输出函数模板void main(void){ //输入输出int型数据 int a,b; input("a",a); output("a",a); b=3*a; output("3*a",b); output("a+b",a+b); cout<<"-------------------"<<endl; //输入输出double型数据 double x,y; input("x",x); output("x",x); y=2*x; output("y",y); cout<<"-------------------"<<endl; //输入输出char型数据 char c1; input("c1",c1); output("c1+2",char(c1+2)); cout<<"-------------------"<<endl; //输入输出字符串数据 char string[80]; input("string",string); output("string",string);}#include<iostream.h>#include<string.h>//显示数组的函数模板template <class T> void arr_put(T arr[],int size) { for (int i=0 ;i<=size;i++) cout<<arr[i]<<" "; cout<<endl;}//选择排序数组的函数模板template <class T> void sort(T arr[],int size) { T temp; int i,j; for (i=0;i<size;i++) for (j=i+1;j<=size;j++) if (arr[i]<=arr[j]) { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; }}//在main()函数中测试数组排序的函数模板void main(void){ //用排序函数模板处理int型数组 cout<<"int:"<<endl; int a[]={1,5,2,7,9,0,10,-1}; arr_put(a,7); sort(a,7); arr_put(a,7); //用排序函数模板处理double型数组 cout<<"double:"<<endl; double x[]={1.2,2.1,1.414,1.732}; arr_put(x,3); sort(x,3); arr_put(x,3); //用排序函数模板处理char类型数组 cout<<"char:"<<endl; char str[80]; cout<<"str:"; cin>>str; int size=strlen(str); arr_put(str,size); sort(str,size); arr_put(str,size);}#include<iostream.h>#include<string.h>//显示数组的函数模板template <class T> void arr_put(T arr[],int size) { for (int i=0 ;i<size;i++) cout<<arr[i]<<" "; cout<<endl;}//选择法对数组排序的函数模板template <class T> void sort(T arr[],int size) { T temp; int i,j; for (i=0;i<size-1;i++) for (j=i+1;j<size;j++) if (arr[i]>arr[j]) { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; }}//二分查找法的函数模板template <class T> int binary_search(T array[], T value, int size){ int found = 0; int high = size, low = 0, mid; mid = (high + low) / 2; cout<<"Looking for "<<value<<endl; while ((! found) && (high >= low)) { if (value == array[mid]) found = 1; else if (value < array[mid]) high = mid - 1; else low = mid + 1; mid = (high + low) / 2; } return((found) ? mid: -1);}//main()函数中使用处理数组的函数模板void main(void){ //处理int型数组 int array[10]={1,3,5,7,9,2,4,6,8,10}; //显示数组初值 arr_put(array,10); //对数组排序并显示 sort(array,10); arr_put(array,10); //查找数组 cout<<"Result of search: "<<binary_search(array, 3, 10)<<endl; cout<<"Result of search: "<<binary_search(array, 2, 10)<<endl; cout<<"Result of search: "<<binary_search(array, 9, 10)<<endl; cout<<"Result of search: "<<binary_search(array, 5, 10)<<endl; cout<<"------------------------------"<<endl; //处理字符串型数组 char ch1,str[]="happy"; int size=strlen(str); //显示数组初值 arr_put(str,size); //对数组排序并显示 sort(str,size); arr_put(str,size); //查找数组 cout<<"Input a char:"; cin>>ch1; cout<<"Result of search: "<<binary_search(str, ch1, size)<<endl;}#include<iostream.h>//定义名为ex_class的类模板template <class T> class ex_class{ T value;public: ex_class(T v) { value=v; } void set_value(T v) { value=v; } T get_value(void) {return value;}};//main()函数中测试ex_class类模板void main(void){ //测试int类型数据 ex_class <int> a(5),b(10); cout<<"a.value:"<<a.get_value()<<endl; cout<<"b.value:"<<b.get_value()<<endl; //测试char类型数据 ex_class <char> ch('A'); cout<<"ch.value:"<<ch.get_value()<<endl; ch.set_value('a'); cout<<"ch.value:"<<ch.get_value()<<endl; //测试double类型数据 ex_class <double> x(5.5); cout<<"x.value:"<<x.get_value()<<endl; x.set_value(7.5); cout<<"x.value:"<<x.get_value()<<endl;}#include <iostream.h>//定义栈的尺寸const int SIZE = 100;//定义处理栈的类模板接口template <class T> class stack { T stck[SIZE]; int tos;public: stack(void) { tos = 0; cout << "Stack Initialized." << endl; } ~stack(void) { cout << "Stack Destroyed." << endl; } void push(T); T pop(void);};//定义栈的成员函数template <class T> void stack<T>::push(T i){ if(tos==SIZE) { cout << "Stack is full." << endl; return; } stck[tos++] = i;}template <class T> T stack<T>::pop(void){ if(tos==0) { cout << "Stack underflow." << endl; return 0; } return stck[--tos];}//main()函数中测试stack类模板void main(void){ //处理int类型数据的栈 cout<<"stack<int> a :"<<endl; stack<int> a; a.push(1); a.push(2); cout << a.pop() << " "; cout << a.pop() << endl; //处理double类型数据的栈 cout<<"stack<double> b :"<<endl; stack<double> b; b.push(99.3); b.push(-12.23); cout << b.pop() << " "; cout << b.pop() <<endl; //处理char类型数据的栈 cout<<"stack<char> c :"<<endl; stack<char> c; for(int i=0; i<10; i++) c.push((char) 'A' + i); for(i=0; i<10; i++) cout <<c.pop(); cout << endl;}#include<iostream.h>//定义名为ex_class的类模板template <class T1,class T2> class ex_class{ T1 value1; T2 value2;public: ex_class(T1 v1,T2 v2) { value1=v1; value2=v2; } void set_value(T1 v1,T2 v2) { value1=v1; value2=v2; } void put_value(void) { cout<<"valu1="<<value1<<endl; cout<<"valu2="<<value2<<endl; }};//main()函数中测试ex_class类模板void main(void){ //测试int和double类型数据 ex_class <int,double> a(5,1.5); cout<<"ex_class <int,double> a:"<<endl; a.put_value(); a.set_value(100,3.14); a.put_value(); //测试double和int类型数据 ex_class <double,int> b(0.5,5); cout<<"ex_class <double,int> b:"<<endl; b.put_value(); b.set_value(1.732,100); b.put_value(); //测试char和int类型数据 ex_class <char,int> c('a',5); cout<<"ex_class <char,int> c:"<<endl; c.put_value(); c.set_value('B',100); c.put_value(); //测试int和int类型数据 ex_class <int,int> d(5,10); cout<<"ex_class <int,int> d:"<<endl; d.put_value(); d.set_value(100,200); d.put_value();}#include <iostream>#include <list>#include <numeric>#include <algorithm>using namespace std;//创建一个list容器的实例LISTINTtypedef list<int> LISTINT;//创建一个list容器的实例LISTCHARtypedef list<int> LISTCHAR;void main(void){ //-------------------------- //用list容器处理整型数据 //-------------------------- //用LISTINT创建一个名为listOne的list对象 LISTINT listOne; //声明i为迭代器 LISTINT::iterator i; //从前面向listOne容器中添加数据 listOne.push_front (2); listOne.push_front (1); //从后面向listOne容器中添加数据 listOne.push_back (3); listOne.push_back (4); //从前向后显示listOne中的数据 cout<<"listOne.begin()--- listOne.end():"<<endl; for (i = listOne.begin(); i != listOne.end(); ++i) cout << *i << " "; cout << endl; //从后向后显示listOne中的数据LISTINT::reverse_iterator ir; cout<<"listOne.rbegin()---listOne.rend():"<<endl; for (ir =listOne.rbegin(); ir!=listOne.rend();ir++) { cout << *ir << " "; } cout << endl; //使用STL的accumulate(累加)算法 int result = accumulate(listOne.begin(), listOne.end(),0); cout<<"Sum="<<result<<endl; cout<<"------------------"<<endl; //-------------------------- //用list容器处理字符型数据 //-------------------------- //用LISTCHAR创建一个名为listOne的list对象 LISTCHAR listTwo; //声明i为迭代器 LISTCHAR::iterator j; //从前面向listTwo容器中添加数据 listTwo.push_front ('A'); listTwo.push_front ('B'); //从后面向listTwo容器中添加数据 listTwo.push_back ('x'); listTwo.push_back ('y'); //从前向后显示listTwo中的数据 cout<<"listTwo.begin()---listTwo.end():"<<endl; for (j = listTwo.begin(); j != listTwo.end(); ++j) cout << char(*j) << " "; cout << endl; //使用STL的max_element算法求listTwo中的最大元素并显示 j=max_element(listTwo.begin(),listTwo.end()); cout << "The maximum element in listTwo is: "<<char(*j)<<endl;}#include <iostream>#include <vector>using namespace std;typedef vector<int> INTVECTOR;//测试vector容器的功能void main(void){ //vec1对象初始为空 INTVECTOR vec1; //vec2对象最初有10个值为6的元素 INTVECTOR vec2(10,6); //vec3对象最初有3个值为6的元素 INTVECTOR vec3(vec2.begin(),vec2.begin()+3); //声明一个名为i的双向迭代器 INTVECTOR::iterator i; //从前向后显示vec1中的数据 cout<<"vec1.begin()--vec1.end():"<<endl; for (i =vec1.begin(); i !=vec1.end(); ++i) cout << *i << " "; cout << endl; //从前向后显示vec2中的数据 cout<<"vec2.begin()--vec2.end():"<<endl; for (i =vec2.begin(); i !=vec2.end(); ++i) cout << *i << " "; cout << endl; //从前向后显示vec3中的数据 cout<<"vec3.begin()--vec3.end():"<<endl; for (i =vec3.begin(); i !=vec3.end(); ++i) cout << *i << " "; cout << endl; //测试添加和插入成员函数 vec1.push_back(2); vec1.push_back(4); vec1.insert(vec1.begin()+1,5); vec1.insert(vec1.begin()+1,vec3.begin(),vec3.end()); cout<<"push() and insert():" <<endl; for (i =vec1.begin(); i !=vec1.end(); ++i) cout << *i << " "; cout << endl; //测试赋值成员函数 vec2.assign(8,1); cout<<"vec2.assign(8,1):" <<endl; for (i =vec2.begin(); i !=vec2.end(); ++i) cout << *i << " "; cout << endl; //测试引用类函数 cout<<"vec1.front()="<<vec1.front()<<endl; cout<<"vec1.back()="<<vec1.back()<<endl; cout<<"vec1.at(4)="<<vec1.at(4)<<endl; cout<<"vec1[4]="<<vec1[4]<<endl; //测试移出和删除 vec1.pop_back(); vec1.erase(vec1.begin()+1,vec1.end()-2); cout<<"vec1.pop_back() and vec1.erase():" <<endl; for (i =vec1.begin(); i !=vec1.end(); ++i) cout << *i << " "; cout << endl; //显示序列的状态信息 cout<<"vec1.capacity(): "<<vec1.capacity()<<endl; cout<<"vec1.max_size(): "<<vec1.max_size()<<endl; cout<<"vec1.size(): "<<vec1.size()<<endl; cout<<"vec1.empty(): "<<vec1.empty()<<endl; //vector序列容器的运算 cout<<"vec1==vec3: "<<(vec1==vec3)<<endl; cout<<"vec1<=vec3: "<<(vec1<=vec3)<<endl;}#include <iostream>#include <deque>using namespace std;typedef deque<int> INTDEQUE;//从前向后显示deque队列的全部元素void put_deque(INTDEQUE deque, char *name){ INTDEQUE::iterator pdeque; cout << "The contents of " << name << " : "; for(pdeque = deque.begin(); pdeque != deque.end(); pdeque++) cout << *pdeque << " "; cout<<endl;}//测试deqtor容器的功能void main(void){//deq1对象初始为空 INTDEQUE deq1; //deq2对象最初有10个值为6的元素 INTDEQUE deq2(10,6); //deq3对象最初有3个值为6的元素 INTDEQUE deq3(deq2.begin(),deq2.begin()+3); //声明一个名为i的双向迭代器变量 INTDEQUE::iterator i; //从前向后显示deq1中的数据 put_deque(deq1,"deq1"); //从前向后显示deq2中的数据 put_deque(deq2,"deq2"); //从前向后显示deq3中的数据 put_deque(deq3,"deq3"); //从deq1序列后面添加两个元素deq1.push_back(2);deq1.push_back(4);cout<<"deq1.push_back(2) and deq1.push_back(4):"<<endl; put_deque(deq1,"deq1");//从deq1序列前面添加两个元素deq1.push_front(5);deq1.push_front(7);cout<<"deq1.push_front(5) and deq1.push_front(7):"<<endl; put_deque(deq1,"deq1");//在deq1序列中间插入数据deq1.insert(deq1.begin()+1,3,9);cout<<"deq1.insert(deq1.begin()+1,3,9):"<<endl; put_deque(deq1,"deq1");//测试引用类函数cout<<"deq1.front()="<<deq1.front()<<endl;cout<<"deq1.back()="<<deq1.back()<<endl;cout<<"deq1.at(4)="<<deq1.at(4)<<endl;cout<<"deq1[4]="<<deq1[4]<<endl;deq1.at(1)=10;deq1[2]=12;cout<<"deq1.at(1)=10 and deq1[2]=12 :"<<endl; put_deque(deq1,"deq1");//从deq1序列的前后各移去一个元素deq1.pop_front();deq1.pop_back();cout<<"deq1.pop_front() and deq1.pop_back():"<<endl; put_deque(deq1,"deq1");//清除deq1中的第2个元素deq1.erase(deq1.begin()+1);cout<<"deq1.erase(deq1.begin()+1):"<<endl; put_deque(deq1,"deq1");//对deq2赋值并显示deq2.assign(8,1);cout<<"deq2.assign(8,1):"<<endl; put_deque(deq2,"deq2");//显示序列的状态信息cout<<"deq1.max_size(): "<<deq1.max_size()<<endl;cout<<"deq1.size(): "<<deq1.size()<<endl;cout<<"deq1.empty(): "<<deq1.empty()<<endl;//deqtor序列容器的运算cout<<"deq1==deq3: "<<(deq1==deq3)<<endl;cout<<"deq1<=deq3: "<<(deq1<=deq3)<<endl;}#include <iostream>#include <list>using namespace std;typedef list<int> INTLIST;//从前向后显示list队列的全部元素void put_list(INTLIST list, char *name){ INTLIST::iterator plist; cout << "The contents of " << name << " : "; for(plist = list.begin(); plist != list.end(); plist++) cout << *plist << " "; cout<<endl;}//测试list容器的功能void main(void){//list1对象初始为空 INTLIST list1; //list2对象最初有10个值为6的元素 INTLIST list2(10,6); //list3对象最初有3个值为6的元素 INTLIST list3(list2.begin(),--list2.end()); //声明一个名为i的双向迭代器 INTLIST::iterator i; //从前向后显示各list对象的元素 put_list(list1,"list1"); put_list(list2,"list2"); put_list(list3,"list3"); //从list1序列后面添加两个元素list1.push_back(2);list1.push_back(4);cout<<"list1.push_back(2) and list1.push_back(4):"<<endl; put_list(list1,"list1");//从list1序列前面添加两个元素list1.push_front(5);list1.push_front(7);cout<<"list1.push_front(5) and list1.push_front(7):"<<endl; put_list(list1,"list1");//在list1序列中间插入数据list1.insert(++list1.begin(),3,9);cout<<"list1.insert(list1.begin()+1,3,9):"<<endl; put_list(list1,"list1");//测试引用类函数cout<<"list1.front()="<<list1.front()<<endl;cout<<"list1.back()="<<list1.back()<<endl;//从list1序列的前后各移去一个元素list1.pop_front();list1.pop_back();cout<<"list1.pop_front() and list1.pop_back():"<<endl; put_list(list1,"list1");//清除list1中的第2个元素list1.erase(++list1.begin());cout<<"list1.erase(++list1.begin()):"<<endl; put_list(list1,"list1");//对list2赋值并显示list2.assign(8,1);cout<<"list2.assign(8,1):"<<endl; put_list(list2,"list2");//显示序列的状态信息cout<<"list1.max_size(): "<<list1.max_size()<<endl;cout<<"list1.size(): "<<list1.size()<<endl;cout<<"list1.empty(): "<<list1.empty()<<endl;//list序列容器的运算 put_list(list1,"list1"); put_list(list3,"list3");cout<<"list1>list3: "<<(list1>list3)<<endl;cout<<"list1<list3: "<<(list1<list3)<<endl;//对list1容器排序list1.sort(); put_list(list1,"list1"); //结合处理list1.splice(++list1.begin(), list3); put_list(list1,"list1"); put_list(list3,"list3"); }#include <iostream.h>#include <set>using namespace std;//创建set模板的实例typedef set<int> SET_INT;//put_HTset函数,从头向尾显示set容器的所有元素void put_HTset(SET_INT set1,char *name){ SET_INT::iterator it; cout<<name<<": ";cout<<"Head to Tail="; for (it=set1.begin();it!=set1.end();++it) cout<<(*it)<<" "; cout<<endl;}//put_THset函数,从尾向头显示set容器的所有元素void put_THset(SET_INT s1,char *name){ SET_INT::reverse_iterator i; cout<<name<<": "; cout<<"Tail to Head="; for (i=s1.rbegin(); i!=s1.rend();i++) cout <<(*i) <<" "; cout<<endl;}//测试set模板void main(void){int i; //声明set的对象和迭代器 SET_INT s1; //容器初始尾空 SET_INT::iterator it; //向s1对象中插入值for (i=1;i<20;i=i+2) { s1.insert(i);} //正向显示s1中的数据 put_HTset(s1,"s1"); //反向显示s1中的数据 put_THset(s1,"s1");//构造含有元素的序列并显示 SET_INT s2(s1); put_HTset(s2,"s2");//删除s2的第2个元素并显示 s2.erase(++s2.begin()); put_HTset(s2,"s2");//向s2插入8和9并显示 s2.insert(8); s2.insert(9); put_HTset(s2,"s2");//清空s2的序列 s2.clear(); put_HTset(s2,"s2");//按关键给定的区间显示序列中的元素cout<<"[s1.lower_bound(5),s1.upper_bound(15)] :";for (it=s1.lower_bound(4);it!=s1.upper_bound(16);it++)cout<<(*it)<<" ";cout<<endl; //显示s1的状态信息 cout<<"s1.size():"<<s1.size()<<endl; cout<<"s1.max_size():"<<s1.max_size()<<endl; cout<<"s1.count(15):"<<s1.count(15)<<endl;//交换两个set容器的元素并显示s1.swap(s2); put_HTset(s1,"s1"); put_HTset(s2,"s2");//关系运算s1.insert(5);cout<<"s1>s2 = "<<(s1>s2)<<endl;}#include <iostream.h>#include <set>using namespace std;//创建multiset模板的实例typedef multiset<int> MULTISET_INT;//put_HTset函数,从头向尾显示multiset容器的所有元素void put_HTset(MULTISET_INT set1,char *name){ MULTISET_INT::iterator it; cout<<name<<": ";cout<<"Head to Tail="; for (it=set1.begin();it!=set1.end();++it) cout<<(*it)<<" "; cout<<endl;}//put_THset函数,从尾向头显示multiset容器的所有元素void put_THset(MULTISET_INT s1,char *name){ MULTISET_INT::reverse_iterator i; cout<<name<<": "; cout<<"Tail to Head="; for (i=s1.rbegin(); i!=s1.rend();i++) cout <<(*i) <<" "; cout<<endl;}//测试multiset模板void main(void){int i; //声明multiset的对象和迭代器 MULTISET_INT s1; //容器初始尾空 MULTISET_INT::iterator it; //向s1对象中插入值for (i=1;i<20;i=i+2) { s1.insert(i);} //正向显示s1中的数据 put_HTset(s1,"s1"); //反向显示s1中的数据 put_THset(s1,"s1");//构造含有元素的序列并显示 MULTISET_INT s2(s1); put_HTset(s2,"s2");//删除s2的第2个元素并显示 s2.erase(++s2.begin()); put_HTset(s2,"s2");//向s2插入8和9并显示 s2.insert(8); s2.insert(9); put_HTset(s2,"s2");//清空s2的序列 s2.clear(); put_HTset(s2,"s2");//按键给定的区间显示序列中的元素cout<<"[s1.lower_bound(5),s1.upper_bound(15)] :";for (it=s1.lower_bound(4);it!=s1.upper_bound(16);it++)cout<<(*it)<<" ";cout<<endl; //显示s1的状态信息 cout<<"s1.size():"<<s1.size()<<endl; cout<<"s1.max_size():"<<s1.max_size()<<endl; cout<<"s1.count(15):"<<s1.count(15)<<endl;//交换两个multiset容器的元素并显示s1.swap(s2); put_HTset(s1,"s1"); put_HTset(s2,"s2");//关系运算s1.insert(2); put_HTset(s1,"s1"); put_HTset(s2,"s2");cout<<"s1>s2 = "<<(s1>s2)<<endl;}#include <iostream>#include <string>#include <map>using namespace std;//创建map的实例,整数(int)映射字符串(string)typedef map<int, string> INT2STRING;//测试map容器void main(){ //创建map对象theMap INT2STRING theMap; INT2STRING::iterator theIterator,it; //向theMap容器中添入数据,数字和字符串配对 //每个元素是一个映射对 theMap.insert(INT2STRING::value_type(0,"Zero")); theMap.insert(INT2STRING::value_type(2,"Two")); theMap.insert(INT2STRING::value_type(4,"Four")); theMap.insert(INT2STRING::value_type(6,"Six")); theMap.insert(INT2STRING::value_type(8,"Eight")); //显示map容器的所有对象 cout<<"theMap.begin()--theMap.end():"<<endl; for (theIterator=theMap.begin();theIterator!=theMap.end();++theIterator){ cout<<(*theIterator).first; cout<<","<<(*theIterator).second<<" "; } cout<<endl;//测试map容器key的惟一性 theMap.insert(INT2STRING::value_type(0,"Zero")); theMap.insert(INT2STRING::value_type(1,"One")); theMap.insert(INT2STRING::value_type(2,"Two")); theMap.insert(INT2STRING::value_type(3,"Three")); theMap.insert(INT2STRING::value_type(4,"Four")); theMap.insert(INT2STRING::value_type(5,"Five")); theMap.insert(INT2STRING::value_type(6,"Six")); theMap.insert(INT2STRING::value_type(7,"Seven")); theMap.insert(INT2STRING::value_type(8,"Eight")); theMap.insert(INT2STRING::value_type(9,"Nine")); //下列语句将不能插入到map容器中 theMap.insert(INT2STRING::value_type(5,"AAA")); //显示map容器的所有对象 cout<<"theMap.begin()--theMap.end():"<<endl; for (theIterator=theMap.begin();theIterator!=theMap.end();++theIterator){ cout<<(*theIterator).first; cout<<","<<(*theIterator).second<<" "; } cout<<endl;//按键给定的区间显示序列中的元素cout<<"[theMap.lower_bound(3),theMap.upper_bound(8)] :"<<endl;for (it=theMap.lower_bound(3);it!=theMap.upper_bound(8);it++) { cout<<(*it).first; cout<<","<<(*it).second<<" ";}cout<<endl;//显示theMap的状态信息 cout<<"theMap.size():"<<theMap.size()<<endl; cout<<"theMap.max_size():"<<theMap.max_size()<<endl; cout<<"theMap.count(15):"<<theMap.count(15)<<endl; // 从键盘上输入数字,显示对应的字符串 string theString = ""; int index; for( ; ; ) { cout << "Enter \"q\" to quit, or enter a Number: "; cin >> theString; if(theString == "q") break; for(index = 0; index < theString.length(); index++){ theIterator = theMap.find(theString[index] - '0'); if(theIterator != theMap.end() ) cout << (*theIterator).second << " "; else cout << "[err] "; } cout << endl; }}#include <iostream>#include <string>#include <map>using namespace std;//创建multimap的实例,整数(int)映射字符串(string)typedef multimap<int, string> INT2STRING;//测试multimap容器void main(){ //创建multimap对象theMap INT2STRING theMap; INT2STRING::iterator theIterator,it; //向theMap容器中添入数据,数字和字符串配对 //每个元素是一个映射对 theMap.insert(INT2STRING::value_type(90,"张卫")); theMap.insert(INT2STRING::value_type(85,"李华")); theMap.insert(INT2STRING::value_type(73,"赵明")); theMap.insert(INT2STRING::value_type(96,"郝名")); //显示multimap容器的所有对象 cout<<"theMap.begin()--theMap.end():"<<endl; for (theIterator=theMap.begin();theIterator!=theMap.end();++theIterator){ cout<<(*theIterator).second;cout<<"\t"<<(*theIterator).first<<endl; }//测试multimap容器key的非惟一性 theMap.insert(INT2STRING::value_type(90,"李朋")); theMap.insert(INT2STRING::value_type(85,"钱德")); theMap.insert(INT2STRING::value_type(93,"赵刚")); //按成绩高低输出multimap容器的所有对象 INT2STRING::reverse_iterator i; cout<<"theMap.rbegin()--theMap.rend():"<<endl; for (i=theMap.rbegin();i!=theMap.rend();++i){ cout<<(*i).second;cout<<"\t"<<(*i).first<<endl; }//按关键给定的区间显示序列中的元素cout<<"[theMap.lower_bound(80),theMap.upper_bound(90)] :"<<endl;for (it=theMap.lower_bound(80);it!=theMap.upper_bound(90);it++) { cout<<(*it).second;cout<<"\t"<<(*it).first<<endl; }//显示theMap的状态信息 cout<<"theMap.size():"<<theMap.size()<<endl; cout<<"theMap.max_size():"<<theMap.max_size()<<endl; cout<<"theMap.count(90):"<<theMap.count(90)<<endl;//清除90分以下的数据,并显示结果theMap.erase(theMap.lower_bound(60),theMap.upper_bound(89)); cout<<"theMap.rbegin()--theMap.rend():"<<endl; for (i=theMap.rbegin();i!=theMap.rend();++i){ cout<<(*i).second;cout<<"\t"<<(*i).first<<endl; }}#include <iostream> #include <valarray> #include <math.h> using namespace std;#define ARRAY_SIZE 3 //array size//测试valarray容器void main(){ //创建具有3个元素的数组val_array valarray<double> val_array(ARRAY_SIZE); //设置数组的值为1, 4, 9 for (int i = 0; i < ARRAY_SIZE; i++) val_array[i] = (i+1) * (i+1); //显示val_array数组的大小 cout << "Size of val_array = " << val_array.size() << endl; // 显示val_array数组的值 cout << "The values in val_array before calling sqrt() and pow():" << endl; for (i = 0; i < ARRAY_SIZE; i++) cout << val_array[i] << " "; cout << endl; //声明一个rev_valarray数组,其保存对数组val_array的取反 valarray<double> rev_valarray(ARRAY_SIZE); for (i = 0; i < ARRAY_SIZE; i++) rev_valarray[i] = val_array[ARRAY_SIZE - i - 1]; //显示rev_valarray数组的大小和元素 cout << "Size of rev_valarray = " << rev_valarray.size() << endl; cout << "The values in rev_valarray:" << endl; for (i = 0; i < ARRAY_SIZE; i++) cout << rev_valarray[i] << " "; cout <<endl; // 声明rvalue_array数组,其存放调用sqrt()和pow()函数的返回值 valarray<double> rvalue_array; //调用sqrt()函数并显示结果 rvalue_array = sqrt(val_array); cout << "The result of rvalue_array after calling sqrt():" << endl; for (i = 0; i < ARRAY_SIZE; i++) cout << rvalue_array[i] << " "; cout <<endl; //对val_array数组元素计算幂函数并显示 rvalue_array = pow(val_array, rev_valarray); cout << "The result after calling pow(val_array, rev_valarray):" << endl; for (i = 0; i < ARRAY_SIZE; i++) cout << rvalue_array[i] << " "; cout <<endl; //对val_array数组元素计算幂函数,指数均为2.0,并显示 rvalue_array = pow(val_array, 2.0); cout << "The result after calling pow(val_array, 2.0):" << endl; for (i = 0; i < ARRAY_SIZE; i++) cout << rvalue_array[i] << " "; cout <<endl; //对2.0进行幂函数运算,指数均为数组val_array的各元素值 rvalue_array = pow(2.0, val_array); cout << "The result after calling pow(2.0, val_array):" << endl; for (i = 0; i < ARRAY_SIZE; i++) cout << rvalue_array[i] << " "; cout <<endl;//对val_array和rvalue_array求和cout<<"val_array.sum()="<<val_array.sum()<<endl;cout<<"rvalue_array.sum()="<<rvalue_array.sum()<<endl;//求最大值并显示cout<<"val_array.max()="<<val_array.max()<<endl;cout<<"rvalue_array.max()="<<rvalue_array.max()<<endl;}#include <stack>#include <iostream>using namespace std ;typedef stack<int> STACK_INT;void main(){ STACK_INT stack1; int i; //判断栈是否空 cout << "stack1.empty() returned " << (stack1.empty()? "true": "false") << endl; //0,2,4,6...入栈 for (i=0;i<10;i=i+2) stack1.push(i); //top()函数 if (!stack1.empty()) cout << "stack1.top() returned " <<stack1.top() << endl; //计算栈的长度 cout<<"stack1.size(): "<<stack1.size()<<endl; //改变栈顶的值 20. if (!stack1.empty()) { cout << "stack1.top()=20;" << endl; stack1.top()=20; } //弹出栈中所有的数据并显示cout<<"stack1: "; while (!stack1.empty()) { cout<<stack1.top()<<" "; stack1.pop(); }cout<<endl;}#include <iostream>#include <list>#include <numeric>using namespace std;//创建一个list容器的实例LISTINT,其存放int型数据typedef list<int> LISTINT;void main(void){ //用LISTINT创建一个名为listOne的list对象 LISTINT listOne; //指定i为迭代器变量 LISTINT::iterator i; LISTINT::reverse_iterator ir; //从前面向listOne容器中添加数据 listOne.push_front (2); listOne.push_front (1); //从后面向listOne容器中添加数据 listOne.push_back (3); listOne.push_back (4); //从前向后显示listOne中的数据 for (i = listOne.begin(); i != listOne.end(); ++i) cout << *i << " "; cout << endl; //从后向后显示listOne中的数据 for (ir =listOne.rbegin();ir!=listOne.rend(); ++ir) cout << *ir << " "; cout << endl; //从键盘上输入数据 for (i = listOne.begin(); i != listOne.end(); ++i) { cout<<"listOne :"; cin>>(*i); } //从前向后显示listOne中的数据 for (i = listOne.begin(); i != listOne.end(); ++i) cout << *i << " "; cout << endl; //bidirectional迭代器不允许加减运算 // i=listOne.begin()+1;}#include <iostream>#include <iostream>#include <numeric>#include <vector>#include <list>#include <set>using namespace std;//利用类模板生成类实例typedef vector < int > IntArray;typedef list <int> LISTINT;typedef set<int> SET_INT;int add(int a, int b) { return a+b;}//在main()函数中测试accumulate算法void main (){//--------------------------------------------//accumulate算法对于普通数组的计算//--------------------------------------------- int x[]={1,3,5,7,9}; cout<<"x[]:"; for (int i=0;i<5;i++) cout<<x[i]<<" "; cout<<endl; cout<<"accumulate(x,x+5,0)="; cout<<accumulate(x,x+5,0)<<endl;int val=100;cout<<"val="<<val<<endl; cout<<"accumulate(x,x+5,val)="; cout<<accumulate(x,x+5,val)<<endl;//--------------------------------------------//accumulate算法对于vector容器的计算//--------------------------------------------- //声明intvector容器和迭代器ii IntArray intvector; IntArray::iterator ii; //向intvector容器中插入元素 for (i=1; i<=5; i++) { intvector.push_back(i); }; //显示intvector容器中的元素值和累加结果 cout << "intvector: "<<endl; for (ii=intvector.begin();ii !=intvector.end();++ii) cout<<(*ii)<<" "; cout<<endl; cout<<"accumulate(intvector.begin(),intvector.end(),0)="; cout<<accumulate(intvector.begin(),intvector.end(),0)<<endl;//--------------------------------------------//accumulate算法对于list容器的计算//--------------------------------------------- //声明list容器对象和迭代器 LISTINT::iterator iL; LISTINT list1; //向list1容器对象中插入元素并显示 list1.push_front(1); list1.push_front(3); list1.push_front(5); list1.push_back(2); list1.push_back(6); //显示list1容器的元素值和累加结果 cout << "list1: "<<endl; for (iL=list1.begin();iL !=list1.end();++iL) cout<<(*iL)<<" "; cout<<endl; cout<<"accumulate(list1.begin(),list1.end(),0)="; cout<<accumulate(list1.begin(),list1.end(),0)<<endl;//--------------------------------------------//accumulate算法对于set容器的计算//--------------------------------------------- //声明set容器对象和迭代器 SET_INT set1; SET_INT::iterator si; //向set1容器中插入元素 set1.insert(5); set1.insert(20); set1.insert(10); set1.insert(15); set1.insert(25); //显示set1容器的元素值和累加结果 cout <<"set1: "<<endl; for (si=set1.begin();si !=set1.end();++si) cout<<(*si)<<" "; cout<<endl; cout<<"accumulate(set1.begin(),set1.end(),0)="; cout<<accumulate(set1.begin(),set1.end(),0)<<endl; cout<<"accumulate(set1.begin(),set1.end(),100)="; cout<<accumulate(set1.begin(),set1.end(),100)<<endl;}#include <iostream>#include <algorithm>#include <vector>#include <list>#include <set>#define size 10using namespace std;//产生指定范围的整数随机数int getrand(int min,int max) { int m; m=(max-min); m=min+double(rand())/RAND_MAX*m ; return m;}//利用类模板生成实例typedef vector < int > IntArray;typedef list <int> LISTINT;typedef set<int> SET_INT;//在main()函数中测试accumulate算法void main (){//--------------------------------------------//count算法对于普通数组的计算//--------------------------------------------- int x[size]; cout<<"x[]:"; for (int i=0;i<size;i++) {x[i]=getrand(1,3); cout<<x[i]<<" ";} cout<<endl; cout<<"count(x,x+size,2)="; cout<<count(x,x+size,2)<<endl; cout<<"count(x+2,x+8,2)="; cout<<count(x+2,x+8,2)<<endl;//--------------------------------------------//count算法对于vector容器的计算//--------------------------------------------- //声明intvector容器和迭代器ii IntArray intvector; IntArray::iterator ii; //向intvector容器中插入元素 for (i=1; i<size; i++) { intvector.push_back(getrand(2,6)); }; //显示intvector容器中的元素值和统计结果 cout << "intvector: "; for (ii=intvector.begin();ii !=intvector.end();++ii) cout<<(*ii)<<" "; cout<<endl; cout<<"count(intvector.begin(),intvector.end(),4)="; cout<<count(intvector.begin(),intvector.end(),4)<<endl;//--------------------------------------------//count算法对于list容器的计算//--------------------------------------------- //声明list容器对象和迭代器 LISTINT::iterator iL; LISTINT list1; //向list1容器对象中插入元素并显示 for (i=1; i<size; i++) { list1.push_front(getrand(3,5)); }; //显示list1容器的元素值和统计结果 cout << "list1: "; for (iL=list1.begin();iL !=list1.end();++iL) cout<<(*iL)<<" "; cout<<endl; cout<<"count(list1.begin(),list1.end(),3)="; cout<<count(list1.begin(),list1.end(),3)<<endl;//--------------------------------------------//count算法对于set容器的计算//--------------------------------------------- //声明set容器对象和迭代器 SET_INT set1; SET_INT::iterator si; //向set1容器中插入元素 for (i=1; i<size; i++) { set1.insert(getrand(1,10)); }; //显示set1容器的元素值和统计结果 cout <<"set1: "; for (si=set1.begin();si !=set1.end();++si) cout<<(*si)<<" "; cout<<endl; cout<<"count(set1.begin(),set1.end(),5)="; cout<<count(set1.begin(),set1.end(),5)<<endl;}#include <iostream>#include <algorithm>#include <string>#include <vector>using namespace std;//如果字符串以'S'开头,则返回trueint MatchFirstChar( const string& str){ string s("S") ; return s == str.substr(0,1) ;}//测试count_if算法void main(){ const int VECTOR_SIZE = 8 ; //生成成员类型为strings的vector容器类 typedef vector<string > StringVector ; //定义迭代器类型 typedef StringVector::iterator StringVectorIt ; //声明vector容器的对象 StringVector NamesVect(VECTOR_SIZE) ; //声明迭代器 StringVectorIt start, end, it ; int result = 0 ; // 存放统计数据 //初始化vector容器NamesVect NamesVect[0] = "She" ; NamesVect[1] = "Sells" ; NamesVect[2] = "Sea" ; NamesVect[3] = "Shells" ; NamesVect[4] = "by" ; NamesVect[5] = "the" ; NamesVect[6] = "Sea" ; NamesVect[7] = "Shore" ; //设置容器的起始位置和终止位置 start = NamesVect.begin() ; end = NamesVect.end() ; //显示NamesVect容器的元素 cout << "NamesVect: " ; for(it = start; it != end; it++) cout << *it << " " ; cout <<endl ; //统计并显示NamesVect容器的所有元素中以'S'字符开头的字符串 result = count_if(start, end, MatchFirstChar) ; cout << "Number of elements that start with letter \"S\" = " << result << endl ; //显示NamesVect容器[1,6]之间的元素 cout <<"NamesVect[1]--NamesVect[6]: " ; for(it =&NamesVect[1]; it != &NamesVect[7]; it++) cout << *it << " " ; cout <<endl ; //统计并显示NamesVect容器的所有元素中以'S'字符开头的字符串 result = count_if(&NamesVect[1], &NamesVect[7], MatchFirstChar) ; cout << "Number of elements that start with letter \"S\" = " << result << endl ;}#include <iostream>#include <algorithm>#include <vector>using namespace std;//利用类模板生成实例typedef vector < int > IntArray;//显示数组void put_array(int x[],int size) { for(int i=0;i<size;i++) cout<<x[i]<<" "; cout<<endl;}//显示vector容器中的元素void put_vector(IntArray v){ IntArray::iterator theIterator; for (theIterator=v.begin();theIterator!=v.end();++theIterator){ cout<<(*theIterator)<<" "; } cout<<endl;}//在main()函数中测试fill和fill_n算法void main (){//--------------------------------------------//fill和fill_n算法对普通数组的计算//--------------------------------------------- int x[]={1,3,5,7,9}; cout << "x[]: "; put_array(x,5); //填数处理 fill(x+1,x+3,2); cout << "fill(x+1,x+3,2): "<<endl; put_array(x,5);fill_n(x,3,8); cout << "fill_n(x,3,8): "<<endl; put_array(x,5);//--------------------------------------------//fill和fill_n算法对于vector容器的计算//--------------------------------------------- //声明intvector容器和迭代器ii IntArray intvector; //向intvector容器中插入元素 for (int i=1; i<=10; i++) { intvector.push_back(i); }; //显示intvector容器中的元素值和统计结果 cout << "intvector: "<<endl; put_vector(intvector); //填数处理 fill(intvector.begin(),intvector.begin()+3,2); cout << "fill(intvector.begin(),intvector.begin()+3,2): "<<endl; put_vector(intvector); fill_n(&intvector[5],3,8); cout << "fill_n(&intvector[5],3,8): "<<endl; put_vector(intvector);}#include <iostream>#include <algorithm>#include <vector>#define ARRAY_SIZE 10using namespace std;//利用类模板生成实例typedef vector < int > IntArray;//显示数组void put_array(int x[],int size) { for(int i=0;i<size;i++) cout<<x[i]<<" "; cout<<endl;}//显示vector容器中的元素void put_vector(IntArray v){ IntArray::iterator theIterator; for (theIterator=v.begin();theIterator!=v.end();++theIterator){ cout<<(*theIterator)<<" "; } cout<<endl;}//在main()函数中测试find()算法void main (){int i,value,*p;//--------------------------------------------//find()算法对于普通数组的处理//--------------------------------------------- int x[ARRAY_SIZE]={1,3,5,7,9,2,4,6,8,10}; cout << "x[]: "; put_array(x,ARRAY_SIZE); //find()算法查找,并显示查找结果for(i=0;i<=2;i++) { cout<<"value="; cin>>value; p=find(x,x+ARRAY_SIZE,value); if (p != x + ARRAY_SIZE) { //查到 cout << "First element that matches " << value; cout<< " is at location " << p - x<< endl; } else { //未查到 cout << "The sequence does not contain any elements"; cout<< " with value " << value << endl ; }}//--------------------------------------------//find()算法对于vector容器的处理//--------------------------------------------- //声明intvector容器对象 IntArray intvector; //向intvector容器中插入元素 for (i=1; i<=10; i++) { intvector.push_back(i); }; //显示intvector容器中的元素值 cout << "intvector: "; put_vector(intvector); //find()算法查找,并显示查找结果 IntArray::iterator pos; for (i=0;i<=2;i++) {cout<<"value=";cin>>value; pos=find(intvector.begin(),intvector.end(),value); if (pos != intvector.end()) { //查到 cout << "First element that matches " << value; cout<< " is at location " <<pos - intvector.begin()<< endl;} else { //未查到 cout << "The sequence does not contain any elements"; cout<< " with value " << value << endl ;}}}#include <iostream>#include <algorithm>#include <vector>#define ARRAY_SIZE 10using namespace std;//利用类模板生成实例typedef vector < int > IntArray;//显示数组void put_array(int x[],int size) { for(int i=0;i<size;i++) cout<<x[i]<<" ";}//显示vector容器中的元素void put_vector(IntArray v){ IntArray::iterator theIterator; for (theIterator=v.begin();theIterator!=v.end();++theIterator){ cout<<(*theIterator)<<" "; }}//在main()函数中测试find()_end()算法void main (){//--------------------------------------------//find_end()算法对普通数组的处理//--------------------------------------------- int x[ARRAY_SIZE]={1,3,5,7,9,2,4,6,8,10}; cout << "x[]: "; put_array(x,ARRAY_SIZE); cout<<endl; int y[]={5,7,9}; cout << "y[]: "; put_array(y,3); cout<<endl; // find_end()算法查找,并显示查找结果 int *p=find_end(x,x+ARRAY_SIZE,&y[0],&y[2]); if (p != x + ARRAY_SIZE) { //查到 cout << "The first element that matches :" ; put_array(y,3); cout<< " is at location in x" << p - x<< endl; } else { //未查到 cout << "The sequence does not contain any elements"; cout<< " with value " ; put_array(&x[3],3); }//--------------------------------------------//find_end()算法对vector容器的处理//--------------------------------------------- //声明intvector容器对象 IntArray intvector; //向intvector容器中插入元素 for (int i=1; i<=10; i++) { intvector.push_back(i); }; //显示intvector容器中的元素值 cout << "intvector: "; put_vector(intvector); cout<<endl; IntArray temp; temp.push_back(5); temp.push_back(6); temp.push_back(7); cout << "temp: "; put_vector(temp); cout<<endl; // find_end()算法查找,并显示查找结果 IntArray::iterator pos; pos=find_end(intvector.begin(),intvector.end(),temp.begin(),temp.end()); if (pos != intvector.end()) { //查到 cout << "The first element that matches "; put_vector(temp); cout<< " is at location in intvector " <<pos - intvector.begin()<< endl; } else { //未查到 cout << "The sequence does not contain any elements"; cout<< " with value "; put_vector(temp); cout<< endl ; }}#include <iostream>#include <vector>#include <algorithm>using namespace std;//返回一个Fibonacci数,其由generate_n()算法调用int Fibonacci1(void){ static int r; static int f1 = 0; static int f2 = 1; r = f1 + f2 ; f1 = f2 ; f2 = r ; return f1 ;}//返回一个Fibonacci数,其由generate()算法调用int Fibonacci2(void){ static int r; static int f1 = 0; static int f2 = 1; r = f1 + f2 ; f1 = f2 ; f2 = r ; return f1 ;}//定义整型数的vector容器类 typedef vector<int > IntVector ;//显示vector容器中的元素void put_vector(IntVector v,char *name){ IntVector::iterator theIterator; cout<<name<<":"<<endl; for (theIterator=v.begin();theIterator!=v.end();++theIterator){ cout<<(*theIterator)<<" "; } cout<<endl;}//测试generate()和generate_n()算法void main(){ const int VECTOR_SIZE = 15 ; //定义迭代器类 typedef IntVector::iterator IntVectorIt ; //声明vector容器对象 IntVector Numbers1(VECTOR_SIZE),Numbers2(VECTOR_SIZE); int i ; //初始化vector容器对象 for(i = 0; i < VECTOR_SIZE; i++) Numbers1[i] = i ; //显示vector容器对象的元素 cout << "Before calling generate_n:" << endl ; put_vector(Numbers1,"Numbers1"); //利用generate_n算法用Fibonacci 数填充vector容器 generate_n(Numbers1.begin(), VECTOR_SIZE, Fibonacci1) ; //显示vector容器对象的元素 cout << "After calling generate_n:" << endl ; put_vector(Numbers1,"Numbers1"); //利用generate算法用Fibonacci 数填充vector容器 generate(Numbers2.begin(),Numbers2.end(), Fibonacci2) ; //显示vector容器对象的元素 cout << "After calling generate:" << endl ; put_vector(Numbers2,"Numbers2");}#include <iostream>#include <algorithm>#include <vector>using namespace std;//利用类模板生成实例typedef vector < int > IntArray;//显示数组void put_array(int x[],int size) { for(int i=0;i<size;i++) cout<<x[i]<<" ";cout<<endl;}//显示vector容器中的元素void put_vector(IntArray v){ IntArray::iterator theIterator; for (theIterator=v.begin();theIterator!=v.end();++theIterator){ cout<<(*theIterator)<<" "; }cout<<endl;}//在main()函数中测试reverse()和reverse_copy()算法void main (){//--------------------------------------------//reverse()和reverse_copy()算法对普通数组处理//--------------------------------------------- int x[]={1,3,5,7,9}; cout<<"x[]:"; put_array(x,5);//reverse()反转x数组并显示 reverse(x,x+5); cout<<"x[]:"; put_array(x,5); int y[]={2,4,6,8,10}; cout<<"y[]:"; put_array(y,5);//reverse_copy()反转y数组的部分元素并拷贝到x数组第2个元素位置 reverse_copy(y+1,y+3,x+1); cout<<"x[]:"; put_array(x,5); cout<<"y[]:"; put_array(y,5);//--------------------------------------------//reverse()和reverse_copy()算法对vector容器的处理//--------------------------------------------- //声明intvector容器和迭代器ii IntArray intvector; //向intvector容器中插入元素 for (int i=1; i<=10; i++) { intvector.push_back(i); }; //显示intvector容器中的元素值 cout << "intvector: "<<endl; put_vector(intvector);//reverse()对于vector容器的处理 reverse(intvector.begin(),intvector.end()); cout << "intvector: "<<endl; put_vector(intvector); // reverse_copy对于vector容器的处理 IntArray temp(5); reverse_copy(intvector.begin()+2,intvector.begin()+7,temp.begin()); cout << "temp: "<<endl; put_vector(temp);}#include <iostream>#include <algorithm>#include <vector>#include <stdlib.h>#define ARRAY_SIZE 15using namespace std;//定义整型数的vector容器类typedef vector<int > IntVector ;//显示数组void put_array(int x[],int size) { for(int i=0;i<size;i++) cout<<x[i]<<" "; cout<<endl;}//显示vector容器中的元素void put_vector(IntVector v,char *name){ IntVector::iterator theIterator; cout<<name<<": "; for (theIterator=v.begin();theIterator!=v.end();++theIterator){ cout<<(*theIterator)<<" "; } cout<<endl;}//产生指定范围的整数随机数int getrand(int min,int max) { int m; m=(max-min); m=min+double(rand())/RAND_MAX*m ; return m;}//在main()函数中测试sort()和partial_sort()算法void main (){ int i;//--------------------------------------------//sort()和partial_sort()算法对普通数组处理//--------------------------------------------- //sort()算法处理数组,并显示 int x[ARRAY_SIZE]; for (i=0;i<ARRAY_SIZE;i++) { x[i]=getrand(1,20); } cout<<"x[]:"; put_array(x,ARRAY_SIZE); sort(x,x+ARRAY_SIZE); cout<<"sort(x,x+ARRAY_SIZE):"<<endl; put_array(x,ARRAY_SIZE); //partial_sort()算法对于数组进行处理 int y[ARRAY_SIZE]; for (i=0;i<ARRAY_SIZE;i++) {y[i]=getrand(1,30) ;} cout<<"y[]:"; put_array(y,ARRAY_SIZE); partial_sort(y+2,y+7,y+ARRAY_SIZE); cout<<"partial_sort(y+2,y+7,y+ARRAY_SIZE):"<<endl; put_array(y,ARRAY_SIZE);//--------------------------------------------//sort()和partial_sort()算法对vector容器的处理//---------------------------------------------IntVector Numbers1,Numbers2; for(i=0;i<15;i++) { Numbers1.push_back(getrand(1,30)); Numbers2.push_back(getrand(1,30));}put_vector(Numbers1,"Numbers1");put_vector(Numbers2,"Numbers2"); //sort()算法处理并显示 sort(Numbers1.begin(),Numbers1.end());cout<<"After call sort():"<<endl;put_vector(Numbers1,"Numbers1"); //partial_sort()算法处理并显示 partial_sort(Numbers2.begin()+2,Numbers2.begin()+7,Numbers2.end()); cout<<"After call partial_sort():"<<endl; put_vector(Numbers2,"Numbers2"); }#include <iostream>#include <algorithm>#include <stdlib.h>#include <time.h>#define ARRAY_SIZE 15using namespace std;//显示数组void put_array(int x[],int size) { for(int i=0;i<size;i++) cout<<x[i]<<" ";cout<<endl;}//产生指定范围的整数随机数int getrand(int min,int max) {int m;m=(max-min); m=min+double(rand())/RAND_MAX*m ;return m;}//在main()函数中测试max_element()和 min_element()算法void main (){ //声明变量和数组 int i; int x[ARRAY_SIZE]; //用1到100的随机数初始化数组,并显示 srand( (unsigned)time( NULL ) ); for (i=0;i<ARRAY_SIZE;i++) { x[i]=getrand(1,100); } cout<<"x[]:"; put_array(x,ARRAY_SIZE); //对数组x使用max_element()算法,并显示 int *pMax=max_element(x,x+ARRAY_SIZE); cout<<"pMax ="<<pMax<<endl; cout<<"Location="<<(pMax-x)<<endl; cout<<"*pMax ="<<(*pMax)<<endl; //对数组x使用min_element()算法,并显示 int *pMin=min_element(x,x+ARRAY_SIZE); cout<<"pMin ="<<pMin<<endl; cout<<"Location="<<(pMin-x)<<endl; cout<<"*pMin ="<<(*pMin)<<endl;}
- C++经典程序代码大全
- asp经典程序代码集
- C/C++面试经典大全
- C/C++面试经典大全
- C/C++面试经典大全
- C语言经典算法大全
- C语言经典算法大全
- C++/C功能程序代码
- 史上最全的微信小程序代码大全
- C程序代码风格
- C程序代码风格
- 求一c程序代码
- 通讯录C程序代码
- C语言纸牌程序代码
- C语言程序代码分析
- C程序代码方法
- C程序代码分析
- c语言程序代码
- 解析解和有些人那么值钱的原因,及解决ORACLE加了索引还是非常慢
- C++指针运用
- 数组排序
- UML序列图总结
- php开发工具安装视频
- C++经典程序代码大全
- 小菜鸟飞了好久了
- 湖南第八届D题平方根大搜索
- 关于Java中静态代码块以及构造函数的执行先后顺序
- 汇编学习笔记--包含多个段的程序
- 回忆,更多的只是回忆!
- 【计算几何】POJ 计算几何入门题目推荐
- 什么是java序列化,如何实现java序列化?
- OpenCV对摄像头分辨率的设置