MathExam6378
我的第一个程序
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 15 | 10 |
• Estimate | • 估计这个任务需要多少时间 | 500 | 500 |
Development | 开发 | 300 | 500 |
• Analysis | • 需求分析 (包括学习新技术) | 20 | 35 |
• Design Spec | • 生成设计文档 | 20 | 40 |
• Design Review | • 设计复审 | 20 | 50 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 60 | 60 |
• Design | • 具体设计 | 120 | 150 |
• Coding | • 具体编码 | 180 | 200 |
• Code Review | • 代码复审 | 60 | 120 |
• Test | • 测试(自我测试,修改代码,提交修改) | 60 | 60 |
Reporting | 报告 | 45 | 60 |
• Test Repor | • 测试报告 | 45 | 30 |
• Size Measurement | • 计算工作量 | 15 | 15 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 15 | 20 |
合计 | 700 |
二、需求分析
我通过网络调查方式了解到,小学一、二年级数学有如下的几个特点:
- 特点1:主要是加减法为基础,后引入乘除法。
- 特点2: 范围在100以内。
- 特点3: 较为简单,易于理解。
经过分析,我认为,这个程序应当:
- 使用计算的数字小于20
- 易于操作
三、设计
1. 设计思路
说明你如何设计这个程序
- 输入两个参数。第一个参数为出题数量,第二个参数为适用于学生年级。
- 数组。我设置多个数组用于存储数字、符号、结果、余数等。
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++;
}
五、测试
加减法测试
乘除法测试
越界测试
![]
六、总结
1、小白成长。之前落下了很多编程基础,导致前期进行的非常困难,在一步步的恶补,感觉追赶上了一些,可以写出大部分的内容了。
2、坚持。我会继续努力,坚持下去,不抛弃,不放弃。
3、鼓励。我觉得在出现困难、bug的时候同学or室友之间互相帮助、互相鼓励、给予支持,共同进步。
MathExam6378的更多相关文章
随机推荐
- 再起航,我的学习笔记之JavaScript设计模式05(简单工厂模式)
我的学习笔记是根据我的学习情况来定期更新的,预计2-3天更新一章,主要是给大家分享一下,我所学到的知识,如果有什么错误请在评论中指点出来,我一定虚心接受,那么废话不多说开始我们今天的学习分享吧! 前几 ...
- ZOJ 2475 Benny's Compiler(dfs判断有向图给定点有没有参与构成环)
B - Benny's Compiler Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu ...
- 初次接触ARM开发,理清这四个开发思路很重要!
初次接触ARM开发,理清这四个开发思路很重要! 由于涉及编程,学习ARM单片机系统对于从事电子电路的设计者来说是有些困难的,学习知识不难,难的是理清其中的开发思路,找到一个好的起点.本文就将从这一步入 ...
- asp.net core合并压缩资源文件(转载)
在asp.net core中使用BuildBundlerMinifier合并压缩资源文件 在asp.net mvc中可以使用Bundle来压缩合并css,js 不知道的见:http://www.cnb ...
- 存储过程定义多个游标多个begin
1.直接定义多个显示游标 CREATE OR REPLACE PROCEDURE ACC.DBP_REALCITYTRAFFICCNT IS CURSOR cur1 IS SELECT ... --第 ...
- linux 系统运行级别一般为 0-6,请分别写出每个级别的含义
每个运行级别的含义 0 关机模式(不要把启动级别 运行级别设置为0) 1 单用户模式 2 无NFS多用户模式 3 文本模式(命令行模式,完整的多用户模式) 4 未使用的 5 ...
- 性能测试loadrunner安装
把杀毒软件关闭 1. 点击 HP_LoadRunner_12.02_Community_Edition_T7177-15059.exe 完成后,点击下一步 接受协议 点击安装 点击完成 TOOLS - ...
- 深入虚拟内存(Virtual Memory,VM)
我们应该知道物理内存(Physical Memory)指的是硬件上的内存,即 RAM.它通常指的是插在主板上的内存条,给进程提供临时数据存储的设备.因为 CPU 可以直接从物理内存中读取数据和指令,所 ...
- python基础学习2-easygui框架编程
#!/usr/bin/env python # -*- coding:utf-8 -*- import easygui as g #导入方式一 #导入方式2 #from easygui import ...
- python基础学习1-类,对象
class Foo:#定义类 def mail(self,email,message):#定义类的方法 print('发送邮件给%s! 信息:%s'% (email,message)) return ...