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

本文记录了一次PSP2.1实践的过程,从任务预估到实际完成的时间对比,详细介绍了需求分析、设计思路、编码调试及测试流程。作者分享了在编程过程中遇到的问题及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

快的并痛苦着

一、预估与实际

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划600720
• Estimate• 估计这个任务需要多少时间600720
Development开发600900
• Analysis• 需求分析 (包括学习新技术)3040
• Design Spec• 生成设计文档3040
• Design Review• 设计复审3040
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)3040
• Design• 具体设计6070
• Coding• 具体编码300400
• Code Review• 代码复审1030
• Test• 测试(自我测试,修改代码,提交修改)2040
Reporting报告1040
• Test Repor• 测试报告3040
• Size Measurement• 计算工作量3040
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划2040
合计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 测试结果:输入有误,请重新输入 结果:符合

六、总结

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

转载于:https://www.cnblogs.com/Yinhaichuan/p/9631669.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值