MathExam第二次作业(升级版)

MathExamLv2——林华伟 211506319 陈珍 211406263

 

一、预估与实际

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

二、需求分析

我通过作业要求的方式了解到,小学三年级数学有如下的几个特点:

  • 特点1

    • 运算符在2~4个
  • 特点2

    • 减法运算的结果不能有负数
  • 特点3

    • 除法运算除数不能为0,不能有余数

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

  • 添加多个运算符的算式。

  • 计算做题正确个数,提供错题重做订正功能。

三、设计

1. 设计思路:

  • 生成四则运算式子。

  • 判断式子是否合理

  • 在做完一题后,自动生成下一道题目,并对上一道题目的正确错误进行判断。

  • 记录计算正确个数,并记录错误的题目

  • 提供错题重做功能

2. 实现方案

  • 准备工作:先在Github上创建仓库,克隆到本地。

  • 技术关键点:

    • 如何自动生成下一道题目并对答案进行判定。

    • 如何在四则运算中添加括号。

    • 如何记录错题。

1. 调试日志

  1. 设计题目的时候没有考虑相减出现负数的情况,后续通过判定修改这个错误

  2. 没有考虑输入非数字时的情况程序该如何运行,后续修改代码,若输入非数字,则结束程序。

2. 关键代码

public:
Student(){}
void expression();
void again();
};
static int num=0,a,b,d,c,e,sum,result;
void Student::expression()
{
cout<<"\n\n\n\t\t\t学生算数10道\n\n\n\n";
for(int i=0;i<10;i++)
{
cout<<"第"<<i+1<<"题\n";
c=rand()%4+1;
switch(c)
{
case 1:
{
srand(time( NULL ) );
a=rand()%100+1;
b=rand()%100+1;
e=rand()%100+1;
d=a+b*e;
cout<<a<<" + "<<b<<"*"<<e<<" = ";
}
break;
case 2:
{
srand(time( NULL ) );
a=rand()%100+1;
b=rand()%100+1;
e=rand()%100+1;
if(a<b)
{
d=a;
a=b;
b=d;
}
d=a*b-e;
cout<<a<<" * "<<b<<"-"<<e<<" = ";
}
break;
case 3:
{

a=rand()%8+1;
b=rand()%8+1;
e=rand()%8+1;
if(a>b)
{
d=a;
a=b;
b=d;
}
d=a*b+e;
cout<<a<<" * "<<b<<"+"<<e<<" = ";
}
break;
case 4:
{
srand(time( NULL ) );
a=rand()%9+1;
b=rand()%9+1;
e=rand()%9+1;
a=(a/b)*b;
d=a/b;
cout<<a<<" / "<<b<<"+"<<e<<" = ";
}

break;
}

3. 代码规范

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

  • 第一条:未定义的常量不可使用在代码中
  • 第二条:不可输入非数字的答案,若输入非数字的答案,则结束程序

五、测试

 

六、总结

通过这次结对作业,明白了两个人可以互相指出很多对方没有想到问题,可以互相进步,自己一个人单干的话,会忽略很多点,代码的漏洞也会多很多,团队协作的重要性就体现在这里,可以减少失误,提高代码的质量。

 

 

转载于:https://www.cnblogs.com/lhw970125/p/9665493.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值