首先是一些基本概念的宣告:
三角函式sin(x)
,cos(x)
,另外,本指導書範圍內所有的詞語「三角函式」,除非特殊說明,否則一律包含且僅包含上述兩個函式)
常數因子包含乙個帶符號整數,如:233
。
表示式因子將在表示式的相關設定中進行詳細介紹。不過,表示式因子不支援冪運算。
巢狀因子本次作業將支援因子巢狀在三角函式因子裡面,即乙個因子作為另乙個三角函式因子的自變數,例如sin(x^2)
,cos(sin(x))
以及sin(sin(cos(cos(x^2))))^2
等。但是不允許出現指數為變數的情況,指數依然只能是帶符號整數,例如sin(x) ^ sin(x)
是不合法的,因為指數不是自變數。也不允許冪函式的自變數為除了x
之外的因子,例如1926^0817
是不合法的,因為冪函式的自變數只能為x
。
項
特殊形式
表示式由加法和減法運算子等若干項組成,如:(-1 + x ^ 233)* sin(x^2) ^ 06 - cos(sin(x)) * 3 * sin((x))
。此外,在第一項之前,可以帶乙個正號或者負號,如:- -1 + x ^ 233、+ -2 + x ^ 1926
。此處有幾點注意:
空白字元在本次作業中,空白字元包含且僅包含和
\t
。其他的除了上述會用到的字元之外,均屬於非法字元。
輸入乙個多項式, 對其求導, 並且使用以上的格式對於求導後的表示式進行輸出
第一次作業我設計了三個類, item, stringparse和polynominal
作業2我的設計基本和作業1相同
對於上述的表示式求值, 第三次作業中我的類設計如下
主要有四個類
工程的uml圖
第一次作業的複雜度整體較好
作業二中parseitem的複雜度較高, cyclomatic complexity控制的不好, 條件判斷的結構設計不好, 需要改進。
parseitem和parsenestedexpression在設計複雜度控制的不夠好, **comment ratio有些低, 不利於之後的維護, 這些在以後的作業中需要改進。
三次作業沒有被發現bug,發現別人bug3處, 通過看指導書中的定義, 找乙個空格判斷之類的盲區, 對其他人的**進行測試。
三次作業基本架構不需要重構, 如果要提公升的話, 方法如下:
string parse和item類寫的有些累贅, 其中item還可以拆成trainfunction, exponent, factor, singleinteger四個類, 分別進行parse和合併, 這樣有助於提公升**的可讀性以及後期敏捷開發。!
物件導向第一次作業
1.編寫程式,從鍵盤輸入三個值,並列印其和 平均數 積 最小值和最大值。2.編寫乙個程式,計算0到10的平方和立方,並用製表符 t 列印值 3.編寫乙個程式,讀取五位整數並確定其是否為回文 4.peter minuit問題 1626年,荷屬美洲新尼德蘭省總督peter minuit花了大約24美元的...
物件導向第一次部落格作業
第一次作業由於對物件導向不太了解,只在主類中封裝了多項式,將其餘的部分都寫在了main函式中,顯得main函式十分臃腫,所以main函式超過範圍。第二次作業我進行了一定的規劃,做了一定的設計,對各個類的任務進行了均衡,只有排程類的 量略多於其他幾個類。至於close函式,我是在每條請求執行之前滅掉應...
物件導向第一次實驗
實驗一 類與結構 1 實驗目的 了解和使用 vc 的整合開發環境。熟悉 vc 整合開發環境的基本編輯命令及功能鍵 學會常規視窗操作。熟悉常用功能選單命令。學習完整的 c 程式開發過程 編輯 編譯 連線 除錯 執行及檢視結果 理解簡單的 c 程式結構。通過實驗理解類與結構的區別,掌握類的定義,了解使用...