第四次作業--結對項目(四則運算升級版)
結對項目(四則運算升級版)
作業來源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213
上傳Github地址:https://github.com/CTqin/CTqin
一、基本要求
從個人項目出發,將程序改造成一個單機帶用戶界面(不是控制臺)的程序,這個程序最基本要達到:
- 自動生成題目,單個題目最多不能超過4個運算符,操作數小於100。
- 用戶可以輸入答案
- 若用戶輸入答案正確,則提示正確;若答案錯誤,則提示錯誤,並要提示正確答案是多少。
二、我做的擴展方向
1.程序可以出帶括號的正整數四則運算,支持分數,除法保留兩位小數,如:(1/3+1)*2 = 2.67,特別註意:這裏是2.67而非2.66(保留兩位小數功能實現,不支持出帶括號題目)
2.可以出表達式裏含有負整數(負整數最小不小於-100)的題目,且負數需要帶括號,用戶輸入的結果不用帶括號。如: 2*(-4) = -8(function6實現)
3.程序可以設置皮膚功能,可以改變界面的顏色即可(按鈕點擊實現兩種顏色切換)
三、開發壞境
四、具體代碼
1. 主要利用以下這個函數去產生隨機數去出題目
int x=(int)(Math.random()*5); int x=(int)(Math.random()*5); switch(x) { case 0: function1();//一個運算符,整數,整數 break; case 1: function2();//一個運算符,整數,分數 break; case 2: function3();//一個運算符,分數,分數 break; case 3: function4();//兩個運算符 break; case4: function5();//求階乘 break; case 5: function6();//題目出現負數 break; }
2.可以處理負數的題目的實現代碼
private void function6()//表達式裏含有負整數(負整數最小不小於-100)的題目,且負數需要帶括號,用戶輸入的結果不用帶括號。 { int a=(int)(Math.random()*99+1)*-1;//隨機生成-1~-99的負整數 int b=(int)(Math.random()*10+1); int x1=(int)(Math.random()*4); switch(x1) { case 0: { t.setText("("+a+") "+String.valueOf(ch[0])+" "+b); answer =a+b; } break; case 1: { t.setText("("+a+") "+String.valueOf(ch[1])+" "+b); answer =a-b; } break; case 2: { t.setText("("+a+") "+String.valueOf(ch[2])+" "+b); answer =a*b; } break; case 3: { t.setText("("+a+") "+String.valueOf(ch[3])+" "+b); answer =(float)a/(float)b; } break; } }
3.功能框背景顏色的變動
if(e.getSource()==colorchangebtn) { if (colorchange==true) { p1.setBackground(Color.red); p2.setBackground(Color.red); colorchange=false; } else { p1.setBackground(Color.white); p2.setBackground(Color.white); colorchange=true; } }
先使按鈕裝一個監聽器,兩種顏色在裏面循環。自己百度改變框背景的方法。
五、解決問題
前期在於配對的問題,找不到作業的夥伴,幾經匹配,才配上隊。隊員陳挺欽(他的博客),他封裝和加工漂亮以及上傳代碼。大部分他做,我只是參與其中一部分的討論。負責的功能都是大膽構思,小心實踐就出來。按照自己的邏輯和經驗。唯有顏色變化沒涉及過。上網百度之後,比較之後選出最簡單的方法應用到代碼之中。沒太大的問題,可能老師給的時間也很足,所以沒感到太大的壓迫。
附圖:統計表
PSP2.1 |
Personal Software Process Stages |
Time Senior Student(h) |
Time(h) |
Planning |
計劃 |
0 |
0 |
· Estimate |
估計這個任務需要多少時間 |
7 |
8 |
Development |
開發 |
1 |
1.5 |
· Analysis |
需求分析 (包括學習新技術) |
0.1 |
0.3 |
· Design Spec |
生成設計文檔 |
0 |
0 |
· Design Review |
設計復審 |
3 |
1 |
· Coding Standard |
代碼規範 |
0.1 |
0.1 |
· Design |
具體設計 |
0.5 |
1 |
· Coding |
具體編碼 |
1 |
1 |
· Code Review |
代碼復審 |
1 |
1.1 |
· Test |
測試(自我測試,修改代碼,提交修改) |
0.5 |
1 |
Reporting |
報告 |
0 |
0 |
Test Report |
測試報告 |
0 |
0.5 |
·workload |
計算工作量 |
0 |
0.5 |
·correction |
並提出過程改進計劃 |
0 |
0 |
結對編程分工:
何鎧江201606120010:背景顏色設置,整數相加減乘除,時間更新
陳廷欽201606120003:頁面布局,點擊時間處理,答案判斷,階乘計算,代碼細節(具體博客)
工作圖(本人右邊)
第四次作業--結對項目(四則運算升級版)