结对作业
@一二三年级算术
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键
- 第四条 单行注释使用// ,多行注释使用/**/
- 不使用拼音进行命名
- 采用驼峰式命名规则,类名以大写字母开头, 变-量名和方法名以小写字母开头
- 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
- 左小括号和字符之间不出现空格;同样的,有小括号和字符之间也不出现空格。
五、测试
请思考并记录你认为必要的测试点,并记录测试用例与测试结果
六、总结
请总结过程中的教训和经验,思考
- 做这个前首先想好加减乘除每一个的简单算法
- 写代码的格式很不规范,慢慢实践
- 拿到项目前一定要先分析需求,构思大致方向
- 一写代码感觉自己无比渺小,加油了
![]()



浙公网安备 33010602011771号