结队作业,小学生3年级数学题出题器
結(jié)對(duì)作業(yè),
學(xué)號(hào)1:211606308 江東
學(xué)號(hào)2:211606306 黃柏濤
一、預(yù)估與實(shí)際
| Planning | 計(jì)劃 | ||
| Estimate | ? 估計(jì)這個(gè)任務(wù)需要多少時(shí)間 | 1200 | 1365 |
| Development | 開發(fā) | ||
| Analysis | ? 需求分析 (包括學(xué)習(xí)新技術(shù)) | 200 | 240 |
| Design Spec | ? 生成設(shè)計(jì)文檔 | 60 | 70 |
| Design Review | ? 設(shè)計(jì)復(fù)審 | 60 | 70 |
| Coding Standard | ? 代碼規(guī)范 (為目前的開發(fā)制定合適的規(guī)范) | 80 | 90 |
| Design | ? 具體設(shè)計(jì) | 80 | 90 |
| Coding | ? 具體編碼 | 60 | 70 |
| Code Review | ? 代碼復(fù)審 | 20 | 40 |
| Test | ? 測(cè)試(自我測(cè)試,修改代碼,提交修改) | 30 | 30 |
| Reporting | 報(bào)告 | 70 | 90 |
| Test Repor | ? 測(cè)試報(bào)告 | 60 | 70 |
| Size Measurement | ? 計(jì)算工作量 | 20 | 35 |
| Postmortem & Process Improvement Plan | ? 事后總結(jié), 并提出過(guò)程改進(jìn)計(jì)劃 | 50 | 55 |
| 合計(jì) | 1842 |
二、需求分析
我通過(guò)上網(wǎng)的方式了解到,小學(xué)三年級(jí)數(shù)學(xué)有如下的幾個(gè)特點(diǎn):
- 特點(diǎn)1:兩個(gè)加數(shù)應(yīng)該在100以內(nèi)
- 特點(diǎn)2:減法的計(jì)算結(jié)果不能出現(xiàn)負(fù)數(shù)
- 特點(diǎn)3:除數(shù)不能為0
- 特點(diǎn)4:有余數(shù)要打出余數(shù)
特點(diǎn)5:小學(xué)三年級(jí)已經(jīng)學(xué)會(huì)了四則運(yùn)算的加減乘除混合運(yùn)算以及他的優(yōu)先級(jí)規(guī)則
...
三、設(shè)計(jì)
1. 設(shè)計(jì)思路
這個(gè)程序有三個(gè)大的方法構(gòu)成,分別為show1()與show2()show3()來(lái)顯示并將小學(xué)1,2,3年級(jí)計(jì)算題目的結(jié)果輸入到out.txt,之前我們已經(jīng)完成了1,2年級(jí)的出題器,這次主要是初步完成三年級(jí)的出題器.
- ...
2. 實(shí)現(xiàn)方案
技術(shù)關(guān)鍵點(diǎn)
1為了確保輸出的兩數(shù)之和小于100,兩數(shù)之差大于0,除數(shù)不為0,需要設(shè)計(jì)一些算法
2當(dāng)兩數(shù)相減出現(xiàn)負(fù)數(shù)的時(shí)候把兩數(shù)交換位置避免出現(xiàn)負(fù)數(shù),優(yōu)化了一年級(jí)的算術(shù)題
3小學(xué)三年級(jí)數(shù)學(xué)已經(jīng)學(xué)會(huì)了四則運(yùn)算的優(yōu)先級(jí)規(guī)則
- 準(zhǔn)備工作:先在Github上創(chuàng)建倉(cāng)庫(kù),克隆到本地,完成后提交。
- 技術(shù)關(guān)鍵點(diǎn):要現(xiàn)在Eclipse先打出代碼然后把代碼輸入到out.txt文件后,要在cmd上運(yùn)行檢測(cè)。在基礎(chǔ)的代碼上還要加入四則運(yùn)算。
四、編碼
通過(guò)按照自己的設(shè)計(jì)方案來(lái)寫代碼,遇到不會(huì)的知識(shí)點(diǎn)就看小靜老師上學(xué)期的PPT與作業(yè),上網(wǎng)百度了逆波蘭表達(dá)式的算法,將我們平常習(xí)慣用的中綴表達(dá)式改寫成后綴表達(dá)式來(lái)解決運(yùn)算時(shí)的優(yōu)先級(jí)問(wèn)題
1. 調(diào)試日志
- 運(yùn)用逆波蘭公式的時(shí)候忘記加入優(yōu)先級(jí),導(dǎo)致只能按順序加減乘除,不會(huì)出現(xiàn)先乘除后加減的正確結(jié)果。
2. 關(guān)鍵代碼
private static void Reverse Polish Notation(String[] strArr){
String str = "+-/";
Stack stack = new Stack();
//遍歷數(shù)組中的每一個(gè)元素
for(String s : strArr){
if(!str.contains(s)){
//如果是數(shù)字,放入棧中
stack.push(s);
}else{
int a = Integer.valueOf(stack.pop());
int b = Integer.valueOf(stack.pop());
switch(s){
case "+" :
stack.push(String.valueOf(a+b));
break;
case "-" :
stack.push(String.valueOf(b-a));
break ;
case "" :
stack.push(String.valueOf(a*b));
break;
case "/" :
stack.push(String.valueOf(b/a));
break ;
}
}
}
System.out.println(stack.pop());
3. 代碼規(guī)范
- 方法名、參數(shù)名、成員變量、局部變量都統(tǒng)一使用 lowerCamelCase 風(fēng)格,必須遵循駝峰形式。
- 代碼中的命名均不能以下劃線或美元符號(hào)開始,也不能一下劃線或美元符號(hào)結(jié)束。
- 類型與中括號(hào)緊挨相連來(lái)定義數(shù)組。
- 代碼中命名只能用英文。
四、編碼
隨機(jī)生成數(shù)字?jǐn)?shù)組與運(yùn)算符數(shù)組,將數(shù)組輸出表達(dá)式后,上網(wǎng)查找關(guān)于逆波蘭表達(dá)式的算法將運(yùn)算結(jié)果按照算法的優(yōu)先級(jí)運(yùn)算出來(lái),并輸出到文本.在github網(wǎng)站上結(jié)對(duì)的時(shí)候,不知道是校園網(wǎng)的原因還是其他的原因,結(jié)隊(duì)伙伴的郵箱一直收不到搭檔邀請(qǐng)的鏈接,后來(lái)我發(fā)現(xiàn)可以copy link將邀請(qǐng)鏈接直接發(fā)給搭檔,在百度逆波蘭算法后,我們兩人仍然還是無(wú)法理解透徹,用的不是很好,后來(lái)在同學(xué)的幫忙講解下終于才完成了這一段的代碼編寫,屬實(shí)不容易啊,最后的四則運(yùn)算輸出答案還在努力編寫中.
五、測(cè)試
六、總結(jié)
這一次的實(shí)驗(yàn)是在第一次的基礎(chǔ)上提升,加入了四則運(yùn)算與四則運(yùn)算的優(yōu)先級(jí)的問(wèn)題,使得代碼量就大大的提升,代碼過(guò)程中遇到了許許多多的問(wèn)題,截至到今天12點(diǎn)還是沒(méi)有完成代碼的輸出,后續(xù)會(huì)在GITHUB上繼續(xù)更新的.
轉(zhuǎn)載于:https://www.cnblogs.com/a211756221/p/9673291.html
總結(jié)
以上是生活随笔為你收集整理的结队作业,小学生3年级数学题出题器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android AsyncTask源码解
- 下一篇: 数据运营者的福音:海量数据处理利器Gre