2016012060+小学四则运算练习软件项目报告
项目源码地址:https://git.coding.net/wangzy111/project1.1.git
一.需求分析
(1) 每个数字不能过大,运算符不能过多。由此也可与功能要求中题目属性对应:每个数字在0-100之间,运算符3-5之间
(2) 运算过程中不能出现负数
(3) 运算过程中不能出现非整数
二.功能设计
(1)当输入一个参数n,随机产生n道四则运算题。保证在算数过程中,不出现负数,和小数。
(2)学生可以在试卷上写学号与生成的n道练习题及其对应的正确答案输出到文件“express.txt”中
三.设计实现
(1)依赖IK Expression库,可扩展的,基于java语言开发的一个超轻量级的公式化语言解析执行工具包。(())
(2)main类
功能:是主函数,包含 public static void main(String[] args) 方法。并且包含判断 输入的参数是否为整数的 函数,如果不是函数,可提示用户重新输入。
目的:确保用户输入满足要求的整数的参数(产生四则运算数量1-1000,每个四则运算包含运算符3-5)
四.算法分析
核心算法在Ik expressio这个库,它是一个表达式解析引擎,程序中设定了一个 a+ b? c,?在运行中,随机变成一个运算符
五.测试运行
六.代码展示
(1)程序中设定了一个 a+ b? c,?在运行中,随机变成一个运算符
public class Main { static String expression="a-b?c"; static String[] doing={"+","-","*"}; static FileWriter w; public static void main(String[] args) throws IOException { w=new FileWriter(new File("/storage/emulated/0/360/MyJavaConsoleApp10/express.txt"),true); Scanner sc=new Scanner(System.in); System.out.print("出题数量:"); int i=sc.nextInt(); System.out.println("学号:"+""); for(int ii=0;ii<i;ii++){ expression="a-b?c"; test1(); } w.close(); }
(2)调用ik expression库
Object result = ExpressionEvaluator.evaluate(expression, variables);
七.感想与总结
感想:看着这样一个题目,确实无法入手,因为以前几乎不怎么做项目,但是真的埋头进去做的过程中可以学到很多东西,遇到麻烦就百度,技术不够就到处查,同学、朋友、慕课,把这个项目一点一点的啃下来之后还是非常开心的。虽然还有非常多的地方不合理,甚至连客户需求都没有完全实现,但是以我目前的水平已经尽力做到足够好了,希望能够不断的累积,一个项目比一个项目上一层楼。今天是3月25日,就把这个很多次昏天黑地才勉强完成的任务当做自己的生日礼物把。由于时间关系,这个项目就这样提交吧,但是这个毕竟是第一个,以后还会把它进一步完善。室友和一些同学为了今天晚上的生日能够吃一顿饭,大家都很努力的在做,遇到问题相互帮助,这种氛围真的很令人享受。
项目总结:模块化程序设计即模块化设计,属于计算机编程,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。我知道他可以让思路更加清晰,但是我但是糊里糊涂的,可能第一次的关系吧,如果不用这种方法,可能会更加糊涂。
八.psp
时间不一定准确,实际时间都远远高于计划时间,总之昏天黑地的做
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
10 |
60 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
10 |
130 |
Development |
开发 |
3*60 |
25*60 |
· Analysis |
· 需求分析 (包括学习新技术) |
10*60 |
4*60 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
30 |
· Design |
· 具体设计 |
60 |
160 |
· Coding |
· 具体编码 |
14.5*60 |
|
· Code Review |
· 代码复审 |
|
60 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 |
5*60 |
Reporting |
报告 |
10 |
4*60 |
· Size Measurement |
· 计算工作量 |
10 |
10 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
100 |
40 |