C++课程实践报告名称:学院:专业:姓名:学号:第三章流程控制语句一、本章实验目的:1、理解并掌握程序的基本控制语句。2、熟练掌握运用选择结构和循环语句。3、学习理解break语句、continue语句。二、实验任务:任务一:1、从键盘输入10个整数,求他们的平均值。源程序:#includeiostream.hvoidmain(){intsum=0,x,i;floataver;cout请输入10个整数endl;for(i=1;i=10;i++){cinx;sum=sum+x;}aver=sum/10;cout这10个整数的平均值为:averendl;}程序运行结果:任务二:2、从键盘输入若干学生的成绩,统计并输出其中的最高成绩和最低成绩,当输入负数时结束输入。源程序:#includeiostream.hvoidmain(){inti,x,max=0,min=1000;cout请输入10位学生成绩endl;for(i=1;i=10;i++){cinx;if(x0)break;if(xmax)(max=x);if(xmin)(min=x);}cout最高成绩为:maxendl最低成绩为:minendl;}程序运行结果:任务三:2、计算s=1+2+3+4+……+I,累加到s大于1000,并输出和i的值。源程序:#includeiostream.hvoidmain(){inti=1,s=0;for(i=1;s=1000;i++){s=s+i;}couts=sendli=iendl;}程序运行结果为:二、本章小结:本章学习到程序的控制结构用来控制程序中的语句的执行循序,任何程序都可以分成3中基本控制结构,分别是顺序结构、选择结构和循环结构。理解掌握每种结构是编写c++程序的基础。第四章数组一、本章实验目的:1、理解掌握一维数组、二维数组、字符数组的使用与定义。2、掌握字符串运算函数。3、熟练利用指针对数组进行操作。二、实验任务:任务一:1、找出一维数组中值最大的元素及其下标,注意最大元素可能不止一个。例如,{3,5,2,7,6,1,7,4,7,5}中的最大元素为7.其下标分别为3,6,8。源程序:#includeiostream.hvoidmain(){inta[10]={3,5,2,7,6,1,7,4,7,5};intt=a[0],i;for(i=0;i=9;i++){if(t=a[i])(t=a[i]);}cout最大元素为:tendl;for(i=0;i=9;i++)if(t==a[i])cout其下标为:iendl;}程序运行结果:任务二:2、不使用字符串处理函数,通过指针变量拼接字符串。如将“Goodmorning.”和“IamTom”拼接成“Goodmorning.IamTom.”源程序:#includeiostream.hvoidmain(){chars1[50]=Goodmorning.,s2[50]=IamTom,*a1=s1,*a2=s2;inti;for(i=1;i=50;i++)if(*a1!='\0')(a1++);a1=a2;couts1s2;}程序运行结果:任务三:3、设计一个程序,通过指针变量求键盘输入一字符串中单词的个数,如输入“Iamaboy.”,则输出其中包含的单词个数4.源程序:#includeiostream.hvoidmain(){cout请输入一串字符串:endl;chars1[100];inti,j=1;cin.getline(s1,100);for(i=0;i=99;i++)if(s1[i]=='')j++;cout该字符串的单词个数为:jendl;}程序运行结果为:三、本章小结:数组在c++程序中占有很重要的地位,合理有效的利用数组可以有效简单的处理大量数据,处理更为方便快捷,不同类型数组的定义不同,掌握其相同点与不同点,数组的输入与输出根据具体情况一般需要用循环语句控制,字符型数组可以直接输入和输出,注意cin.ggetline的使用。指针在数组中运用比较多,尤其字符数组中指针的使用。第五章函数一、本章实验目的:1、掌握函数的定义与调用。2、学习指针和函数的关系。3、掌握函数的各种特性。二、实验任务:任务一:1、设计程序,求两个整数的最小公倍数。源程序:#includeiostream.hintgbd(intx,inty){intbig;if(xy)big=y;elsebig=x;do{if(big%x==0&&big%y==0)break;big++;}while(big=x*y);returnbig;}voidmain(){inta,b,c;cout请输入两个整数endl;cinab;c=gbd(a,b);cout这两个整数的最小公倍数是:cendl;}程序运行结果:任务二:3、设计程序,将二维数组中每一列元素从小到大的顺序进行排序。源程序:#includeiostream.hvoidshow(floata[4][4]){inti,j;coutÇëÊäÈëÊý×éÔªËØendl;for(i=0;i4;i++)for(j=0;j4;j++)cina[i][j];coutÄãËùÊäÈëµÄÊý×éΪ£ºendl;for(i=0;i4;i++)for(j=0;j4;j++){couta[i][j]'\t';if((j+1)%4==0)coutendl;}floatt;for(j=0;j4;j++){for(i=0;i4;i++)for(intk=i+1;k4;k++)if(a[i][j]a[k][j]){t=a[i][j];a[i][j]=a[k][j];a[k][j]=t;}}coutÅÅÐòºóµÄÊý×éΪ£ºendl;for(i=0;i4;i++)for(j=0;j4;j++){couta[i][j]'\t';if((j+1)%4==0)coutendl;}}voidmain(){floata1[4][4];show(a1);}程序运行结果:任务三:3、设计处理二维数组的程序,要求如下。(1)定义函数voidmaininput(inta[][4],intn),用于对二维数组初始化。(2)定义函数voidmainoutput(int(*a)[4],intn),用于输出二维数组的元素。(3)定义函数intsearch_max(inta[][4],intn),用于查找二维数组a中的最大值元素,并记录其行下标和列下表,其中最大元素的值通过函数返回值带回主函数,对应下标分别储存到col和vol中。(4)在主函数中进行测试。源程序:#includeiostream.hinti=0,j=0;voidinput(inta[][4],intn){cout请输入数组endl;for(i=0;in;i++)for(j=0;j4;j++)//cout请输入数组endl;cina[i][j];}voidoutput(int(*a)[4],intn){cout你所输入的数组为:endl;for(i=0;in;i++)for(j=0;j4;j++){couta[i][j]'\t';if((j+1)%4==0)coutendl;}}intsearch_max(inta[][4],intn){intmax,col,vol;max=a[0][0];for(inti=0;in;i++)for(j=0;j4;j++){if(maxa[i][j]){max=a[i][j];col=i;vol=j;}}cout最大值的行下标colendl最大值的列下标vol;returnmax;}voidmain(){ints[4][4];input(s,4);output(s,4);cout最大值为search_max(s,4)endl;}程序运行结果:二、本章小结:函数是c++编写程序最最重要的部分,每个程序都包含各种函数。函数包括用户自定义函数和库函数两类。库函数c++语言系统提供,用户只需在程序中包含该库函数所在的头文件便可直接使用,用户自定义函数可以实现用户的需求自行定义,完成各种目的。第七章类和对象一、本章实验目的:1、掌握类的声明和使用。2、学习具有不同访问属性的成员的访式。3、掌握构造函数和析构函数的执行过程。4、学习类的组合使用方法。二、实验任务:任务一:1.定义一个类Array,实现二维数组每列元素按各元素的各位数字之和从小到大排序。要求用一个专门的函数求各数组的各位数之和。源程序:#includeiostream.hclassArray{inta[4][4],b[4][4],a2[4][4];public:Array(intt[4][4]){for(inti=0;i4;i++)for(intj=0;j4;j++)a[i][j]=t[i][j];}voidprint(){cout原数组为:endl;for(inti=0;i4;i++)for(intj=0;j4;j++){couta[i][j]'\t';a2[i][j]=a[i][j];if((j+1)%4==0)cout'\n';}cout'\n';}voidfun1();voidfun2();};voidArray::fun1(){inti=0,j=0,k,p,q;intb1[4][4];for(j=0;j4;j++){for(i=0;i4;i++){intq=0,s;while(a[i][j]){k=a[i][j]%10;a[i][j]/=10;q=q+k;b[i][j]=q;}}}cout原数组的各位元素的各位数求和后的和组成的数组endl;for(i=0;i4;i++)for(j=0;j4;j++){coutb[i][j]'\t';if((j+1)%4==0)cout'\n';}}voidArray::fun2(){intj,i,r,g;for(j=0;j4;j++){for(i=0;i4;i++)for(r=i+1;r4;r++)if(b[i][j]b[r][j]){g=b[i][j];b[i][j]=b[r][j];b[r][j]=g;g=a2[i][j];a2[i][j]=a2[r][j];a2[r][j]=g;}}cout和数组排序后数组为:endl;for(i=0;i4;i++)for(j=0;j4;j++){coutb[i][j]'\t';if((j+1)%4==0)cout'\n';}cout'\n';cout原数组排序后数组为:endl;for(i=0;i4;i++)for(j=0;j4;j++){couta2[i][j]'\t';if((j+1)%4==0)cout'\n';}cout'\n';}voidmain(){intdate[4][4];cout请输入一4*4二维数组endl;for(inti=0;i4;i++)for(intj=0;j4;j++)cindate[i][j];Arraya1(date);a1.print();a1.fun1();a1.fun2();}程序运行结果:任务二:定义一个字符串类STR,统计键盘输入的字符串中的各类字符数量。假设字符分为数字字符、英文字母和其他字符三类。具体要求如下:(1)私有数据成员char*s;//指向成员字符串intnums;//存放字符串s中的数字字符数量intlets;//存放字符串s中的英文字母数量intoths;//存放字符串s中的其他