




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、荊楚理工學院課程設計成果學院:計算機工程學院班級:2014級計算機科學與技術2班學生姓名:XXX學號:20144040102XX設計地點(單位)教學樓B棟102實驗室設計題目:有理數運算完成日期:2016年XX月XX日指導教師評語:成績(五級記分制):教師簽名:1、問題描述12、功能要求13、問題的解決方案14、功能調試24.1 開始界面24.2 分數與整數的加法運算調試錯誤!未定義書簽。4.3 整數與分數的減法運算調試錯誤!未定義書簽。4.4 分數與分數的乘法運算調試錯誤!未定義書簽。4.5 分數與分數的除法運算調試錯誤!未定義書簽。4.6 分數分母為0錯誤測試錯誤!未定義書簽。5、總結3參
2、考文獻4附錄:源代碼5C+湎向對象程序設計課程設計報告摘要隨著面向對象程序設計方法的不斷普及和應用,學習和掌握C+胡言已經成為許多計算機專業工作者和廣大計算機應用人員的迫切需要。C+胡言是在C語言基礎上擴充了面向對象機制而形成的一種面向對象程序設計語言,它繼承了C語言的全部優點和功能外,還支持面向對象程序設計。本次分數計算器設計運用了C+”類和派生類的使用,實行對流提取和流插入運算符進行重載;分數對整數的加、減、乘和除法運算;整數對分數的加、減、乘和除法運算;分數對分數的加、減、乘和除法運算。最后對整個設計過程進行了總結。【關鍵詞】:C+y類;分數的加、減、乘、除計算。I1、問題描述有理數是一
3、個可以化為一個分數的數,例如2/3,533/920,-12/49都是有理數,而就為無理數。在C+”,并沒有預先定義有理數,需要時可以定義一個有理數類,將有理數的分子和分母分別存放在兩個整型變量中。對有理數的各種操作都可以用重載運算符來實現。2、基本要求定義并實現一個有理數類,通過重載運算符+、-、*、/對有理數進行算術運算,通過重載運算符=實現判定兩個有理數是否相等。寫一個優化函數,它的作用是使有理數約去公分母,也即是使保存的有理數分子和分母之間沒有公約數(除去1以外)。止匕外,還要定義一個將有理數轉換為實數的函數,再加上構造函數和有理數輸出函數。3、設計任務及目標針對有理數的各種算法,首先要
4、定義一個有理數類,在類中定義兩個整型變量作為私有數據,分別存放有理數的分子和分母;其次,要對有理數進行各種不同的操作,如加、減、乘、除、判斷兩個有理數是否相等等各種關系運算,有理數是通過分數形式來進行各種運算的,有理數的加減乘除,并不是簡單的分子與與分子相加減,分母與分母相加減,故要實現它的各種不同的運算,則要針對每種算法進行不同的操作,處理好兩個有理數的分子與分母之間的運算;再次,有理數是一個可以轉化為分數的數,但它還有實數的形式,所以,要定義一個函數來實現將有理數的分數形式轉化為實數形式,以實現其完整性;同時當從鍵盤輸入一個有理數的分子與分母,或者兩數進行運算后,有理數之間并不是最優化的形
5、式,分子與分母之間仍可以進行化簡,所以,針對這種情況仍需要定義一個函數來使有理數的分數形式化為最簡,以實現有理數的最優化。以上算法都實現了之后,要對每一步都進行輸出顯示,包括數據、計算及計算結果等,所以要再定義一個輸出函數來實現有理數分數形式、實數形式及最優形式的輸出。同時,為了避免分母為零的錯誤輸入與操作,在函數體內,要將各種錯誤的操作情況一一列出,來避免錯誤的有理數。4、問題及解決方案4.1 測試數據在應用程序中,創建若干有理數對象,通過帶參數的構造函數使得各有理數對象值各不相同,然后分別進行各類運算,輸出運算結果,檢驗其正確性。4.2 實現提示設有兩個有理數a/b和c/d,則有:(1)有
6、理數相加(2)有理數相減(3)有理數相乘(4)有理數相除分子=a*d+b*c;分母=b*d分子=a*d-b*c;分母=b*d分子=a*c;分母=b*d分子=a*d;分母=b*c優化函數在創建有理數對象時應執行,在執行其它各種運算之后也需執行它,這樣可保證所存儲的有理數隨時都是最優的。對于判斷兩個有理數是否相等,由于在對有理數進行各種運算后都對其進行優化,所以判定兩個有理數是否相等只需判定它們兩個的分子和分母分別相等即可。4.3 解決方案定義一個有理數類num(),通過構造函數實現對數據的初始化;然后將運算符+、-、*、/重載為該類的成員函數,再在函數內按照上述方法將兩個有理數之間的加、減、乘、
7、除運算實現,;再同樣通過重載運算符=用現判定兩個有理數是否相等,判定兩個數是否相等的方法為判斷一個數的分子與另一個數的分母相乘的值是否與該數的分母與另一個數的分子相乘的值相等;再定義一個可對有理數約分的函數yuefen(),在函數體中首先要找到分子與分母的最大公約數,再將分子與分母同時除以這個最大公約數,優化函數在創建有理數對象時應執行,在執行其它各種運算之后也需執行它,這樣可保證所存儲的有理數隨時都是最優的。然后定義一個轉換函數realnum(),將每一個有理數都好轉換成實數形式,且同樣在執行各種運算后都執行它。最后定義一個函數show(),實現對數據的輸出,同時為了避免分母為零的錯誤輸入,
8、當一個有理數的分母輸入為零時,提示輸入錯誤,以保證數據的正確性,當分子輸入為零時,不管其分母多大,都顯示輸出為零,否則輸出形式為:分子/分母。設有理數輸入格式為:整數1整數2整數3整數4整數1、2、3、4分別為兩個有理數的分子和分母。有理數輸出格式為:分子/分母五、程序框圖或流程圖,程序清單與調用關系類名成員類別成員名描述num屬性intnumerator分子intdenomination分母方法numnum()輸入兩個有理數voidyuefen(int,int)化簡有理數num+(num)兩數相加運算num-(num)兩數相減運算num*(num)兩數相乘運算num/(num)兩數相除運算1
9、bool=(num)判斷兩個有理數是否相等doublerealnum()轉換為實數voidshow()輸出有理數4、功能調試4.4 開始界面圖4.1開始界面5、總結通過此次的課程設計,我們將本學期由課本上所學習的有關內容應用到實踐當中,剛開始拿到手感覺一頭霧水,不知道到底是從哪里開頭去設計一個課題,雖然提供了解決方案讓我可以照著步驟去做,但是沒有老師的輔導,下手真不容易。后來在老師的幫助下理清了程序設計的一條條思路后,畫了設計層次圖,然后一步一步深入,把程序完成了。其中也遇到很多麻煩,在網上搜索解決了問題。這一次課程設計也使我在應用過程中更加清楚的了解并掌握C+胡言的各部分的內容,進一步加深了
10、對C+胡言的認識與理解,尤其注重了C+胡言與C語言不同的部分,同時提高了個人程序設計思想,及時發現一些錯誤,并在調試過程中更加深刻的認識到C+郵言程序的嚴謹性。認識到C+叫言,他不僅全面兼容了C語言,保持了C語言的簡潔、高效和接近匯編語言的特點,更對C的類型系統進行了改革和擴充,比C語言更安全,編譯系統更強大。總之,通過此次課程設計,我們學到了許多我們在書本上學不到的知識,受益匪淺。通過實踐,我們能更好地掌握C+胡言,并運用它編寫應用程序。我們對它的功能和實用性、嚴密性,和對程序的編寫都有了比較深刻的體會。毫無疑問,編程過程中我們遇到了許多問題,但通過我們不懈的努力,團結奮斗的精神,我們終究將
11、問題一一解除,最終實現了程序的各項功能。雖然我們的程序還不夠完善,加以改進以實現更多的功能。但通過這次的課程設計我們不僅學到了許多知識,學會如何設計一個應用程序,包括程序設計方法,調試程序,還學會如何解決問題,學會將所學知識運用到實際情況中。9參考文獻1李素若,杜華兵編.C+向對象程序設計.北京:中國水利水電出版社,2013.2李素若,杜華兵編.C+面向對象程序設計習題解答及上機指導.北京:中國水利水電出版社,2013.3譚浩強編.C+0向對象程序設計.北京:清華大學出版社,2006.n1+(-*/)n2循環結束,進入下一輪化簡轉化為實數附錄:源代碼#includeclassnumpublic
12、:num(intz=0,intm=0)numerator=z;denominator=m;voidyuefen(intx,inty);/numoperator+(numn2);/numoperator-(numn2);/numoperator*(numn2);/numoperator/(numn2);/booloperator=(numn2);/定義約分函數運算符+重載成員函數運算符-重載成員函數運算符*重載成員函數運算符/重載成員函數運算符=重載成員函數doublerealnum()R=(double)numerator/denominator;returnR;coutvvR;/定義函數將其
13、轉化voidshow();/定義函數將其輸出private:intnumerator,denominator;doubleR;/分數化簡函數;voidnum:yuefen(intx,inty)intt;inti;if(xy)t=y;elset=x;for(i=t;i=1;i-)if(x%i=0)&(y%i=0)t=i;break;if(t)numerator=x/t;denominator=y/t;elsenumerator=x;denominator=y;if(numerator=0)cout0endl;elsecoutnumerator/denominatorendl;/重載運算符函數的實
14、現/numnum二operator+(numn2)returnnum(numerator*n2.denominator+denominator*n2.numerator,denominator*n2.denominator);numnum二operator-(numn2)returnnum(numerator*n2.denominator-denominator*n2.numerator,denominator*n2.denominator);numnum二operator*(numn2)returnnum(numerator*n2.numerator,denominator*n2.denom
15、inator);numnum二operator/(numn2)returnnum(numerator*n2.denominator,denominator*n2.numerator);boolnum二operator=(numn2)if(numerator=n2.numerator)&(denominator=n2.denominator)returntrue;elsereturnfalse;voidnum:show()/顯示輸出函數if(numerator=0)cout0endl;elseif(denominator=0)cout您的輸入有誤!endl;elsecoutnumerator/d
16、enominatorendl;/主函數/intmain()charm;cout有理數運算程序endl;cout確定進入系統?(Y/N)m;if(m=n|m=N)cout不進入系統!endl;elseif(m=y|m=Y)charn;coutabcd;numn1(a,b),n2(c,d),n3;cout您所輸入的有理數n1為:;n1.show();cout化簡后的n1為:”;n1.yuefen(a,b);cout轉化為實數后的n1為:n1.realnum()endl;cout您所輸入的有理數n2為:;n2.show();cout化簡后的n2為:”;n2.yuefen(c,d);cout轉化為實數
17、后的n2為:n2.realnum()endl;coutn;if(n=+)n3=n1+n2;cout您所需的操作為:n1+n2=;n3.show();cout化簡后的數為:;n3.yuefen(a*d+b*c,b*d);cout轉化為實數后為:n3.realnum()endl;elseif(n=-)n1-n2=;n3=n1-n2;cout您所需的操作為:n3.show();cout花簡后的數為:n3.yuefen(a*d-b*c,b*d);cout轉化為實數后為:n3.realnum()endl;)elseif(n=,*)(n3=n1*n2;cout您所需的操作為:n1*n2=;n3.show();cout化簡后的數為:n3.yuefen(a*c,b*d);cout轉化為實數后為:n3.realnum()endl;)elseif(n=7)(n3=n1/n2;cout您所需的操作為:n1/n2=;n3.show();cout化簡后的數為:n3.yue
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 探討項目團隊文化建設的策略試題及答案
- 2025年注冊會計師學習集體效應與團隊合作切實可行的學習策略試題及答案
- 質量導向備戰2025年注冊會計師考試的關鍵點試題及答案
- 廣東某超高層電視塔安全文明施工方案(內容詳細、附施工圖)
- 2025年證券從業資格的學習技巧試題及答案
- 項目管理考試資源的合理選擇試題及答案
- 項目管理創新思維的運用試題及答案
- 2025年銀行從業資格證考生經驗分享試題及答案
- 2025年證券從業資格證應試經驗試題及答案
- 財務報表的分析框架與關鍵試題及答案
- 混凝土橋梁預應力鋼筋銹蝕的研究進展
- 傳染病培訓知識課件
- 多動癥行為治療
- 2025年杭州市能源集團招聘筆試參考題庫含答案解析
- 艾滋病知識培訓課件
- 專題07 等差數列與等比數列(考點清單+知識導圖+ 13個考點清單-題型解讀)(原卷版)-25學年高二數學上學期期末考點大串講
- 高速公路汽車救援方案
- 《Origin的使用方法》課件
- 2024年WPS計算機二級考試題庫350題(含答案)
- 2023中考道德與法治十大熱點預測-2023年中考道德與法治考場速查寶典(部編版)
- 高中英語必背3500單詞表(完整版)
評論
0/150
提交評論