計算機程序設(shè)計語言C++實驗報告_第1頁
計算機程序設(shè)計語言C++實驗報告_第2頁
計算機程序設(shè)計語言C++實驗報告_第3頁
計算機程序設(shè)計語言C++實驗報告_第4頁
計算機程序設(shè)計語言C++實驗報告_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、計算機程序設(shè)計語言c+實驗報告班 級 工商管理 學(xué) 號 20124130 姓 名 沈棟 指導(dǎo)教師 何耀琴 經(jīng)濟管理學(xué)院二o一一年六月題目1:輸出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。#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:輸入一行字符,分別統(tǒng)計出其中英語字母、空格、數(shù)字和其

2、他字符的個數(shù)#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:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)#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最小公倍數(shù)xendl;cout最大公約數(shù)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:輸入十個整數(shù),要求按倒序排列輸出#include using namespace std;int main()void daoxu(int *);int a10;cout輸入10個數(shù);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位學(xué)生的5門課成績,要求計算這5位學(xué)生的各自5門課平均成績及所有5位學(xué)生的平均成績,并輸出#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;的平均成績?yōu)閟tu.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;的平均成績?yōu)閟tu.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;的平均成績?yōu)閟tu.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;的平均成績?yōu)閟tu.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;的平均成績?yōu)閟tu.averageendl; int a5=stu.average; cout所有人平均成績:(a1+a2+a3+a4+a5)/5endl;return 0;題目7:輸入5位學(xué)生的5門課成績,要求輸出按由高到低排列的這5位學(xué)生的各自5門課平均成績及所有學(xué)生的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輸入學(xué)生 的五門課程成績:; 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總平均成績?yōu)椋簍otal_averageendl;return 0;題目8:給小學(xué)生出100道199范圍內(nèi)的加減乘除題,如果成績小于90分則再做100題。#include #include #include using namespace std;int main()int i,x1,x2,x,y,n1,n2;srand(time(null); cout請輸入下面各題的結(jié)果: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你答對了,繼續(xù)努力!endl;n1+; else cout你答錯了,認真一點!x2)coutx1-x2=?; else coutx2-x1y; if(y=int(fabs(x1-x2) cout你答對了,繼續(xù)努力!endl;n1+; else cout你答錯了,認真一點!endl;n2+; break;case 2:coutx1*x2y; if(y=x1*x2) cout你答

13、對了,繼續(xù)努力!endl;n1+; else cout你答錯了,認真一點!endl;n2+; break;case 3:coutx1/x2y; if(y=x1/x2) cout你答對了,繼續(xù)努力!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:輸入積分區(qū)域的端點值,輸出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:用自己輸入的種子產(chǎn)生100000個隨機數(shù)并求最大值和最小值;#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”表示此次錢幣反面朝上,并統(tǒng)計這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、正面的次數(shù)=facendl;coutendl反面的次數(shù)=backendl;題目12:編寫一個完成n個數(shù)排序的函數(shù)sort,凡是需要交換兩個元素值都調(diào)用swap來完成。分別用指針和引用兩種方法做;#include using namespace std;int main()void sort(int *p); int a10; cout輸入10個不同的數(shù):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!的函數(shù),并通過調(diào)用函數(shù)求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:寫一個判斷素數(shù)的函數(shù),并通過調(diào)用函數(shù)判斷2000年至3000年間有哪些是素數(shù)年號。#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表示,并統(tǒng)計搬動盤子的次數(shù)#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:寫一函數(shù)驗證哥

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:求二維數(shù)組中最大值元素及所在的行和列

24、,分別以數(shù)組元素作參數(shù)及數(shù)組名作參數(shù)完成。#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:定義一個學(xué)生類,有num,age,score三個數(shù)據(jù)成員和2個靜態(tài)數(shù)據(jù)成員,一個求年齡之和的成員函數(shù)和構(gòu)造函數(shù),用構(gòu)造

25、函數(shù)實現(xiàn)初始化,主函數(shù)中定義一個三個元素的對象數(shù)組,并給定三個學(xué)生的值,通過調(diào)用 成員函數(shù)完成三個學(xué)生的平均年齡,并找出最高成績并打印出來。#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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論