• 四则运算设计03


    题目要求

    1学生写的程序必须能判断用户的输入答案是否正确

    2程序必须能处理四则运算的混合算式

    1 设计思路:

    产生随机数以及题目中产生的数的个数

    通过if判断是否符合条件

    通过for循环来实现产生所需要的算式的个数

    在具体实现过程中,通过对比用户答案和程序运行答案来判断答案的对错

    2源程序代码:

    #include<iostream>
    #include<ctime>
    #include<cstdlib>
    using namespace std;
    void main()
    {
        int ProNum;  
        int fanwei;  
        int fushu;  
        int yushu;  
        int chengchu;  
        int kuohao;   
        
        cout<<"请输入你想要出的题目的个数(请输入整数)"<<endl;  
        cin>>ProNum;      
        
        cout<<"请输入取值范围的最小值(0~100)"<<endl;  
        cin>>fanwei;  
        
        cout<<"请选择是否有负数选择1表示有选择0表示没有(请按要求选择1或0)"<<endl; 
        cin>>fushu; 
        
        cout<<"请选择是否有余数 3表示有选择4表示没有(请按要求选择3或4)"<<endl;  
        cin>>yushu;  
        
        cout<<"请选择是否有乘除 5表示有选择6表示没有(请按要求选择5或6)"<<endl;  
        cin>>chengchu;  
        
        cout<<"请选择是否有括号 7表示有选择8表示没有(请按要求选择7或8)"<<endl;  
        cin>>kuohao; 
        
        
        int num[10];
        int MyAnswer,answer;
        int RiNum=0;
        int FaNum=0;
        int zff=0, fhnum=0;    
        char fs[20];   
        char fuhao[20];    
        int weizhi1;   
        int weizhi2;   
        
        
        srand(time(0));
        for(int i=0;i<ProNum;i++)
        {
            int shuzinum=rand()%4+2;   
            for(int j=0;j<=shuzinum;j++)   
            {
                num[j]=rand()%100+1;    
                for(;;)      
                {
                    if(num[j]<fanwei)
                        num[j]=rand()%100+1;
                    else
                        break;
                }
                
                
                if(fushu==1){
                    zff=rand()%2;
                if(zff==0)   
                    fs[j]='-';
                if(fs[j]=='-')
                    num[j]=num[j]*(-1);
                if(zff==1)
                    fs[j]='+';
                }
                if(fushu==0){
                   fs[j]='+';
                }
    
                
    }
            
            for(int ii=0;ii<shuzinum;ii++)    
            {
                if(chengchu==5)  
                {
                    fhnum=rand()%4;
                    if(fhnum==0)
                        fuhao[ii]='+';
                    if(fhnum==1)
                        fuhao[ii]='-';
                    if(fhnum==2)
                        fuhao[ii]='*';
                    if(fhnum==3)
                    {
                        fuhao[ii]='/';
                        if(yushu==3)   
                        {
                            weizhi1=ii;   
                            for(;;)
                            {
                                if(num[ii]%num[ii+1]!=0)
                                    break;
                                else 
                                {
                                    num[ii]=rand()%100+1;
                                    num[ii+1]=rand()%100+1;
                                }
                            }
                        }
                        if(yushu==4)     
                        {
                            weizhi1=ii;   
                            for(;;)
                            {
                                if(num[ii]%num[ii+1]!=0)
                                {
                                    num[ii]=rand()%100+1;
                                    num[ii+1]=rand()%100+1;
                                }
                                else 
                                    break;
                            }
                        }
                    }
                }
                if(chengchu==6)   
                {
                    fhnum=rand()%2;
                    if(fhnum==0)
                        fuhao[ii]='+';
                    if(fhnum==1)
                        fuhao[ii]='-';
                }
            }
            
            cout<<i+1<<": "<<num[0];
            
            if(shuzinum==2)   
                kuohao=8;
            if(kuohao==7)  
            {
                weizhi2 =rand()%(shuzinum-2)+1;    
                for(int i=0;i<weizhi2 -1;i++)
                {
                    cout<<fuhao[i]<<num[i+1];
                }
                cout<<fuhao[weizhi2 -1]<<"("<<num[weizhi2]<<fuhao[weizhi2]<<num[weizhi2 +1]<<")";
                for(int i=weizhi2 +1;i<shuzinum;i++)
                {
                    cout<<fuhao[i]<<num[i+1];
                }
                answer=num[0];
                
                if(fuhao[weizhi2]=='+')
                {
                    num[weizhi2]=num[weizhi2]+num[weizhi2 +1];
                    num[weizhi2 +1]=0;
                }
                if(fuhao[weizhi2]=='-')
                {
                    num[weizhi2]=num[weizhi2]-num[weizhi2+1];
                    num[weizhi2+1]=0;
                }
                if(fuhao[weizhi2]=='*')
                {
                    num[weizhi2]=num[weizhi2]*num[weizhi2];
                    num[weizhi2+1]=1;
                }
                if(fuhao[weizhi2]=='/')
                {
                    num[weizhi2]=num[weizhi2]/num[weizhi2+1];
                    num[weizhi2+1]=1;
                }
            
                for(int i=0;i<shuzinum;i++)
                {
                    if(fuhao[i]=='*')
                    {
                        num[i]=num[i]*num[i+1];
                        num[i+1]=1;
                    }
                    if(fuhao[i]=='/')
                    {
                        num[i]=num[i]/num[i+1];
                        num[i+1]=1;
                    }
                }
                
                for(int i=0;i<shuzinum;i++)
                {
                    if(fuhao[i]=='+')
                        answer=answer+num[i+1];
                    if(fuhao[i]=='-')
                        answer=answer-num[i+1];
                    if(fuhao[i]=='*')
                        answer=answer*num[i+1];
                    if(fuhao[i]=='/')
                        answer=answer/num[i+1];
                }
            }
            if(kuohao==8)    
            {
                for(int i=1;i<shuzinum;i++)
                {
                    cout<<fuhao[i]<<num[i+1];
                }
                answer=num[0];
                
                for(int i=0;i<shuzinum;i++)
                {
                    if(fuhao[i]=='*')
                    {
                        num[i]=num[i]*num[i+1];
                        num[i+1]=1;
                    }
                    if(fuhao[i]=='/')
                    {
                        num[i]=num[i]/num[i+1];
                        num[i+1]=1;
                    }
                }
                for(int i=0;i<shuzinum;i++)
                {
                    if(fuhao[i]=='+')
                        answer=answer+num[i+1];
                    if(fuhao[i]=='-')
                        answer=answer-num[i+1];
                    if(fuhao[i]=='*')
                        answer=answer* num[i+1];
                    if(fuhao[i]=='/')
                        answer=answer/num[i+1];
                }
            }
            
            cout<<"="<<endl;
            cout<<"请输入你的计算结果"<<endl;
            cin>>MyAnswer;
            
            if(answer-MyAnswer<0.00001)
            {
                RiNum++;
                cout<<"恭喜你算对了"<<endl;
            }
            else
            {
                FaNum++;
                cout<<"对不起算错了"<<endl;
            }
        }
        cout<<"算对了:"<<RiNum<<""<<"算错了:"<<FaNum<<""<<endl;
    }
    3运行结果截图


    4实验总结:通过该实验,我明白了同伴的重要性。两个人的思维碰撞确实比一个人的苦思冥想要好的多。这次合作让我想到了团体的重要性,使我明白了合作的关键。

    
    
    
    
    
    
    
    

    5时间记录日志:

    
    

    学生:孙梅                        日期:3/26

    
    

    教师:  王建民                    课程:软件工程概论

    
    

    日期

    开始时间

    结束时间

    中段时间(分钟)

    净时间

    (分钟)

    活动

    备注

    C

    U

    3/21

    8:00

    9:50

    10

    100

    上课

    课间休息

    3/22

    14:00

    15:00

    5

    55

    看《构建之法》

    上厕所

    18:00

    20:00

    20

    100

    写程序

    休息

    3/23

    16:00

    16:40

    0

    40

    写程序

    19:00

    20:00

    0

    60

    写阅读笔记

    3/24

    19:00

    21:30

    30

    120

    编写程序

    休息

    3/25

    15:00

    15:30

    0

    30

    写进度条

    3/26

    9:00

    11:30

    0

    150

    写程序

    
    
    
    
    

    结对照片:



  • 相关阅读:
    重置所有视图
    利用ASP发送和接收XML数据的处理方法
    win2003上传、下载大小限制的问题
    转 C#中文转换成累加拼音声母,直接使用
    用LogParser对IIS 日志进行分析
    应用于服务器的软件防火墙介绍
    ASP.NET Ajax资料收集贴
    BlackICE简单应用
    ajax 跨域访问解决方案
    IBM T61 上蓝牙软件BlueSoleil的使用方法
  • 原文地址:https://www.cnblogs.com/sunmei20142925/p/5323390.html
Copyright © 2020-2023  润新知