作業要求:

這次作業要求将每一塊分開,我重新看了一遍我的代碼,發現之前都有進行分塊處理,心想這次應該不會太難(暗自竊喜中)。可是當我着手要按要求那樣重新編排我的代碼時卻發現很難把我的代碼分成一塊塊的排列在主函數裡。
scan()//該函數用于與使用者互動,擷取輸入資料
print()//将統計結果輸出給使用者
我發現我的主函數裡隻有兩種功能,即scan()和print()這兩個功能,但是在這兩個功能又不能完全獨立分開。原因是我的代碼結構和要求不太一,下面會解釋。
randomNumber()//用于随機生成數字
randomOperation()//用于随機生成運算符
我在想,time.h頭檔案裡不是已經有time()這個函數可以實作随機了嗎,為什麼還要獨立出來呢?
generateExpression()//用于生成運算式
這個在我的代碼裡叫int operation(int score),這個外函數主要用來決定生成運算,不過輸出算式并不是它的功能;除此之外它還要順帶計算總分,雖然隻是提供算式的答案給int sco(frac result)函數(這個才是接收使用者答案并且和正确答案比較的函數,因為有這個函數的存在,是以我才說scan()要單獨實作在主函數裡很奇怪)。
calculateResult()//用于計算生成的運算式的結果
我有一系列的frac print(參數) 函數,用來輸出特定的算式,并根據運算順序計算結果傳回給operation(),隻不過這一系列函數很分散,甚至各自情況都不一樣,是以我不知道到底該怎麼将他們合并成一個函數扔在主函數裡。
總的來說,我的代碼是通過主函數調用operation(),然後operation()再調用time(),print(),sco()等等,是一層層遞進的嵌套關系,現在突然要讓我把這些剝離開來變成主函數裡的一系列并列函數,我覺得除非重新寫一段代碼,不然就目前而言不太可能實作。
是以我最後隻改了一下輸入輸出的形式,改用C++的形式,其他的我連原有的函數名都不改了。
還有一件很嚴肅的事,就是我本來好很糾結要不要把.h和.cpp分開寫,後來發現根本沒必要糾結,因為我還是搞不清到底什麼要放在public裡面,什麼要放在private裡面,我覺得我的變量也好,函數也好,都沒有什麼需要特殊保護以免被修改的呀。。。。暴露了一直沒好好學習C++
GitHub