中南大學(xué)C++課程設(shè)計(jì)實(shí)踐報(bào)告_第1頁(yè)
中南大學(xué)C++課程設(shè)計(jì)實(shí)踐報(bào)告_第2頁(yè)
中南大學(xué)C++課程設(shè)計(jì)實(shí)踐報(bào)告_第3頁(yè)
中南大學(xué)C++課程設(shè)計(jì)實(shí)踐報(bào)告_第4頁(yè)
中南大學(xué)C++課程設(shè)計(jì)實(shí)踐報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

設(shè)計(jì)要求:用visualC++程序設(shè)計(jì)一個(gè)簡(jiǎn)易的計(jì)算器,具有多種功能。例如加減乘除、階乘、溫度轉(zhuǎn)換等。設(shè)計(jì)思想為了方便起見,我主要是以類和對(duì)象來進(jìn)行設(shè)計(jì),將各個(gè)功能化成各個(gè)小類,然后綜合的用main主函數(shù)來運(yùn)行以保證程序的穩(wěn)定可靠性程序代碼#include<iostream>#include<cmath>#include<iomanip>#include<stdlib.h>usingnamespacestd;classshow{public: voidshowtime() { cout<<"*****************************歡迎使用**********************************"<<endl; cout<<"1.加減乘除運(yùn)算"<<setw(30)<<"2.復(fù)數(shù)乘法運(yùn)算"<<endl; cout<<"3.素?cái)?shù)判斷"<<setw(44)<<"4.最小公倍數(shù),最大公約數(shù)"<<endl; cout<<"5.一元二次方程求解"<<setw(20)<<"6.求階乘"<<endl; cout<<"7.排列組合求解"<<setw(26)<<"8.溫度轉(zhuǎn)換"<<endl; cout<<endl<<"************版權(quán)所有*盜版不究**本代碼最終解釋權(quán)歸fengkj所有************"<<endl; }};classjiajian{ inti; doublea,b,s;public: voidprint() {cout<<"1.加法運(yùn)算"<<"\t2.減法運(yùn)算"<<"\t3.乘法運(yùn)算"<<"\t4.除法運(yùn)算"<<endl; cout<<"請(qǐng)輸入代號(hào):"<<endl;here:cin>>i; cout<<"請(qǐng)輸入兩個(gè)數(shù)a,b"<<endl; cout<<"a=";cin>>a;cout<<"b=";cin>>b; switch(i) { case1:s=a+b;cout<<a<<'+'<<b<<"="<<s; break; case2:s=a-b;cout<<a<<'-'<<b<<"="<<s; break;case3:s;s=a*b;cout<<a<<'*'<<b<<"="<<s; break; case4:if(b==0)cout<<"數(shù)據(jù)錯(cuò)誤!";else{s=a/b;cout<<a<<'/'<<b<<"="<<s;} break; default:cout<<"代號(hào)數(shù)據(jù)錯(cuò)誤,請(qǐng)重輸";gotohere; } }};classfushu{ floata,b,c,d,j,k;public: voidgetin() { cout<<"請(qǐng)輸入兩個(gè)復(fù)數(shù):"<<endl;cout<<"x=_+_i";cin>>a>>b;cout<<"y=_+_i";cin>>c>>d; } voidmulti() {j=a*c-b*d;k=b*c+a*d;} voidprint() {if(k>0)cout<<"x+y="<<j<<'+'<<k<<'i'<<endl;elseif(k<0)cout<<"x+y="<<j<<'-'<<-k<<'i'<<endl;elsecout<<"x+y="<<j<<endl;}};classsushu{public: longt; voidget(){cout<<"請(qǐng)輸入一個(gè)待驗(yàn)證的數(shù)x:";cin>>t;} intprime(longx) { longi; for(i=2;i<x/2;i++) if(x%i==0)return2; return3; } voidprint(){longx;x=t;if(prime(x)==2)cout<<t<<"不是素?cái)?shù)";elsecout<<t<<"是素?cái)?shù)";}};classgongbeishu{ longx,y,max,min;public: voidget() {cout<<"請(qǐng)輸入兩個(gè)正整數(shù)x,y:"<<endl; cout<<"x=";cin>>x;cout<<"y=";cin>>y; } voidjisuan() {longm,n,r,t; m=x;n=y; t=m*n; if(m<n){r=m;m=m;n=r;} while((r=m%n)!=0) { m=n; n=r; } max=n;min=t/n; } voidprint(){cout<<x<<"和"<<y<<"的最大公約數(shù)是:"<<max<<','<<"最小公倍數(shù)是:"<<min<<endl;}};classqiujie{ floata,b,c,x1,x2,t,s;public: voidget() {cout<<"請(qǐng)輸入方程的系數(shù)a,b,c:"<<endl; cout<<"a=";cin>>a;cout<<"b=";cin>>b;cout<<"常數(shù)c=";cin>>c;} voidjisuan() {floati;i=b*b-4*a*c;t=0;s=0; if(i>=0){x1=(-b+sqrt(i))/(2*a);x2=(-b-sqrt(i))/(2*a);}else{x1=-b/(2*a);x2=-b/(2*a);s=sqrt(-i)/(2*a);t=-sqrt(-i)/(2*a);} } voidprint() {cout<<"方程的解為:"<<endl; cout<<"x1="<<x1<<'+'<<t<<'i'<<"\tx2="<<x2<<'+'<<s<<'i'; }};classjiecheng{ intn,s;public: voidget() {cout<<"請(qǐng)輸入待階乘的數(shù):n=";cin>>n;} voidjisuan() {inti; s=1; for(i=1;i<n;i++)s*=i; } voidprint() {cout<<"階乘結(jié)果為:"<<"n!="<<s;}};classpailie{ intn,r;public: voidget() {ak:cout<<"請(qǐng)輸入排列組合數(shù):C(n,r)、P(n,r):"<<endl; cout<<"n=";cin>>n;cout<<"r=";cin>>r; if(n<r){cout<<"數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入!";gotoak;} } intjiecheng(intx) {inti,s=1;for(i=1;i<=x;i++)s*=i;returns;} voidprint() {cout<<"排列數(shù)P="<<jiecheng(n)/jiecheng(n-r)<<','<<"組合數(shù)C="<<jiecheng(n)/(jiecheng(r)*jiecheng(n-r));}};classwendu{inti;floatn,s;public: voidget() {cout<<"請(qǐng)選擇溫度轉(zhuǎn)換方向:0.攝氏轉(zhuǎn)華氏1.華氏轉(zhuǎn)攝氏:"; cin>>i; cout<<"請(qǐng)輸入溫度:";cin>>n; } voidzhuanhuan() {s=0;if(!i)s=32+n*1.8;elses=(n-32)/1.8;} voidprint() {if(!i)cout<<"攝氏溫度為:"<<n<<"'C"<<','<<"華氏溫度為:"<<s<<"'F";elsecout<<"華氏溫度為:"<<n<<"'F"<<','<<"攝氏溫度為:"<<s<<"'C";}};voidmain(){inti,pp=1,ss=1;while(pp){system("cls");showv;v.showtime();qq:cout<<"請(qǐng)輸入您要進(jìn)行運(yùn)算的編碼:";cin>>i;switch(i){case1:g1:jiajianaa;aa.print();cout<<"重新計(jì)算請(qǐng)按1,否則請(qǐng)按0";cin>>ss;if(ss)gotog1;elsebreak;case2:g2:fushubb;bb.getin();bb.multi();bb.print();cout<<"重新計(jì)算請(qǐng)按1,否則請(qǐng)按0";cin>>ss;if(ss)gotog2;elsebreak;case3:g3:sushucc;cc.get();cc.print();cout<<"重新計(jì)算請(qǐng)按1,否則請(qǐng)按0";cin>>ss;if(ss)gotog3;elsebreak;case4:g4:gongbeishudd;dd.get();dd.jisuan();dd.print();cout<<"重新計(jì)算請(qǐng)按1,否則請(qǐng)按0";cin>>ss;if(ss)gotog4;elsebreak;case5:g5:qiujieee;ee.get();ee.jisuan();ee.print();cout<<"重新計(jì)算請(qǐng)按1,否則請(qǐng)按0";cin>>ss;if(ss)gotog5;elsebreak;case6:g6:jiechengff;ff.get();ff.jisuan();ff.print();cout<<"重新計(jì)算請(qǐng)按1,否則請(qǐng)按0";cin>>ss;if(ss)gotog6;elsebreak;case7:g7:pailiegg;gg.get();gg.print();cout<<"重新計(jì)算請(qǐng)按1,否則請(qǐng)按0";cin>>ss;if(ss)gotog7;elsebreak;case8:g8:wenduhh;hh.get();hh.zhuanhuan();hh.print();cout<<"重新計(jì)算請(qǐng)按1,否則請(qǐng)按0";cin>>ss;if(ss)gotog8;elsebreak;default:cout<<"數(shù)據(jù)錯(cuò)誤!請(qǐng)輸入1~8之間的一個(gè)整數(shù)";gotoqq;}cout<<"返回主菜單請(qǐng)按1,退出程序請(qǐng)按0";cin>>pp;}}調(diào)試過程由于學(xué)的知識(shí)不是很多,也不是很熟練,在最開始的時(shí)候老是范一些小錯(cuò)誤,而且很多語(yǔ)法錯(cuò)誤,比如忘了寫分號(hào)啊,把分號(hào)寫成逗號(hào)啦。而且忘了寫全{}就會(huì)出現(xiàn)很多個(gè)錯(cuò)誤,在一個(gè)龐大的程序里面找這些錯(cuò)誤再一一改正,很可能還是不能運(yùn)行,但是多加一個(gè)}就很可能全部錯(cuò)誤都搞定!調(diào)試的時(shí)候很多地方都是牽一發(fā)而動(dòng)全身,特別是修改的時(shí)候,修改一個(gè)變量就得把其他部分的都改掉,不然就會(huì)一直出現(xiàn)錯(cuò)誤。還經(jīng)常忘了定義變量就用,不過看英文提示面前能看懂,也能找到相應(yīng)的錯(cuò)誤。在把語(yǔ)法小錯(cuò)誤解決之后就剩下運(yùn)行了,但是運(yùn)行的情況不容樂觀,很多地方呢不是我想要的結(jié)果。例如在加減乘除那里,由于當(dāng)時(shí)變量粗心的定義為long,得出的數(shù)總是為整數(shù),后來改正為float后問題就解決了,還有就是開始界面里的序列號(hào)對(duì)不齊,后來嘗試著用setw()來解決,嘗試多次后得以解決。在老師的建議之下通過包含stdlib.h頭文件和調(diào)用system("cls")函數(shù)成功的做到進(jìn)行一次計(jì)算之后清理屏幕的效果。運(yùn)行結(jié)果通過輸入編碼來選擇計(jì)算類型。例如輸入1.方法同上繼續(xù)進(jìn)行輸入代碼的操作。重新計(jì)算輸入1,否則輸入0.這里我輸入0然后。輸入1回到主菜單,并清理屏幕。其他函數(shù)基本同上,在演示一個(gè),例如4.最小公倍數(shù)最大公約數(shù)。心得體會(huì) 本次程序設(shè)計(jì)所用時(shí)間較長(zhǎng),工作量很飽滿,而且所用的知識(shí)很多,但是我們平常在課堂上所學(xué)的知識(shí)很有限,這就需要我大量的自學(xué)書本和課外的其他書籍上的知識(shí)。為了讓程序容易使人看懂,我用到的知識(shí)點(diǎn)不是非常多,大都是一些基本知識(shí),我能熟練地運(yùn)用這些知識(shí)編程也算一個(gè)很大的成功了。畢竟很多知識(shí)沒有學(xué),能用基本知識(shí)就盡量用的基本知識(shí)。C++設(shè)計(jì)實(shí)踐是對(duì)之前學(xué)過的知識(shí)的加深和鞏固,之前學(xué)得較淺,實(shí)踐的機(jī)會(huì)不多,這次實(shí)踐讓我對(duì)C++程序有了更加深入的了解,心理也由原來的不喜歡到喜歡,感覺很有意思也很有用,可也設(shè)計(jì)一些有用的或者是自己喜歡的程序。最令我收益的是寫程序的過程和調(diào)試修改的過程,因?yàn)橹拔覀兙蛯W(xué)了幾章,沒有把知識(shí)學(xué)習(xí)全面,因此編寫起來是有難度的,在預(yù)先想好程序結(jié)構(gòu)后,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論