1.界面模塊,測試模塊和核心模塊的鬆耦合編程
結對編程成員:13061163 趙庶宏 13061196 付帥函數
和咱們進行合做的小組成員是:徐丞,賴彥諭;由於找不到其餘用MFC寫界面的人。。。。。測試
咱們遇到的問題是:API接口的設計和他們設計的接口有些不一致,因此致使咱們的模塊和他們的界面模塊不能很好的鏈接。spa
爲了解決這一問題,若是要修改咱們設計好的API,那麼就會修改以後的不少參數,可謂牽一髮而動全身,很是複雜。而若是按咱們API的形式修改他們的界面,也達不到交換測試的目的了。最後設計
咱們的解決方案是,在咱們的代碼的基礎上增添新的API接口,這個API接口會接受外界傳入的參數,並將其進行整合,修改,而後再調用咱們原來的的API進行計算,至關於在API的接口上又套了一orm
層接口,使的咱們的模塊和他們的界面能夠鏈接起來,解決了這一問題。對象
交換測試主要發現了一個比較重要的bug,就是輸入的計算表達式過長時會產生溢出的狀況,咱們的程序該開始設置的是int型的,可是在他們組恐怖的超大超長表達式的測試下仍是溢出了,爲了解決這一接口
問題,咱們從網上查找了相關文檔發現C++並無提供像C#中checked,unchecked檢測溢出的庫函數,因此咱們最後採用的方案是,限定輸入的表達式長度不能超過200,單個操做數的大小不能夠進程
超過200,來避免這種狀況。。。文檔
2.改進程序
關於錯誤處理,採起拋出異常外部捕捉的方式,因爲C++的throw方法能夠拋出字符串,常量,表達式對象,因此在處理異常方面,咱們並無單獨設計異常類,而是採起直接拋出字符串的形式
Operand類,拋出:
操做數格式錯誤異常;
分母爲0異常;
操做數範圍越界異常;
沒法生成要求數量的表達式異常;
除數爲0異常;
Formular類,拋出:
表達式格式錯誤異常;
除數爲0異常。