zoukankan      html  css  js  c++  java
  • 四则运算

    题目:

     简单的四则运算实现

    需求分析:

    基本功能:随机产生两个正整数进行简单的加、减、乘、除运算。

    设计

    1. 可以选择退出答题或继续答题;
    2. 如果回答输入错误有提示并可以再次输入,再次输入不正确,自动给出正确答案;
    3. 统计回答题数的正确量。

    代码实现

    #include<iostream.h>

     #include<iomanip.h>

     #include<stdlib.h>

     #include<time.h>

     static int i=0,j=0;

     char biankuang()         //定义界面函数

     {  

            for(int l=0;l<30;l++)

                   cout<<setw(12)<<"";

            return 0;

     } 

     void jiafa(int m)            //定义加法运算函数

     {

            int a,b;

            srand(time(0));

            a=rand()%100; //随机产生一个0--99的数

            b=rand()%100;//随机产生一个0--99的数

            cout<<a<<"+"<<b<<endl; 

            cout<<"请输入运算结果:"; 

            cin>>m;

            cout<<endl;

            if(m==a+b) 

            {   

                   cout<<"恭喜你答对了!"<<endl;

                   i++;

            } 

            else 

            {   

                   cout<<"您答案错误,请重新输入:"; //有两次作答机会 

                   cin>>m;

                   cout<<endl;

                   if(m==a+b)  

                   {   

                          cout<<"恭喜你答对了"<<endl;

                          i++;

                   } 

                   else

                   {   

                          cout<<"继续努力,正确答案是:"<<a+b<<endl;//给出正确答案  

                          j++;

                   }

            }

     } 

     void jianfa(int m)        //定义减法运算函数

     { 

            int a,b,t; 

            srand(time(0));

            a=rand()%100;        //随机产生一个0--99的数

            b=rand()%99+1;      //随机产生一个1--99的数

            if(a<b) //调整a为较大值,使运算结果不为负数

            {

                   t=a;

                   a=b;

                   b=t;

            }  

            cout<<a<<"-"<<b<<endl;

            cout<<"请输入运算结果:";

            cin>>m;

            cout<<endl; 

            if(m==a-b)

            {   

                   cout<<"恭喜你答对了!"<<endl;

                   i++; 

            }

            else 

            {  

                   cout<<"您答案错误,请重新输入:"; //有两次作答机会

                   cin>>m;

                   cout<<endl; 

                   if(m==a-b) 

                   {   

                          cout<<"恭喜你答对了"<<endl;

                          i++;  

                   }  

                   else

                   {   

                          cout<<"继续努力,正确答案是:"<<a-b<<endl;//给出正确答案

                          j++; 

                   }

            } 

     }

     void chengfa(int m)     //定义乘法运算函数

     { 

            int a,b;

            srand(time(0)); 

            a=rand()%100;      //随机产生一个0--99的数

            b=rand()%100;      //随机产生一个0--99的数

            cout<<a<<"*"<<b<<endl;

            cout<<"请输入运算结果:";

            cin>>m;

            cout<<endl;

     if(m==a*b) 

     { 

            cout<<"恭喜你答对了!"<<endl;

            i++;

     }

     else 

     {  

            cout<<"您答案错误,请重新输入:"; //有两次作答机会

            cin>>m;

            cout<<endl;

            if(m==a*b) 

            {   

                   cout<<"恭喜你答对了"<<endl; 

                   i++;

            } 

            else

            {   

                   cout<<"继续努力,正确答案是:"<<a*b<<endl;//给出正确答案

                   j++; 

            }

     }

     } 

     void chufa(int m)        //定义除法运算函数

     { 

            int a,b,t; 

            srand(time(0)); 

            a=rand()%100;     //随机产生一个0--99的数

            b=rand()%100;     //随机产生一个0--99的数

            if(b==0)         //使分母不为0

            {  

                   while(b==0)  

                          b=rand()%100;

            } 

            if(a<b)          //调整a为较大值

            {

                   t=a;

                   a=b;

                   b=t;

            } 

            while(a%b!=0)     //使a能被b整除

            {  

                   a=rand()%100;

                   b=rand()%100;

            } 

            cout<<a<<"/"<<b<<endl;

            cout<<"请输入运算结果:";

            cin>>m;

            cout<<endl;

            if(m==a/b) 

            {

      cout<<"恭喜你答对了!"<<endl;

      i++; 

            } 

            else 

            {  

                   cout<<"您答案错误,请重新输入:";//有两次作答机会

                   cin>>m;

                   cout<<endl; 

                   if(m==a/b)

                   {  

                          cout<<"恭喜你答对了"<<endl; 

                          i++; 

                   } 

                   else 

                   {  

                          cout<<"继续努力,正确答案是:"<<a/b<<endl;//给出正确答案 

                   j++; 

                   }

            }

     }

     void main()

     { 

            int s,t,m;

            cout<<biankuang()<<endl;

            cout<<setw(16)<<"*"<<setw(10)<<"    您好!欢迎进入简单四则运算考试系统"<<setw(6)<<"*"<<endl; 

            cout<<setw(12)<<biankuang()<<endl; 

            cout<<setw(20)<<"*"<<"       选择1进入考试系统"<<setw(12)<<"*"<<endl; 

            cout<<setw(20)<<"*"<<"       选择2退出考试系统"<<setw(12)<<"*"<<endl;

            cout<<setw(16)<<"*"<<"    请选择!温馨提示:选择之后按<回车>结束"<<setw(5)<<"*"<<endl;

            cout<<biankuang()<<endl;  //系统开始时的主界面;

            cin>>s;cout<<endl; 

            while(s==1)        //使考试系统能循环进行

            {  

                   cout<<"您好!请回答第"<<i+j+1<<"题:"; 

                   srand(time(0));

                   t=rand()%100;  

                   if(t<25)   

                          jiafa(m);     //进行加法运算

                   else if(t>=25&&t<50)//进行减法运算 

                          jianfa(m);  

                   else if(t>=50&&t<75)//进行乘法运算

                          chengfa(m); 

                   else              //进行除法运算

                          chufa(m);  

                   cout<<"选择1进入继续答题"<<endl<<"选择2退出考试系统";

                   cout<<endl<<"请选择:"<<endl; 

                   cin>>s;

            } 

            cout<<"您回答正确的个数是:"<<i<<endl; //统计出回答正确的个数

            cout<<"您回答错误的个数是:"<<j<<endl; //统计出回答错误的个数

            cout<<biankuang()<<endl;

            cout<<setw(20)<<"#"<<"       谢谢使用!再见!"<<setw(12)<<"#"<<endl;

            cout<<setw(12)<<biankuang()<<endl; 

            cout<<biankuang()<<endl;  //系统开始时的主界面;

     }

    程序截图

     

    分析与总结

    • PSP耗时统计

    步骤

    所需时间

    每个环节消耗时间的百分比(%)

    需求分析

    1

    5.3

    设计

    3

    15.7

    代码实现

    12

    63.1

    分析

    2

    10.6

    总结

    1.

    5.3

    总时间

    19

    100

     

    • 分析

    在需求分析、设计中,考虑尽可能的简单化。在编写代码中遇到一些困难,这也是在编写程序中最大的问题,比如二次输入怎么嵌套进去、主函数的编写,在上网查阅相关资料和参考周欣老师给出的《四则运算改进版》后,在自己重复编写,最终得出。

    • 总结

    编写代码,首先要有一个好的分析设计,设计一个好的想法,这样会在代码实现中节约时间,做出来的东西也较好,合理安排各坏节所用时间,还有多动手,反复去操作,这也是编写程序中主要的。我个人编程能力不好,在设计一个方案出来后,在编写过程中,遇到不会的问一下同学,查阅资料,最终完成此次作业。此后应该多学习如何编程。

  • 相关阅读:
    双camera景深计算
    解决单反出片发灰难题 教你让照片变得通透
    增强画面纵深感的几个小技巧
    双目视觉算法简介
    Android系统源代码的下载与编译
    android 7.0 (nougat)的编译优化-ninja
    神奇的图像处理算法
    【老戴说镜头】浅谈双摄镜头技术
    [Android编程心得] Camera(OpenCV)自动对焦和触摸对焦的实现
    关于DLL模块导出函数
  • 原文地址:https://www.cnblogs.com/luowenhao/p/4409605.html
Copyright © 2011-2022 走看看