先放上需求同時也是作業的地址:http://www.cnblogs.com/xinz/p/7417960.html
這是我第一次接觸一個完整的項目的開發,在這里分享一下整個項目(或者作業?)的設計過程。
寫一個項目,首先就是要搞清楚需求。而這個項目的需求描述中,可以看出后續的改進會有很多。而且個人也很難在短時間內將所有功能實現,還需要后續的慢慢改進。這就導致了必須采用模塊化的開發,否則在后續的修改和添加新的功能時將耗費大量的精力。
其次是要將需求中的問題拆分,本次項目里的問題就是“輸入需要的題目數,輸出相應符合標准的題目”。我們可以該問題拆分為“題目生成”“題目的驗證”與“題目的輸出“。

按照面向對象的思路,我首先確定了“題目“:

其次按照問題的拆分,分別是“題目生成器”“題目驗證器”“題目輸出器”:

驗證器篩掉不符合標准的題目並生成答案

題目生成器依靠隨機函數生成題目並調用驗證器

題目輸出器調用題目生成器批量生成可用題目並按格式輸出
但我發覺,批量生成題目去撞概率生成符合要求的題目很浪費時間(很明顯的一件事我覺得)。於是我在驗證器里加入了一個新的方法:修復題目

實際上錯誤只會發生在減法與除法之中(只需要把被減數或者被除數換掉就可以避免)
最后在對整個塊進行完善:

這就是最初的完整模塊設計。(但這並不是最終版本…)
在進行整個文件的目錄設計時,我發覺題目中有很多需要很方便就能修改的數據,如“學號”、“姓名”、“題目數”等。於是又在源代碼目錄下加入了配置文件。
最終的源文件目錄如下:

雖然整個架子算搭完了,但里面的實現還是沒有進行(驗證器的實現很困難,特別是修復方法,需要太多的if-else,不知道如何改進)。整個過程整體消耗時間可能在2~3小時左右,在此做以記錄。
