个人作业1
进击的小学生!!!
一、预估与实际
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) | 
|---|---|---|---|
| Planning | 计划 | 700 | 700 | 
| • Estimate | • 估计这个任务需要多少时间 | 700 | 700 | 
| Development | 开发 | 500 | 500 | 
| • Analysis | • 需求分析 (包括学习新技术) | 40 | 40 | 
| • Design Spec | • 生成设计文档 | 20 | 10 | 
| • Design Review | • 设计复审 | 10 | 10 | 
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 5 | 10 | 
| • Design | • 具体设计 | 50 | 50 | 
| • Coding | • 具体编码 | 50 | 50 | 
| • Code Review | • 代码复审 | 20 | 30 | 
| • Test | • 测试(自我测试,修改代码,提交修改) | 5 | 15 | 
| Reporting | 报告 | 10 | 5 | 
| • Test Repor | • 测试报告 | 10 | 10 | 
| • Size Measurement | • 计算工作量 | 10 | 10 | 
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 5 | 10 | 
| 合计 | 700 | 
二、需求分析
我通过百度人教网的方式了解到,小学一年级数学,二年级数学有如下的几个特点:
- 一年级数学
- 一百以内的加减法
- 不会出现负数
- 不会出现小数
 
- 二年级数学
- 一百以内的加减法
- 九九乘法口诀表所记的乘法以及对应的除法
- 不会出现小数
 
经过分析,我认为,这个程序应当:
- 使用的数字小于100
- 都使用整型
- 不会出现负数,小数
三、设计
1. 设计思路
- 判断用户输入的参数是否符合规则
- 调用函数实现一或二年级随机题目生成
- 关键是生成的标准答案是是否符合规则
- 打印结果至屏幕以及output.txt
2. 实现方案
- 准备工作:先在Github上创建仓库,,并fork老师的Mathexem2018仓库,最后克隆到本地
- 技术关键点:输出至txt,判断输入的数字是否符合规范
四、编码
根据输入字符长度来判断输入的参数是否符合规则,并回应相应的错误
用SimpleDateFormat的方法来获取当前系统时间。
1. 调试日志
import java.io.FileReader,以及所设的两个变量并没被读到,导致程序启动不了,最后增加了一段函数才运行起来。。。。
2. 关键代码
   if(e==2) {
    for(int i=1;i<=num;i++) {
     int b =(int)(Math.random()*10);
     int c =(int)(Math.random()*10);
     int d;
     int f;
     int rd=Math.random()>0.5?1:0; 
     if(rd==1) {
      System.setOut(ps);
      System.out.println("("+i+")"+" "+b+" "+"×"+" "+c+" "+"=");
     d=b*c;list.add("("+i+")"+" "+b+" "+"×"+" "+c+" "+"="+" "+d);}
     if(rd==0) {
      while(c==0) {c=(int)(Math.random()*10);}
      System.setOut(ps);
      System.out.println("("+i+")"+" "+b+" "+"÷"+" "+c+" "+"=");
      if(b%c==0) {d=b/c;list.add("("+i+")"+" "+b+" "+"÷"+" "+c+" "+"="+" "+d);}
      if(b%c!=0) {d=b/c;f=b%c;list.add("("+i+")"+" "+b+" "+"÷"+" "+c+" "+"="+" "+d+"."+"."+"."+f);}}
    }
    System.setOut(ps);
    System.out.println("-----------标准答案-----------");
    for (int i = 0; i < list.size(); i++) {
     System.setOut(ps);
     System.out.println( list.get(i));
   }
  }
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条:小括号和字符之间不出现空格。
- 第二条:进行适当代码注释,方便修正
- 第三条:尽量使代码排版简洁
- 第四条:人工检查代码是否符合规范
五、测试
输入-1,提示:输入题目数量不能为负,请重新输入。
输入5 6 ,提示输入年级只能是1 or 2请重新输入
六、总结
- 打代码容易将简单的问题复杂化,如二年级乘法中是九九乘法,但总是纠结于5*14这类的算术。
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号