《c語言程序設(shè)計》課程設(shè)計報告分?jǐn)?shù)計算器_第1頁
《c語言程序設(shè)計》課程設(shè)計報告分?jǐn)?shù)計算器_第2頁
《c語言程序設(shè)計》課程設(shè)計報告分?jǐn)?shù)計算器_第3頁
《c語言程序設(shè)計》課程設(shè)計報告分?jǐn)?shù)計算器_第4頁
《c語言程序設(shè)計》課程設(shè)計報告分?jǐn)?shù)計算器_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C+語言程序設(shè)計課程設(shè)計報告 姓 名: 指 導(dǎo) 學(xué) 號: 班 級:10計本2班 日 期:2011年05月20日 計算機科學(xué)與技術(shù)系課程設(shè)計評分表課程名稱: 面向?qū)ο蟪绦蛟O(shè)計 分?jǐn)?shù)計算器 項 目評 價設(shè)計方案的合理性與創(chuàng)造性設(shè)計與調(diào)試結(jié)果設(shè)計說明書的質(zhì)量功能完善度綜合成績學(xué) 號班 級姓 名綜合成績 教師簽名: 日 期: C+語言課程設(shè)計簡單計算器說明書目 錄一、設(shè)計目標(biāo)2二、設(shè)計圖2三、圖解4四、調(diào)試和測試9五、分析及結(jié)論10六、附錄12一、設(shè)計目標(biāo)制作一個分?jǐn)?shù)計算器,以完成分?jǐn)?shù)之間,分?jǐn)?shù)與整數(shù)之間的四則運算,以及求分?jǐn)?shù)的指數(shù)。系統(tǒng)界面不做牽制要求。在進行運算后可以選擇繼續(xù)運算或者進行下一次新的

2、運算,能實現(xiàn)返回功能。二、設(shè)計圖進入界面1、總體設(shè)計圖 主菜單安全退出分?jǐn)?shù)的指數(shù)運算分?jǐn)?shù)與整數(shù)之間的四則運算分?jǐn)?shù)與分?jǐn)?shù)之間的四則運算2、詳細圖開始main()while()start()case0退出fenshu()js()case1js()case2zs()case3模塊功能說明及調(diào)用關(guān)系說明:三、圖解1、 歡迎使用簡單計算器2、 等待系統(tǒng)進入主菜單在此選擇計算類型【選擇代碼,回車確定】1、為選擇分?jǐn)?shù)與分?jǐn)?shù)之間的四則運算、2、為選擇分?jǐn)?shù)與整數(shù)之間的四則運算3、為分?jǐn)?shù)的指數(shù)運算0、為安全退出程序3、 選擇分?jǐn)?shù)與分?jǐn)?shù)之間的四則運算分?jǐn)?shù)與分?jǐn)?shù)的加法 如:18/5+16/3=134/15分?jǐn)?shù)與分?jǐn)?shù)的

3、減法 如:1/6-/2=-1/3注:在此舉例分?jǐn)?shù)與分?jǐn)?shù)的加法 、減法計算完成后,按y或n,選擇是否繼續(xù),y則繼續(xù)本類運算,n為返回到主菜單,再次進行選擇4、 選擇分?jǐn)?shù)與整數(shù)之間的四則運算分?jǐn)?shù)與整數(shù)的乘法 如:1/2*2=1/1分?jǐn)?shù)與整數(shù)的加法 如:1/5+6=31/5注:在此舉例分?jǐn)?shù)與整數(shù)的乘法 、加法計算完成后,按y或n,選擇是否繼續(xù),y則繼續(xù)本類運算,n為返回到主菜單,再次進行選擇5、 選擇分?jǐn)?shù)的指數(shù)運算如:1/3的2次方等于1/9 如:2/3的2次方等于4/9 6、安全退出注:計算完成后,按y或n,選擇是否繼續(xù),y則繼續(xù)本類運算,n為返回到主菜單,再次進行選擇至此,以安全退出。四、調(diào)試和

4、測試<1>、調(diào)試方法:首先打開Microsoft Visual C+ 6.0 ,運行程序,出現(xiàn)錯誤修改再運行,直至運行結(jié)果0 error ,0 warning結(jié)束。接著進入程序界面,看程序能否實現(xiàn)所要求的各項功能,再作下一步的修改。<2>、調(diào)試時出現(xiàn)的問題及解決方案:1、當(dāng)多次運行程序時,屏幕被運行數(shù)據(jù)占滿,顯得很雜亂。解決方案:引用清屏函數(shù)。2、 在進行運算時要實現(xiàn)反復(fù)運算得有返回功能,由于我們程序分支,不能正常的調(diào)用完畢后進入下一個循環(huán),自動返回。解決方案:直接在switch的cash語句中直接調(diào)用所需返回的函數(shù)。按y或n,選擇是否繼續(xù),y則繼續(xù)本類運算,n為返回到

5、主菜單,再次進行選擇3、在一次運算完畢后如何不返回繼續(xù)作下一次的相同運算。解決方案:作用循環(huán)語句,結(jié)果始終為真,結(jié)尾利用if語句控制是否跳入上級菜單或者continue。4、如何在歡迎界面停留時間。解決方案:通過for循環(huán),執(zhí)行無條件的";"的語句,通過執(zhí)行次數(shù)控制程序在歡迎界面的停留時間。5、還有一些小錯誤,比如未聲明就直接使用變量、未對一些變量初始化、聲明是空值函數(shù)卻有返回值、缺少";"、使用getch(),system("cls")卻缺少相應(yīng)的頭文件,出現(xiàn)警告五、分析及結(jié)論在做這個課程設(shè)計報告之初是仿照以前的計算器,但是,由于程

6、序行數(shù)做了要求,而且題目要求不一樣,所以我就在仿照以前的計算器的同時,進一步完善其功能。該程序是我經(jīng)過多次編寫,修改,在不懂的問題上,與指導(dǎo)朋友劉華和劉洋 一起討論,根據(jù)觀察其他程序,通過菜單選擇實現(xiàn)不同功能得到的啟發(fā),將自己所需實現(xiàn)的功能通過文字形式的菜單表現(xiàn)出來。 然后再菜單處進行選擇計算類型,正常完成計算,返回和退出。我最滿意的地方是“清屏”和“在界面上停留的時間”,總之這個程序基本能符合我自己的要求。不足之處:1、 代碼重用;2、 不能熟練的運用類;3、 沒有用到指針和數(shù)組,對數(shù)組和指針還不能很好的運用。心得體會:通過這次課程設(shè)計我對這學(xué)期所學(xué)的C+語言的理論知識得到鞏固,達到該設(shè)計的

7、基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機中應(yīng)更加注意。同時體會到C+語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點。發(fā)現(xiàn)上機實訓(xùn)的重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解。發(fā)現(xiàn)自己對指針還不能正確使用。通過實際操作,學(xué)會 C+語言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力。深刻體會到“沒有做不到的,只有想不到的”,“團結(jié)就是力量”,“實踐是檢驗真理的標(biāo)準(zhǔn)”,“不恥下問”的寓意。六、附錄 附錄源代碼:#include<iostream> #include<cmath> /數(shù)學(xué)函數(shù)的定義#include <conio.

8、h> /屏幕操作函數(shù)#include<stdlib.h> /庫函數(shù)const int n=80000000; using namespace std;int xz;class jsqpublic:jsq()jsq()menu(); /菜單fenshu(); /分?jǐn)?shù)之間的運算js(); /整數(shù)與分?jǐn)?shù)運算start(); /開始zs(); /分?jǐn)?shù)的指數(shù)運算tc(); /退出fun(int t,int f);/約分函數(shù) private:int a,b,c,d,i,r,t,t1,f,f1,x;char n,q;void cd()/進入界面int i,j;cout<<end

9、l<<endl<<endl<<endl;cout<<" "<<endl;cout<<" * 歡迎使用分?jǐn)?shù)計算器 *"<<endl; cout<<" "<<endl;cout<<endl<<endl;cout<<" |"<<endl;cout<<" |*|"<<endl;cout<<" | 重慶工商

10、大學(xué)派斯學(xué)院 |"<<endl;cout<<" | 計算機科學(xué)系 |"<<endl;cout<<" | 制作人: 10計本2 鄧寅森 |"<<endl;cout<<" | 2011年5月 |"<<endl;cout<<" |*|"<<endl;cout<<" |"<<endl<<endl;cout<<endl<<&quo

11、t; 正"for(i=0;i<n;i+);cout<<"在"for(i=0;i<n;i+);cout<<"進"for(i=0;i<n;i+);cout<<"入"for(i=0;i<n;i+);cout<<"系"for(i=0;i<n;i+);cout<<"統(tǒng)"for(i=0;i<n;i+);cout<<","for(i=0;i<n;i+);cout<

12、;<"請"for(i=0;i<n;i+);cout<<"稍"for(i=0;i<n;i+);cout<<"等"for(i=0;i<n;i+);for(j=0;j<=6;j+)cout<<"."for(i=0;i<n;i+);for(i=0;i<8*n;i+);cout<<endl<<endl;cout<<ends<<ends<<ends<<ends<<en

13、ds<<ends<<ends<<ends<<ends<<ends<<ends<<ends<<ends<<ends<<ends;for(j=0;j<=50;j+)cout<<"<"for(i=0;i<=50000000;i+);jsq:menu() / 主菜單 dosystem("cls"); /清屏cout<<endl;cout<<" "<<endl;

14、cout<<" *簡單計算器*"<<endl;cout<<" "<<endl<<endl; cout<<" 1: 分?jǐn)?shù)之間的運算"<<endl<<endl;cout<<" 2: 整數(shù)與分?jǐn)?shù)運算"<<endl<<endl;cout<<" 3: 分?jǐn)?shù)的指數(shù)運算"<<endl<<endl;cout<<" 0: 退

15、出"<<endl<<endl; cout<<" 請按鍵選擇,回車確定 " cin>>xz;while(xz<0 | xz>3); /循環(huán)結(jié)束條件jsq:start()/自定義科學(xué)函數(shù)jsq js;js.menu();while(xz>=1 && xz<=3) switch(xz) case 1: js.fenshu();break; case 2: js.js();break; case 3: js.zs();break; cout<<endl<<end

16、l; cout<<" 是否繼續(xù)進行運算(YN): "/提示是否繼續(xù) if(getch()='n') js.menu(); /調(diào)用標(biāo)準(zhǔn)函數(shù)實現(xiàn)返回 else continue; /重復(fù)上一次法則運算 if(xz=0)js.tc();jsq:fun(int t=0,int f=0)/約分int r,t1=t,f1=f;while(r=t%f)!=0) t=f; f=r;t1=t1/f;f1=f1/f;cout<<endl<<" 計算結(jié)果為:"<<t1<<"/"&l

17、t;<f1<<endl;jsq:tc()/退出cout<<endl<<endl<<" 正 在 安 全 退 出 請稍候."for(;i<30000;i+) ; /*控制界面停留時間*/system("cls");/清屏cout<<endl<<endl<<endl<<" "<<endl; cout<<" 謝 謝 使 用 "<<endl; cout<<" b

18、ay-bay "<<endl; cout<<" "<<endl;for(;i<500000000;i+) ; /*控制界面停留時間*/system("cls");/清屏jsq:fenshu()/自定義分?jǐn)?shù)函數(shù)jsq js;system("cls");cout<<endl;cout<<"="<<endl;cout<<"歡迎使用分?jǐn)?shù)之間的計算"<<endl;cout<<&quo

19、t;="<<endl<<endl;cout<<" 輸入第一個分?jǐn)?shù)【形如:1/2】:"cin>>a>>n>>b;cout<<endl<<" 請選擇計算方式"<<endl<<" ('+','-','*','/'): "cin>>q;cout<<endl<<" 輸入第二個分?jǐn)?shù)【形如:1/2】:"

20、cin>>c>>n>>d;if(b=0 | d=0) cout<<endl<<" 輸入錯誤或分?jǐn)?shù)無意義"<<endl;fenshu();switch(q)case'+':t1=t=a*d+b*c;/分子f1=f=b*d;/分母js.fun(t1,f1);break;case'-':t1=t=a*d-b*c;f1=f=b*d;js.fun(t1,f1);break;case'*':t1=t=a*c;f1=f=b*d;js.fun(t1,f1);break;c

21、ase'/':t1=t=a*d;f1=f=b*c;js.fun(t1,f1);break;jsq:js()/自定義分?jǐn)?shù)函數(shù)【分?jǐn)?shù)+整數(shù)】system("cls");/清屏cout<<endl; cout<<" ="<<endl;cout<<" 歡迎使用分?jǐn)?shù)與整數(shù)運算"<<endl;cout<<" ="<<endl<<endl;cout<<" 輸入第一個分?jǐn)?shù)【形如:1/2】:"cin>>a>>n>>b;cout<<endl<<" 請選擇計算方式"<<endl<<" ('+','-','*','/'): "cin>>q;cout<<endl<<" 輸入第二個數(shù)【形如:1】:"cin>>x;if(b=0) cout<<endl<<" 輸入錯誤或分?jǐn)?shù)無意義"<&l

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論