绝望

结对作业一

学号1:211606311 姓名:寇永明 学号2:211606366 姓名:李杰

一、预估与实际

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

二、需求分析

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

  • 有括号
  • 运算符在2~4个
  • 减法运算的结果不能有负数
  • 除法运算除数不能为0,不能有余数
  • 保留为一、二年级加减法计算功能
  • 计算的数值太过于复杂,不能大于10000,不能出现负数。

三、设计

1. 设计思路

  • 关于出题;搞清楚括号的位置和出题结果
  • 怎么把题目用逆波兰法计算出来
  • 怎么做到题目的随机性
  • 怎么去排除一些特殊的不符合情况

2. 实现方案

  • 准备工作:先在Github上创建仓库,克隆到本地...
  • 关于出题的话可以采用数组的办法
  • 怎么利用好随机数可以进行百度的方法查询

四、编码

1. 调试日志

  • 变量名的大量重复和冗余,后面采用统一的代码驼峰式命名风格避免了这些浪费

2. 关键代码

这段代码用于判断是否是+-/()
double getTheResult(vector &vec)
{
vector::iterator it;
stack sta;
string strTemp;
double d = 0, d1 = 0, d2 = 0;
for(it = vec.begin(); it != vec.end(); it++)
{
strTemp = (
it);
if(strTemp == "+")
{
d1 = sta.top();
sta.pop();
d2 = sta.top();
sta.pop();
d = d1 + d2;
sta.push(d);
}
else if(strTemp == "-")
{
d1 = sta.top();
sta.pop();
d2 = sta.top();
sta.pop();
d = d2 - d1;
sta.push(d);
}
else if(strTemp == "*")
{
d1 = sta.top();
sta.pop();
d2 = sta.top();
sta.pop();
d = d2 * d1;
sta.push(d);
}
else if(strTemp == "/")
{
d1 = sta.top();
sta.pop();
d2 = sta.top();
sta.pop();
d = d2 / d1;
sta.push(d);
}
else
{
const char *p = strTemp.c_str();
d = atoi(p);
sta.push(d);
}
}
return sta.top();
}

3. 代码规范

  • 驼峰式命名风格
  • 不直接用中文的方式进行书写
  • 要学会进行注释并进行人工检查避免后期检查代码工程量太大。

4.结对编程的过程介绍

  • 前面工作准备:两个人一起查阅相关的资料
  • 后期执行:代码部分两个人交替进行书写,两个人进行交替检查。
  • 要学会进行注释并进行人工检查避免后期检查代码工程量太大。

五、测试

  • java MathExam -n 100 -grade 3 //表示出一百道三年级的题
  • 测试结果:正常输出
  • java MthExam -graade 3 -n 100 //也表示出一百道三年级的题
  • 测试结果:正常输出
  • java MthExam -graade 45 -n 100 //也表示出一百道三年级的题
  • 测试结果:年级输入不合法

六、总结

  • 非摆拍的两人的结对工作照:
  • 对结对编程的认识和感悟:
    1.自己的基础太差,编程过程中影响到了整体进度
    2.结对编程解决了我的问题,个人编程的时候几乎每一步都要到处查阅资料,结对编程不懂的地方可以一起讨论。特别是我的英文很差,我的队友英文很好,查阅资料时,他都能基本看懂,因此进度大大提高。
    3.之前我很多事情都是自己做,这次结对编程以后,我发现了团队合作的重要性,哪怕就只有两个人。
    4.注释很重要,我打代码很少注释,导致队友在看我的代码时,必须得我在旁边讲解,还出现了我都忘记了这段代码有什么用。
posted @ 2018-09-19 11:28  Plutotlutre  阅读(170)  评论(1编辑  收藏  举报