• 四则运算2


    #include <iostream>
    using namespace std;

    void Chu(int a,int b,int m2,int min,int max,int i)
    {
    do b=rand();
    while(b<min||b>max||b==0);
    if(m2==2&&a%b!=0)
    {
    do b=rand();
    while(b<min||b>max||b==0||a%b!=0);
    }
    cout<<i<<". "<<a<<"/"<<b<<"="<<endl;
    }

    void Fen(int m1,int m3,int min,int max,int i)
    {
    int a1,a2,b1,b2;
    int s2,s3,s4;
    a1=rand();
    a2=rand();
    do b1=rand();
    while ((a1/b1)<min||(a1/b1)>max||b1==0);
    do b2=rand();
    while ((a2/b2)<min||(a2/b2)>max||b2==0);
    s4=m1==1?rand()%4:rand()%2;
    if(m3==1)
    {

    s2=rand()%2;
    s3=rand()%3;
    a1=s2==1?a1*(-1):a1;
    a2=s3==1?a2*(-1):a2;
    }
    if(s4==0)
    cout<<i<<". "<<a1<<"/"<<b1<<"+"<<a2<<"/"<<b2<<"="<<endl;
    if(s4==1)
    cout<<i<<". "<<a1<<"/"<<b1<<"-"<<a2<<"/"<<b2<<"="<<endl;
    if(s4==2)
    cout<<i<<". "<<a1<<"/"<<b1<<"*"<<a2<<"/"<<b2<<"="<<endl;
    if(s4==3)
    Chu(a1/b1,a2/b2,1,min,max,i);
    }

    int main()
    {
    int a[100],b[100];
    int i,n,min,max,s1,s2,s3;
    int m1,m2,m3,m4;
    int m0;

    cout<<" ***********************************************"<<endl;
    cout<<" * *"<<endl;
    cout<<" * -------四则运算-------- *"<<endl;
    cout<<" * *"<<endl;
    cout<<" ***********************************************"<<endl<<endl;

    do{
    cout<<"请输入题目数n:"<<endl;
    cin>>n;
    cout<<"请输入四则运算数字范围:"<<endl;
    cin>>min>>max;
    cout<<"请选择是否产生乘除法算式:"<<endl<<"1.是"<<endl<<"2.否"<<endl;
    cin>>m1;
    cout<<"请选择是否产生有余数的算式:"<<endl<<"1.是"<<endl<<"2.否"<<endl;
    cin>>m2;
    cout<<"请选择是否产生有负数的算式:"<<endl<<"1.是"<<endl<<"2.否"<<endl;
    cin>>m3;
    cout<<"请选择是否产生有分数的算式:"<<endl<<"1.是"<<endl<<"2.否"<<endl;
    cin>>m4;

    for(i=1;i<=n;i++)
    {
    do a[i]=rand();
    while(a[i]<min||a[i]>max);

    do b[i]=rand();
    while(b[i]<min||b[i]>max);


    if(m1==1)
    {
    s1=rand()%4;
    if(m4==1)
    s1=rand()%5;
    }
    else s1=rand()%2;

    if(m3==1)
    {

    s2=rand()%2;
    s3=rand()%3;
    a[i]=s2==1?a[i]*(-1):a[i];
    b[i]=s3==1?b[i]*(-1):b[i];
    }

    if(s1==0)
    cout<<i<<". "<<a[i]<<"+"<<b[i]<<"="<<endl;
    if(s1==1)
    cout<<i<<". "<<a[i]<<"-"<<b[i]<<"="<<endl;
    if(s1==2)
    cout<<i<<". "<<a[i]<<"*"<<b[i]<<"="<<endl;
    if(s1==3)
    Chu(a[i],b[i],m2,min,max,i);
    if(s1==4)
    Fen(m1,m3,min,max,i);
    }

    cout<<" ***********************************************"<<endl;
    cout<<" * *"<<endl;
    cout<<" * -------四则运算-------- *"<<endl;
    cout<<" * *"<<endl;
    cout<<" ***********************************************"<<endl<<endl;
    cout<<" 请选择: "<<endl;
    cout<<" 1.开始 "<<endl;
    cout<<" 2.结束 "<<endl;
    cin>>m0;
    }
    while(m0==1);

    return 0;
    }

    编程总结:

    跟之前的设计思路不太一样,没有用全是函数,因为循环加套用函数,很麻烦,实现不了啊。。。

    然后我就把选择全放在主函数里,除法单独函数,在除法函数里判断有没有余数,负数就更简单了,直接产生随机数让两个数随机乘-1,

    分数比较麻烦,要产生四个随机数,在有除法的情况下,其中3个数不能为0,输出也得和整数分开,所以就写成个函数,把主函数里的输出修改一下放进去了,

    然后再主函数里调用就行了。基本就是这些情况吧,忘记写打印格式了。。。一开始想的挺简单,后来才发现根本完成不了,唉。。。

                                                                                                        时间记录日志

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    3/13

    10:10

    11:30

    10

    80

    听课

    软件工程概论

    11:30

    12:00

    30

    构思

    四则运算2

    13:10

    14:04

    54

    写博客

    最初思路

    3/18

    19:00

    22:38

    218

    编程

    3/19

    16:40

    17:15

    35

    写博客

    最后总结

  • 相关阅读:
    实验 7:OpenDaylight 实验——Python 中的 REST API 调用
    实验 6:OpenDaylight 实验——OpenDaylight 及 Postman实现流表下发
    实验 5:OpenFlow 协议分析和 OpenDaylight 安装
    实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
    实验 3:Mininet 实验——测量路径的损耗率
    软件工程第一次作业——自我介绍
    实验 2:Mininet 实验——拓扑的命令脚本生成
    实验1、Mininet 源码安装和可视化拓扑工具
    第01组 Beta版本演示
    第01组 Beta冲刺(4/4)
  • 原文地址:https://www.cnblogs.com/xiaowumao/p/4351041.html
Copyright © 2020-2023  润新知