• 小学生


    作业

    一、预估与实际

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

    二、需求分析

    我通过网上和自身感觉的方式了解到,小学一年级数学有如下的几个特点:

    • 特点1 小学加减法一般在0-20之间
    • 特点2 没有负数

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

    • 使用的数字小于20
    • 减法的减数大于被减数

    三、设计

    1. 设计思路

    • 先设置输入,并且进行判断
    • 随机参数的生成
    • 计算
    • 输出

    2. 实现方案

    写出具体实现的步骤

    比如:

    • 准备工作:先在Github上创建仓库,克隆到本地...
    • 技术关键点:Random,File,BufferedWriter的使用

    四、编码

    • 用户的输入
    • 用Random设置随机生成数
    • 用判断语句
    • 输出

    1. 调试日志

    • 第一个BUG,是无法用命令行输入参数
    • 第二个BUG,是代码错误
    • 打三个BUG,是越界问题

    2. 关键代码

    System.out.println("小学一年级数学加减计算题");
    System.out.println("请输入题目数量:");
    int n = input.nextInt();
    for (int i = 1; i <= n; i++) {
    //生成两个随机数
    int a = (int)(Math.random()20+1);
    int b = (int)(Math.random()
    20+1);
    //生成题序和题目
    if(a>b) {
    System.out.println("("+ i +") " + a +" - "+ b + " =");
    String str = ("("+ i +") " + a +" - "+ b + " = " + (a-b));
    out.writeUTF(str);
    }//生成减法
    else {
    System.out.println("("+ i +") " + a +" + "+ b+ " =");
    String str = ("("+ i +") " + a +" + "+ b + " = " + (a+b));
    out.writeUTF(str);
    }
    }//生成加法.

    3. 代码规范

    • 第一条大括号的使用约定。如果是大括号内为空,则简介地写成{}即可,不需要换行;如果是非空代码块则:
    • 左大括号前不换行
    • 左大括号后换行
    • 右大括号前换行
    • 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行
    • if/for/while/switch/do等保留字与括号之间都必须加空格
      并人工检查代码是否符合规范

    五、测试

    测试输入: 5 3 测试结果:输入有误,请重新输入 预期结果:符合
    测试输入: 5测试结果:输出正常 预期结果:符合
    测试输入: a 测试结果:输入有误,请重新输入 预期结果:符合
    测试输入: -5 测试结果:输入有误,请重新输入 预期结果:符合

    六、总结

    • 不知道怎样把“分而治之”等软件工程的思想运用进去
  • 相关阅读:
    router基本使用
    函数声明 和 var声明的优先级
    适用于Windows桌面应用程序的.NET Core 3
    在.Net Core 3.0中尝试新的System.Text.Json API
    在WPF中使用.NET Core 3.0依赖项注入和服务提供程序
    WPF控件获得焦点时去除虚线框
    Call asynchronous method in constructor
    将自定义控件加载到RichTextbox并进行交互
    WPF应用无法使用Snoop分析的解决办法
    关于序列化和反序列化
  • 原文地址:https://www.cnblogs.com/hyka/p/9630027.html
Copyright © 2020-2023  润新知