本人学号:201421122044 coding地址:https://git.coding.net/gebeelaowang/FourArithmeticOperation.git
队友学号:201421122040
一、需求分析:
- 把作业1做成GUI
- 随机生成题目时不生成重复的题目
- 答题对错总数增量统计。
- 计时功能,记录答题耗时。
- 多语言切换。
二、程序设计:
我负责的部分
1.中英切换
主要用JavaScript语言完成,在一开始的传参页面InputParameters.jsp中的设置两个按钮来切换中英文,分别绑定切换中文的点击事件 switchChinese( ) 和切换英文的事件switchEnglish( )。
在点击中将内容分别设置成中英文内容,同时在localStorage里面设置一个键值对来保存语言类型,在跳转到不同页面时根据一开始加载的Js代码来判断页面的内容是中文还是英文,可以做到真正意义上的系统语言切换,一处切换,处处切换。
2.四则运算
直接使用上一个实验的算法,但是优化了代码结构,把一些类抽象出来,使其结构更加合理化
3.对错数量增量统计
分别把做对的题目的数量和做错的题目数量保存在服务器端的TEXT/correctMount.txt 和 wrongMount.txt文件中
当再次做题时,只要读入文件里面的数目再在此基础上继续增量即可。
思维导图
三、代码展示:
中英切换
<script type="text/javascript"> function switchChinese(){ document.getElementById("chineseLanguage").innerHTML="中文"; document.getElementById("englishLanguage").innerHTML="英文"; document.getElementById("theMax").innerHTML="最大的上限:"; document.getElementById("elementsMount").innerHTML="表达式元数:"; document.getElementById("expressionMount").innerHTML="表达式个数:"; document.getElementById("theSubmit").value="生成表达式"; document.getElementById("theReset").value="重置"; localStorage.setItem("version","Chinese"); } function switchEnglish(){ document.getElementById("chineseLanguage").innerHTML="Chinese"; document.getElementById("englishLanguage").innerHTML="English"; document.getElementById("theMax").innerHTML="OperandRange:"; document.getElementById("elementsMount").innerHTML="ElementsMount:"; document.getElementById("expressionMount").innerHTML="ExpressionMount:"; document.getElementById("theSubmit").value="MakeExpressions"; document.getElementById("theReset").value="Reset"; localStorage.setItem("version","English"); } </script>
增量统计
String tempCorrectMount = correctMountBr.readLine(); String tempWrongMount = wrongMountBr.readLine(); int correctMount = 0; if(tempCorrectMount != null && !"".equals(tempCorrectMount)){ correctMount = Integer.parseInt(tempCorrectMount.trim()); } int wrongMount = 0; if(tempWrongMount != null && !"".equals(tempWrongMount.trim())){ wrongMount = Integer.parseInt(tempWrongMount); } correctMountBr.close(); wrongMountBr.close(); String tempBr=""; String tempBr1 = ""; while((tempBr=correctBr.readLine())!= null && (tempBr1=stuBr.readLine()) != null) { if(tempBr.equals(tempBr1)) { correctMount++; }else { wrongMount++; } } if(tempBr != null){ wrongMount++; } while((tempBr=correctBr.readLine())!= null){ wrongMount++; } correctBr.close(); stuBr.close(); double tempCorrect = (double)correctMount; double tempWrong = (double)wrongMount; float tempScore = (float)((tempCorrect/(tempWrong+tempCorrect))*100); String score = String.format("%.2f", tempScore); System.out.println(score);
四、程序运行:
队友的博文里面展示的是中文版,我展示的是英文版
五、小结感受:
加强了团队合作的能力
实验一算法有些写得不是太好,队友帮我优化了一些,一些工具类中的方法应该使用静态
有些类和方法应该抽象出来
六、伙伴评价:
队友:
201421122040 陈志建
优点:
逻辑思维较强,代码思路清晰,帮我优化了前一个实验的一些代码
缺点:
代码注释偏少
建议:
可以适当多加点注释
七、结对过程:
统一命名,采用标准的Java命名规范,变量单词的使用尽量准确
构建大概的程序结构
分配任务
各自实现自己的模块,然后用git提交到coding上面的共同项目里
各自多次提交的codding记录
七、结对照片:
八、PSP:
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Planning | 计划 | 30 | 10 |
· Estimate | 估计这个任务需要多少时间 | 24 | 24 |
Development | 开发 | 700 | 1000 |
· Analysis | 需求分析 (包括学习新技术) | 30 | 5 |
· Design Spec | 生成设计文档 | NaN | 1 |
· Design Review | 设计复审 | NaN | 0 |
· Coding Standard | 代码规范 | NaN | 5 |
· Design | 具体设计 | NaN | 20 |
· Coding | 具体编码 | NaN | 20 |
· Code Review | 代码复审 | NaN | 10 |
· Test | 测试(自我测试,修改代码,提交修改) | NaN | 6 |
Reporting | 报告 | NaN | 6 |
· | 测试报告 | NaN | 0 |
· | 计算工作量 | NaN | 0 |
· | 并提出过程改进计划 | NaN | 0 |