1. 程式人生 > >第四次作業--結對項目(四則運算升級版)

第四次作業--結對項目(四則運算升級版)

判斷 保留兩位小數 問題 soft size 程序 pla set 以及

結對項目(四則運算升級版)

作業來源: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; case
4: 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:頁面布局,點擊時間處理,答案判斷,階乘計算,代碼細節(具體博客)

工作圖(本人右邊)

技術分享圖片

第四次作業--結對項目(四則運算升級版)