个人作业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这类的算术。
posted @ 2018-09-11 20:14  还未明了  阅读(145)  评论(1编辑  收藏  举报