2016012097+小学四则运算练习软件项目报告
项目代码地址:https://git.coding.net/ranko/23333.git
1. 需求分析
面向小学生一个3到5个运算符的四则运算练习的命令行软件
随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间
每个练习题至少要包含2种运算符
在运算过程中不得出现负数与非整数
练习题生成好后,将学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不输出额外信息,文件目录与程序目录一致。
2. 功能设计
基本功能:生成四则运算,并能够将题目输出到文件中,文件目录与程序目录一致。
扩展功能:支持有括号的运算式,包括出题与求解正确答案。
支持真分数的出题与运算,支持运算时分数的自动化简,计算过程中与结果都须为真分数。
3. 设计实现
只用了一个Main类,功能全由对Main类的方法的调用来实现实现
随机数与随机运算符生成,用Random函数实现
4. 算法详解
只用了很简单的判断语句,没有考虑括号的问题
看了大佬们使用逆波兰表达式,自己试了一下,扑街了,于是放弃了。
5. 测试运行
6. 代码片段
import java.util.Scanner; import java.util.Random; public class hhhh { public static void main(String[] args) { String[] operate=new String[]{"+","-","×","÷"}; int[] numbers=new int[100]; for(int i=1;i<=100;i++){ numbers[i-1]=i; } Random r=new Random(); Scanner in = new Scanner(System.in); // in.close(); int x = 0; try { x = in.nextInt(); //x = Integer.parseInt(args[0]); if (x < 0 || x > 1000) { System.out.println("请输入0-1000的整数"); return; } } catch (Exception e) { // TODO: handle exception System.out.println("请输入0-1000的整数"); return; } System.out.println("2016012097"); for(int i=0;i<x;i++){ System.out.println(numbers[r.nextInt(100)]+operate[r.nextInt(4)]+numbers[r.nextInt(100)]+operate[r.nextInt(4)]+numbers[r.nextInt(100)]+operate[r.nextInt(4)]+numbers[r.nextInt(100)]+"="); } } }
7. 总结
先做的PSP再写的总结,也看了其他同学的PSP,个人用的时间确实是明显超长,而且这么长时间做出来的东西也并没有好用多少,但是也没办法,毕竟重新开始学,技术和脑子在那里,尽力了。
不过这个时长的作业真的让我感受到生活和心情受到了影响,不过那也是没办法的事,就这样吧,不想说话。
8. 展示PSP
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
10 |
30 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
10 |
30 |
Development |
开发 |
1080 |
1625 |
· Analysis |
· 需求分析 (包括学习新技术) |
45 |
115 |
· Design Spec |
· 生成设计文档 |
0 |
0 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
0 |
0 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
0 |
0 |
· Design |
· 具体设计 |
120 |
180 |
· Coding |
· 具体编码 |
735 |
970 |
· Code Review |
· 代码复审 |
60 |
970 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
120 |
150 |
Reporting |
报告 |
95 |
135 |
· Test Report |
· 测试报告 |
5 |
10 |
· Size Measurement |
· 计算工作量 |
30 |
45 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
60 |
80 |