2016012005+小学四则运算练习软件项目报告
代码仓库地址:https://git.coding.net/q834934034/Homework.git
一、需求分析
1.程序接受一个输入参数n
2.随机产生n道四则运算题
3.运算数要求为:0和100之间
4.运算符要求为:3到5个之间
5.每个四则运算式中不能出现负数与小数
6.将最终产生的结果存储到result.txt文件中
二、功能设计
1.程序接受一个随机数,随机产生运算数与运算符。
2.程序由接受的n确定产生的运算式数量
3.程序将接受的运算数与运算符随机组合产生运算式
4.输出结果并将其存储到result.txt文件中
三、设计与实现
编写程序,接受一个数n,确定产生运算式的数量产生随机数number(3到5之间),产生运算数与运算符随机组合运算式与运算符,产生运算式判断运算式是否合法,若不合法,将其进行修改,合法则打印输出结果至result.txt文件。
四、算法详解
这里我使用了JS的eval()函数,它能够把一个字符串当作一个JS表达式一样去执行,能够帮我得到我想要的对象;这个函数是我通过百度找到的一个比较简便的方法,eval 函数对作为数字表达式的一个字符串进行求值,其语法为:
eval(expr)
此处 expr 是一个被求值的字符串参数。如果该字符串是一个表达式,eval 求该表达式的值;如果该参数代表一个或多个 JavaScript语句,那么 eval 执行这些语句。eval 函数可以用来把一个日期从一种格式(总是字符串)转换为数值表达式或数字.
五、测试运行
进入src文件夹,命令行输入javac Main.java,将类编译成class文件
再输入java Main ,先进行一次非法输入测试,如图;
再正常输入20测试,输出结果储存在生成的result.txt文件中。
完成测试。
六、代码展示
产生运算式、随机数、随机生成运算符号
产生随机运算式,产生运算符,将arr转化为数组,储存运算符、运算数、生成运算式
判断是否产生负数或小数
完整代码请参考仓库地址
七、PSP
PSP2.1 |
任务内容 |
计划完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
20 |
30 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
10 |
20 |
Development |
开发 |
350 |
480 |
·· Analysis |
需求分析 (包括学习新技术) |
30 |
60 |
· Design Spec |
· 生成设计文档 |
20 |
20 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
5 |
10 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
5 |
10 |
· Design |
具体设计 |
30 |
60 |
· Coding |
具体编码 |
240 |
300 |
· Code Review |
· 代码复审 |
10 |
10 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
10 |
10 |
Reporting |
报告 |
40 |
55 |
·· Test Report |
· 测试报告 |
20 |
35 |
· Size Measurement |
计算工作量 |
5 |
5 |
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
15 |
15 |
八、总结
这次项目对我来说是一个巨大的挑战,大一java没怎么学,现在突然要求用java设计一个程序,一开始我是崩溃的,甚至心理不由得产生了一点抵触的情绪,现在想起来还真是可笑...自己没学好又能怪谁,现在的加倍付出也是为了还大一时欠下的债吧!其实对于需求分析作业中已经给出,而设计这方面我是比较擅长的,只是苦于不会语法和算法,值得庆幸的是我在工作室学了JS,通过一周的JAVA学习以及网上查询方法,我发现可以通过引用JS中的函数方法来完成这个程序的需求,这让我心中无比激动,但是,现实往往不会那么理想,我在编写代码的过程中遇到很多问题,中间也断断续续问了又写写了又问,一直到今天早上完成了测试,开始写博文,现在是北京时间2018年3月25日晚20点31分,这项工程终于接近尾声,我的内心充满了满足、兴奋和成就感,这真的是我的第一个个人项目,虽说不大,但好歹也算个开始,通过这次,我也意识到我之前欠缺的很多,代码能力真的太差,从今以后我得更加努力,努力去弥补和别人的差距,努力不让自己后悔,越努力越幸运,加油吧!
2018-03-25