您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > C++实验报告-(1)
江苏科技大学2013-2014年度c++实验报告2013-2014年度C++实验报告学院:机械学院专业:机械设计制造及其自动化学号:1240202414姓名:陆响明江苏科技大学2013-2014年度c++实验报告1第三章:习题1.编写程序,求从键盘输入的3个数中的最大数。#includeiostream.hvoidmain(){floata,b,c,d;cout请输入3个整数:'\n';cinabc;if(ab)d=a;elsed=b;if(dc)cout最大数为:d'\n';elsecout最大数为:c'\n';}习题4.从键盘输入10个整数,求他们的平均值。#includeiostream.hvoidmain(){cout请输入10个数:'\n';floata=0,b;for(inti=0;i10;i++){cinb;a+=b;}a/=10;cout它们的平均值为:a'\n';}江苏科技大学2013-2014年度c++实验报告2习题6.计算s=1+2+3+......+i,累加到s大于1000,并输出s和i的值。#includeiostream.hvoidmain(){ints=0;for(inti=0;s=1000;i++)s+=i;i--;couts=s'\t'i=i'\n';}第四章:习题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};int*p,i,k,max=0;for(i=0;i10;i++){p=&a[i];if(max*p){max=a[i];k=i;}}cout最大元素为:max'\n'下标为:k'\t';k++;江苏科技大学2013-2014年度c++实验报告3while(k10){if(max==a[k])coutk'\t';k++;}cout'\n';}习题4.将杨辉三角的前N行保存第二维数组的下半三角中。杨辉三角由正整数构成,每行除最左侧与最右侧的数为1外,其他数等于其左上方与正上方两个数的和,杨辉三角的前5行如下:111121133114641#includeiostream.hvoidmain(){inta[5][5];a[0][0]=1;for(inti=1;i5;i++)a[i][0]=a[i][i]=1;for(intk=2;k5;k++)for(intj=1;jk;j++)a[k][j]=a[k-1][j-1]+a[k-1][j];for(intm=0;m5;m++){for(intn=0;n=m;n++)couta[m][n]'\t';cout'\n';}}江苏科技大学2013-2014年度c++实验报告4习题5.不使用字符串处理函数,通过指针变量拼接字符串。如将“Goodmorning.”和“IamTom.”拼接成“Googmorning.IamTom.”#includeiostream.hvoidmain(){chara[]=Goodmorning.,b[]=IamTom.,c[50],*p=a;for(inti=0;*p!=0;i++){c[i]=*p;p++;}p=b;for(;*p!=0;i++){c[i]=*p;p++;}c[i]=0;couta'\n'b'\n'c'\n';}第五章:习题1.设计程序,求两个整数的最小公倍数。#includeiostream.hvoidfun(inta,intb){intc;if(ab)c=b;elsec=a;while(!(c%a==0&&c%b==0))c++;cout这两个数的最小公倍数为:c'\n';}voidmain(){cout请输入两个整数:'\n';inta,b;cinab;fun(a,b);江苏科技大学2013-2014年度c++实验报告5}习题2.设计程序,统计从键盘读入的一行字符中每个字符出现的次数。#includeiostream.hvoidfun(chara[]){intamount[26]={0},count=0;for(char*p=a;*p;p++)if(*p='a'&&*p='z')amount[*p-'a']++;elseif(*p='A'&&*p='Z')amount[*p-'A']++;for(inti=0;i26;i++)if(amount[i]){charc=i+'a';coutc':'amount[i]'\t';count++;if(count%5==0)cout'\n';}cout'\n';}voidmain(){cout请输入一组字符串:'\n';chara[100]={0};cin.get(a,100);fun(a);}习题6.设计函数intint_to_string(intnum,chara[],int&n),对一个不为0的任意位数的十进制整数num,统计出num的位数n及个位数字之和s,并将每位数字以字符的形式存储到数组a中。在主函数中调用int_to_string函数,对从键盘读入的整数进行调试。调用该程序的运行结果如下:请输入一个整数:12345江苏科技大学2013-2014年度c++实验报告612345是5位数,其各位数字为1、2、3、4、5,各位数字之和为15.#includeiostream.hintint_to_string(intnum,chara[],int&n){coutnum是;inti=0,k;while(num){k=num%10;num/=10;a[i++]=k+'0';}a[i]=0;char*m=a,*h=&a[i-1];while(mh){chart=*m;*m=*h;*h=t;m++;h--;}couti位数,其各位数字为;for(intj=0;a[j];j++){couta[j]、;n+=a[j]-'0';}returnn;}voidmain(){intnum,sum=0;chara[10];cout请输入一个整数:'\n';cinnum;ints=int_to_string(num,a,sum);cout各位数字之和为s。'\n';}第七章:江苏科技大学2013-2014年度c++实验报告7习题3.定义一个Point类表示平面上的一点,再定义一个Rectangle类表示平面上的矩形,用Point类的对象作为Rectangle类的成员描述平面上矩形的顶点坐标。要求Point中有相应的成员函数可以读取点的坐标值,类Rectangle中含有一个函数,用以计算并输出矩形的面积及顶点坐标。在主函数中对类Rectangle进行测试。#includeiostream.h#includemath.hclassPoint{intx,y;public:Point(inta,intb){x=a;y=b;}intgetx(){returnx;}intgety(){returny;}};classRectangle{Pointp1,p2;ints;public:Rectangle(inte,intf,intg,inth):p1(e,f),p2(g,h){s=0;}voidfun(){s=abs((p1.getx()-p2.getx())*(p1.gety()-p2.gety()));}voidshow(){cout矩形面积为:s'\n';}};voidmain(){cout请输入两个点的坐标:'\n';inta,b,c,d;cinabcd;Rectangler1(a,b,c,d);r1.fun();r1.show();}江苏科技大学2013-2014年度c++实验报告8习题4.定义一个类,用于删除字符串中多余的字符,使其中的字符互不相同,具体要求如下:(1)类的数据成员(字符串)用指针表示,并在构造函数中根据参数的实际情况为该成员指针申请内存空间。(2)删除多余字符串时,只能在原字符串空间中进行,不得借助其他辅助空间。#includeiostream.h#includestring.hclassA{char*str;public:A(char*s);voidfun();voidprint();~A(){delete[]str;}};A::A(char*s){intn=strlen(s);str=newchar[n+1];strcpy(str,s);}voidA::fun(){char*q=str,*q1=str+1,*p=str+1,*p1=str+1;while(*q1){while(*p){intflag=1;if(*q==*q1){p++;while(*p){*p1++=*p++;}*p1=0;flag=0;}if(flag)q1++;p=p1=q1;}江苏科技大学2013-2014年度c++实验报告9q++;q1=p=p1=q+1;}}voidA::print(){cout删除多余数组后的数组为:'\n';for(inti=0;*(str+i);i++)cout*(str+i);cout'\n';}voidmain(){cout请输入一组字符串:'\n';chara[100];cin.getline(a,100);Aa1(a);a1.fun();a1.print();}习题5.定义一个类Array,实现二维数组每列元素按各元素的各位数字之和从小到大排列。要求用一个专门的函数求数组元素的各位数字之和。#includeiostream.h#includestdlib.hintsum(intnum){ints=0;while(num){s+=num%10;num/=10;}returns;}classArray{intstr[4][5],str1[4][5];public:Array(intt[4][5]);voidfun1();//输出原数组voidfun2();//给各元素的各位数字求和江苏科技大学2013-2014年度c++实验报告10voidprint1();//输出记录各数字和的数组voidfun3();//给各数字和排序的同时给原数组排序voidprint2();//输出排序之后的数组};Array::Array(intt[4][5]){for(inti=0;i4;i++)for(intj=0;j5;j++)str[i][j]=t[i][j];}voidArray::fun1(){cout原数组为:'\n';for(inti=0;i4;i++){for(intj=0;j5;j++)coutstr[i][j]'\t';cout'\n';}cout'\n';}voidArray::fun2(){for(inti=0;i4;i++)for(intj=0;j5;j++)str1[i][j]=sum(str[i][j]);}voidArray::print1(){cout各元素的各位数字的和:'\n';for(inti=0;i4;i++){for(intj=0;j5;j++)coutstr1[i][j]'\t';cout'\n';}cout'\n';}voidArray::fun3(){int(*p)[5]=str1,(*q)[5]=str1,m,n;for(intj=0;j5;j++){for(intk=0;k3;k++){for(
本文标题:C++实验报告-(1)
链接地址:https://www.777doc.com/doc-6314264 .html