结对作业

@一二三年级算术

211611302 洪康 杨慧德 211605242

一、预估与实际

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

二、需求分析

设计思路

一二年级需求不变

  • 运算符在2~4个【进一步细化要求:至少两个不同的运算符】
  • 可以加括号
  • 减法运算的结果不能有负数
  • 除法运算除数不能为0,不能有余数
  • 数字在0-1000以内
  • 每道题目占一行
  • 运用逆波兰算法

三-设计

  • 用户输入的参数,需要判断是否符合要求
  • 题目随机生成,需要符合一二年级的算术规则
  • 减法不能产生负数,除法不能整除的情况下,要产生商
  • 文件的生成与写入
  • -算法的关键是通过逆波兰实现题目的运算
  • -args[0].equals("-n") 确定输入题数参数
  • args[0].equals("-grade")确定输入年级参数

2. 实现方案

写出具体实现的步骤

  • 准备工作:先在Github上创建仓库,克隆到本地...
  • 输出out.txt文件
  • 如何用命令行输出参数

四、编码

1. 调试日志

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

  • 使用穷举法来判断参数的正确值
  • 判断-grade和-n的取值,排除一些字母,负数等一些不可取的数值

2. 关键代码

请展示一段程序的关键代码,并解释代码的作用

if(args.length!=4) {
		s=false;
		errMesssge="输入的参数必须是四个";
	}
	else if(args[0].equals("-n") && args[2].equals("-grade")){
		if(args[1].length()>4 || args[1].length()==0) {
			s=false;
			errMesssge="题数不能大于9999,题数不能为0,为0则没有题目";
		}
		else if ((!args[1].matches("\\d+")) || args[1].matches("[0]\\d*") ) {
			s=false;
			errMesssge="题数只能是整数,且不能0开头";
		}
		else if(!args[3].matches("[123]")) {
			s = false;
			errMesssge = "年级只能是123年级";
		}
	}
	else if (args[0].equals("-grade") && args[2].equals("-n")) {
		if(!args[1].matches("[123]")) {
			s=false;
			errMesssge="年级必须是123级";
		}
		else if (args[3].length()>4 || args[3].length()==0) {
			s=false;
			errMesssge="题数不能超过五位数,且题数不能为零";
		}
		else if ((!args[3].matches("\\d+")) || args[3].matches("[0]\\d*")) {
			s=false;
			errMesssge="题数必须是数字且不是0开头";
		}
		
		}else  if(args[0].matches("\\d+") || args[2].matches("\\d+")) {
			s=false;
			errMesssge="输入的题数和年级必须在args[1]和args[3],可以调换";
	}
  • 判断参数的取值

3. 代码规范

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

  • 第一条 代码的命名不规范向,这次写的代码命名就很不规范
  • 第二条 if/else if/.....使用必须用大括号
  • 第三条 采用四个空格缩进,不能使用tab键
  • 第四条 单行注释使用// ,多行注释使用/**/
  • 不使用拼音进行命名
  • 采用驼峰式命名规则,类名以大写字母开头, 变-量名和方法名以小写字母开头
  • 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
  • 左小括号和字符之间不出现空格;同样的,有小括号和字符之间也不出现空格。

五、测试

请思考并记录你认为必要的测试点,并记录测试用例与测试结果

六、总结

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

  • 做这个前首先想好加减乘除每一个的简单算法
  • 写代码的格式很不规范,慢慢实践
  • 拿到项目前一定要先分析需求,构思大致方向
  • 一写代码感觉自己无比渺小,加油了
posted @ 2018-09-19 10:37  听说a  阅读(126)  评论(0)    收藏  举报