[討論] 單班dsa homework 1

看板b01902HW作者 (陳倉)時間11年前 (2013/02/27 00:23), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
不知道理解有沒有錯..... 如下列指示,你要把程式碼交到課程網站是指定的位置。 任何形式的偷撇步、造假、或抄襲都不會被放過。你要是這樣做,我們會給你零分/負分 、被當、或是退學。 我們鼓勵有關課程的討論。但是寫作業時大家還是要自己寫,並充分理解。書、筆記、網頁可以參考,但不能抄襲。 已經規定作業要獨立完成,你也沒有必要把作業借給別人。為了最大的公平,像別人借作業或是把作業借給他人的行為都被當作不誠實,並會給予嚴重處分。 作業可以使用中文或英文,但程式碼的部分,我們這次規定使用C++,並禁止使用printf(), scanf()等涵式。 這個作業的目的是要你學會C++。在C++理面,變數可以包裝成class,有點類似C的structure, 但是可以在class中定義操作這些變數的函數。你應該已經知道如何在class中定義函數,並用public讓他們可以在class以外的區域使用。在你們這禮拜的閱讀作業中,你要學會如何用一個constructor建構、初始化一個物件。我知道你們對C++不熟悉,因此決定給你們這個作業當做刺激,強迫你們去尋找資源並學習。給你們一個小建議:你們該開始去看書、煩TA了窩! 在class中,另外一個特別的涵式叫做operator,我們上課也展示過他的用法。operator函數會定義物件不同運算子下會做什麼運算,讓各個運算子學會新招,或是讓它超量負荷。你可以對各運算子作全域的定義,或是只有在class內的定義。超載的運算子要以函數實作。 在這次的功課理面,你要實作一個constructor、兩個函數、以及運算子超載。你要相處的class是一個一元的複數係數多項式,要實作的運算子包含相加、相減、相乘以及合成。舉例,你要超載+用來相加兩個多項式。再來,你要把宣告和實作分開。做出一個標頭擋poly.h,如 .... 以及實作的檔案poly.cpp 作業要求: 請實作一個C++的class poly代表多項式,並具備下列項目: 1. class 標頭擋,包含下列函數的定義 2. class constructor,要合理的將物件初始話。 3. eval步驟,計算多項式的輸出值。 4. show步驟,會列印出多項式,有下列格式: *係數升冪排列 *輸出以非零的首項系數結尾,若為零多項式,則印0.00 *各系數均以"+-a+-bi","+-a","+-bi",且a,b都是小數點顯示兩位的服點數。單獨出現的+號都要省略 *系數為 +-1.00時也不要省略系數 *輸出格式不包含引號"" *範例輸出如"3.14","1.00","2.72i","1.00+1.00i" 5. 超載+ 6. 超載- 7. 超載* 8. 超載() 作業包含poly.h, poly.cpp. poly.h中做宣告,poly.cpp中實作。這兩個檔案會和助教寫的main.cpp結合,然後有向泛力一樣的輸入瀚樞出。 請注意,複數並不是一個C++內建的資料形態,我們鼓勵你實作一個ComplexNumber的物件,讓你的poly更容易寫,但是不搶破。 範例輸入 範例輸出 相關檔案: main.cpp:TAs會用這個檔案測試你的物件。所以你必須實際想出以上函數。 MAKEFILE:TAs會用這個檔案make, make run還編譯、測試你的作業。請確認你的程式可以在217的linux機器上編譯、執行。否則你不會通過基本測資、拿零分。 繳交檔案: 請江你的作業壓縮成一的zip檔案並上傳ceiba,死線2013/3/7。檔名為學號,如 b01902999.zip。zip包含下列檔案: poly.cpp poly.h 想給TA看的README MEDAL如果你想要用金牌,可以包含這個檔案,並在第一行寫一個數字,表示你想要用幾 面金牌。一面金牌可以把總分提高一倍,但是一學期只有四面,用了也不能追回,請小心使用。 ※ 編輯: ryuchenchang 來自: 111.240.202.186 (02/27 00:29) ※ 編輯: ryuchenchang 來自: 111.240.202.186 (02/27 00:30)

02/27 03:04, , 1F
"一面金牌可以把總分提高一倍"是個大大的誤解 :-)
02/27 03:04, 1F

02/27 19:50, , 2F
謝謝老師^^
02/27 19:50, 2F
※ 編輯: ryuchenchang 來自: 111.240.195.222 (02/27 21:43)
文章代碼(AID): #1HBE60oM (b01902HW)