天天看點

第三次作業:個人項目-國小四則運算

部落格園:https://www.cnblogs.com/zpfs/

github倉庫:https://github.com/rg-zpf/rg-software

第一部分:要求

        具體要求:任何程式設計語言都可以,指令行程式接受一個數字輸入,然後輸出相應數目的四則運算題目和答案。例如輸入數字是 30, 那就輸出 30 道題目和答案。 運算式子必須至少有兩個運算符,運算數字是在 100 之内的正整數,答案不能是負數。 如:23 - 3 * 4 = 11。

第二部分:設計

1.需求設計

   ①随機産生題目

   ②題目中至少有二個以上的運算符

   ③提示使用者輸入題目數量

   ④判斷答案對錯,統計分數

   ⑤能出和真分數 (二分之一, 十二分之五,等)相關的練習題

2.功能設計

   ①根據使用者輸入題目數,循環n次,代表n道題目

   ②判斷對錯,答案與誤差之間相差0.1,如果大于0.1,則為錯誤

   ③答案不能出現負數,小于0,則跳轉重新出題

   ④count記錄答案正确數,便于統計分數

第三部分:代碼實作

   ①首先産生數字為100以内的四則運算,按照使用者輸入題目數n去循環輸出

   ②因為有一道題目中有兩個運算符,是以要判斷計算優先級問題。我的做法是把兩個運算符存入到一個字元數組中,如果第一個運算符ku[0]是“*”或“/”,那就直接運算,第二個雲算法隻要判斷是什麼就也可以直接運算了;如果第一個運算符ku[0]不是“*”或“/”,就要判斷第二個運算符ku[1]是否為“*”或“/”,如果是,就先計算後面兩個數,然後在将後面計算結果與前面相加或者相減(因為前面肯定不是“*”或“/”,是以隻有是“+”或“-”);如果不是,則式子中隻有“+”和“-”的運算,隻要判斷符号就可以順序計算了。

   ③答案與使用者結果之間的誤差為0.1,并要記錄正确結果數目count,再用(float)count/n*100輸出分數。

部分代碼:

Scanner input = new Scanner(System.in);
float result = input.nextFloat();
if(Math.abs(result-sum)<0.1){
System.out.println("恭喜你,計算正确,答案是:"+sum);
count=count+1;
}else{
System.out.println("很遺憾,計算錯誤,答案是:"+sum);
}      

注:具體代碼,請到github上檢視。

結果測試:

第三次作業:個人項目-國小四則運算

第四部分:存在問題

①不能夠産生分數

②代碼可優化

個人軟體過程耗時估計與統計表:

PSP2.1 Personal Software Process Stages Time Senior Student(h) Time(h)
Planning 計劃 1
· Estimate 估計這個任務需要多少時間 25 30
Development 開發
· Analysis 需求分析 (包括學習新技術)
· Design Spec 生成設計文檔
· Design Review 設計複審 2
· Coding Standard 代碼規範 5
· Design 具體設計
· Coding 具體編碼 8
· Code Review 代碼複審 3
· Test 測試(自我測試,修改代碼,送出修改) 4 6
Reporting 報告
· 測試報告 0.5
計算工作量
并提出過程改進計劃