计算与软件工程 作业二

作业要求https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10402

作业一

一、预习

1、psp:软件工程包括了开发,运营, 维护软件的过程中有很多技术, 做法, 习惯, 和思想。软件工程把这些相关的技术和过程统一到一个体系中, 叫“软件开发流程”,软件开发流程的目的是为了提高软件开发, 运营, 维护的效率,以及用户满意度, 可靠性,和软件的可维护性。
2、程序效能分析:首先是编写代码完成程序,保证正确性之后再进行效能分析,如何更好的,更高效的完成这一系列的操作,对代码进行不断的优化。

二、个人程序

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

#include "iostream"
#include "stdlib.h"
#include "math.h"
#include "time.h"
using namespace std;
int main()
{
	int m,x=0;
	int z=5; //z为题目数目,看情况修改即可
cout<<"请输入年级,一年级为“1”,二年级为“2”,以此类推"<<endl;
//一年级:加减运算  二年级:乘除运算   三年级:加减乘除四则运算  四年级:加入负数   五年级:加入括号
cin>>m;
cout<<"输入难度简单难度为“7”,中为“8”,难为“9”"<<endl;
//简单难度为10以内得,中等为50以内,难为100以内
cin>>x;
	switch(m){
	case(1):
		{
			switch(x){
			case(9):
				{
    int flag,a,b,score=0;
	int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%100;
        b=rand()%100;
        if(a>b)
        {
            flag=rand()%2;
            if(flag==1)
            {
                cout<<n<<" "<<a<<"+"<<b<<"="<<endl;
                x[n]=a+b;
            }
            else
            {
                cout<<n<<" "<<a<<"-"<<b<<"="<<endl;
                x[n]=a-b;
            }
        }
		else
		{ 
			cout<<n<<" "<<a<<"+"<<b<<"="<<endl;
            x[n]=a+b;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;  break;
				}
	case(7):
		{    
			int flag,a,b,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%10;
        b=rand()%10;
        if(a>b)
        {
            flag=rand()%2;
            if(flag==1)
            {
                cout<<n<<" "<<a<<"+"<<b<<"="<<endl;
                x[n]=a+b;
            }
            else
            {
                cout<<n<<" "<<a<<"-"<<b<<"="<<endl;
                x[n]=a-b;
            }
        }
		else
		{ 
			cout<<n<<" "<<a<<"+"<<b<<"="<<endl;
            x[n]=a+b;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
				}
	case(8):
		{    
			int flag,a,b,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%50;
        b=rand()%50;
        if(a>b)
        {
            flag=rand()%2;
            if(flag==1)
            {
                cout<<n<<" "<<a<<"+"<<b<<"="<<endl;
                x[n]=a+b;
            }
            else
            {
                cout<<n<<" "<<a<<"-"<<b<<"="<<endl;
                x[n]=a-b;
            }
        }
		else
		{ 
			cout<<n<<" "<<a<<"+"<<b<<"="<<endl;
            x[n]=a+b;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
				}
		}
		break;
}	
case(2):{
	switch(x){
	case(7):
	{
					int flag,a,b,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%10;
        b=rand()%10+1;
        if(a>b&&a%b==0)
        { 
			cout<<n<<" "<<a<<"/"<<b<<"="<<endl;
			x[n]=a/b;
		}
		else
		{ 
			cout<<n<<" "<<a<<"*"<<b<<"="<<endl;
            x[n]=a*b;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
	}
	case(8):
		{
								int flag,a,b,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%50;
        b=rand()%50+1;
        if(a>b&&a%b==0)
        { 
			cout<<n<<" "<<a<<"/"<<b<<"="<<endl;
			x[n]=a/b;
		}
		else
		{ 
			cout<<n<<" "<<a<<"*"<<b<<"="<<endl;
            x[n]=a*b;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
	}
	case(9):
		{
					int flag,a,b,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%100;
        b=rand()%100+1;
        if(a>b&&a%b==0)
        { 
			cout<<n<<" "<<a<<"/"<<b<<"="<<endl;
			x[n]=a/b;
		}
		else
		{ 
			cout<<n<<" "<<a<<"*"<<b<<"="<<endl;
            x[n]=a*b;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
	}
	}
			break;	}
		case(3):{
			switch(x){
			case(7):
				{int flag,a,b,c,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%10;
        b=rand()%10+1;
		c=rand()%10;
        if(a>b&&a%b==0)
        { 
			cout<<n<<" "<<a<<"/"<<b<<"+"<<c<<"="<<endl;
			x[n]=a/b+c;
		}
		else
		{ 
			cout<<n<<" "<<a<<"*"<<b<<"+"<<c<<"="<<endl;
            x[n]=a*b+c;
		}
	 cout<<"输入结果!"<<endl;
        cin>>y[n];
		 if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;        
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
					}
			case(8):
			{int flag,a,b,c,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%50;
        b=rand()%50+1;
		c=rand()%50;
        if(a>b&&a%b==0)
        { 
			cout<<n<<" "<<a<<"/"<<b<<"+"<<c<<"="<<endl;
			x[n]=a/b+c;
		}
		else
		{ 
			cout<<n<<" "<<a<<"*"<<b<<"+"<<c<<"="<<endl;
            x[n]=a*b+c;
		}
	 cout<<"输入结果!"<<endl;
        cin>>y[n];
		 if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;        
        }
		n++;
	}
			cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
			}
			case(9):
			{int flag,a,b,c,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%100;
        b=rand()%100+1;
		c=rand()%100;
        if(a>b&&a%b==0)
        { 
			cout<<n<<" "<<a<<"/"<<b<<"+"<<c<<"="<<endl;
			x[n]=a/b+c;
		}
		else
		{ 
			cout<<n<<" "<<a<<"*"<<b<<"+"<<c<<"="<<endl;
            x[n]=a*b+c;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
			}
			}
		break;}
		case(4):{
			switch(x){
			case(7):{int flag,a,b,c,d,e,f,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%10;
        b=rand()%10+1;
		c=rand()%10;
		e=rand()%10;
		d=a-c;
		f=c-e;
        if(f>b&&f%b==0)
        { 
			cout<<n<<" "<<f<<"/"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
			x[n]=f/b+d;
		}
		else
		{ 
			cout<<n<<" "<<f<<"*"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
            x[n]=f*b+d;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
					}
			case(8):{int flag,a,b,c,d,e,f,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%50;
        b=rand()%50+1;
		c=rand()%50;
		e=rand()%50;
		d=a-c;
		f=c-e;
        if(f>b&&f%b==0)
        { 
			cout<<n<<" "<<f<<"/"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
			x[n]=f/b+d;
		}
		else
		{ 
			cout<<n<<" "<<f<<"*"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
            x[n]=f*b+d;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
					}
			case(9):{
				int flag,a,b,c,d,e,f,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%100;
        b=rand()%100+1;
		c=rand()%100;
		e=rand()%100;
		d=a-c;
		f=c-e;
        if(f>b&&f%b==0)
        { 
			cout<<n<<" "<<f<<"/"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
			x[n]=f/b+d;
		}
		else
		{ 
			cout<<n<<" "<<f<<"*"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
            x[n]=f*b+d;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
					}
			}
					break;	}
				case(5):{
switch(x){
			case(7):{int flag,a,b,c,d,e,f,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%10;
        b=rand()%10+1;
		c=rand()%10;
		e=rand()%10;
		d=a-c;
		f=c-e;
        if(f>b&&f%b==0)
        { 
			cout<<n<<" "<<f<<"/"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
			x[n]=f/b+d;
		}
		else
		{ 
			cout<<n<<" "<<f<<"*"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
            x[n]=f*b+d;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
					}
			case(8):{int flag,a,b,c,d,e,f,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%50;
        b=rand()%50+1;
		c=rand()%50;
		e=rand()%50;
		d=a-c;
		f=c-e;
        if(f>b&&f%b==0)
        { 
			cout<<n<<" "<<f<<"/"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
			x[n]=f/b+d;
		}
		else
		{ 
			cout<<n<<" "<<f<<"*"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
            x[n]=f*b+d;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
					}
			case(9):{
				int flag,a,b,c,d,e,f,score=0;
			int n=0;
    int x[100],y[100];
    srand((unsigned)time(NULL));
    while(n<z)
    {
        a=rand()%100;
        b=rand()%100+1;
		c=rand()%100;
		e=rand()%100;
		d=a-c;
		f=c-e;
        if(f>b&&f%b==0)
        { 
			cout<<n<<" "<<f<<"/"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
			x[n]=f/b+d;
		}
		else
		{ 
			cout<<n<<" "<<f<<"*"<<b<<"+"<<"("<<d<<")"<<"="<<endl;
            x[n]=f*b+d;
		}
   cout<<"输入结果!"<<endl;
        cin>>y[n];
        if(y[n]==x[n])
        {
          cout<<"正确"<<endl;
		  score++;
        }
                
        else
        {
			cout<<"错误,正确结果为"<<x[n]<<endl;
            
        }
		n++;
	}
		cout<<z<<"道题结束,你的得分为"<<score<<endl;  break;
					}
						}
							break;	}
						}
cout<<"你的用时为:???"<<endl;
system ("pause");
    return 0;
}

程序图片

问题:1、中间运用switch代码太多容易看茬
2、累计时间通过百度但没找到一个比较好的办法来统计时间,没有实现
3、括号的运用不灵活

作业二

网页上传感觉更方便一点,git下完了,但是各种配置还要上传到服务器什么的,没搞明白。
网址:https://gitee.com/jianfeng8322079/software_engineering/blob/master/work2.cpp

原文地址:https://www.cnblogs.com/jianfeng8322079/p/12395992.html