版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 報(bào) 告課程名稱 算法與程序設(shè)計(jì) 課題名稱 分?jǐn)?shù)計(jì)算器設(shè)計(jì) 專 業(yè) 信息與計(jì)算科學(xué) 班 級(jí) 1601班 學(xué) 號(hào) 14 28 姓 名 王世成 許依哲 指導(dǎo)教師 王祝君、趙釷焱 2018年 01 月 04日湖 南 工 程 學(xué) 院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 算法與程序設(shè)計(jì)課 題 分?jǐn)?shù)計(jì)算器設(shè)計(jì) 專業(yè)班級(jí) 信息與計(jì)算科學(xué)1601班 學(xué)生姓名 王世成 許依哲 學(xué) 號(hào) 14 28 指導(dǎo)老師 王祝君、趙釷焱 審 批 任務(wù)書下達(dá)日期 2017 年 12 月 18日任務(wù)完成日期 2018 年 01 月 04日一設(shè)計(jì)要求: 1、問(wèn)題描述定義一個(gè)整數(shù)類。定義一個(gè)分?jǐn)?shù)類,由整數(shù)類派生。能對(duì)分?jǐn)?shù)進(jìn)
2、行各種計(jì)算和輸入/輸出。2、功能要求(1)定義整數(shù)類和分?jǐn)?shù)類。其中,包括構(gòu)造函數(shù)、析構(gòu)函數(shù)、顯示函數(shù)等。(2)輸入/輸出:對(duì)流提取和流插入運(yùn)算符進(jìn)行重載。(3)計(jì)算功能:可進(jìn)行分?jǐn)?shù)的加、減、乘和除法運(yùn)算。(4)化簡(jiǎn)功能:將分?jǐn)?shù)化簡(jiǎn)為最簡(jiǎn)分?jǐn)?shù)。(5)異常處理功能:分?jǐn)?shù)中分母不能為零。(6)菜單功能:每種功能的操作都是在菜單中進(jìn)行相應(yīng)選擇。3、問(wèn)題的解決方案 根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);(2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系;(3)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類層次;(4)完成類層次中各個(gè)類的描述;(5)完成類中各個(gè)成員
3、函數(shù)的定義;(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報(bào)告。l 前言在網(wǎng)站上找了一個(gè)源代碼對(duì)它進(jìn)行了分析,我們一起讀懂這個(gè)程序在這個(gè)過(guò)程當(dāng)中碰到我不懂的和他不懂的地方,但是經(jīng)過(guò)兩個(gè)人的合作最終把程序全部都讀懂了,如由開(kāi)始的定義整數(shù)類,不清楚為什么要定義兩個(gè),后來(lái)慢慢看下去之后就知道了,因?yàn)檫@個(gè)要由整數(shù)類派生出分?jǐn)?shù)類,在后面也碰到王看不懂的地方如約分,經(jīng)過(guò)我給他舉實(shí)例然后再通過(guò)用程序代碼打上去,慢慢就對(duì)這個(gè)分?jǐn)?shù)計(jì)算器的計(jì)算功能全部了解了,包括后面的層次圖,我通過(guò)上網(wǎng)百度層次圖的結(jié)構(gòu),他則對(duì)整個(gè)程序進(jìn)行分析,從整個(gè)層面上看。拿到這個(gè)課題之后我們一起查找資料,源代碼有很多不理解的地
4、方,我們一起學(xué)習(xí),一點(diǎn)點(diǎn)的理解。還有層次圖的設(shè)計(jì),系統(tǒng)的調(diào)試,分析,一個(gè)個(gè)過(guò)程慢慢摸索,兩個(gè)人互相幫助下,完成了這個(gè)課題。系統(tǒng)調(diào)試過(guò)程出現(xiàn)一些問(wèn)題,后來(lái)經(jīng)過(guò)詢問(wèn)來(lái)老師,上網(wǎng)搜索的方法糾正了錯(cuò)誤,讓程序順利進(jìn)行。 目錄(一)需求分析6(二)總體設(shè)計(jì)6(三)詳細(xì)設(shè)計(jì)7(四)系統(tǒng)調(diào)試8(六)使用說(shuō)明及編程體會(huì)10(七)關(guān)鍵源程序(帶注釋)10二、設(shè)計(jì)內(nèi)容(一)需求分析系統(tǒng)設(shè)計(jì)目的與意義:制作一個(gè)分?jǐn)?shù)計(jì)算器,以完成分?jǐn)?shù)與分?jǐn)?shù),整數(shù)與分?jǐn)?shù)之間的四則運(yùn)算,以及分?jǐn)?shù)的化簡(jiǎn),并對(duì)分?jǐn)?shù)進(jìn)行輸入/輸出。(二)總體設(shè)計(jì)系統(tǒng)功能分析;(1)定義整數(shù)類和分?jǐn)?shù)類。其中,包括構(gòu)造函數(shù)、析構(gòu)函數(shù)、顯示函數(shù)等。(2)輸入/輸出
5、:對(duì)流提取和流插入運(yùn)算符進(jìn)行重載。(3)計(jì)算功能:可進(jìn)行分?jǐn)?shù)的加、減、乘和除法運(yùn)算。(4)化簡(jiǎn)功能:將分?jǐn)?shù)化簡(jiǎn)為最簡(jiǎn)分?jǐn)?shù)。(5)異常處理功能:分?jǐn)?shù)中分母不能為零。(6)菜單功能:每種功能的操作都是在菜單中進(jìn)行相應(yīng)選擇。系統(tǒng)功能模塊劃分與設(shè)計(jì)(系統(tǒng)功能模塊圖): 頭文件聲明派生類聲明整數(shù)類成員函數(shù)定義 主函數(shù)定義成員函數(shù)定義類的對(duì)象(三)詳細(xì)設(shè)計(jì)類層次圖加法運(yùn)算分?jǐn)?shù)類乘法運(yùn)算約分整數(shù)類除法運(yùn)算除法運(yùn)算減法運(yùn)算乘法運(yùn)算減法運(yùn)算加法運(yùn)算(四)系統(tǒng)調(diào)試系統(tǒng)主界面 進(jìn)行分?jǐn)?shù)與整數(shù)運(yùn)算調(diào)試 進(jìn)行分?jǐn)?shù)約分調(diào)試進(jìn)行分?jǐn)?shù)與分?jǐn)?shù)運(yùn)算調(diào)試退出調(diào)試進(jìn)行分母為0的調(diào)試(六)使用說(shuō)明及編程體會(huì)按照屏幕上的提示進(jìn)行操作,輸
6、入整數(shù)與分?jǐn)?shù),其次按照頁(yè)面彈出來(lái)的文字進(jìn)行分?jǐn)?shù)與分?jǐn)?shù)的四則運(yùn)算或者整數(shù)與分?jǐn)?shù)的四則運(yùn)算,在調(diào)試的過(guò)程中我們忽略了這是由多個(gè)文件合并而來(lái)的大文件,之間合并在一起去操作,導(dǎo)致怎么運(yùn)行都是出現(xiàn)一個(gè)錯(cuò)誤,最后拆分開(kāi)來(lái)就調(diào)試成功了,包括后面的處理整個(gè)過(guò)程真的有點(diǎn)麻煩,最后還是堅(jiān)持下來(lái)了,覺(jué)得挺好的,當(dāng)然完成這個(gè)課設(shè)也讓我們?cè)俅胃杏X(jué)到這么學(xué)科的好處以及學(xué)習(xí)的樂(lè)趣(七)關(guān)鍵源程序(帶注釋)/分?jǐn)?shù)計(jì)算器h.h:#include<iostream.h>class Integer /整數(shù)類protected:int fz;int fm;public:Integer(int a=0,int b=1):f
7、z(a),fm(b)Integer()void display();class Fraction:public Integer /分?jǐn)?shù)類,進(jìn)行計(jì)算和輸入輸出public:Fraction(int a=0,int b=1):Integer(a,b)friend istream & operator>>(istream & ,Fraction & ); /重載輸入流 friend ostream & operator<<(ostream & ,Fraction & ); /重載輸出流Fraction operator+(Fra
8、ction &c); /重載+運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fraction operator+(int n); /重載+運(yùn)算符(整數(shù)與分?jǐn)?shù))Fraction operator-(Fraction &c); /重載-運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fraction operator-(int n); /重載-運(yùn)算符(整數(shù)與分?jǐn)?shù))friend Fraction operator-(int n,Fraction &c);Fraction operator*(Fraction &c); /重載*運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fraction operator*(int n); /重載*運(yùn)算符(整數(shù)與
9、分?jǐn)?shù))Fraction operator/(Fraction &c); /重載/運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fraction operator/(int n); /重載/運(yùn)算符(整數(shù)與分?jǐn)?shù))friend Fraction operator/(int n,Fraction &c);Fraction predigest(); /約分函數(shù)void display();/實(shí)現(xiàn)函數(shù)(分?jǐn)?shù)計(jì)算器設(shè)計(jì))#include<iostream.h>/#include"分?jǐn)?shù)計(jì)算器h.h"void Integer:display ()cout<<endl;cout&
10、lt;<" -分?jǐn)?shù)計(jì)算器-"<<endl<<endl;cout<<" 請(qǐng)選擇功能: "<<endl;cout<<" 1 分?jǐn)?shù)與整數(shù)的四則運(yùn)算。 "<<endl<<endl;cout<<" 2 整數(shù)與分?jǐn)?shù)的四則運(yùn)算。 "<<endl<<endl;cout<<" 3 分?jǐn)?shù)與分?jǐn)?shù)的四則運(yùn)算。 "<<endl<<endl;cout<<
11、;" 0 輸入0退出。 "<<endl<<endl;Fraction Fraction:predigest()/定義約分函數(shù) int n,d,t,sign=1; Fraction temp; if(fz<0 && fm<0) fz=-fz; fm=-fm; if(fz>0 && fm<0) fm=-fm; sign=-1;if(fz<0 && fm>0) fz=-fz; sign=-1;n=fz;d=fm;int r;if(n<d) /輾轉(zhuǎn)相除,求分子n與分母d
12、的最大公約數(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)/重載兩個(gè)分?jǐn)?shù)的加法運(yùn)算符 Fraction temp; temp.fz=fz*c.fm+fm*c.fz; temp.fm=fm*c.fm; return temp;Fraction Fraction:operator+(int n)/重載分?jǐn)?shù)和整數(shù)的加法運(yùn)算 Fraction temp; temp
13、.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:operator-(int n)/重載分?jǐn)?shù)減整數(shù)的減法運(yùn)算符Fraction temp;temp.fz=fz-fm*n;temp.fm=fm;return temp;Fraction Fraction:operator-(Fraction &c) /重載兩個(gè)分?jǐn)?shù)的減法運(yùn)算符 Fr
14、action temp ;temp.fz =fz*c.fm -fm*c.fz;temp.fm =fm*c.fm;return temp;Fraction Fraction:operator*(Fraction &c)/重載兩個(gè)分?jǐn)?shù)的乘法運(yùn)算符Fraction temp;temp.fz=fz*c.fz;temp.fm=fm*c.fm;return temp;Fraction Fraction:operator *(int n)/重載分?jǐn)?shù)與整數(shù)的乘法運(yùn)算符Fraction temp;temp.fz=fz*n;temp.fm=fm;return temp;Fraction Fraction:
15、operator/(Fraction &c)/重載兩個(gè)分?jǐn)?shù)的除法運(yùn)算符Fraction temp;temp.fz=fz*c.fm;temp.fm=fm*c.fz;return temp;Fraction Fraction:operator/(int n)/重載分?jǐn)?shù)除以整數(shù)的除法運(yùn)算符Fraction temp;temp.fz=fz;temp.fm=fm*n;return temp;Fraction operator /(int n,Fraction &c) Fraction temp;temp.fz =n*c.fm ;temp.fm =c.fz ;return temp;ost
16、ream& operator<<(ostream &output,Fraction &t) /重載輸出運(yùn)算符,輸出分?jǐn)?shù)int a,b,c;a=t.fz;b=t.fm;if(a=0|b=0) /當(dāng)分子,或者分母為0時(shí),輸出0cout<<"0"if(b=1) /當(dāng)分母為1時(shí),輸出分子cout<<a;if(a>b&&b!=1)/判斷分?jǐn)?shù)為假分?jǐn)?shù)c=a/b;a=a%b;cout<<c;if(a!=0)cout<<"又"<<a<<
17、9;/'<<b;if(a<0&&-a>b&&b!=1)/當(dāng)分?jǐn)?shù)為負(fù)時(shí),判斷為假分?jǐn)?shù)c=-a/b;a=-a%b;c=-c;cout<<'='<<c;if(a!=0)cout<<"又"<<a<<'/'<<b<<endl; if(t.fz>0&&t.fz<t.fm && t.fm!=0&&t.fm!=1) /判斷為真分?jǐn)?shù)output<&l
18、t;t.fz<<'/'<<t.fm;if(t.fz<0 && -t.fz<t.fm && t.fm!=0 && t.fm!=1) /判斷為真分?jǐn)?shù)output<<"("<<t.fz<<'/'<<t.fm<<")"return output;istream& operator>>(istream &input,Fraction &t)/重載輸入運(yùn)算符
19、,輸入分?jǐn)?shù)int a,c;char b;input>>a>>b>>c;if(b='/' && c!=0 )t.fz=a;t.fm=c;elsecout<<"錯(cuò)誤!輸入格式錯(cuò)誤或分母為0!請(qǐng)退出重新輸入!"<<endl;return input;#include<iostream.h>int main() /main函數(shù)Integer dis; Fraction a,b,result,real;int m,z;char c;/數(shù)據(jù)類型dis.display ();while
20、(m!=0) cout<<" 請(qǐng)輸入:(0-3): "cin>>m;if(m=1) /分?jǐn)?shù)與整數(shù)的運(yùn)算 cout<<endl<<" 請(qǐng)輸入一個(gè)分?jǐn)?shù): "cin>>a;cout<<endl<<" 請(qǐng)輸入運(yùn)算符: "cin>>c;cout<<endl<<" 輸入一個(gè)正整數(shù): "cin>>z;if(c='+')result=a+z;if(c='-')resul
21、t=a-z;if(c='*')result=a*z;if(c='/')result=a/z;real=result.predigest();cout<<"運(yùn)算式規(guī)范為: "<<a<<c<<z<<'='<<a.predigest ()<<c<<z<<'='<<real<<endl;cout<<endl;if(m=2) /整數(shù)與分?jǐn)?shù)的運(yùn)算cout<<endl;
22、cout<<endl<<" 請(qǐng)輸入一個(gè)正整數(shù): "cin>>z;cout<<endl<<" 請(qǐng)輸入運(yùn)算符: "cin>>c;cout<<endl<<" 請(qǐng)輸入一個(gè)分?jǐn)?shù): "cin>>b;if(c='+')result=b+z;if(c='-')result=z-b;if(c='*')result=b*z;if(c='/')result=z/b;real=result
23、.predigest();cout<<"運(yùn)算式規(guī)范為: "<<z<<c<<b<<'='<<z<<c<<b.predigest ()<<'='<<real<<endl;cout<<endl; if(m=3) /分?jǐn)?shù)與分?jǐn)?shù)的運(yùn)算cout<<endl; cout<<endl<<" 請(qǐng)輸入一個(gè)分?jǐn)?shù): "cin>>a;cout<<e
24、ndl<<" 請(qǐng)輸入運(yùn)算符: "cin>>c;cout<<endl<<" 請(qǐng)輸入一個(gè)分?jǐn)?shù): "cin>>b;if(c='+')result=a+b;if(c='-')result=a-b;if(c='*')result=a*b;if(c='/')result=a/b;real=result.predigest();cout<<"運(yùn)算式規(guī)范為: "<<a<<c<<b&
25、lt;<'='<<a.predigest ()<<c<<b.predigest ()<<'='<<real<<endl;cout<<endl; return 0;l 書寫格式a要求用A4紙打印成冊(cè)b正文格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行距為22。c正文的內(nèi)容:正文總字?jǐn)?shù)要求在3000字左右(不含程序原代碼)。d封面格式如下頁(yè)。l 考核方式指導(dǎo)老師負(fù)責(zé)驗(yàn)收程序的運(yùn)行結(jié)果,并結(jié)合學(xué)生的工作態(tài)度、實(shí)際動(dòng)手能力、創(chuàng)新精神和設(shè)計(jì)報(bào)告等進(jìn)行綜合考評(píng),并按優(yōu)秀、良好、中等、及格和不及格五個(gè)等級(jí)給出每位同學(xué)的課程設(shè)計(jì)成績(jī)。具體考核標(biāo)準(zhǔn)包含以下幾個(gè)部分:a平時(shí)出勤 (占10%)b系統(tǒng)需求分析、功能設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及程序總體結(jié)構(gòu)合理與否(占10%)c
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝行業(yè)工程師工作感想
- 小班幼兒進(jìn)餐情況觀察記錄
- 物流快遞行業(yè)物流管理培訓(xùn)反思
- 中考總結(jié)結(jié)尾(范本1040段)
- 2024年物流運(yùn)輸學(xué)徒工勞動(dòng)協(xié)議書3篇
- 2024年度校企人才培養(yǎng)與科研支撐協(xié)議3篇
- 康復(fù)外科護(hù)士工作總結(jié)
- 盡情奔跑在幸福的旋律中幼兒園工作總結(jié)
- 2024年智能商務(wù)大廈辦公場(chǎng)地租賃合同模板3篇
- 2024年度打印機(jī)銷售與市場(chǎng)調(diào)研合同3篇
- 高中物理-帶電粒子在勻強(qiáng)組合場(chǎng)中的運(yùn)動(dòng)教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 買賣合同糾紛案民事判決書
- 中國(guó)近代人物研究學(xué)習(xí)通課后章節(jié)答案期末考試題庫(kù)2023年
- 注冊(cè)安全工程師考試之安全技術(shù)分章習(xí)題通關(guān)寶典
- XX物業(yè)服務(wù)有限公司工作指引手冊(cè)(物業(yè)服務(wù)中心)
- 廣東省高等學(xué)校“千百十工程”第六批繼續(xù)培養(yǎng)對(duì)象和第
- 游泳教練工作計(jì)劃工作總結(jié)述職報(bào)告PPT模板下載
- 食管癌的護(hù)理查房
- 【企業(yè)杜邦分析國(guó)內(nèi)外文獻(xiàn)綜述6000字】
- 中考數(shù)學(xué)真題變式題庫(kù)
- FZ/T 91019-1998染整機(jī)械導(dǎo)布輥制造工藝規(guī)范
評(píng)論
0/150
提交評(píng)論