个人作业1

第一次正式作业

一、预估与实际

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

二、需求分析

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

  • 特点1:直接写得数的计算题。
  • 特点2:一年级数学学的是加减。

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

  • 小学一年级
  • 使用的数字小于10。
  • 计算结果不应该出现负数。

-小学二年级

  • 运算的数字小于10。
  • 计算结果不应该出现负数。
  • 范围不超出乘法运算表。
  • 除法的余数表示。

三、设计

1. 设计思路

  • 这个程序有1个类,3个函数,函数之间的互相调用关系。
  • 写好各部分的方法,便于调用。
  • 参数的设置以及传递

2. 实现方案

写出具体实现的步骤

  • 准备工作:先在Github上创建仓库,再用克隆到本地。
  • 技术关键点:随机数的产生,以及随机运算符号。字符串数组的应用。

四、编码

  • 使用随机函数实现随机符号的选择及随机数。
  • 用字符串数组来存储计算式,以及String类型和Int类型的转换。
  • 调用方法,创建文件夹,将结果写入out.txt。

1. 调试日志

  • 在代码的每个方法中遍历字符串数组时,没有进行类型的转换,导致无法遍历数组。
  • 在代码的头部,saveAnswer方法,没有创建新文件夹,导致输出结果无法正确写入out.txt。
  • 在方法调用的过程中,因调用的位置出错,导致无法调用。

2. 关键代码

public static void saveAnswer(String[] a,String[] b) throws IOException{
		File file=new File("out.txt");
		BufferedWriter bw=null;
		try {
			bw=new BufferedWriter(new FileWriter(file));
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		if(!file.exists()){
			try {
				file.createNewFile();//创建新文件
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	    for(int i=0;i<a.length;i++) {
			try {
				bw.write(a[i]);//写出遍历的结果
				bw.newLine();//换行
				bw.flush();//将缓冲的内容写入out.txt
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	    bw.newLine();
	    bw.flush();
	    for(int i=0;i<b.length;i++) {
			try {
				bw.write(b[i]);
				bw.newLine();
				bw.flush();
			} catch (IOException e) {
				e.printStackTrace();
			}
		} 
	}

3. 代码规范

  • 第一条:代码中的参数命名等符合规定。
  • 第二条:保持缩进,良好的代码规范。

并人工检查代码是否符合规范

五、测试

请思考并记录你认为必要的测试点,并记录测试用例与测试结果
测试内容 预期 实际


输入非纯整数 提示请输入整数 提示请输入整数
输入超出范围数字 提示错误 提示错误

六、总结

请总结过程中的教训和经验,思考

  • 使用了“软件开发的基本策略:分而治之”,无需要重构
  • “高质量的设计、规范的编码以及有效的测试是保证软件产品质量的三个重要方面”,采用了相关的手段,是无需要重构
posted @ 2018-09-11 17:38  禾页  阅读(165)  评论(1编辑  收藏  举报