1 需求分析
家长为了提高孩子的算数能力,需要每天给孩子出题,这就需要做出一个程序,每天生成一定数量且不重复的题目,分解家长们的压力。
2 功能设计
基本功能:
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
3 设计实现
使用构造函数PrintStream Scanner ,PrintStream s = new PrintStream(“d:/result.txt”);
System.setOut(s);调用此函数,可以将所有System.out.println();输出语句,打印到我们创建的文件夹中
Scanner t=new Scanner(System.in); 控制我们从键盘输入
Math.random();产生随机不重复函数
4 测试运行
5 代码片段
public class A {
public static void main(String[] args) throws FileNotFoundException {
PrintStream s = new PrintStream("d:/result.txt");
int c;
Scanner t=new Scanner(System.in);
System.out.print("请输入题目个数:");
int tm=t.nextInt();
//控制题目个数
System.out.print("请输入操作数的范围(如 100,1000等):");
int tf=t.nextInt();
//控制题目范围
System.out.println("请选择是否有负数:1:有 0:没有");
int zf=t.nextInt();
//控制正负数
System.out.println("请选择是否包含*或者/:2:否 4:是 ");
int fu=t.nextInt();
//控制符号
System.setOut(s);
if(zf==0) {//没有负数 System.out.print(a); } if(fu==2) {//选择两个字符‘+’‘-’ int k=(int)(Math.random()*2); switch(k) {//随机选择运算符 case 0:System.out.print("+"); break; case 1:System.out.print("-"); break;
6 总结
我的编程基础不太好,写的代码有一些只能实现基本的功能,没有什么拓展功能,希望在今后的学习中继续加强。在实现功能的过程中有一些困难,不过在这个过程中也学到了一些经验。
7 PSP
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
10 |
20 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
60 |
120 |
Development |
开发 |
30 |
40 |
·· Analysis |
需求分析 (包括学习新技术) |
60 |
60 |
· Design Spec |
· 生成设计文档 |
20 |
20 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 |
20 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
10 |
15 |
· Design |
具体设计 |
10 |
10 |
· Coding |
具体编码 |
50 |
60 |
· Code Review |
· 代码复审 |
10 |
10 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
5 |
10 |
Reporting |
报告 |
10 |
10 |
·· Test Report |
· 测试报告 |
15 |
10 |
· Size Measurement |
计算工作量 |
5 |
5 |
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
20 |
20 |