版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、實驗設計方案1、實驗內(nèi)容與目的(簡單介紹實驗內(nèi)容,說明實驗目的)實驗目的:設計一個分數(shù)計算器:1 )實現(xiàn)輸入 ,輸出 ,+,- , * , /運算符的 重載;2)實現(xiàn)分子分母的約分與規(guī)格化。實驗內(nèi)容:你的具體選擇(要詳細)實現(xiàn)分數(shù)計算器的屏幕輸入和輸出:1)輸入采用文件(input.txt) 輸入,可以有 任意個二元分數(shù)表達式,表達式之間的分隔符自定義;2)輸出到文件(output.txt)2、實驗準備工作(闡述解決問題所涉及的算法思想,至少要畫一個算法流程圖來說明)以下為循環(huán)計算二元分數(shù)計算式的流程圖:在實驗中還需要面對六個運算符重載,通過運算符重載,我們可以簡單的使用分數(shù) 計算,而不需要關
2、心它的結(jié)構,運算符重載,我們根據(jù)基本的數(shù)學定理,將加減乘除包 裝,并重載了輸入輸出運算符,這樣,在輸入輸出時便可直接輸出用戶方便接收的格式。、實驗步驟、測試與結(jié)果分析1、源程序的設計(在此附上源程序( cpp 文件)清單)#include#include #include using namespace std;/ 創(chuàng)建分數(shù)類 class Fractionprivate:int nume;int deno;int Gcf(int m,int n);和 n 最大公因數(shù)public:Fraction(int n=1,int d=1);virtualFraction()void Reduction(
3、);int GetNume() constreturn nume;int GetDeno() constreturn deno;void SetNume(int n);void SetDeno(int d);Fraction operator+(const Fraction &a) const; Fraction operator-(const Fraction &a) const; Fraction operator*(const Fraction &a) const; Fraction operator/(const Fraction &a) const;ostream &operator
4、 (ostream &out,const Fraction &a); (istream &in,Fraction &a); 符/ 最大公因數(shù)函數(shù)int Fraction:Gcf(int m,int n) if(n=0) return m; 為最大公因數(shù)else return Gcf(n,m%n); / 約分函數(shù) void Fraction:Reduction()/ 分子/ 分母/ 輔助函數(shù),返回 m/ 約分/ 返回分子/ 返回分母/ 設置分子/ 設置分母/ 重載加法符 +/ 重載加法符 - / 重載加法符 * / 重載加法符 / 重載輸出運算符/ 重載輸入運算/ 如果 n=0 , m/ 否者輾
5、轉(zhuǎn)相除if(deno0) / 若分母小于 0 ,將 符號提前 nume=-nume; deno=-deno;int f=Gcf(abs(nume),deno);nume=nume/f; / 實現(xiàn)約數(shù) deno=deno/f;/ 構造函數(shù) Fraction:Fraction(int n,int d):nume(n),deno(d)if(deno=0) cout 分母為 0endl; / 查出異常 Reduction(); / 約分/ 設置分母函數(shù) void Fraction:SetNume(int n)nume=n;Reduction();/ 設置分子函數(shù) void Fraction:SetDe
6、no(int d)if(d=0) cout 分母為 0nume*a.deno+this-deno*a.nume;/ 求和的分子result.deno=this-deno*a.deno;/ 求和的分母result.Reduction();/ 約分return result;/ 返回和/ 重載運算符 Fraction Fraction:operator-(const Fraction &a) constFraction result;result.nume=this-nume*a.deno-this-deno*a.nume;/ 求差的分子result.deno=this-deno*a.deno;/
7、 求差的分母result.Reduction();/ 約分return result;/ 返回差/ 重載運算符 *Fraction Fraction:operator * (const Fraction &a) constFraction result;result.nume=this-nume*a.nume;/ 求積的分子result.deno=this-deno*a.deno;/ 求積的分母result.Reduction();/ 約分return result;/ 返回積/ 重載運算符 /Fraction Fraction:operator / (const Fraction &a) c
8、onstif(a.nume=0) cout 除數(shù)為 0nume*a.deno;/ 求商的分子result.deno=this-deno*a.nume;/ 求商的分母result.Reduction();/ 約分return result;/ 返回商/ 重載運算符 ostream &operator (ostream &out,const Fraction &a)outa.GetNume()/istream &operator (istream &in,Fraction &a) char ch; int m,n;/ 接收字符/ 定義分子和分母inm;inch;if(ch !=/) cout 非法
9、字符 n;if(n=0) cout 分母為 0endl; 出異常/ 輸入分子/ 輸入 / 輸入分母/ 如果分母為 0 ,輸a.SetNume(m);a.SetDeno(n);a.Reduction();return in;int main(void)Fraction obj1,obj2,result;char index,ch;ifstream infile(input.txt,ios:in);if(!infile)cout 打開文件 input.txt 失?。?endl; exit(1);ofstream outfile(output.txt,ios:app); if(!outfile)co
10、ut 打開文件 output.txt 失敗 endl; exit(1);outfileobj1; infileindex;符號infileobj2; infilech;果/ 設置分子/ 設置分母/ 約分/ 返回輸入流/ 定義兩個分數(shù)和結(jié)果/ 定義符號/ 以輸入的方式打開文件/ 若文件打開失敗/ 以輸出的方式打開文件/ 若文件打開失敗endl;/ 無限次循環(huán)直到求解/ 輸入第一個分數(shù)/ 輸入需要執(zhí)行的操作/ 輸入第二個分數(shù)/ 選擇繼續(xù)或者計算結(jié)if(index=+) result=obj1+obj2;/ 加法else if(index=-) result=obj1-obj2; / 減法else
11、if(index=*) result=obj1*obj2;/ 乘法else if(index=/) result=obj1/obj2;/ 除法else system(PAUSE); return 0;cout 正在計算 obj1 index obj2.endl;ofstream outfile(output.txt,ios:app); if(!outfile)cout 打開文件 output.txt 失敗 endl; exit(1);outfileobj1 index obj2 = resultendl;/ 輸 出 結(jié) 果 到 output.txt/ 若遇到; ,繼續(xù)執(zhí)行 / 若遇到= ,計算
12、結(jié)果謝謝使用cout計算完成,結(jié)果保存在 output.txt中endlendl;if(ch=;) continue;else if(ch=)outfileendlendl;break;outfile.close();infile.close();/ 文件輸出流關閉/ 文件輸出流關閉system(PAUSE);return 0;2、實驗現(xiàn)象及結(jié)論(應用文字和程序運行的截圖說明程序測試現(xiàn)象,并解釋結(jié)果)input.txt輸入截圖如下:Jcsy.exe 執(zhí)行截圖如下:7 B:Progras FilesCYuanbinwvteMp_ exe 正在計算S *耳算完成,結(jié)果保存在output,txt中
13、正在計M1/6 * 5/6計算完成.結(jié)果慄存在output,txt中請按任意犍繼續(xù)-output.txt輸出截圖如下:in put.txt輸入截圖如下:jcsy.exe 執(zhí)行截圖如下:B: ProgrFilesXCYuYaiiVbinYwteMp,. exe 正在計算2/5 +計算完戍,結(jié)果保存在output _txt中正在計算4/5 # 1/78 計算完成,結(jié)果保存在oiitput.txt中請按任意犍繼續(xù).- Output.txt輸出截圖如下:本次計算結(jié)果如下文件匹)編輯 格式 查看邊 轄助I1/2 + 1/2 = 1/11/6 * 5/6 = 5/36謝謝使用本次計算結(jié)果如下2/5 + 5
14、/24 = 73/120V5 / 1/78 = 312/5謝謝使用一一3、實驗總結(jié)(是否成功解決問題,總結(jié)實驗中最有價值的內(nèi)容,程序能夠在哪些方面進步改善,自我評價成敗得失)試驗中,我們按照從簡單到復雜的方法,一步一個腳印編寫代碼,使得程序不易發(fā) 生錯誤,并且容易更正,編寫出來的程序代碼簡潔明朗,效率較高;通過對例題的學習,我們最終將正確的代碼編寫出,并在不斷地修改之下做到方便 用戶使用的要求;編碼的速度有一個從慢到快的過程,在本次試驗中,我們的速度依然比較慢,這看 出我們平時編碼比較少,缺乏熟練度,并對算法了解不深入;但是我們的代碼看起來仍然有些凌亂,效率還沒有帶到真正的高效,每次運行都需
15、要等待幾秒鐘。再以后我們將通過練習基礎功,簡化程序代碼,實現(xiàn)簡單代碼完善功能 的理想。1. 編碼要盡量使程序簡單,采用最切實可靠的算法,實現(xiàn)封裝,不同部分的代碼應分工 明確,最后由主函數(shù)統(tǒng)一調(diào)用;2. 編寫完成后先自己檢查一遍代碼,然后由機器檢測,找出錯誤的根源,從不同角度思 考如何解決問題;3. 測試時應盡可能輸入各種可能情況的數(shù)據(jù)以確保程序準確無誤。4. 應避免任何可能的漏洞,使代碼的可用性和可靠性增強。5. 試驗中,我按照從簡單到復雜的方法,一步一個腳印編寫代碼,使得程序不易發(fā)生錯 誤,并且容易更正,編寫出來的程序代碼簡潔明朗,效率較高;6. 通過對例題的學習,我最終將正確的代碼編寫出,并在不斷地修改之下做到方便用戶 使用的要求;7. 編碼的速度有一個從慢到快的過程,在本次試驗中,我的速度依然比較慢,這看出我 平時編碼比較少,缺乏熟練度,并對算法了解不深入;8. 但是我的代碼看起來仍然有些凌亂,效率還沒有帶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電影行業(yè)安全生產(chǎn)工作總結(jié)
- 傳統(tǒng)制造業(yè)技術職位展望
- 二零二五年度航空航天材料試驗委托協(xié)議3篇
- 二零二五年度房屋收購合同環(huán)保驗收與評估范本3篇
- 二零二五版養(yǎng)老院專業(yè)保潔及消毒服務合同2篇
- 二零二五版?zhèn)€人二手房購房合同與產(chǎn)權過戶指導書
- 航空行業(yè)助理的職位介紹
- 汽車行業(yè)財務預測分析工作總結(jié)
- 二零二五年度產(chǎn)品責任糾紛民事答辯狀范文3篇
- 二零二五年度木材市場樹木買賣協(xié)議3篇
- 問題探究如何讓城市不再看海(教學課件)高一地理
- 2024年人教版五年級數(shù)學(上冊)模擬考卷及答案(各版本)
- 人教版八年級下冊歷史第1課 中華人民共和國成立 說課稿
- 《地球物理勘查》全冊配套完整教學課件
- (正式版)JBT 5300-2024 工業(yè)用閥門材料 選用指南
- 九年級上冊-備戰(zhàn)2024年中考歷史總復習核心考點與重難點練習(統(tǒng)部編版)
- 健康指南如何正確護理蠶豆病學會這些技巧保持身體健康
- 老客戶的開發(fā)與技巧課件
- 26個英文字母書寫(手寫體)Word版
- GB/T 13813-2023煤礦用金屬材料摩擦火花安全性試驗方法和判定規(guī)則
- 日語專八分類詞匯
評論
0/150
提交評論