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

    设计思路:

    将乘除法有无余数和加减有无负数封装成两个独立的函数,主函数进行调度。

    截图:

     

    程序代码:

    
    

    #include<iostream>
    #include<ctime>
    using namespace std;
    void sz()
    {
        int f;//数的范围
        cout<<"请输入数的上限:例:(0~99)输入100"<<endl;
        cin>>f;   
        int x,y,z,t;   //x,y分别表示两个数,z控制加减乘除
        int e;//控制每行输出的道数
        srand(time(NULL));//避免重复
        int n;
        int b;//负数的处理
        int a;//行间距
        cout<<"请输入题的道数;"<<endl;
        cin>>n;     
        cout<<"加减有无负数(0有,1无)"<<endl;
        cin>>b;
        cout<<"请输入每行需要打印的题数:"<<endl;
        cin>>e;
        cout<<"请输入行间距:"<<endl;
        cin>>a;
       
        cout<<"********************************"<<endl;
        for(int i=0;i<n;i++)
        {
            x=rand()%f;
            y=rand()%f;
            z=rand()%4;
            switch(z)
            {
            case 0:
                cout<<i+1<<"、 "<<x<<"+"<<y<<"="<<"     ";
                break;
               
            case 1:
                if(b==1)
                {
                if(x<y)
                {
                    t=x;
                    x=y;
                    y=t;
                }
                cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
                break;
                }
                else if(b==0)
                {
                cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
                }
            case 2:
                cout<<i+1<<"、 "<<x<<"*"<<y<<"="<<"     ";
                break;
            case 3:
                if(y!=0)
                {
                cout<<i+1<<"、 "<<x<<"/"<<y<<"="<<"     ";
                }
                else
                {
                    i=i-1;
                }
                break;
            default:
                cout<<"超出测试范围"<<endl;
                break;
            }
            if((i+1)%e==0)
            {
                for(int c=0;c<=a;c++)
                {
                    cout<<endl;
                }
            }
            if((i+1)==n)
            {
                cout<<endl;
            }
        }
    }

    
    

    void sz1()
    {
          int f;//数的范围
        cout<<"请输入数的上限:例:(0~99)输入100"<<endl;
        cin>>f;   
        int x,y,z,t;   //x,y分别表示两个数,z控制加减乘除
        int e;//控制每行输出的道数
        srand(time(NULL));//避免重复
        int n;
        int b;//负数的处理
        int a;//行间距
        cout<<"请输入题的道数;"<<endl;
        cin>>n;     
        cout<<"加减有无负数(0有,1无)"<<endl;
        cin>>b;
        cout<<"请输入每行需要打印的题数:"<<endl;
        cin>>e;
        cout<<"请输入行间距:"<<endl;
        cin>>a;
        cout<<"********************************"<<endl;
        for(int i=0;i<n;i++)
        {
            x=rand()%f;
            y=rand()%f;
            z=rand()%2;
            switch(z)
            {
            case 0:
                cout<<i+1<<"、 "<<x<<"+"<<y<<"="<<"     ";
                break;
            case 1:
                if(b==1)
                {
                if(x<y)
                {
                    t=x;
                    x=y;
                    y=t;
                }
                cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
                }
                else if(b==0)
                {
                    cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
                }
                break;
            default:
                cout<<"超出测试范围"<<endl;
                break;
            }
            if((i+1)%e==0)
            {
                for(int c=0;c<=a;c++)
                {           
                    cout<<endl;
                }
            }
            if((i+1)==n)
            {
                cout<<endl;
            }
        }
    }

    
    


    int main()
    {

    
    

        char ch;
        cout<<"是否支持乘除:(Y/N)"<<endl;
        cin>>ch;
        if(ch=='Y'||ch=='y')
        {
            sz();   
            cout<<"********************************"<<endl;
        }
       
        else if(ch=='N'||ch=='n')
        {
            sz1();
            cout<<"********************************"<<endl;
        }
        else
        {
            cout<<"输入错误,无法为您出题!"<<endl;
        }
       
        return 0;
    }

     

     代码行数:

    171行

    个人体会:

    本次实验对于我是极大的挑战,除了乘除余数的问题、加减法有无负数、控制台输出控制(行,道数),避免重复,其他要求基本没实现,总的来说,是基础太差,编程量较少。对书本的知识掌握潦潦草草。

  • 相关阅读:
    leetcode8.字符串转换整数(atoi)
    leetcode7、整数反转
    leetcode6.Z字形变换
    leetcode5.最长回文子串
    leetcode4.寻找两个正序数组的中位数
    leetcode3. 无重复字符的最长子串
    leetcode 2.两数相加
    leetcode 1. 两数之和
    post&get请求总结
    oracle知识总结
  • 原文地址:https://www.cnblogs.com/zjj123456/p/5269553.html
Copyright © 2011-2022 走看看