2016012075+小学四则运算练习软件项目报告
2016012075+小学四则运算练习软件项目报告
一、需求分析
二、功能设计
三、设计实现
四、算法详解
五、测试详解
六、代码展示
七、总结
八、PSP展示
coding.net地址:https://git.coding.net/sparkleStar/arithmetic2.git,代码在Arithmetic和arithmetic1中
一、需求分析
1、编写目标
使用Java编程语言,独立完成一个3到5个运算符的四则运算练习的命令行软件开发。
2、基本功能需求
(1)程序可接收一个输入参数n,然后随机产生加减乘除(分别使用符号+-*÷来表示)练习题,
(2)每个数字在0和100之间,运算符在3个到5个之间。
(3)每个练习题至少要包含2种运算符。
(4)所有的练习题在运算的过程中不得出现负数和非整数,比如不能出现3÷5+2=2.6,2-5+10=7等模式。
二、功能设计
实现四则混合运算的出题和计算。
三、设计实现
随机生成0到100之间的数字,和3到5之间的运算符,通过arithmetic()函数进行运算,在运算过程中要通过if语句判断有没有负数和非整数,最后输出学号、运算式子和结果。
四、算法详解
先产生两个随机数字并运算
for(int i=0;i<n;i++) { int digit1=(int)(Math.random()*100); int digit2=(int)(Math.random()*100); if(operator=="+") { result=digit1+digit2; } else if(operator=="-") { if(digit1>digit2) { result=digit1-digit2; } } else if(operator=="*") { result=digit1*digit2; } else if(operator=="/") { if(digit1%digit2==0&digit2!=0){ result=digit1/digit2; } }
再计算三个及以上的随机数,在乘或者除的过程中,要判断优先级,如果之前用的加法或者减法,则算后面两个随机数,否则将之前的运算结果与后面的随机数一起运算
int digit3; String operator2; for(int j=2;j<7;j++){ if(operator2=="+"&operator!=operator2) { result=result+digit3; } else if(operator2=="-"&operator!=operator2) { if(result>digit3) { result=result-digit3; } } else if(operator2=="*"&operator!=operator2) { if(operator=="+"){ int result1=digit2*digit3; result=result1+digit1; } else if(operator=="-"){ int result1=digit2*digit3; result=result1-digit1; } else{ result=result*digit3; } }
}
我还进行了代码的负数和分数进行判断
else if(operator2=="/"&operator!=operator2&digit3!=0) { if(operator=="+"){ int result1=digit2/digit3; result=result1+digit1; } else if(operator=="-"&digit2%digit3==0){ int result1=digit2/digit3; result=result1-digit1; } else if(digit2%digit3==0){ result=result/digit3; } }
五、测试详解
7+8=15
15*6-5=85
7-6*10/2=5
85*5-6+27=38
16+48/12-7=13
51+1-14/2=45
七、总结
在这次的作业中,我由于自己的代码能力较低,在写代码的过程中花费了太多时间,在代码里,代码的功能比较不全面,没有做出真分数的运算,只做了整数的运算,而且在思考问题的方面有一定的欠缺,考虑问题比较不全面。
在写博客花的时间太短,对于代码的修改还比较粗糙。
八、PSP展示
PSP |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
30 |
28 |
Estimate |
估计这个任务需要多少时间,并规划大致工作步骤 |
480 |
600 |
Development |
开发 |
360 |
360 |
Analysis |
需求分析 |
30 |
30 |
Design Spec |
生成设计文档 |
120 |
180 |
Design Review |
设计复审(和同事审核设计文档) |
30 |
30 |
Coding Standard |
代码规范(为目前的开发制定合适的规范) |
30 |
30 |
Design |
具体设计 |
60 |
60 |
Coding |
具体编码 |
240 |
240 |
Code Review |
代码复审 |
30 |
30 |
Test |
测试(自我测试、修改代码、提交修改) |
60 |
60 |
Reporting |
测试报告 |
120 |
180 |
Size Measurement |
计算工作量 |
30 |
30 |
Postmortem&Process Improvement Plan |
事后总结,并提出过程改进计划 |
30 |
30 |