结对作业

Posted on 2018-09-19 11:33  UTX  阅读(143)  评论(1编辑  收藏  举报

211606325 邱东宝 211606312 赖志斌

结对作业

一、预估与实际

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

二、需求分析

我通过网上搜索的方式了解到,小学三年级四则混合运算的几个特点:

  • 特点1:加法、减法、乘法、除法组成的混合运算,可用加括号,由2-4个运算符组成
  • 特点2:除法运算除数不能为0,不能有余数
  • 特点3:减法运算的结果不能出现负数,小学三年级还没有负数

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

  • 计算结果不能出现负数
  • 计算结果要在1000以内
  • 不能出现重复的题目

三、设计

1. 设计思路

  • 考虑随机的生成数,生成的个数
  • 考虑随机生成数的计算,计算的优先级
  • 考虑计算结果是否符合要求,如不符合,取消此次题目的生成

2. 实现方案

  • 随机生成随机数
  • 括号在计算式的中出现位置
  • 本次出题是否符合要求,符合:输出 不符合:重新生成随机数

四、编码

1. 调试日志

在写逆波兰算法的时候遇到了许多错误,我们进行了多次的调试。

2. 关键代码

Stack<Integer>nums = new Stack<Integer>();//保存数字
Stack<Character>opes = new Stack<Character>();//保存操作符
    int n = 0;//保存数字
char[] cs = string.toCharArray();//字符串转换为char数组
for(int i = 0;i<cs.length;i++){
    char t =cs[i];
if(Character.isDigit(cs[i])){
    n=10*n+Integer.parseInt(String.valueOf(t));
}else{
System.out.println("i:"+n+","+cs[i]);
if(n!=0){
System.out.println(n+cs[i]);
nums.push(n);
n=0;
}
if(t=='('){
opes.push(t);
}else if(t==')'){
while(opes.peek()!='('){
int a =cal(nums.pop(),nums.pop(),opes.pop());nums.push(a);}
opes.pop();
}
else if(isType(t)>0){
if(opes.isEmpty()){
opes.push(t);
}else{
if(isType(opes.peek())>=isType(t){
int a = cal(nums.pop(),nums.pop(),opes.pop());nums.push(a)}opes.push(a);
}

3. 代码规范

  • 代码需要进行注释,方便之后的修改
  • 禁止行太长,要及时换行,防止代码太乱

五、测试

由于能力不足,两个人没想出怎么解决如何在命令行输入所需格式参数且顺序不限,因此测试只能用一开始的输入方法测试,而且三年级的还没有解决。

测试 预计结果 实际结果
不输入参数 输入有误! 输入有误!
只输入一个参数:100 输入有误! 输入有误!
-n 10 -grade 1 题目已经生成 题目已经生成
-n 10.5 -grade 1 输入有误! 输入有误!
-n ascc -grade 2 输入有误! 输入有误!

六、总结

  • 在结对的作业中,需要两个人相互沟通,双方的想法进行整合

Copyright © 2024 UTX
Powered by .NET 8.0 on Kubernetes