• 计算与软件工程 作业二


    计算与软件工程作业二#

    作业要求###

    https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10402

    作业一###

    1 预习讲义第二部分:个人开发技术###

    PSP###

    • 定义:Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。
    • 软件系统的绝大部分模块都是由个人开发或维护的
    • 每个人的工作质量直接影响最终软件的质量
    • 衡量软件开发的工作量和质量四要素:1项目大小 2耗费时间 3质量 4是否按时
    • PSP 各个阶段:计划-开发-报告

    程序效能分析###

    两种方法:1)抽样 2)代码注入

    单元测试###

    • 在最小的编程单元上保证正确性
    • 回归测试(保证程序在修改的过程中, 原有的功能保持稳定)
    • 单元测试是回归测试的基础。

    2 设计代码###

    要求

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

    代码呈现###

    #include<iostream>
    #include<cstdlib>
    #include<ctime>
    #include<stack>
    #include<fstream>
    #define length 100
    using namespace std;
    typedef long long ll;
    ofstream fout("equation.txt");
    char Op[] = {'+', '-', '*', '/'};
    int rights;
    int wrong;
    
    struct num{
        ll numerator, denominator;
        num(){numerator = 0; denominator = 1;}
        num(int n) {numerator = n; denominator = 1;}
        num(int n,int d) {numerator = n; denominator = d;}
        
    void operator = (num x)
        {
            numerator = x.numerator;
            denominator = x.denominator;
        }
    };
    #define maxl 1005
    char nifix[maxl], post[maxl];
    char ans[maxl];
    int cnt_right, cnt_wrong;
    bool error;
    num res, rst;
    
    
        class fraction
        {
         private:
            int above;        
            int below;        
            void reduction();            
            fraction makeCommond(fraction); 
     
        public:
            fraction()
            {             
            }
           fraction add(fraction);     
           fraction sub(fraction);     
           fraction mul(fraction);      
           fraction div(fraction);      
           int display(int,int);              
           void setvalue(int ,int);               
        };
    
    //约分//
    
          void fraction::reduction()
          {
            int i,comdiv,small,max;
            if(above<below)
            {
              small=above;
              max=below;
             }
            else
            {
              small=below;
              max=above;
            }
           for(i=small;i>1;i--)
           {
              if((small%i==0 )&(max%i==0) )
              break;
           }
             comdiv=i;           
    
              if(i!=0)
              {
                  above/=i;
                  below/=i;
               }
        }
    
     //分数通分//
    
        fraction fraction::makeCommond(fraction frac)
        {
           int b1=below,b2=frac.below, m,s;
           if(b1>b2)
           {
            m=b1%b2;
            s=b2;
           }
            else
            {
              m=b2%b1;
              s=b1;
            }
           while(m>0)
           {
             int res=s%m;
              s=m,m=res;
           }
           int small=(b1*b2)/s;
           above=above*(small/below);
           frac.above=frac.above*(small/frac.below);
           below=small;
           frac.below=small;
           return frac;
        }
       //分数相加//
    
        fraction fraction::add(fraction fr)
        {
              fraction myFraction;
              myFraction.above=above*fr.below+fr.above*below;
              myFraction.below=below*fr.below;
              myFraction.reduction();
              return myFraction;
        }
    //分数相减//
    
         fraction fraction::sub(fraction fr)
         {
               fraction myFraction;
               myFraction.above=above*fr.below-fr.above*below;
               myFraction.below=below*fr.below;
               myFraction.reduction();
               return myFraction;
        }
    
      //分数相乘//
    
        fraction fraction::mul(fraction fr)
        { 
              fraction myFraction;
              myFraction.above=above*fr.above;
              myFraction.below=below*fr.below;
              myFraction.reduction();
              return myFraction;
        } 
    //分数相除//
    
        fraction fraction::div(fraction fr)
        {
            fraction myFraction; 
            myFraction.above=above*fr.below;
            myFraction.below=below*fr.above;
            myFraction.reduction();
            return myFraction;
        }
    
     //分数答案的输入判断//
    
        int fraction::display(int a,int b)
        {
        
            if((a==above)&&(b==below))
            {
                cout<<"正确"<<endl;
                rights=rights+1;
            }
            else
            {
                cout<<"错误"<<endl;
                wrong=wrong+1;
            }
            return rights,wrong;
        } 
    
      //分数的赋值//
    
         void fraction::setvalue(int sj1,int sj3)           
         { 
            above=sj1;
            below=sj3;
        }
    //无分数,无余数答案判断//
        
         int answer(int a[],int i)
        {
            int ans;
            
            cout<<"请输入答案:"<<endl;
            cin>>ans;
              if(ans==a[i]) 
              {
                  cout<<"正确"<<endl;
                  rights=rights+1;
                }
              else
              {
                  cout<<"错误"<<endl;
                  wrong=wrong+1;
              }
              return rights,wrong;
         
        }
     //无分数,有余数答案判断//
        int answer_1(int a[],int i,int b[])
        {
            int ans,yushu;
            
            cout<<"请输入商:"<<endl;
            cin>>ans;
            cout<<"输入余数"<<endl;
            cin>>yushu;
              if((ans==a[i])&&(yushu=b[i])) 
              {
                  cout<<"正确"<<endl;
                   rights=rights+1;
                }
              else
              {
                  cout<<"错误"<<endl;
                  wrong=wrong+1;
              }
              return rights,wrong;
         
        }
     //产生带括号式子//
        void create(int maxn)
        {
            
            if(!fout)                        
            {
              cerr << "open error!" << endl;
             exit(1);
            }
        int lengt;
        do{
            lengt = rand()%8;
        }while(lengt < 2);
        bool div = false;                       
        int brack_cnt = 0;                       
        ll num, op;
        for (int i = 1; i < lengt; i++)        
        {
            if (div)                            
            {
                div = false;
                do{
                    num = rand()%maxn;
                }while(num == 0);
                cout<< num;
                fout<< num;
                
            }
            else
            {
                num= rand()%maxn;
                fout <<num;
                cout<<num;
            }
            int tmpcnt = brack_cnt;
            for (int j = 0; j < tmpcnt; j++)      
            {
                if ((rand()%5) > 2)             
                {
                    brack_cnt--;
                    
                    fout << ")";
                    cout<<")";
                }
            }
            
            op = rand()%4;                     
            fout << Op[op];
            cout << Op[op];
            if (op == 3)                      
                div = true;
            
            if (!(rand()%3))                 
            {
                fout << "(";
                cout<<"(";
                brack_cnt++;
                num= rand()%maxn;
                fout <<num;
                cout<<num;
                op = rand()%4;
                fout << Op[op];
                cout<<Op[op];
                if (op == 3)
                    div = true;
            }
        }
        if (div)                            
        {
            div = false;
            do{
                num = rand()%maxn;
            }while(num == 0);
            fout << num;
            cout<< num;    
        }
        else
        {
            num=rand()%maxn;
            fout << num;
            cout<<num;
            
        }
        while(brack_cnt--)           
        {
            fout << ")";
            cout << ")";
        }
            cout<<"=";
            fout<< endl;
            cout<<endl;
            
    }
        bool isNum(char x)       
    {
        return (x >= '0' && x <= '9');
    }
    
    bool isOp(char x)         
    {
        return (x == '+' || x == '-' || x == '*' || x == '/' || x == '(' || x == ')');
    }
    
    int priority(char x)       
    {
        if (x == '-' || x == '+')
            return 1;
        else if (x == '*' || x == '/')
            return 2;
        else if (x == '(')
            return 0;
        else
            return -1;
    }
    bool nifix_to_post()
    {
        memset(post, 0, sizeof(post));
        stack<char> s;                             
        bool havenum = false;                        
        int tmp = 0, pos = 0;                       
        for (int i = 0; nifix[i] != ''; i++)     
        {
            if (isNum(nifix[i]))                    
            {
                havenum = true;
                tmp = tmp*10 + (nifix[i]-'0');
            }
            else if (isOp(nifix[i]))              
            {
              
                if (isOp(nifix[i-1]) && nifix[i-1] != ')' && nifix[i] != '(') 
                    return true; 
               
                if (havenum)
                {
                    havenum = false;
                    post[pos++] = tmp + '0';
                    tmp = 0;
                }
               
                if (nifix[i] == ')')
                {
                    if (s.empty())                 
                        return true;
                    while(s.top() != '(')
                    {
                        post[pos++] = s.top();
                        s.pop();
                        if (s.empty())              
                            return true;
                    }
                    s.pop();
                }
                else if (nifix[i] == '(')         
                    s.push(nifix[i]);
                else                               
                {
                    while (!s.empty() && priority(nifix[i]) <= priority(s.top()))
                    {
                        post[pos++] = s.top();
                        s.pop();
                    }
                    s.push(nifix[i]);
                }
            }
            else                                   
                return true;
        }
      
        if (havenum)
        {
            havenum = false;
            post[pos++] = tmp + '0';
            tmp = 0;
        }
      
        while(!s.empty())
        {
            if (s.top() == '(')                     
                return true;
            post[pos++] = s.top();
            s.pop(); 
        }
        return false;
    }
    ll gcd(ll m, ll n)
    {
        ll    tmp;
        tmp = m % n;
        while(tmp)
        {
            m = n;
            n = tmp;
            tmp = m % n;
        }
        return n;
    }
    bool cal_result()
    {
        stack<num> s;                               
        for (int i = 0; i < (strlen(post)); i++)      
        {
            if (!isOp(post[i]))                     
            {
                num tmp(post[i]-'0', 1);
                s.push(tmp);
            }
            else
            {
              
                if (s.empty())
                    return true;
                num b = s.top(); s.pop();
                if (s.empty())
                    return true;
                num a = s.top(); s.pop();
                num c;
    
                if (post[i] == '+')                 
                {
                    c.numerator = a.numerator * b.denominator + b.numerator * a.denominator;
                    c.denominator = a.denominator * b.denominator;
                }
                else if (post[i] == '-')          
                {
                    c.numerator = a.numerator * b.denominator - b.numerator * a.denominator;
                    c.denominator = a.denominator * b.denominator;
                }
                else if (post[i] == '*')         
                {
                    c.numerator = a.numerator * b.numerator;
                    c.denominator = a.denominator * b.denominator;
                }
                else if (post[i] == '/')          
                {
                    if (b.numerator == 0)         
                        return true;
                    c.numerator = a.numerator * b.denominator;
                    c.denominator = a.denominator * b.numerator;
                }
                else                           
                    return true;
                if (c.numerator != 0)              
                {
                    ll div = gcd(c.denominator, c.numerator);
                    c.denominator /= div;
                    c.numerator /= div;
                }
                s.push(c);                          
            }
        }
        if (s.size() > 1)                           
            return true;
        res = s.top();                              
        s.pop();
        if (res.denominator < 0)                  
        {
            res.numerator = -res.numerator;
            res.denominator = -res.denominator;
        }
        return false;    
    }
    
    bool trans_ans()
    {
        int i = 0;
        ll tmp = 0; 
        bool num_flag = false, deno_flag = false;
         
        if (ans[i] == '-')
        {
            num_flag = true;
            i++;
        }
      
        while(isNum(ans[i]))
        {
            tmp = tmp * 10 + (ans[i] - '0');
            i++;
        }
       
        if (num_flag)
            tmp = -tmp;
       
        rst.numerator = tmp;
       
        rst.denominator = 1;
        tmp = 0;  
        if (ans[i] == '/')
        { 
            if (ans[++i] == '-')
            {
                deno_flag = true;
                i++;
            }
            while(isNum(ans[i]))
            {
                tmp = tmp * 10 + (ans[i] - '0');
                i++;
            }
            if (deno_flag)
                tmp = -tmp;
    
            rst.denominator = tmp;
        }
        if (rst.denominator == 0)
            return true;
        if (i != strlen(ans))
            return true;   
        if (rst.denominator < 0)
        {
            rst.numerator = -rst.numerator;
            rst.denominator = -rst.denominator;
        }
        if (num_flag && deno_flag)
            rst.denominator = 0;
        return false;
    }
    int main()
    {
        fraction frac,frac2;
        int sj1,sj2,sf=1,sj3,sj4,r,j=1;//定义随机数及算符
        int above,below;
        int Num;//题数
        char nc;//运算数选择
        char sfchose;//算符选择
        char yschose;//余数选择
        char jf;//减法结果选择
        int qznum;//取值范围
        int ans_2[length];//存放正确的答案
        int ans_4[length]={0};//存放正确的余数
        srand((unsigned)time(NULL)); //srand函数是以现在系统时间作为时间种子产生随机数
        cout<<"欢迎使用四则运算自动出题系统"<<endl;
        cout<<"请对以下内容进行初始化设置:"<<endl;
        cout<<"选择年级一年级(输入'1')或二年级(输入'2')或三年级(输入'3')或四年级(输入'4')或五年级(输入'5')"<<endl;
        cin>>nc;
        if(nc=='1'){{
            cout<<"产生一年级四则运算,选择难度低输入6,中输入7,高输入8"<<endl;
        cin>>nc;
        if(nc=='6'){
            cout<<"你选择了简单模式,请输入a,建议不要设置乘除法"<<endl;}
        if(nc=='7'){
            cout<<"你选择了中等模式,请输入a,建议设置乘除法"<<endl;}
        if(nc=='8'){
            cout<<"你选择了难模式,请输入a,建议题目量大于50,要有乘除"<<endl;}
        }}
        if(nc=='2'){{
        cout<<"进入二年级四则运算,选择难度低输入6,中输入7,高输入8"<<endl;}
        cin>>nc;
        if(nc=='6'){
            cout<<"你选择了简单模式,请输入a,建议不要设置乘除法"<<endl;}
        if(nc=='7'){
            cout<<"你选择了中等模式,请输入a,建议设置乘除法"<<endl;}
        if(nc=='8'){
            cout<<"你选择了难模式,请输入a,题目量大于50,要有乘除"<<endl;}
        }
        if(nc=='3'){{
        cout<<"进入三年级四则运算,请选择难度:低选择'6';中选择'7';高的模式选择'8'"<<endl;}
        cin>>nc;
        if(nc=='6'){
            cout<<"你选择了简单模式,请输入b,进入后,建议题目小于30"<<endl;}
        if(nc=='7'){
            cout<<"你选择了中等模式,请输入b,进入后,建议题目大于30小于50"<<endl;}
        if(nc=='8'){
            cout<<"你选择了难模式,请输入b,进入后,建议题目量大于50"<<endl;}
        }
        if(nc=='4'){{
        cout<<"进入四年级四则运算,请选择难度:低选择'6';中选择'7';高的模式选择'8'"<<endl;}
        cin>>nc;
        if(nc=='6'){
            cout<<"你选择了简单模式,请输入b,进入后建议题目小于30"<<endl;}
        if(nc=='7'){
            cout<<"你选择了中等模式,请输入b,进入后建议题目大于30小于50"<<endl;}
        if(nc=='8'){
            cout<<"你选择了难模式,请输入b,进入后题目量大于50"<<endl;}
        }
        if(nc=='5'){{
        cout<<"进入五年级四则运算,请选择难度:(1)难度低的模式选择'6';(2)中等选择'7'(3)难度高的模式选择'8'"<<endl;}
        cin>>nc;
        if(nc=='6'){
            cout<<"你选择了简单模式,建议输入b,进入后,建议题目小于30"<<endl;}
        if(nc=='7'){
            cout<<"你选择了中等模式,建议输入b,进入后,建议题目大于30小于50"<<endl;}
        if(nc=='8'){
            cout<<"你选择了难模式,建议输入b,进入后,建议题目量大于50"<<endl;}
        }
        cout<<"请输入难度模式(a.二个运算数 b.多个运算数)"<<endl;
        cin>>nc;
        if(nc=='a')
        {
            cout<<"请输入打印题数:"<<endl;
        cin>>Num;
        cout<<"请选择是否有乘除法?(y/n)"<<endl;
        cin>>sfchose;
        cout<<"请输入一个值确定算式中数值取值范围:"<<endl;
        cin>>qznum;
        cout<<"减法结果中出现负数吗?(y/n)";
        cin>>jf;
    
        if(sfchose=='y')
        {
            cout<<"请选择除法有无余数?(y/n)"<<endl;
            cin>>yschose;
        }
            cout<<"********************************"<<endl;
    
        for(int i=0;i<Num;i++)
        {
                sj1=rand()%qznum;
                sj2=rand()%qznum;
                sj3=rand()%qznum;
                sj4=rand()%qznum;
                if(sfchose=='n')//无乘除法
                {
                     sf=rand()%4;         
                }
                if(sfchose=='y')//有乘除法
                {
                      sf=rand()%8; 
                }
                switch(sf)
                    {        
                         case 0:
                           cout<<sj1<<"+"<<sj2<<"=     "<<endl;
                           ans_2[i]=sj1+sj2;
                           answer(ans_2,i);
    
                         break;
                        case 1:
                           if(jf=='n')
                           {
                               if(sj1<sj2)
                               {
                                  cout<<sj2<<"-"<<sj1<<"=    "<<endl;
                                  ans_2[i]=sj2-sj1;
                                  answer(ans_2,i);
                            
                               }
                               else
                               {
                                   cout<<sj1<<"-"<<sj2<<"=    "<<endl;
                                   ans_2[i]=sj1-sj2;
                                   answer(ans_2,i);
                               }
                            }
                           else
                           {
                                cout<<sj1<<"-"<<sj2<<"=    "<<endl;
                                ans_2[i]=sj1-sj2;
                                answer(ans_2,i);
                            
                           } 
                           break;
                      case 2:
                           if(sj1>sj3)
                           {
                               r=sj1;
                               sj1=sj3;
                               sj3=r;
                           }
                           if(sj2>sj4)
                           {
                               r=sj2;
                               sj2=sj4;
                               sj4=r;
                           }
                         cout<<"("<<sj1<<"/"<<sj3<<")"<<"+"<<"("<<sj2<<"/"<<sj4<<")=     "<<endl;
                         frac.setvalue(sj1,sj3);
                         frac2.setvalue(sj2,sj4);
                         cout<<"输入分子和分母(用空格隔开,结果化到最简)";
                         cin>>above>>below;
                         frac.add(frac2).display(above,below); 
    
                        break;
                      case 3:
                            if(sj1>sj3)
                            {
                                r=sj1;
                                sj1=sj3;
                                sj3=r;
                            }
                            if(sj2>sj4)
                            {
                                r=sj2;
                                sj2=sj4;
                                sj4=r;
                            }
                            if(jf=='n')
                            {
                                if((sj1/sj3)<(sj2/sj4))
                                { 
                                    cout<<"("<<sj2<<"/"<<sj4<<")"<<"-"<<"("<<sj1<<"/"<<sj3<<")=     "<<endl;
                                    frac.setvalue(sj2,sj4);
                                    frac2.setvalue(sj1,sj3);
                                    cout<<"输入分子和分母(用空格隔开,结果化到最简)";
                                    cin>>above>>below;
                                    frac.sub(frac2).display(above,below); 
    
                                }
                                else
                                {
                                    cout<<"("<<sj1<<"/"<<sj3<<")"<<"-"<<"("<<sj2<<"/"<<sj4<<")=     "<<endl;
                                    frac.setvalue(sj1,sj3);
                                    frac2.setvalue(sj2,sj4);
                                    cout<<"输入分子和分母(用空格隔开,结果化到最简)";
                                    cin>>above>>below;
                                    frac.sub(frac2).display(above,below); 
                                }
                            }
                             else
                             {
                                    cout<<"("<<sj1<<"/"<<sj3<<")"<<"-"<<"("<<sj2<<"/"<<sj4<<")=     "<<endl;
                                    frac.setvalue(sj1,sj3);
                                    frac2.setvalue(sj2,sj4);
                                    cout<<"输入分子和分母(用空格隔开,结果化到最简)";
                                    cin>>above>>below;
                                    frac.sub(frac2).display(above,below); 
                             }
                           break;
                       case 4:
                          cout<<sj1<<"*"<<sj2<<"="<<endl;
                          ans_2[i]=sj1*sj2;
                          answer(ans_2,i);
                        break;
                       case 5:
                           if(sj2==0)
                           {
                               i=i-1;
                            
                           }
                           else if(yschose=='n')
                           {
                               if(sj1%sj2==0)
                               {
                                   cout<<sj1<<"/"<<sj2<<"="<<endl;
                                   ans_2[i]=sj1/sj2;
                                   answer(ans_2,i);
    
                            
                               }
                               else 
                               {
                                   i=i-1;
                                 
                               }
                           }
                           else if(yschose=='y')
                           {
                                 if(sj1%sj2!=0)
                               {
                                   cout<<sj1<<"/"<<sj2<<"="<<endl;
                                   ans_2[i]=sj1/sj2;
                                   ans_4[i]=sj1-sj2*ans_2[i];
                                   answer_1(ans_2,i,ans_4);
                        
                               }
                               else 
                               {
                                   i=i-1;
                            
                               }
    
                           }
                           break;
                       case 6:
                        if(sj1>sj3)
                        {
                            r=sj1;
                            sj1=sj3;
                            sj3=r;
                        }
                        if(sj2>sj4)
                        {
                            r=sj2;
                            sj2=sj4;
                            sj4=r;
                        }
                         cout<<"("<<sj1<<"/"<<sj3<<")"<<"*"<<"("<<sj2<<"/"<<sj4<<")=     "<<endl;
                         frac.setvalue(sj1,sj3);
                         frac2.setvalue(sj2,sj4);
                         cout<<"输入分子和分母(用空格隔开,结果化到最简)";
                         cin>>above>>below;
                         frac.mul(frac2).display(above,below); 
                           break;
                       case 7:
                           if(sj1>sj3)
                           {
                               r=sj1;
                               sj1=sj3;
                               sj3=r;
                           }
                         if(sj2>sj4)
                         {
                            r=sj2;
                            sj2=sj4;
                            sj4=r;
                         }
                           cout<<"("<<sj1<<"/"<<sj3<<")"<<"/"<<"("<<sj2<<"/"<<sj4<<")=     "<<endl;
                           frac.setvalue(sj1,sj3);
                           frac2.setvalue(sj2,sj4);
                           cout<<"输入分子和分母(用空格隔开,结果化到最简)";
                           cin>>above>>below;
                           frac.div(frac2).display(above,below); 
                           break;
                       default:
                       break;
                    }
        }
         cout<<"共做对  "<<rights<<"  道题"<<endl;
         cout<<"共做错  "<<wrong<<"  道题"<<endl;
        }
        else
        {
            
            cout<<"请输入出题数目:";
            cin >>Num ;
            cout<<"请输入一个值确定算式中数值取值范围:"<<endl;
            cin>>qznum;
            cout<<"******************************************"<<endl;
            while(Num--)
            {
                create(qznum);
            }
            //计数器请0 
        cnt_right = cnt_wrong = 0;
        ifstream infile;
        infile.open("equation.txt", ios::in);
          if(infile.is_open() == false)
          {
             cerr << "open error!" << endl;
             exit(1);
          }
            
        while( infile >> nifix)
        {
            error = nifix_to_post();           
            if (error)                           
            { 
                cout << "读取式子出错!" << endl;
                return 0; 
            }                    
            error = cal_result();              
            if (error)                          
            { 
                cout << "计算中出错..." << endl;
                return 0; 
            }
            
            cout << "请输入答案: ";
            cin >> ans;                           
            error = trans_ans();              
            if (error)                            
            { 
                cout << "输入不合法答案!" << endl;
                return 0; 
            }
           
            if ((rst.denominator == res.denominator && rst.numerator == res.numerator) || (rst.numerator == res.numerator && rst.numerator == 0))
            {
                cnt_right++;
                cout << "正确!" << endl;
            }
             
            else
            {
                cnt_wrong++;
                cout << "错误. 答案是 ";
                if (res.denominator == 1)
                    cout << res.numerator << "." << endl;
                else
                    cout << res.numerator << "/" << res.denominator << "." << endl;
            }
        }
        cout << "统计结果..." << endl;
         
        cout << "你答了" << cnt_right+cnt_wrong << " 道题 ";
        cout << "正确数:" << cnt_right << "   错误数: " << cnt_wrong << " 。" << endl;
        infile.close();
     
        }
        system("pause");
         return 0;
    }
    

    运行结果##

    作业二#

    要求###

    问题###

    安装过程特别复杂,官网下载尤其慢,找到别的安装途径得以解决。上传代码很生疏,耗费了很多时间,很多步骤需小心谨慎,不然会一步错步步错.

    码云链接:https://gitee.com/ling_ling_li/student_four_operations/blob/master/2.cpp

  • 相关阅读:
    Cisco IOS XE 3S–to–Cisco IOS Release Number Mapping
    ORA-01157 误删表空间对应的dbf文件出现的错误的解决办法
    记录-Windows10 cnpm报禁止运行脚本
    记录-html和html5区别
    记录-查询硬盘物理序号
    CRC16 Java 实现
    kaldi解码及特征提取详解
    kaldi GMM模型解码指令 gmm-latgen-faster详解
    kaldi基于GMM的单音素模型 训练部分
    kaldi学习
  • 原文地址:https://www.cnblogs.com/li-lingling/p/12372967.html
Copyright © 2020-2023  润新知