MathExamLv2——林华伟 211506319 陈珍 211406263

 

一、预估与实际

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

二、需求分析

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

  • 特点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. 代码规范

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

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

五、测试

六、总结

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

MathExam第二次作业(升级版)的更多相关文章

  1. MathExam第二次作业

    第二次作业:MathExam 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 20 30 • ...

  2. 耿丹CS16-2班第二次作业汇总

    -- Deadline: 2016-09-28 12:00 -- 作业内容:http://www.cnblogs.com/huangjunlian/p/5891726.html -- 第二次作业总结: ...

  3. JAVA第二次作业展示与学习心得

    JAVA第二次作业展示与学习心得 在这一次作业中,我学习了复选框,密码框两种新的组件,并通过一个邮箱登录界面将两种组件运用了起来.具体的使用方法和其他得组件并没有什么大的不同. 另外我通过查阅资料使用 ...

  4. 20169212《Linux内核原理与分析》第二周作业

    <Linux内核原理与分析>第二周作业 这一周学习了MOOCLinux内核分析的第一讲,计算机是如何工作的?由于本科对相关知识的不熟悉,所以感觉有的知识理解起来了有一定的难度,不过多查查资 ...

  5. 软件工程(QLGY2015)第二次作业点评(随机挑选20组点评)

    相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 说明:随机挑选20组点评,大家可以看看blog名字,github项目名字,看看那种是更好的,可以学习,每个小组都会反应出一些问题,希望能 ...

  6. 程序设计第二次作业<1>

    面向对象程序设计第二次作业<1> Github 链接:https://github.com/Wasdns/object-oriented 题目: <1>第一次尝试 我立马认识到 ...

  7. homework-02,第二次作业——寻找矩阵最大子序列和

    经过漫漫漫~~~~~~~~~~~~~~长的编译和调试,第二次作业终于告一段落了 先放出源码,思路后面慢慢道来 #include<stdio.h> #include<stdlib.h& ...

  8. 20169210《Linux内核原理与分析》第二周作业

    <Linux内核原理与分析>第二周作业 本周作业分为两部分:第一部分为观看学习视频并完成实验楼实验一:第二部分为看<Linux内核设计与实现>1.2.18章并安装配置内核. 第 ...

  9. SQL 第二章 作业

    /*第二章 作业*/ create table S ( sno char(2) NOT NULL UNIQUE, sname char(3), city char(2) ); alter table ...

随机推荐

  1. GoogleMock初探(0)

    在进行测试过程中,待测的类或者方法经常会依赖其他类或方法的实现.如果此时这些依赖还没有实现,则需要打桩.另外测试讲求独立,测试之间的互相依赖会导致测试最终混乱不堪. GoogleMock提供一套方法来 ...

  2. 前端应该掌握的ps知识

    你说有美图秀秀之后PS要over了,NO PS 依旧很重要,当然除了修人像,比如切图什么的 来吧 开始吧 在开始切图之前,先科普几个小技巧 1. 如果快速从大图中拿出自己想要的小图 : 需求:快速拿出 ...

  3. [上架] iOS 上架更新版本号建议

    iOS 上架一個新版本号,就改个版号数字就好,有什么好说的? 是啊~ 如果上架顺利的话,就没什么好说的,如果被退件,再上传更新时,那版号怎么改? 下面说说我的做法(这只是建议,版号随自己喜好,没有固定 ...

  4. MySQL数据库实验:任务一 创建数据库和表

    目录 任务一 创建数据库和表 [实训目的与要求] [实训原理] [实训步骤] 一.熟悉MySQL环境 二.利用MySQL命令行窗口创建数据库及表 三.利用界面工具创建数据库及表 任务一 创建数据库和表 ...

  5. PTA(BasicLevel)-1009 说反话

    一 .问题描述       原题描述 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出.不同于字符串逆序,这里需要的是将字符串中的单词顺序翻转. 输入样例: Hello World Here ...

  6. 最近最少使用算法(LRU)——页面置换

    原创 上一篇博客写了先进先出算法(FIFO)——页面置换:http://www.cnblogs.com/chiweiming/p/9058438.html 此篇介绍最近最少使用算法(LRU)——页面置 ...

  7. 两组数据的均值是否具有显著差异的T检验

    最近在做分析的时候,遇到了T检验,然而对于没有统计学背景的人来说完全不知如何下手 当然了,遇到问题第一反应就是百度. 果然百度出来了很多链接,当时第一次直接选择了用Excel去做T检验.下面是源数据 ...

  8. (数据科学学习手札50)基于Python的网络数据采集-selenium篇(上)

    一.简介 接着几个月之前的(数据科学学习手札31)基于Python的网络数据采集(初级篇),在那篇文章中,我们介绍了关于网络爬虫的基础知识(基本的请求库,基本的解析库,CSS,正则表达式等),在那篇文 ...

  9. Linux入门第二天——基本命令入门(中)

    一.文件搜索命令 1.文件搜索命令:locate 速度很快(具体见Linux工具网址的对比),注意无法找到新建的文件(原理暂不展开) locate命令其实是“find -name”的另一种写法,但是要 ...

  10. 20155211 2016-2017-2《Java程序设计》课程总结

    20155211 2016-2017-2<Java程序设计>课程总结 (按顺序)每周作业链接汇总 预备作业1:对师生关系的理解 预备作业2:熟能生巧及学习c语言的心的 预备作业3:关于假期 ...