四则运算

题目:

 简单的四则运算实现

需求分析:

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

设计

  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

 

  • 分析

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

  • 总结

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

原文地址:https://www.cnblogs.com/luowenhao/p/4409605.html