个人作业1

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

一、预估与实际

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 600 650
• Estimate • 估计这个任务需要多少时间 600 650
Development 开发 600 650
• Analysis • 需求分析 (包括学习新技术) 50 60
• Design Spec • 生成设计文档 20 20
• Design Review • 设计复审 20 30
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 30 30
• Design • 具体设计 200 200
• Coding • 具体编码 200 200
• Code Review • 代码复审 30 30
• Test • 测试(自我测试,修改代码,提交修改) 40 40
Reporting 报告 30 30
• Test Repor • 测试报告 20 20
• Size Measurement • 计算工作量 10 10
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 20 20
合计 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.异常进行手动处理,不抛出。
5. 不反复开辟空间,合理利用开辟的空间
6. 进行适当合理的代码注释,方便理解,修正
7. 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
8. 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。

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

五、测试

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

六、总结

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

posted @ 2018-09-11 14:09  我真的不会写代码  阅读(179)  评论(1编辑  收藏  举报