【項目2-分數類的雛形】
c++中提供了多種基本的資料類型。實際上,這些遠不能滿足我們的需求,如複數(第10章的例子大多是處理虛數的),再如分數。我們可以自定義類支援這些資料類型。
本任務将設計一個簡單的分數類,完成對分數的幾個運算。一則鞏固基于對象程式設計的方法,二則也為第10章做運算符重載等積累些感性認識。
分數類的聲明為:
項目要求:完成分數類的設計,并在main()函數中自行定義對象,調用各成員函數,完成基本的測試。
實踐政策:(1)不建議一次實作所有成員函數後再調試,而是實作一個,測試一個;(2)本項目的實作及測試順序可以是:先構造函數和輸出output函數(可以先隻實作一種輸出方式),再set函數,再input函數,等等。
以後我們将能夠:(1)定義了int i,j,能用cin>>i>>j;在鍵盤上輸入i和j的值。以後,定義了cfraction c1, c2,可以用cin>>c1>>c2;輸入分數,用cout<<c1<<c2;輸出分數。(2)i+j完成兩個整型數的相加,我們可以通過自行定義成員函數,用c1+c2、c1/c2、c1>c2等,實作分數的四則運算、比較、求倒數等。
【參考解答】
按照測試政策,可以隻實作類中的和輸出函數output(output可以暫時隻實作0方式),然後編寫main函數對它們進行測試,而不是一下子将完整的程式寫出來,再測試。
下面是“最初始”的解答:
提供我寫出的最終參考解答。一點一點加,随即進行測試。我給出類的完整設計,并沒有給出對main函數的完全測試,這個測試,可以在逐漸實作中完成。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyEzMxEzMwEjM0EzMwQTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)