MathExam6378

我的第一个程序

一、预估与实际

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

二、需求分析

我通过网络调查方式了解到,小学一、二年级数学有如下的几个特点:

  • 特点1:主要是加减法为基础,后引入乘除法。
  • 特点2: 范围在100以内。
  • 特点3: 较为简单,易于理解。

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

  • 使用计算的数字小于20
  • 易于操作

三、设计

1. 设计思路

说明你如何设计这个程序

1472386-20180911180157231-1534779068.png

  • 输入两个参数。第一个参数为出题数量,第二个参数为适用于学生年级。
  • 数组。我设置多个数组用于存储数字、符号、结果、余数等。

2. 实现方案

写出具体实现的步骤

  • 准备工作:先在Github上创建仓库,克隆到本地
  • 设计大纲:设置算法分类、多次判断、分类输出
  • 技术关键:年级的选择、分类输出

四、编码

请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程

1. 调试日志

记录编码调试的日志,请记录下开发过程中的 debug 历程

  • 除法余数的判断
    解决方案:都做余数判断,分为两类输出,有余数按模版输出,无余数省略余数输出。
  • 参数(年级的选择)
    解决方案:在整体前做判断。由于我先写的算法,后进行年级选择导致。

2. 关键代码

for (int i = 0; i < n; i++) {//加减法输出

                if (e[i] == 0) {//做加法运算
                    result = w[i] + h[i];
                    System.out.println("(" + j + ") " + w[i] + " + " + h[i] + " = " + result);
                    b[i] = result;
                } else {//做减法运算
                    result = w[i] - h[i];
                    System.out.println("(" + j + ") " + w[i] + " - " + h[i] + " = " + result);
                    b[i] = result;
                }
                j++;
            }
for (int i = 0; i < n; i++) {//乘除法输出
                
                if (e[i] == 0) {
                    result = w[i] * h[i];
                    System.out.println("(" + j + ") " + w[i] + " * " + h[i] + " = " + result);
                    b[i] = result;
                } else {int y;
                    result = w[i] / h[i];
                    y=w[i] % h[i];
                    k[i] = y;
                    if(y==0) {//余数判断
                        System.out.println("(" + j + ") " + w[i] + " / " + h[i] + " = " + result);
                    }
                    else {
                    System.out.println("(" + j + ") " + w[i] + " / " + h[i] + " = " + result+"..."+k[i]);
                    }
                    b[i] = result;
                }
                j++;
            }

五、测试

加减法测试

1472386-20180911195259216-386216660.png

乘除法测试

1472386-20180911204711750-1436109896.png

越界测试

1472386-20180911204810971-648016460.png[]

六、总结

1、小白成长。之前落下了很多编程基础,导致前期进行的非常困难,在一步步的恶补,感觉追赶上了一些,可以写出大部分的内容了。
2、坚持。我会继续努力,坚持下去,不抛弃,不放弃。
3、鼓励。我觉得在出现困难、bug的时候同学or室友之间互相帮助、互相鼓励、给予支持,共同进步。

转载于:https://www.cnblogs.com/batter616/p/9609280.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值