第一次作业简单艰辛的历程

快的并痛苦着

一、预估与实际

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 600 720
• Estimate • 估计这个任务需要多少时间 600 720
Development 开发 600 900
• Analysis • 需求分析 (包括学习新技术) 30 40
• Design Spec • 生成设计文档 30 40
• Design Review • 设计复审 30 40
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 30 40
• Design • 具体设计 60 70
• Coding • 具体编码 300 400
• Code Review • 代码复审 10 30
• Test • 测试(自我测试,修改代码,提交修改) 20 40
Reporting 报告 10 40
• Test Repor • 测试报告 30 40
• Size Measurement • 计算工作量 30 40
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 20 40
合计 900

二、需求分析

  • 要根据实际情况,结合实际,并不是所有的小学一年级生水平都一样,需要有一个范围
  • 只有加减法
  • 不能有负数小数
  • 100以内的运算

经过分析,我认为,这个程序应当:

  • 控制在一、二年级生能完成的水平内
  • 都是整数,不能有小数,因为小数点一年级还没学哈哈
  • 不能出现负数
  • 数据范围严格控制好,不要超纲

三、设计

1. 设计思路

  • 说明你如何设计这个程序
  • 用户输入的参数,需要判断是否符合要求
  • 题目随机生成,需要符合一二年级的算术规则
  • 不能产生负数
  • 范围100以内
  • 运用随机数random()
  • 文件的生成与写入
  • 将题目和答案存入out.txt文件

比如:

  • 最重要的,判断用户输入的数字是否符合规定,不符合的话,应该怎么提示,这又应该怎么控制
  • 用到比如Integer.parseInt,一开始很困难,通过借鉴请教别的同学的以及查阅资料掌握
  • 一二年级的数字范围

2. 实现方案

  • 准备工作:先在Github上创建仓库,克隆到本地.
  • 技术关键点:如何用命令行输出参数

四、编码

  • 没有考虑到用户输入输入的参数不是整数数字的
  • 开始有很多问题,比如不会生哼随机数,不会写入文件等等,通过复习和查阅资料弄清楚

1. 调试日志

  • 一开始出现的大小bug简直是天花乱坠,后来经过很漫长的分析修改,一步一步的来,终于稍微好点了(感觉现在自己的代码还是有很多bug)- 。-
  • 算术题出现晓得一个数减去大的一个数理应是负数,但是小学一年级不会负数,所以需要换一下位置,用大的减去小的
  • 当输入不是整数的时候,包括输入英文等其他内容,需要提示重新输入

2. 关键代码

private static int n1,n2,x;    //定义三个静态成员
private static String[] str1 ;
private static String sun;   //创建新对象字符串

public static void main(String args[]) throws FileNotFoundException, InterruptedException {
    // TODO Auto-generated method stub
    int i =Integer.valueOf(args[0]).intValue();   //题目
    int g =Integer.valueOf(args[1]).intValue();   //年级
    //输出保存在文件中
    File file = new File("out6388.txt");
    PrintStream ps = new PrintStream(file);
    System.setOut(ps);
    choiceGrade(i, g);
    

3. 代码规范

  • 有关缩进的问题,一定要符合规范,一个是整洁,一个是养成好习惯
  • 括号的问题,有的是(),有的是{}一定要区分清楚
  • 代码的命名不规范向,这次写的代码命名就很不规范
  • 用不上的代码直接注释掉//

五、测试

  • 1.MathExam 输入参数: 5 测试结果:生成符合数目的几道一年级题目和答案 结果: 符合
  • 2.MathExam 输入参数:5.2 测试结果:输入有误,请重新输入 结果:符合
  • 3.MathExam 输入参数:aaaaa 测试结果:输入有误,请重新输入 结果:符合
  • 4.MathExam 输入参数:0 测试结果:输入有误,请重新输入 结果:符合

六、总结

  • 一开始体验了什么叫无头苍蝇一样手足无措...
  • 是否使用了“软件开发的基本策略:分而治之”,是否需要重构
  • “高质量的设计、规范的编码以及有效的测试是保证软件产品质量的三个重要方面”,你是否采用了相关的手段,是否需要重构
  • 一定要充分考虑到需求的重要性,比如当客户没有输入预期值该怎么处理等等
  • 当遇到不会的东西首先自己去查找学习并做好几率,再不行就去问问同学老师,争取自己独立解决。
  • 先写注释再写代码思路会清晰很多很多!!

猜你喜欢

转载自www.cnblogs.com/Yinhaichuan/p/9631669.html