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

    作业要求链接

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

    简易四则运算程序运行结果

    分别能够实现小学一、二、三、四、五年级的四则运算要求, 逐步实现各个年级的难度

    要求能够通过输入来选择不同年级,每个年级还得区分难,中,易三个等级

    一次可以出100道题目,而且不能重复

    这里添加了可以设定出题数量,而不是固定数量,并且可以选择是否出带负数和乘除的题目,也能设定出题数值的范围。

    对于三、四、五年级需要支持括号与多个运算符

    程序支持判断对错

    总结

    在写这个程序的时候参考了网上比较多的程序,有的是关于如何一次性出多个题目的,有的是关于怎么写出随机题目的,老师的要求中关于计算做题时间和累计积分没有能够实现,希望以后能够完成。然后是在关于上传本地代码到gitee上花费了许多时间,遇到的困难十分多,有关与建立本地git仓库的,由于我是用的是mac,所以Git使用起来其实是比较方便的,只要去网上找到相关的代码在终端里输入就可以了。但是在第一次使用的情况下还是出了很多状况,好在在老师的帮助下完成了。

    代码

    //
    //  main.cpp
    //  四则运算
    //
    //  Created by MOLEkiss on 2020/2/23.
    //  Copyright © 2020 MOLEkiss. All rights reserved.
    //
     #include<iostream>
     using namespace std;
     #include<time.h>
     #include<string>
    
    int main()
    {
    int count=0 ;
    srand(time(NULL));//用系统当前时间设置rand()随机序列种子,保证每次运行随机序列不一样
    char ch;
    while(count<30)
    {
        cout<<"选择年级一年级(输入'1')或二年级(输入'2')或三年级(输入'3')或四年级(输入'4')或五年级(输入'5')"<<endl;
        cin>>ch;
        if(ch=='1')
        {cout<<"选择难易度,选择易(输入'6'),选择中(输入'7'),选择难(输入'8')"<<endl;
            cin>>ch;
            if(ch=='6')
        {cout<<"开始产生一年级四则运算'易'难度:"<<endl;
           cout<<"选择做整数运算(输入'a')"<<endl;
        }
            if(ch=='7'){{cout<<"开始产生一年级四则运算'中'难度:"<<endl;
                cout<<"选择做整数运算(输入'a')"<<endl;}
            }
            if(ch=='8'){{cout<<"开始产生一年级四则运算'难'难度:"<<endl;
                           cout<<"选择做整数运算(输入'a')"<<endl;}
            }}
        if(ch=='2')
           {cout<<"选择难易度,选择易(输入'6'),选择中(输入'7'),选择难(输入'8')"<<endl;
                cin>>ch;
                if(ch=='6')
            {cout<<"开始产生二年级四则运算'易'难度:"<<endl;
               cout<<"选择做整数运算(输入'a')"<<endl;
            }
                if(ch=='7'){{cout<<"开始产生二年级四则运算'中'难度:"<<endl;
                    cout<<"选择做整数运算(输入'a')"<<endl;}
                }
                if(ch=='8'){{cout<<"开始产生二年级四则运算'难'难度:"<<endl;
                               cout<<"选择做整数运算(输入'a')"<<endl;}
                }}
          if(ch=='3')
            {cout<<"选择难易度,选择易(输入'6'),选择中(输入'7'),选择难(输入'8')"<<endl;
                cin>>ch;
                if(ch=='6')
            {cout<<"开始产生二年级四则运算'易'难度:"<<endl;
               cout<<"选择做整数运算(输入'a')或真分数运算(输入'b')"<<endl;
            }
                if(ch=='7'){{cout<<"开始产生二年级四则运算'中'难度:"<<endl;
                    cout<<"选择做整数运算(输入'a')或真分数运算(输入'b')"<<endl;}
                }
                if(ch=='8'){{cout<<"开始产生二年级四则运算'难'难度:"<<endl;
                    cout<<"选择做整数运算(输入'a')或真分数运算(输入'b')"<<endl;}}}
        if(ch=='4')
            {cout<<"选择难易度,选择易(输入'6'),选择中(输入'7'),选择难(输入'8')"<<endl;
                           cin>>ch;
                           if(ch=='6')
                       {cout<<"开始产生二年级四则运算'易'难度:"<<endl;
                          cout<<"选择做整数运算(输入'a')或真分数运算(输入'b')"<<endl;
                       }
                           if(ch=='7'){{cout<<"开始产生二年级四则运算'中'难度:"<<endl;
                               cout<<"选择做整数运算(输入'a')或真分数运算(输入'b')"<<endl;}
                           }
                           if(ch=='8'){{cout<<"开始产生二年级四则运算'难'难度:"<<endl;
                               cout<<"选择做整数运算(输入'a')或真分数运算(输入'b')"<<endl;}}}
        if(ch=='5')
           {cout<<"选择难易度,选择易(输入'6'),选择中(输入'7'),选择难(输入'8')"<<endl;
                          cin>>ch;
                          if(ch=='6')
                      {cout<<"开始产生二年级四则运算'易'难度:"<<endl;
                         cout<<"选择做整数运算(输入'a')或真分数运算(输入'b')"<<endl;
                      }
                          if(ch=='7'){{cout<<"开始产生二年级四则运算'中'难度:"<<endl;
                              cout<<"选择做整数运算(输入'a')或真分数运算(输入'b')"<<endl;}
                          }
                          if(ch=='8'){{cout<<"开始产生二年级四则运算'难'难度:"<<endl;
                              cout<<"选择做整数运算(输入'a')或真分数运算(输入'b')"<<endl;}}}
       
        //产生整数的运算
        cin>>ch;
        if(ch=='a')
        {cout<<"开始产生四则运算:"<<endl;
             int a0[1000],b0[1000],c0[1000],a1[1000],b1[1000],c1[1000],a2[1000],b2[1000],c2[1000],a3[1000],b3[1000],c3[1000],C[1000],a,b,c;
                int i,j,A0,A1,A2,A3,B0,B1,B2,B3;
                int num,line,k;
                int min,max,m;
                int CC,FS,YS;
    
                k=0;
                A0=0;A1=0;A2=0;A3=0;
                B0=0;B1=0;B2=0;B3=0;
                cout<<"*************四则运算1.0*************"<<endl;
                
                cout<<"请依次输入输出算式数量和每行显示数量:"<<endl;
                cin>>num>>line;
                
                cout<<"请问是否要有乘除法?有请输入"1",无请输入"0""<<endl;
                cin>>CC;
                while(1)                             //判断输入是否合法
                {
                    if(CC != 1&&CC != 0)
                    {
                        cout<<"输入不合法,请重新输入"1"或"0":";
                        cin>>CC;
                    }
                    else
                        break;
                }
                
                cout<<"请问是否要加减结果有负数?有请输入"1",无请输入"0""<<endl;
                cin>>FS;
                while(1)                             //判断输入是否合法
                {
                    if(FS != 1&&FS != 0)
                    {
                        cout<<"输入不合法,请重新输入"1"或"0":";
                        cin>>FS;
                    }
                    else
                        break;
                }
                
                cout<<"请问是否要除法结果有余数?有请输入"1",无请输入"0""<<endl;
                cin>>YS;
                while(1)                             //判断输入是否合法
                {
                    if(YS != 1&&YS != 0)
                    {
                        cout<<"输入不合法,请重新输入"1"或"0":";
                        cin>>YS;
                    }
                    else
                        break;
                }
    
                cout<<"请输入两个值确定算式中a,b的取值范围(请保证前一个值小于后一个值):"<<endl;
                cin>>min>>max;
                while(1)                            //判断输入是否合法
                {
                    if(min>=max)
                    {
                        cout<<"输入不合法,请重新输入:";
                        cin>>min>>max;
                    }
                    else
                        break;
                }
    
                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(CC==0)              //如果CC=0,去除c=2,3的情况
                    {
                        if(c==2||c==3)
                            continue;
                    }
                    if(FS==0)              //如果FS=0,去除c=0,1下结果小于0的情况
                    {
                        if(c==0)
                        {
                            if(a+b<0)
                                continue;
                        }
                        else if(c==1)
                        {
                            if(a-b<0)
                                continue;
                        }
                    }
                    if(YS==0)             //如果YS=0,且是除法,去除a,b相除有余数的情况
                    {
                        if(c==3)
                            if(0 != a%b)
                                continue;
                    }
                    
                    //将算式分为加、减、乘、除四组
                    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(num==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%line==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%line==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%line==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%line==0)
                        cout<<endl;
                    else
                        cout<<"	";
                }
                cout<<"请在此输入各式的结果:"<<endl;
                for(i=0;i<num;i++)
                    cin>>C[i];
                int t=0,corr=0;
                //判断输入结果的对错
                for(i=0;i<A0;i++)
                {
                    if(c0[i]==C[t])
                    {t++;corr++;}
                    else
                    {
                        t++;
                        cout<<"第"<<t<<"题答错!"<<endl;
                    }
                }
                for(i=0;i<A1;i++)
                {
                    if(c1[i]==C[t])
                    {t++;corr++;}
                    else
                    {
                        t++;
                        cout<<"第"<<t<<"题答错!"<<endl;
                    }
                }
                for(i=0;i<A2;i++)
                {
                    if(c2[i]==C[t])
                    {t++;corr++;}
                    else
                    {
                        t++;
                        cout<<"第"<<t<<"题答错!"<<endl;
                    }
                }
                for(i=0;i<A3;i++)
                {
                    if(c3[i]==C[t])
                    {t++;corr++;}
                    else
                    {
                        t++;
                        cout<<"第"<<t<<"题答错!"<<endl;
                    }
                }
                if(line==corr)
                    cout<<"恭喜你都答对了!!!!!!"<<endl;
            }
    
    //产生真分数的运算
        if(ch=='b')
        {
    int m1=0,m2=0,n1=0,n2=0;
    
    m1=0+rand()%100;
    m2=0+rand()%100;
    
    //判断产生的真分数正确性
    while(m1<m2)
    {
        m1=0+rand()%100;
        m2=0+rand()%100;
    }
    
    n1=0+rand()%100;
    n2=0+rand()%100;
    
    //判断产生的真分数正确性
    while(n1<n2)
    {
        n1=0+rand()%100;
        n2=0+rand()%100;
    }
    string fuhao[4]={"+","-","*","/"};
    int fushu=((0+rand()%4)+4)%4;
            
    //cout<<fushu<<endl;
            if(fushu==0)
                //输出算术式
     for(fushu=0;fushu<=100;fushu++)
    
    //判断shu2是否为0和是否为除法 若为则重新生成
    //随机产生的符号
    switch(fushu)
    {
    case 0:cout<<"("<<m2<<"/"<<m1<<")"<<fuhao[fushu]<<"("<<n2<<"/"<<n1<<")"<<endl;break;
    case 1:cout<<"("<<m2<<"/"<<m1<<")"<<fuhao[fushu]<<"("<<n2<<"/"<<n1<<")"<<endl;break;
    case 2:cout<<"("<<m2<<"/"<<m1<<")"<<fuhao[fushu]<<"("<<n2<<"/"<<n1<<")"<<endl;break;
    case 3:cout<<"("<<m2<<"/"<<m1<<")"<<fuhao[fushu]<<"("<<n2<<"/"<<n1<<")"<<endl;break;
    }
            
        }
    count++;
    }
                                                     }
    

    gitee链接

    https://gitee.com/zhang_ying_wei/learngit/blob/master/szys.txt

  • 相关阅读:
    iPhone 6和iPhone 6 plus的AV Foundation框架特性
    实时人脸识别
    相机 视频流数据--预览 拍照 变焦
    AVCaptureStillImageOutput获取静态图像
    jquery返回上一页面
    js闭包
    一些正则匹配
    嵌套 click 第二层 click会叠加 导致 触发 多次
    QPS
    除了汉字全部过滤
  • 原文地址:https://www.cnblogs.com/MOLEkiss/p/12357319.html
Copyright © 2011-2022 走看看