版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、荊楚理工學(xué)院課程設(shè)計成果 學(xué)院: 計算機工程學(xué)院 班級: 2014級計算機科學(xué)與技術(shù)2班 學(xué)生姓名: 韓明澤 學(xué)號: 2014404010216 設(shè)計地點(單位) 教學(xué)樓B棟102實驗室 設(shè)計題目: 分數(shù)計算器設(shè)計 完成日期: 2016 年 06 月 18 日 指導(dǎo)教師評語: 成績(五級記分制): 教師簽名: C+面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告摘 要隨著面向?qū)ο蟪绦蛟O(shè)計方法的不斷普及和應(yīng)用,學(xué)習(xí)和掌握C+語言已經(jīng)成為許多計算機專業(yè)工作者和廣大計算機應(yīng)用人員的迫切需要。C+語言是在C語言基礎(chǔ)上擴充了面向?qū)ο髾C制而形成的一種面向?qū)ο蟪绦蛟O(shè)計語言,它繼承了C語言的全部優(yōu)點和功能外,還支持面向?qū)ο蟪绦蛟O(shè)
2、計。本次分數(shù)計算器設(shè)計運用了C+中類和派生類的使用,實行對流提取和流插入運算符進行重載;分數(shù)對整數(shù)的加、減、乘和除法運算;整數(shù)對分數(shù)的加、減、乘和除法運算;分數(shù)對分數(shù)的加、減、乘和除法運算。最后對整個設(shè)計過程進行了總結(jié)?!娟P(guān)鍵詞】:C+;類;分數(shù)的加、減、乘、除計算。目 錄1、問題描述12、功能要求13、問題的解決方案14、功能調(diào)試24.1 開始界面24.2 分數(shù)與整數(shù)的加法運算調(diào)試34.3 整數(shù)與分數(shù)的減法運算調(diào)試34.4 分數(shù)與分數(shù)的乘法運算調(diào)試44.5 分數(shù)與分數(shù)的除法運算調(diào)試44.6 分數(shù)分母為0錯誤測試55、總結(jié)5參考文獻6附錄:源代碼71、問題描述定義一個整數(shù)類。定義一個分數(shù)類,由
3、整數(shù)類派生出。能對分數(shù)進行各種計算和輸入/輸出。2、功能要求(1)定義整數(shù)類和分數(shù)類。其中,包括構(gòu)造函數(shù)、析構(gòu)函數(shù)、顯示函數(shù)等。(2)輸入/輸出:對流提取和流插入運算符進行重載。(3)計算功能:可進行分數(shù)的加、減、乘和除法運算。(4)化簡功能:將分數(shù)化簡為最簡分數(shù)。(5)異常處理功能:分數(shù)中分母不能為零。(6)菜單功能:每種功能的操作都是在菜單中進行相應(yīng)選擇。3、問題的解決方案 根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計;頭文件聲明整數(shù)類聲明派生類成員函數(shù)定義主函數(shù)定義類的對象定義成員函數(shù)圖3.1 功能應(yīng)用模塊(2)分析系統(tǒng)中
4、的各個實體及它們之間的關(guān)系;主函數(shù)成員函數(shù)定義Main.obj分數(shù)計算器.objmain.exe圖3.1 各個實體關(guān)系(3)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次;class Integer /定義整數(shù)類class Fraction:public Integer /分數(shù)類,由整數(shù)類進行派生friend istream & operator(istream & ,Fraction & ); /重載輸入流friend ostream & operator(ostream & ,Fraction & ); /重載輸出流 (4)完成類中各個成員函數(shù)的描述和定義;Fraction(int a=0,int b=1
5、) /分數(shù)類成員函數(shù)display()/實現(xiàn)成員函數(shù) operator+(Fraction &c)/重載兩個分數(shù)的加法運算符operator-(Fraction &c)/重載兩個分數(shù)的減法運算符operator*(Fraction &c)/重載兩個分數(shù)的乘法運算符operator/(Fraction &c)/重載兩個分數(shù)的除法運算符operator+(int n)/重載分數(shù)和整數(shù)的加法運算operator-(int n)/重載分數(shù)減整數(shù)的減法運算符operator *(int n)/重載分數(shù)與整數(shù)的乘法運算符operator/(int n)/重載分數(shù)除以整數(shù)的除法運算符Fraction pre
6、digest(); /約分函數(shù)main()/主函數(shù)4、功能調(diào)試4.1 開始界面圖4.1 開始界面4.2 分數(shù)與整數(shù)的加法運算調(diào)試圖4.2 分數(shù)與整數(shù)的加法運算4.3 整數(shù)與分數(shù)的減法運算調(diào)試圖4.3 整數(shù)與分數(shù)的減法運算4.4 分數(shù)與分數(shù)的乘法運算調(diào)試圖4.4 分數(shù)與分數(shù)的乘法運算調(diào)試4.5 分數(shù)與分數(shù)的除法運算調(diào)試圖4.5 分數(shù)與分數(shù)的除法運算調(diào)試4.6 分數(shù)分母為0錯誤測試圖4.6 錯誤測試5、總結(jié)通過此次的課程設(shè)計,我們將本學(xué)期由課本上所學(xué)習(xí)的有關(guān)內(nèi)容應(yīng)用到實踐當(dāng)中,剛開始拿到手感覺一頭霧水,不知道到底是從哪里開頭去設(shè)計一個課題,雖然提供了解決方案讓我可以照著步驟去做,但是沒有老師的輔導(dǎo)
7、,下手真不容易。后來在老師的幫助下理清了程序設(shè)計的一條條思路后,畫了設(shè)計層次圖,然后一步一步深入,把程序完成了。其中也遇到很多麻煩,在網(wǎng)上搜索解決了問題。這一次課程設(shè)計也使我在應(yīng)用過程中更加清楚的了解并掌握C+語言的各部分的內(nèi)容,進一步加深了對C+語言的認識與理解,尤其注重了C+語言與C語言不同的部分,同時提高了個人程序設(shè)計思想,及時發(fā)現(xiàn)一些錯誤,并在調(diào)試過程中更加深刻的認識到C+語言程序的嚴謹性。認識到C+語言,他不僅全面兼容了C語言,保持了C語言的簡潔、高效和接近匯編語言的特點,更對C的類型系統(tǒng)進行了改革和擴充,比C語言更安全,編譯系統(tǒng)更強大。總之,通過此次課程設(shè)計,我們學(xué)到了許多我們在書
8、本上學(xué)不到的知識,受益匪淺。通過實踐,我們能更好地掌握C+語言,并運用它編寫應(yīng)用程序。我們對它的功能和實用性、嚴密性,和對程序的編寫都有了比較深刻的體會。毫無疑問,編程過程中我們遇到了許多問題,但通過我們不懈的努力,團結(jié)奮斗的精神,我們終究將問題一一解除,最終實現(xiàn)了程序的各項功能。雖然我們的程序還不夠完善,加以改進以實現(xiàn)更多的功能。但通過這次的課程設(shè)計我們不僅學(xué)到了許多知識,學(xué)會如何設(shè)計一個應(yīng)用程序,包括程序設(shè)計方法,調(diào)試程序,還學(xué)會如何解決問題,學(xué)會將所學(xué)知識運用到實際情況中。參考文獻1李素若,杜華兵編.C+面向?qū)ο蟪绦蛟O(shè)計.北京:中國水利水電出版社,2013.2李素若,杜華兵編.C+面向?qū)?/p>
9、象程序設(shè)計習(xí)題解答及上機指導(dǎo).北京:中國水利水電出版社,2013.3鄭莉,傅仕星編.C+面向?qū)ο蟪绦蛟O(shè)計.清華大學(xué)出版社,2003.4譚浩強編.C+面向?qū)ο蟪绦蛟O(shè)計.北京:清華大學(xué)出版社,2006.5Davis Chapman,學(xué)用Visualc+6.0,清華大學(xué)出版社,2001.附錄:源代碼/分數(shù)計算器h.h:#includeclass Integer /整數(shù)類protected:int fz;int fm;public:Integer(int a=0,int b=1):fz(a),fm(b)Integer()void display();class Fraction:public Inte
10、ger /分數(shù)類,進行計算和輸入輸出public:Fraction(int a=0,int b=1):Integer(a,b)friend istream & operator(istream & ,Fraction & ); /重載輸入流 friend ostream & operator(ostream & ,Fraction & ); /重載輸出流Fraction operator+(Fraction &c); /重載+運算符(分數(shù)與分數(shù))Fraction operator+(int n); /重載+運算符(整數(shù)與分數(shù))Fraction operator-(Fraction &c); /
11、重載-運算符(分數(shù)與分數(shù))Fraction operator-(int n); /重載-運算符(整數(shù)與分數(shù))friend Fraction operator-(int n,Fraction &c);Fraction operator*(Fraction &c); /重載*運算符(分數(shù)與分數(shù))Fraction operator*(int n); /重載*運算符(整數(shù)與分數(shù))Fraction operator/(Fraction &c); /重載/運算符(分數(shù)與分數(shù))Fraction operator/(int n); /重載/運算符(整數(shù)與分數(shù))friend Fraction operator/
12、(int n,Fraction &c);Fraction predigest(); /約分函數(shù)void display();/實現(xiàn)函數(shù)(分數(shù)計算器設(shè)計)#include/#include分數(shù)計算器h.hvoid Integer:display ()coutendl;cout -分數(shù)計算器-endlendl;cout 請選擇功能: endl;cout 1 分數(shù)與整數(shù)的四則運算。 endlendl;cout 2 整數(shù)與分數(shù)的四則運算。 endlendl;cout 3 分數(shù)與分數(shù)的四則運算。 endlendl;cout 0 輸入0退出。 endlendl;Fraction Fraction:pred
13、igest()/定義約分函數(shù) int n,d,t,sign=1; Fraction temp; if(fz0 & fm0 & fm0) fm=-fm; sign=-1;if(fz0) fz=-fz; sign=-1;n=fz;d=fm;int r;if(nd) /輾轉(zhuǎn)相除,求分子n與分母d的最大公約數(shù)t=n;n=d;d=t;r=n%d;while(r!=0) n=d; d=r; /d為最大公約數(shù) r=n%d;temp.fz=sign*(fz/d);temp.fm=fm/d;return temp;Fraction Fraction:operator+(Fraction &c)/重載兩個分數(shù)的加
14、法運算符 Fraction temp; temp.fz=fz*c.fm+fm*c.fz; temp.fm=fm*c.fm; return temp;Fraction Fraction:operator+(int n)/重載分數(shù)和整數(shù)的加法運算 Fraction temp; temp.fz=fm*n+fz; temp.fm=fm; return temp;Fraction operator-(int n,Fraction &c)Fraction temp;temp.fz=c.fm*n-c.fz ;temp.fm=c.fm;return temp;Fraction Fraction:operato
15、r-(int n)/重載分數(shù)減整數(shù)的減法運算符Fraction temp;temp.fz=fz-fm*n;temp.fm=fm;return temp;Fraction Fraction:operator-(Fraction &c) /重載兩個分數(shù)的減法運算符 Fraction temp ;temp.fz =fz*c.fm -fm*c.fz;temp.fm =fm*c.fm;return temp;Fraction Fraction:operator*(Fraction &c)/重載兩個分數(shù)的乘法運算符Fraction temp;temp.fz=fz*c.fz;temp.fm=fm*c.fm;
16、return temp;Fraction Fraction:operator *(int n)/重載分數(shù)與整數(shù)的乘法運算符Fraction temp;temp.fz=fz*n;temp.fm=fm;return temp;Fraction Fraction:operator/(Fraction &c)/重載兩個分數(shù)的除法運算符Fraction temp;temp.fz=fz*c.fm;temp.fm=fm*c.fz;return temp;Fraction Fraction:operator/(int n)/重載分數(shù)除以整數(shù)的除法運算符Fraction temp;temp.fz=fz;temp
17、.fm=fm*n;return temp;Fraction operator /(int n,Fraction &c) Fraction temp;temp.fz =n*c.fm ;temp.fm =c.fz ;return temp;ostream& operator(ostream &output,Fraction &t) /重載輸出運算符,輸出分數(shù)int a,b,c;a=t.fz;b=t.fm;if(a=0|b=0) /當(dāng)分子,或者分母為0時,輸出0cout0;if(b=1) /當(dāng)分母為1時,輸出分子coutb&b!=1)/判斷分數(shù)為假分數(shù)c=a/b;a=a%b;coutc;if(a!=
18、0)cout又a/b;if(ab&b!=1)/當(dāng)分數(shù)為負時,判斷為假分數(shù)c=-a/b;a=-a%b;c=-c;cout=c;if(a!=0)cout又a/b0&t.fzt.fm & t.fm!=0&t.fm!=1) /判斷為真分數(shù)outputt.fz/t.fm;if(t.fz0 & -t.fzt.fm & t.fm!=0 & t.fm!=1) /判斷為真分數(shù)output(t.fz/t.fm(istream &input,Fraction &t)/重載輸入運算符,輸入分數(shù)int a,c;char b;inputabc;if(b=/ & c!=0 )t.fz=a;t.fm=c;elsecout錯誤!輸入格式錯誤或分母為0!請退出重新輸入!endl;return input;#includeint main() /main函數(shù)Integer dis; Fraction a,b,result,real;int m,z;char c;/數(shù)據(jù)類型dis.display ();while(m!=0) coutm;if(m=1) /分數(shù)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國內(nèi)擔(dān)保貸款合同示范
- 企業(yè)承包經(jīng)營合同的環(huán)保要求
- 2024公眾號搭建合同
- 2024融資服務(wù)合同范文
- 集體土地上房屋拆遷補償標準
- 2024終止合同協(xié)議書
- 2024水馬購買協(xié)議合同
- 建筑項目施工管理協(xié)議書
- 2024年企業(yè)知識產(chǎn)權(quán)歸屬協(xié)議書
- 資金管理與賬戶監(jiān)督合同
- 2021年大唐集團招聘筆試試題及答案
- DBJ53/T-39-2020 云南省民用建筑節(jié)能設(shè)計標準
- 2022版義務(wù)教育數(shù)學(xué)課程標準解讀課件PPT模板
- 實驗五 PCR擴增課件
- 馬拉松運動醫(yī)療支援培訓(xùn)課件
- 中醫(yī)藥宣傳手冊
- 不良資產(chǎn)處置盡職指引
- 人教部編版七年級歷史上冊第19課 北魏政治和北方民族大交融課件(23張PPT)
- 機械設(shè)備定期檢查維修保養(yǎng)使用臺賬
- 麗聲北極星分級繪本第四級上 Stop!Everyone Stop!教學(xué)設(shè)計
- 小學(xué)科學(xué)教育科學(xué)三年級上冊天氣《認識氣溫計》教學(xué)設(shè)計
評論
0/150
提交評論