zoukankan      html  css  js  c++  java
  • 结对作业

    1.2.3.年级四则混合运算算术问题


    一.预估与实际

    |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. 判断式子是否合理
    3. 在做完一题后,自动生成下一道题目,并对上一道题目的正确错误进行判断
    4. 记录计算正确个数,并记录错误的题目

    (二). 实现方案

    1. 准备工作:先在Github上创建仓库,克隆到本地
    2. 技术关键点:
      如何自动生成下一道题目并对答案进行判定。

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


    四.编码

    (一).调试日志

    1. 设计题目的时候没有考虑相减出现负数的情况,后续通过判定修改这个错误
    2. 没有考虑输入非数字时的情况程序该如何运行,后续修改代码,若输入非数字,则结束程序

    (二).关键代码

    public:
    Student(){}
    void expression();
    void again();
    };
    static int num=0,a,b,d,c,e,sum,result;
    void Student::expression()
    {
    cout<<"
    
    
    			学生算数10道
    
    
    
    ";
    for(int i=0;i<10;i++)
    {
    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;
    }
    

    五.测试

    六.总结

    通过这次结对作业,我明白了结对的意义及其可以达到的目的,两人可以互相交流,促进友谊,加深彼此的了解。也可以从他那学一些知识,这是一条学习的捷径。总之,这次结对收获蛮多

    结对合照

  • 相关阅读:
    反射
    定义类
    集合list,set,Map
    API util
    进程与多线程
    泛型
    API string
    JDBC存储过程
    预处理
    JDBC
  • 原文地址:https://www.cnblogs.com/chenzhennnn/p/9675661.html
Copyright © 2011-2022 走看看