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的更多相关文章
随机推荐
- mysql sqlite3 postgresql 简明操作
安装 mysql $ sudo apt-get install mysql-server sqlite3 $ sudo apt-get install sqlite3 postgresql $ sud ...
- postmark使用
一.Postmark原理 Postmark是由着名的NAS提供商NetApp开发,用来测试其产品的后端存储性能. Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是: ...
- javaScript真值和假值以及相等操作符
真值和假值 相等操作符(==和===) 下面分析一下不同类型的值用相等操作符(==)比较后的结果 toNumber 对不同 类型返回的结果如下: toPrimitive 对不同类型返回的结果如下: = ...
- Eclipse开发工具常用快捷键的使用技巧
Eclipse作为软件开发的常用工具,被很多的人所欢迎,尤其是丰富的快捷键,可以极大的提高编码的效率,下面将常用的快捷键做了整理,便于大家学习和使用. Eclipse常用快捷键 1代码提示 Alt ...
- vue实现分页
效果图: html页面: data数据: 方法: 计算属性: 样式: html代码: <!--分页--> <div class="page-bar"> &l ...
- 一、Django的简介
2019-04-09 22:58:22 大家好,我是一名普普通通的运维工程师,不甘平庸,想在工作之余多学习一些编程技能,不仅提升自我,还能应用于公司的运维自动化工作(代码的自动发布等).希望今后在这记 ...
- VIM - tab 相关的简单配置
1. 概述 vim 是强大的文本编辑器 使用 vim 前, 需要做些简单配置, 来让 vim 更符合自己的操作习惯 想看配置项的, 直接到最后 2. 准备 安装 vim 略 配置文件 位置 /etc/ ...
- 20155301 滕树晨linux基础——linux进程间通信(IPC)机制总结
20155301 滕树晨linux基础--linux进程间通信(IPC)机制总结 共享内存 共享内存是在多个进程之间共享内存区域的一种进程间的通信方式,由IPC为进程创建的一个特殊地址范围,它将出现在 ...
- tkinter的GUI设计:界面与逻辑分离(二)-- 菜单栏
由于要用到文件对话框和消息对话框,所以先给出下面的列表. py2 与 py3 中 tkinter 的变化: Tkinter → tkinter tkMessageBox → tkinter.messa ...
- 【转载】C++创建对象的两种方法
原文:http://blog.sina.com.cn/s/blog_586b6c050100dhjg.html 在C++里,有两种方法创建对象: 方法一: ClassName object(param ...