个人作业1

本文档详细记录了一次个人软件过程(PSP2.1)的实际应用案例,包括从需求分析、设计、编码到测试的全过程。作者分享了如何进行时间估算与管理,以及在开发过程中遇到的问题和解决方案。

自己取的一个又不大气又不可爱的标题

一、预估与实际

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

二、需求分析

我通过百度的方式了解到,小学一,二年级数学有如下的几个特点:

-100以内相加减
-不出现负数
-九九乘法表内的乘除

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

  • 使用的数字小于100
  • 不能出现负数
  • 没有小数

三、设计

1. 设计思路

  • 判断输入的题目数量和年级数字是否符合规范
  • 随机数的生成
  • 调用函数实现不同年级不同随机题目生成
  • 打印结果至屏幕以及output.txt

2. 实现方案

  • 准备工作:先在Github上创建仓库,克隆到本地
  • 技术关键点:输出至txt,判断输入的数字是否符合规范

四、编码

请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
判断输入的数字是否符合规范时,输入的格式为数字空格数字 使用String stringArray[] = inputString.split(" ");将以空格为分割将输入的数字存入数组,再进行下一步的编写
输出至txt时使用 PrintStream ps = new PrintStream("e:/output.txt");改变输出路径直接将输出打印至txt

1. 调试日志

判断输入数字时,先判断了输入是否为数字而忽略了是否为小数和负数
输入参数时没有限制输入的数字数量导致运行异常,后对数组长度进行了限制

2. 关键代码

    while(true) {
    Scanner sc = new Scanner(System.in);
    String inputString = sc.nextLine();
    String stringArray[] = inputString.split(" ");//将以空格为分割将输入的数字存入数组
    if(stringArray.length>1) {  //判断输入的是一个输入还是两个输入,两个输入则进行下面的步骤判断两个输入是否符合标准
    try {
       a = Integer.parseInt(stringArray[0]);
       p = Integer.parseInt(stringArray[1]);
       } catch (NumberFormatException e) {      //判断输入的数字是否是数字不是则抛异常
        System.out.println("输入错误,请重新输入");
        continue;
       }
    if(stringArray.length>2) {System.out.println("数据过长请重新输入");continue;}  //限制数组长度以限制输入
    if(Integer.parseInt(stringArray[0])<0) {System.out.println("输入题目数量有误请重新输入");continue;}//存入数组的第一个数作为题目数量判断是否存在异常
    if(Integer.parseInt(stringArray[1])!=1 && Integer.parseInt(stringArray[1])!=2) {System.out.println("输入年级有误请重新输入");continue;}//存入数组的第二个数作为年级判断是否存在异常
    a = Integer.parseInt(stringArray[0]);
    p = Integer.parseInt(stringArray[1]);
    break;
                                }
    else {//单个参数输入则默认为一年级只需判断输入的数字是否异常
     try {
            a = Integer.parseInt(stringArray[0]);
            } catch (NumberFormatException e) {
             System.out.println("输入错误,请重新输入");
             continue;
            }
     if(Integer.parseInt(stringArray[0])<0) {System.out.println("输入题目数量有误请重新输入");continue;}
         a = Integer.parseInt(stringArray[0]);
         p=1;
         break;
     }
    }

3. 代码规范

请给出本次实验使用的代码规范:
1.左大括号前不换行。
2.左大括号后换行。
3.右大括号前换行。
4.异常进行手动处理,不抛出。

  1. 不反复开辟空间,合理利用开辟的空间
  2. 进行适当合理的代码注释,方便理解,修正
  3. 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
  4. 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。

并人工检查代码是否符合规范

五、测试

-5 :输入题目数量有误请重新输入
0.1:输入错误,请重新输入
5:符合预期
abc :输入错误,请重新输入
abc 2 :输入错误,请重新输入
5 3:输入年级有误请重新输入
-1 2:输入题目数量有误请重新输入
5 1:符合预期
7 2:符合预期

六、总结

请总结过程中的教训和经验,思考
由于一个暑假好久没打代码好多东西都忘了。。。靠着不懂就百度的想法一步步慢慢的解决一个个遇到的问题,虽然中途心态爆炸过几次但还是坚持下来了,经过好多次删删改改终于写的有丶样子了,总结:有问题不能轻言放弃说不定下一个问题就能百度出来了。只会重写方法不懂重构怎么办。。。

转载于:https://www.cnblogs.com/qq957518496/p/9627304.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值