首页 > 其他 > 详细

MathExam作业

时间:2018-09-11 20:34:29      阅读:187      评论:0      收藏:0      [点我收藏+]

作业

一、预估与实际

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

二、需求分析

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

  • 特点1
  • 多数为100以内的加减法运算

经过分析,我认为,这个程序应当:
只出现100以内的加减法,且减法的结果不能出现负数

三、设计

1. 设计思路

说明你如何设计这个程序

  • 控制台负责传入输入的题目数量
  • 生成对应的题目
  • 要保证不能出现负数
  • ...

2. 实现方案

写出具体实现的步骤

比如:

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

四、编码

  • 编码过程:
  • Math方法:
    • 传入数字n
    • 定义一个str字符串接收n,并判断n是否是合法输入
    • 定义两个随机数和一个运算符进行运算,并将过程结果添加到ArrayList集合中
    • 写入out.txt文件中
  • mian函数
    • 调用Math方法,运行程序

1. 调试日志

  • 输入非法字符时,程序会出现异常
  • 只出现加法或减法的题目

2. 关键代码

            ArrayList<String> info = new ArrayList<String>();
            String answerinfo = "";
            for (int m = 0; m < n; m++) {
                int x = (int) (Math.random() * 2);
                int y = (int) (Math.random() * 101);
                int z = (int) (Math.random() * 101);
                if ((y - z) < 0) {
                    x = 0;
                }
                if (x == 0) {
                    symbol = "+";
                    answerinfo = y + " " + "+" + " " + z + " " + "=" + " "
                            + (y + z);
                    info.add("\n" + "(" + (m + 1) + ")" + " " + answerinfo);
                } else {
                    symbol = "-";
                    answerinfo = y + " " + "-" + " " + z + " " + "=" + " "
                            + (y - z);
                    info.add("\n" + "(" + (m + 1) + ")" + " " + answerinfo);
                }

                System.out.println("(" + (m + 1) + ")" + " " + y + " "
                        + symbol + " " + z + " " + "=");
                input.close();
            }
            System.out.println("----------------------" + "标准答案 "
                    + "-----------------------");
            System.out.println(info);
        

3. 代码规范

请给出本次实验使用的代码规范:

  • 第一条
    左大括号前不换行
    左大括号后换行
    右大括号前换行
    右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行

  • 第二条 出现异常时使用try-catch处理,不用throws抛出

五、测试

测试序号 具体输入 结果
1 java MathExam6347 0 未显示题目
2 java MathExam6347 10 生成10道一年级题目
3 java MathExam6347 -1 请输入正确的数字
4 java MathExam6347 s 请输入正确的数字
5 java MathExam6347 # 请输入正确的数字

六、总结

  • 第一次看到作业题目的时候自己就和无头苍蝇一样无从下手,上网查阅了一些资料之后有了一些头绪,在写代码的过程中不停地在碰壁,经常出现bug,异常,死循环,或者没有出现想要的运算结果,还好没有放弃,最后勉强完成了作业,虽然中间还有很多瑕疵,但这次作业对自己来说是一次真正的历练,对自己以后的编程学习有非常大的帮助,希望自己以后更加努力,写出更好的代码

MathExam作业

原文:https://www.cnblogs.com/a-1-/p/9629790.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!