zoukankan      html  css  js  c++  java
  • 计算机软件工程 作业二

    作业二

    作业要求 (https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10402)

    • 分别能够实现小学一、二、三、四、五年级的四则运算要求, 逐步实现各个年级的难度
    • 要求能够通过输入来选择不同年级,每个年级还得区分难,中,易三个等级
    • 对于三、四、五年级需要支持括号与多个运算符
    • 程序支持判断对错及累计得分与时间
    • 一次可以出100道题目,而且不能重复(比如2+3 与 3+2 算重复的)
    • 充分发挥想象增加满足小学生数学检测需要的功能

    预习第二节

    1.单元测试
    主要步骤:
    (1)设置数据(一个假想的正确的E-mail地址);

    (2)使用被测试类型的功能(用E-mail地址来创建一个User类的实体);

    (3)比较实际结果和预期的结果(Assert.IsTrue(target!= null);)。

    2.PSP
    个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程, 是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。
    不局限于某一种软件技术 (如编程语言), 而是着眼于软件开发的流程, 这样不同应用的工程师可以互相比较。
    不依赖于考试, 而主要靠工程师自己收集数据, 然后统计提高。
    在小型,初创的团队中, 高质量的项目需求很难找到,这意味着给程序员的输入质量不高,在这种情况下, 程序员的输出 (程序/软件) 往往质量不高, 然而这并不能全部由程序员负责。
    PSP是一个需要逐步改进的过程。
    PSP 依赖于数据。
    PSP的目的是记录工程师如何实现需求的效率, 而不是记录顾客对产品的满意度。

    代码

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    int main()
    {
        int i,j,A0,A1,A2,A3,B0,B1,B2,B3;
        int A,B,k;
        int min,max,m;
        k=0;
        A0=0;A1=0;A2=0;A3=0;
        B0=0;B1=0;B2=0;B3=0;
        cout<<"*****************四则运算******************"<<endl;
        char ch;
        cout<<"年级:a.一年级.二年级c.三年级d.四年级e.五年级"<<endl;
        cout<<"输入字母选择年级:"<<endl;
        cin>>ch;
        if(ch=='1') 
        {
            cout<<"************一年级四则运算************"<<endl;
        }
        if(ch=='2')
        {
            cout<<"************二年级四则运算************"<<endl;
        }
        if(ch=='3')
        {
            cout<<"************三年级四则运算************"<<endl;
        }            
        if(ch=='4')
        {
            cout<<"************四年级四则运算************"<<endl;
        }                       
        if(ch=='5')
        {
            cout<<"************五年级四则运算************"<<endl;
        }   
        cout<<"输入算式中两数取值范围[a,b](a<b):"<<endl;
        cin>>min>>max;
        if(min>=max)
            {
                cout<<"输入不合法,请重新输入:";
                cin>>min>>max;
            }
        cout<<"A=输出算式总数      B=每行显示数量"<<endl;
        cout<<"请依次输入A,B的值:"<<endl;
        cin>>A>>B;  
        m=max-min+1;
        for(i=0;i<1000;i++)
        {
            a0[i]=0;b0[i]=0;
            a1[i]=0;b1[i]=0;
            a2[i]=0;b2[i]=0;
            a3[i]=0;b3[i]=0;
        }
        for(i=0;;i++)
        {
            a=min+rand()%m;
            b=min+rand()%m;
            c=rand()%4;
            //将算式分为加、减、乘、除四组
            if(c==0)                       //加法
            {
                for(j=0;j<=A0;j++)
                {
                    if(a==a0[j]&&b==b0[j])
                    {
                        B0++;break;
                    }
                }
                if(B0>0)
                {
                    B0=0;continue;
                }
                else
                {
                    a0[A0]=a;
                    b0[A0]=b;
                    c0[A0]=a+b;
                    A0++;
                }
            }
            else if(c==1)                   //减法
            {
                for(j=0;j<=A1;j++)
                {
                    if(a==a1[j]&&b==b1[j])
                    {
                        B1++;break;
                    }
                }
                if(B1>0)
                {
                    B1=0;continue;
                }
                else
                {
                    a1[A1]=a;
                    b1[A1]=b;
                    c1[A1]=a-b;
                    A1++;
                }
            }
            else if(c==2)                     //乘法
            {
                for(j=0;j<=A2;j++)
                {
                    if(a==a2[j]&&b==b2[j])
                    {
                        B2++;break;
                    }
                }
                if(B2>0)
                {
                    B2=0;continue;
                }
                else
                {
                    a2[A2]=a;
                    b2[A2]=b;
                    c2[A2]=a*b;
                    A2++;
                }
            }
            else                               //除法
            {
                if(b==0)
                    continue;
                for(j=0;j<=A3;j++)
                {
                    if(a==a3[j]&&b==b3[j])
                    {
                        B3++;break;
                    }
                }
                if(B3>0)
                {
                    B3=0;continue;
                }
                else
                {
                    a3[A3]=a;
                    b3[A3]=b;
                    c3[A3]=a/b;
                    A3++;
                }
            }
            if(A==A0+A1+A2+A3)                //限制算式数量
                break;
        }
        //输出
        for(i=0;i<A0;i++)                        // 加法
        {
            k++;
            if(a0[i]<0)
                cout<<"("<<a0[i]<<")";
            else
                cout<<a0[i]<<" ";
            cout<<"+";
            if(b0[i]<0)
                cout<<"("<<b0[i]<<")";
            else
                cout<<" "<<b0[i]<<" ";
            cout<<"= ?  ";
            if(k%B==0)
                cout<<endl;
            else
                cout<<"	";
        }
        for(i=0;i<A1;i++)                         // 减法
        {
            k++;
            if(a1[i]<0)
                cout<<"("<<a1[i]<<")";
            else
                cout<<a1[i]<<" ";
            cout<<"-";
            if(b1[i]<0)
                cout<<"("<<b1[i]<<")";
            else
                cout<<" "<<b1[i]<<" ";
            cout<<"= ?  ";
            if(k%B==0)
                cout<<endl;
            else
                cout<<"	";
        }
        for(i=0;i<A2;i++)                         // 乘法
        {
            k++;
            if(a2[i]<0)
                cout<<"("<<a2[i]<<")";
            else
                cout<<a2[i]<<" ";
            cout<<"*";
            if(b2[i]<0)
                cout<<"("<<b2[i]<<")";
            else
                cout<<" "<<b2[i]<<" ";
            cout<<"= ?  ";
            if(k%B==0)
                cout<<endl;
            else
                cout<<"	";
        }
        for(i=0;i<A3;i++)                          // 除法
        {
            k++;
            if(a3[i]<0)
                cout<<"("<<a3[i]<<")";
            else
                cout<<a3[i]<<" ";
            cout<<"/";
            if(b3[i]<0)
                cout<<"("<<b3[i]<<")";
            else
                cout<<" "<<b3[i]<<" ";
            cout<<"= ?  ";
            if(k%B==0)
                cout<<endl;
            else
                cout<<"	";
        }
        cout<<"请在此输入各式的结果:"<<endl;
        for(i=0;i<A;i++)
            cin>>C[i];
        int t=0,corr=0,f=0;
        //判断输入结果的对错
        for(i=0;i<A0;i++)
        {
            if(c0[i]==C[t])
            {t++;corr++;}
            else
            {
                t++;
                cout<<"第"<<t<<"题答错!"<<endl;
                f++;
            }
        }
        for(i=0;i<A1;i++)
        {
            if(c1[i]==C[t])
            {t++;corr++;}
            else
            {
                t++;
                cout<<"第"<<t<<"题答错!"<<endl;
                f++;
            }
        }
        for(i=0;i<A2;i++)
        {
            if(c2[i]==C[t])
            {t++;corr++;}
            else
            {
                t++;
                cout<<"第"<<t<<"题答错!"<<endl;
                f++;
            }
        }
        for(i=0;i<A3;i++)
        {
            if(c3[i]==C[t])
            {t++;corr++;}
            else
            {
                t++;
                cout<<"第"<<t<<"题答错!"<<endl;
                f++;
            }
        }
        if(A==corr)
            cout<<"全对!"<<endl;
        else
            cout<<"一共答错了"<<f<<"题。"<<endl;
        system("pause");
        return 0;
    }
    

    [代码链接](https://gitee.com/jansyw/dashboard/codes)

  • 相关阅读:
    面向对象的继承关系体现在数据结构上时,如何表示
    codeforces 584C Marina and Vasya
    codeforces 602A Two Bases
    LA 4329 PingPong
    codeforces 584B Kolya and Tanya
    codeforces 584A Olesya and Rodion
    codeforces 583B Robot's Task
    codeforces 583A Asphalting Roads
    codeforces 581C Developing Skills
    codeforces 581A Vasya the Hipster
  • 原文地址:https://www.cnblogs.com/yanwenshen/p/12391583.html
Copyright © 2011-2022 走看看