第1次作业

小学一二年级数学题MathExam369

一、预估与实际

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

二、需求分析

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

  • 特点1
  • 掌握数量关系和几何图形最基础知识即可
  • 特点2
  • 学生要有进行整数四则计算的能力
  • (1) 认识100以内数字
  • (2)100以内加减乘除法
  • (3)长度单位的认识
  • (4)了解某数比某数多几的特点

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

  • 使用的数字小于100
  • 不能使用分数小数
  • 不能使用负数

三、设计

1. 设计思路

说明你如何设计这个程序

比如:

  • 首先要初始化文件函数,创建文件输出流
  • 确保输入的参数不能过大,必须是正整数
  • 根据输入的参数随机生成式子
  • 运用随机数,查阅资料
  • 将题目和答案存入out.txt文件

2. 实现方案

  • 准备工作:先在Github上创建仓库,fork老师的文件,克隆到本地文件,再使用远程传输。
  • 技术关键点:远程传输时git commit clone等的用法。

四、编码

  • 在编写完运算以后,要将题目和答案都存入文件
  • 要考虑多种情况,如输入参数的大小问题

1. 调试日志

  • 一开始使用的是

int operate = (int) (Math.random() * 2 + 1);
int result = 0;// 每题的结果 //
if (operate == 1) {// 1做加法 //
int num1, num2;
do {
num1 = (int) (Math.random() * 101);
num2 = (int) (Math.random() * 101);
} while (num1 + num2 > 100);
result = num1 + num2;}
else if (operate == 2) { // 2做减法 //
int num1, num2,m; // 产生两个整数,用大的减去小的 //
num1 = (int) (Math.random() * 100);
num2 = (int) (Math.random() * 100);
if (num1 < num2) {
m=num1;
num1=num2;
num2 = m;
result = num1 - num2;//不够精炼//
}

  • 但是最后的结果总是出现乱码,编译并没有什么错误,最后放弃了选择了另一种方法。

2. 关键代码

  	 num1 = (int) (Math.random() * 101);
  	 num2 = (int) (Math.random() * 101);
  	 sub = (int) (Math.random() *2);
  	String symbol = fuhao[sub];
  	switch (symbol) {
  	case "+":
  		result = num1 + num2;
  		break;
  	case "-":
  		if (num1 <num2) {
  			int m = num1;
  			num1 = m;
  			m = num2;
  		}
  		result =num1 - num2;
  		break;
  	default:
  		System.out.println("错误");
  	}
  • 运用随机数随机出现两个数,在进行加法运算时,二者相加,减法运算时,若num1小于num2,则用大的减去小的数。

3. 代码规范

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

  • 类名首字母应该大写。每个单词的首字母大写。
  • 避免异常
  • 人工检查代码是否存在错误
  • 包名必须小写
  • 除了get set函数外其他函数要注释。
  • 资源文件后面加文件后缀。
  • 避免下划线
  • 避免类似的名字,或者仅仅是大小写不同的名字
  • 如果变量名是集合,变量名应用负数 如int [] students

五、测试

测试例 结果
3000000 参数过大
xbxb 报错
1 (1) 52 + 28 (1) 52 + 28 = 80

六、总结

  • 在理解题目要求时便花费了非常多的时间,即使构思设计了很久最后的方案还是不理想
  • 编程时对异常、文件输出流等的方法都不是很清楚,花费了非常多的时间还是无法编译成功,之后不停的改方法,编译成功后又无法在文件中输入,终于可以输入后出现的都是乱码,最后终于成功了但代码还是不够完善
  • 在遇到题目后应该首先设计思路,再施行,每一步要分工明确,不能开始打代码了才发现自己设计的不理想,而打完后应该多测试,尽量改到最好
  • 要把时间分配好,做到少而精
  • 代码规范很重要
  • 学会注释,方便以后查看
posted @ 2018-09-11 15:41  cielpupu  阅读(211)  评论(1编辑  收藏  举报