计算机程序设计语言C++实验报告_第1页
计算机程序设计语言C++实验报告_第2页
计算机程序设计语言C++实验报告_第3页
计算机程序设计语言C++实验报告_第4页
计算机程序设计语言C++实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机程序设计语言c+实验报告班 级 工商管理 学 号 20124130 姓 名 沈栋 指导教师 何耀琴 经济管理学院二o一一年六月题目1:输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。#include using namespace std;int main()int n1,n2,n3,i;for (i=100;i=999;i+)n1=i/100;n2=(i%100)/10;n3=i%10;if (n1*n1*n1+n2*n2*n2+n3*n3*n3=i)coutiendl;return 0;题目2:输入一行字符,分别统计出其中英语字母、空格、数字和其

2、他字符的个数#include using namespace std;int main()int l,s,n,o;cout请输入一行字符=a&e=a&e=0&e=9)n+;else if(e= )s+; else o+; printf(l:%dn,l);printf(s:%dn,s);printf(n:%dn,n);printf(o:%dn,o);return 0;题目3:输入两个正整数m和n,求其最大公约数和最小公倍数#include using namespace std;int main()int m,n,a,b,x,y;coutmn;x=m*n;y=1;for (a=m*n;a=m&a

3、=n;a-)if(a%m=0&a%n=0&a=1;b-)if(m%b=0&n%b=0&by)y=b; cout最小公倍数xendl;cout最大公约数yendl;return 0;题目4:输出以“*”表示的正金字塔与倒金字塔模型#include using namespace std;void print(int n)int i,j;for(i=1;i=i;j-)cout ;for(j=1;j=2*i-1;j+)cout*;coutendl;void printstar(int n)int i,j;for(i=1;i=n;i+)for(j=1;j=i-1;j+)cout=i;j-)cout*;

4、cout*;coutendl;int main()int i,m; for(i=1;im; print(m); printstar(m); return 0;题目5:输入十个整数,要求按倒序排列输出#include using namespace std;int main()void daoxu(int *);int a10;cout输入10个数;int i,*p=a;for(i=0;i*(p+i);coutendl;daoxu(p);for(p=a;p(a+10);p+)cout*p ;coutendl;return 0;void daoxu(int *p) void swap(int*,i

5、nt*);int i;for(i=0;i5;i+)swap(p+i),(p+9-i);void swap(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;题目6:输入5位学生的5门课成绩,要求计算这5位学生的各自5门课平均成绩及所有5位学生的平均成绩,并输出#include using namespace std;int main()struct studentchar name10;int score5;float average;int i,sum;student stu; ;cout输入五门课的成绩:;for(

6、i=0;istu.scorei;sum=0;for(i=0;i5;i+)sum+=stu.scorei;stu.average=(float)sum/5;的平均成绩为stu.averageendl;int a1=stu.average;;cout输入五门课的成绩:;for(i=0;istu.scorei;sum=0;for(i=0;i5;i+)sum+=stu.scorei;stu.average=(float)sum/5;的平均成绩为stu.averageendl;int a2=stu.average;coutstu.n

7、ame;cout输入五门课的成绩:;for(i=0;istu.scorei;sum=0;for(i=0;i5;i+)sum+=stu.scorei;stu.average=(float)sum/5;的平均成绩为stu.averageendl;int a3=stu.average;;cout输入五门课的成绩:;for(i=0;istu.scorei;sum=0;for(i=0;i5;i+)sum+=stu.scorei;stu.average=(float)sum/5;的平均成绩为stu.averageendl;int a4

8、=stu.average;;cout输入五门课的成绩:;for(i=0;istu.scorei;sum=0;for(i=0;i5;i+)sum+=stu.scorei;stu.average=(float)sum/5;的平均成绩为stu.averageendl; int a5=stu.average; cout所有人平均成绩:(a1+a2+a3+a4+a5)/5endl;return 0;题目7:输入5位学生的5门课成绩,要求输出按由高到低排列的这5位学生的各自5门课平均成绩及所有学生的5门课平均成绩。#include#includeusing

9、namespace std;struct studentstring name;float score5;float average;int main()float total_average,temp; string c;student stu5;int i,j;=stone;=eva;=demon;=kevin;=lucy;for(i=0;i5;i+)cout输入学生 的五门课程成绩:; for(j=0;jstui.scorej; coutendl;for(i=0;i5;i+)st

10、ui.average=(stui.score0+stui.score1+stui.score2+stui.score3+stui.score4)/5;for(j=0;j4;j+) for(i=0;i4-j;i+) if(stui.averagestui+1.average) temp=stui.average;stui.average=stui+1.average;stui+1.average=temp; c=;=stui+1.name;stui+1.name=c; total_average=(stu0.average+stu1.average+stu2.

11、average+stu3.average+stu4.average)/5; cout排序:endl;for(i=0;i5;i+):stui.averageendl;cout总平均成绩为:total_averageendl;return 0;题目8:给小学生出100道199范围内的加减乘除题,如果成绩小于90分则再做100题。#include #include #include using namespace std;int main()int i,x1,x2,x,y,n1,n2;srand(time(null); cout请输入下面各题的结果:endl;lable:n

12、1=n2=0; for(i=1;i=100;i+)x1=1+rand()%99; x2=1+rand()%99;x=rand()%4;switch(x)case 0:coutx1+x2y; if(y=x1+x2) cout你答对了,继续努力!endl;n1+; else cout你答错了,认真一点!x2)coutx1-x2=?; else coutx2-x1y; if(y=int(fabs(x1-x2) cout你答对了,继续努力!endl;n1+; else cout你答错了,认真一点!endl;n2+; break;case 2:coutx1*x2y; if(y=x1*x2) cout你答

13、对了,继续努力!endl;n1+; else cout你答错了,认真一点!endl;n2+; break;case 3:coutx1/x2y; if(y=x1/x2) cout你答对了,继续努力!endl;n1+; else cout你答错了,认真一点!endl;n2+; break; if(n190) cout你成绩太差了,还得罚做100题。endl;n1=n2=0;n1=n2=0;n1=n2=0;goto lable;return 0;题目9:输入积分区域的端点值,输出f1,f2,f3,f4,f5的定积分的值#include using namespace std;double integ

14、ral(double a,double b,int n,double(*fun)(double x);double f1(double x)double fun;fun=1+x;return fun;double f2(double x)double fun;fun=2*x+3;return fun;double f3(double x)double fun;fun=(1+x)*(1+x);return fun;double f4(double x)double fun;fun=x*x*x;return fun;double f5(double x)double fun;fun=x*x*x+1

15、;return fun;void main()double s1,s2,s3,s4,s5; double a,b;int n; coutabn;s1= integral(a,b,n,f1);s2= integral(a,b,n,f2); s3=integral(a,b,n,f3);s4=integral(a,b,n,f4);s5=integral(a,b,n,f5);coutf1的定积分的值s1endl;coutf2的定积分的值s2endl;coutf3的定积分的值s3endl;coutf4的定积分的值s4endl;coutf5的定积分的值s5endl;double integral(doub

16、le a,double b,int n,double(*fun)(double x)int i;double h,x,f1,f2,s;h=(b-a)/n;f1=(*fun)(a);x=a;s=0.0;for(i=1;i=n;i+) x=x+h;f2=(*fun)(x);s=s+(f1+f2)/2*h;f1=f2;return s;题目10:用自己输入的种子产生100000个随机数并求最大值和最小值;#include #include using namespace std;void main() unsigned seed;long int s(-1),n(50000);for(int i=1

17、;is)s=temp;if(tempn)n=temp;couts=sendl;coutn=nendl;题目11:模拟100次掷钱币的过程,输出“f”表示此次钱币正面朝上,输出“b”表示此次钱币反面朝上,并统计这100次中,共有多少次正面朝上,多少次反面朝上。#include #include using namespace std;void main()int i,fac(0),back(0),temp;srand (time(null);for(i=0;i100;i+)temp=rand();if(temp%2=1)coutf ;fac+;else coutb ;back+;coutendl

18、正面的次数=facendl;coutendl反面的次数=backendl;题目12:编写一个完成n个数排序的函数sort,凡是需要交换两个元素值都调用swap来完成。分别用指针和引用两种方法做;#include using namespace std;int main()void sort(int *p); int a10; cout输入10个不同的数:endl; int i,*p=a; for(i=0;i*(p+i); coutendl; sort(p); cout输出新顺序:endl; for (p=a;pa+10;p+) cout*p ; coutendl; return 0;void

19、swap(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;void sort(int *p)void swap(int *,int *);int i,j,s;for (i=0;i9;i+)s=i;for (j=i+1;j10;j+)if(*(p+j)*(p+s)s=j;swap(p+s),(p+i);题目13:写一个求n!的函数,并通过调用函数求sum=a!+b!+c!。#include using namespace std;int jc(int n);int main()int sum,a,b,c;coutabc;sum=jc(a)+j

20、c(b)+jc(c);coutsum=a!+b!+c!=sumendl;int jc(int n)int s=1,i=1;for(i=1;i=n;i+)s=s*i;return s;题目14:写一个判断素数的函数,并通过调用函数判断2000年至3000年间有哪些是素数年号。#include using namespace std;void fun(int n)int i;for(i=2;i=n;i+)if(n%i=0)break;if(i=n)coutnendl;void main()int j;for(j=2000;j=3000;j+)fun(j);题目15:将汉诺塔程序里三根针用字符a,b

21、,c表示,并统计搬动盘子的次数#include using namespace std;int s=0;int a,b,c;void movedisk(char takeoff,char puton)couttakeoffputon1)movetower(n-1,a,c,b);movedisk(a,b);movetower(n-1,c,b,a);else movedisk(a,b);s=s+1;void main()int m;coutm;movetower(m,a,b,c);couts=sendl;题目16:用牛顿迭代法求方程的根#include #include #include usin

22、g namespace std;double f1(double x)double s;s=x*x*x+2*x*x+3*x+4;return s;double f2(double x)double t;t=3*x*x+4*x+3;return t;double root(double x0)double x,y1,y2;doy1=f1(x);y2=f2(x);x=x0-y1/y2;x0=x;while (fabs(y1)0.00001);return x;int main()double x,x0;cinx0;x=root(x0);coutxendl;return 0;题目17:写一函数验证哥

23、德巴赫猜想#include #include using namespace std;int main()void godbaha(int);int n;coutn;godbaha(n);return 0;void godbaha(int n)int prime(int);int a,b;for (a=3;a=n/2;a=a+2) if(prime(a)b=n-a;if (prime(b)coutn=a+bendl;int prime(int m)int i,k=sqrt(m);for(i=2;ik) return 1;else return 0;题目18:求二维数组中最大值元素及所在的行和列

24、,分别以数组元素作参数及数组名作参数完成。#include using namespace std;void main()int i,j,row=0,colum=0,max;int a34=3,5,4,8,4,7,1,2,-6,-9,3,0;max=a00;for(i=0;i3;i+)for(j=0;jmax)max=aij;row=i;colum=j;cout最大值所在的行:rowendl;cout最大值所在的列:columendl;cout最大值:maxendl;题目19:定义一个学生类,有num,age,score三个数据成员和2个静态数据成员,一个求年龄之和的成员函数和构造函数,用构造

25、函数实现初始化,主函数中定义一个三个元素的对象数组,并给定三个学生的值,通过调用 成员函数完成三个学生的平均年龄,并找出最高成绩并打印出来。#include #include using namespace std;class studentpublic:student (int n,int a,float s):num(n),age(a),score(s)void total();static float av();int num;float score;static int count;static float max();static float sum;stud5=student(10

26、010,18,70),student(10011,18,80),student(10012,18,90),student(10013,18,40),student(10014,18,50);void student:total()sum+=age;float student:max()int j;float max=0;for(j=1;jmax)max=studj.score;return max;float student:av()return(sum/count);float student:sum=0;int student:count=0;int mainint n;coutn;for(int i=o;in;i+)studi.total();coutthe average age ofn student isstudent:av()endl;coutthe max score isstudent

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论