2016011988+小学四则运算软件项目报告
coding.net源码仓库地址:https://git.coding.net/immtroal/FourOperations.git
1.需求分析
(1)设计的程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)
练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。
(2)运算过程中不能出现负数。
(3)运算过程中不能出现非整数,至少要有两种以上的运算符出现。
(4)将学号和生成的练习题及对应答案输出到文件“result.txt”中,不输出额外信息。
2.功能设计
(1)当用户输入一个整数n时,软件需要产生n道四则运算题,并保证运算过程不出现负数和小数。
(2)学生在答题卷上写的学号打印到指定文件中。
(3)将生成n的题目结果写入到指定文件当中。
3.设计的实现
(1)在实现该软件的过程中,我创建了Main主函数和相关的运算函数Calcular。
(2)在运算函数Calcular,定义了以下几个类方法:
calculate类:对随机数进行运算
operator类:进行运算符号的选取操作
priority类:对算试进行符号的优先级操作
printResult方法:进行打印算式操作
4.算法详解
(1).由后缀表达式对算式进行运算,并产生算数循环。
(2)将算数结果和学号写入文件result中。
(3).中缀表达式转为后缀的表达式。
5.运行测试
(1)
(2)
6.代码展示
(1)这一段代码展示的是对结果进行循环与输出操作,自己在对比网上代码
和同学代码和请教室友的时候。发现自己的功能一直很难实现。所以展示了花了
4个小时改了很多次写的代码。
7.感想与总结
其实在第二周看到老师给的第三次作业的。其实内心是挺慌的。因为,对于java,自己所掌握的仅仅是大一书上的一些例样的代码,自己也没有参与独自按照自己的思路做过单独项目。通过这一次的个人操作感受,其实有点像万事开头难的感觉,起初是和舍友商讨的这个四则运算功能实现,需要的哪些阶段,代码的实现具体操作,有些问题,还得逼着自己百度和查阅读过的java 课本,其实当你查询所要的问题的时候,有很多的网上思路方式,但不是他么的思路和方式就一定能解决问题。在运用java的几个类LinkedList,FileWriter,Iterator,的方法。自己还得翻书回看它们的代码规则和用的规范,感觉自己还得多练多记。其实这一次的项目体验,虽然bug自己最后都没能解决,但是,相信花心思,以后的项目会有一个更好的完善的功能。
模块化的原则
(1)确定主函数,考虑随机的四则运算,自己需要随机产生选取运算符号,将随机数和随机字符组合形成试子,与之对输入的n进行,式子n循环扩展。式子中缀转后缀的计算结果。对学生的学号和结果进行打印。
8.PSP展示
psp | 任务内容 | 计划所需要的完成的时间 | 实际所需要的完成的时间 |
Planning | 计划 | 60 | 40 |
Estimate |
估计这个任务需要多少时间, 并规划大致工作步骤 |
10 | 10 |
Development | 开发 | 480 | 510 |
Analysis | 需求分析 (包括学习新技术) | 10 | 20 |
Coding Standard | 代码规范 | 30 | 30 |
Design | 具体设计 | 10 | 10 |
Coding | 具体编码 | 300 | 380 |
code Review | 设计复审 (和同事审核设计文档) | 10 | 15 |
Test | 测试 | 40 | 60 |
Reporting | 报告 | 40 | 42 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem& process Improvement Plan |
事后总结, 并提出过程改进计划 | 30 | 32 |