1. 程式人生 > >第四次作業:小學四則運算“軟體”之初版

第四次作業:小學四則運算“軟體”之初版

作業要求來自於https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186

GitHub遠端倉庫的地址:https://github.com/201606120084


 

一、題目要求:

像《構建之法》的人物阿超那樣,寫一個能自動生成小學四則運算題目的命令列 “軟體”。


具體要求:任何程式語言都可以,命令列程式接受一個數字輸入,然後輸出相應數目的四則運算題目和答案。例如輸入數字是 30, 那就輸出 30 道題目和答案。 運算式子必須至少有兩個運算子,運算數字是在 100 之內的正整數,答案不能是負數。 如:

23 - 3 * 4 = 11

擴充套件要求:

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

2) 並且要求能處理使用者的輸入,並判斷對錯,打分統計。 要求能處理使用者輸入的真分數, 如 1/2, 5/12 等。

初步擬定要實現的功能後,估計一下自己需要花多長時間。程式設計過程中記錄自己實際用了多長時間。

然後和同學們比較一下各自程式的功能、實現方法的異同等等。

寫部落格紀錄自己實現的過程和思路。


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

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 計劃 30min 90min
· Estimate 估計這個任務需要多少時間 3h 50h
Development 開發 1h 2h
· Analysis 需求分析 (包括學習新技術)

10min

12min
· Design Spec 生成設計文件 0min 0min
· Design Review 設計複審 5min 4min
· Coding Standard 程式碼規範 3min 4min
· Design 具體設計 20min 34min
· Coding 具體編碼 1h 3h
· Code Review 程式碼複審 5min 3min
· Test 測試(自我測試,修改程式碼,提交修改) 30min 40min
Reporting 報告 10min 15min
· 測試報告 0min 0min
· 計算工作量 2min 2min
· 並提出過程改進計劃 2min 2min

 

三、部分程式程式碼

	char yunsuanfu()   //隨機生成運算子函式
	{
        int e;
        e=rand()%4+1;

		switch(e){
			case 1:return '+';
			case 2:return '-';
			case 3:return '/';
			case 4:return '*';
					}
	}

  

   a=rand()%100+1;   //隨機生成數字1-100
    b=rand()%100+1;    //隨機生成數字1-100
    c=rand()%100+1;     //隨機生成數字1-100
  char e =yunsuanfu(); part1(int a,int b,char e){ float result; switch(e){ case '+': {result=a+b;break;} case '-': { result=a-b;break;} case '*':{ aresult=a*b;break;} case '/':{ result=a/b;break;} } return result; } part2(float result,int c,char e){ float finally; switch(e){ case '+': {finally=result+c;break;} case '-': { finally=result-c;break;} case '*':{ finally=result*c;break;} case '/':{ finally=result/c;break;} } return finally; }

 


 

四、設計與結果


 

 

五、設計過程分析

 

這次實驗我是用C++這個軟體來完成的,這個軟體是我大一剛接觸計算機專業用的第一個程式設計軟體,通過這次實驗複習了很多之前忘記了的舊知識,

也學到了一些新的知識,一開始不懂+ - * / 計算的優先順序演算法,後面通過自己百度還有問同學就弄明白了這個演算法,對浮點數(float)的應用還不是很熟練,

一開始對計算的邏輯關係梳理地還不是很清晰,對約分(四捨五入演算法)還不是很懂。