這個作業要求來自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232
結對對象部落格是:https://www.cnblogs.com/CM33/p/9866639.html
結對同學:陳華傑 201606120081
開發環境:lntellij IDEA
語言:java
一、需求分析
1、從個人項目出發,将程式改裝成一個單機帶使用者界面(不是控制台)的程式,這個程式最基本要達到:
- 生成題目,單個題目最多不能超過4個運算符,操作數小于100。
- 使用者可以輸入答案
- 若使用者輸入答案正确,則提示正确;若答案錯誤,則提示錯誤,并要提示正确答案是多少。
2、拓展方向
- 程式可以出帶括号的正整數四則運算,支援分數,除法保留兩位小數,如:(1/3+1)*2 = 2.67,特别注意:這裡是2.67而非2.66,或保持分數形式:8/3
- 可以出表達式裡含有負整數(負整數最小不小于-100)的題目,且負數需要帶括号,使用者輸入的結果不用帶括号。如: 2*(-4) = -8
- 使用者答題結束以後,程式可以顯示使用者答題所用的時間
- 使用者可以選擇出題的個數(最多不能超過5個題目),答題結束可以顯示使用者答錯的題目個數和答對的題目個數
- 使用者在第一次答題時,需要使用者輸入使用者名,使用者下次啟動後,程式需要記住使用者前一次輸入的使用者名
- 程式可以出單個整數階乘的題目:如:4!=24
- 程式可以設定答題時間,時間設定為整數,機關為秒,最大不能超過120秒,若超過了答題時間未答題,則提示:時間已到,不能答題。
- 程式可以設定皮膚功能,可以改變界面的顔色即可。
二、詳細設計
原本是想用js+html+css來完成的後來想了想我們也不會還是想多了還是用java寫吧 T T.
題目數:
if (n > 5 || n < 1) {
JOptionPane.showMessageDialog(null, "題目個數≥1, ≤5", "注意", JOptionPane.INFORMATION_MESSAGE);
} else {
B1.setEnabled(false);
B2.setEnabled(true);
B3.setEnabled(true);
L2.setText("你的答案 :");
L5.setText("答案不為空!");//設定文本
L5.setFont(new Font("幼圓", Font.BOLD, 12));
L5.setForeground(Color.magenta);
T1.setText(null);
star();
}
換膚功能代碼:
if (e.getSource() == B4)//換皮膚
{
B4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent cc) {
Color ch = JColorChooser.showDialog(p1, "背景顔色",
p1.getBackground());
if (ch != null) {
p1.setBackground(ch);
p1.repaint();
三、分工合作
我主要負責換膚功能還有大于等于一個小于五個題目的功能

四 、運作截圖
五、項目的時間規劃
PSP2.1 | Personal Software Process Stages | Time Senior Student | Timeminute |
Planning | 計劃 | 3 | 2.5 |
Estimate | 估計這個任務需要多少時間 | 15 | 16 |
Development | 開發 | 8 | 7.5 |
Analysis | 需求分析 | 2 | 1.5 |
Design Spec | 生成設計文檔 | 1 | |
Design Review | 設計複審 | 0.5 | |
Coding Standard | 代碼規範 | ||
Design | 具體設計 | 5 | 6 |
Coding | 具體編碼 | 13 | 12 |
Code Review | 代碼複審 | ||
Test | 測試 | ||
Reporting | 報告 | ||
測試報告 | |||
計算工作量 | |||
并提出過程改進計劃 |
六、項目的感想
剛開始接觸結對程式設計對于很多方式都不習慣,雙方生活習慣不一樣,有很多要磨合的地方。代碼規範和實作由于代碼基礎不好,也花費了很多時間,還需要多費功夫。