• 随机四则运算2程序


    #include<iostream> #define N    100 using namespace std;

    struct fenshu {int x;int y;int z;};

    int gongyueshu(int a,int b) {  int c=a;  while(b!=0)  {   c=a%b;   a=b;   b=c;  }  return a; } int main() {  cout<<"直接生成的是支持假分数、支持正负、支持加减乘除、范围在0-225之间无重复的题"<<endl;  cout<<endl<<"请输入题量及每行题数:"<<endl;  int sum,col,fuhao[N];  cin>>sum>>col;  int a,b,c;

     fenshu fir[N],sec[N];  for(int i=0;i<sum;i++)  {   a=rand()%100;   while(a==0)   {a=rand()%100;}   b=rand()%100;   while(b==0)   {b=rand()%100;}   if(b>a)   {c=a;a=b;b=c;}   c=rand()%256;   int yueshu;   yueshu=gongyueshu(a,b);   fir[i].x=b/yueshu;   fir[i].y=a/yueshu;   if(rand()%2==1)    fir[i].z=c*(-1);   else    fir[i].z=c;   fuhao[i]=rand()%4;  }  for(int i=0;i<sum;i++)  {   a=rand()%100;   while(a==0)   {a=rand()%100;}   b=rand()%100;   while(b==0)   {b=rand()%100;}   if(b>a)   {c=a;a=b;b=c;}   c=rand()%255;   int yueshu;   yueshu=gongyueshu(a,b);   sec[i].x=b/yueshu;   sec[i].y=a/yueshu;   if(rand()%2==1)    sec[i].z=c*(-1);   else    sec[i].z=c;   for(int j=0;j<i;j++)   {    if(fuhao[j]==fuhao[i])    {     if(fir[j].x==sec[j].x&&fir[j].y==sec[j].y&&fir[j].z==sec[j].z)     {i--;continue;}    }   }  }  for(int i=0;i<sum;i++)  {   cout<<"("<<fir[i].z<<" "<<fir[i].x<<"/"<<fir[i].y<<")  ";   if(fuhao[i]==0)    cout<<"+  ";   if(fuhao[i]==1)    cout<<"-  ";   if(fuhao[i]==2)    cout<<"*  ";   if(fuhao[i]==3)    cout<<"/  ";   cout<<"("<<sec[i].z<<" "<<sec[i].x<<"/"<<sec[i].y<<")          ";   if((i+1)%col==0)    cout<<endl;  }

    }

         本来是想写成按照选择的条件生成运算题的,但是越想越晕,感觉有好多参数,写着写着自己就不知道什么参数代表什么了,干脆就全部删了,写了直接生成能控制打印方式,避免重复,支持分数,支持加减乘除且有范围的程序。

         跟当初的设想差距不大。

        (1)创建了struct fenshu来存放分数的整数部分、分子和分母,并控制分母不能为0,还创建函数公约数来将分子分母化成最简形式。

       (2)符号是存在正想数组中的整数,控制输出就可以了。

       (3)避免重复是每当生成一个算式就按照生成的运算符号判断,如果符号一样就判断生成的两个数是不是一样,一样则重新生成。

       (4)生成正负号通过随机生成0和1控制是否乘以-1

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    3/13

    11:30

    12:00

    0

    30

    设置程序的布局和思路

    3/18

    14:00

    18:00

    10

    240

    重新构思编程修改

    3/19

    17:00

    18:00

    50

    10

    实验截图,上传博客

  • 相关阅读:
    jquery 删除cookie失效的解决方法
    SQL Server 抛出自定义异常,由C#程序俘获之并进行相应的处理
    SqlServer中的自增的ID的最后的值:
    Stream/Bytes[]/Image对象相互转化
    TextBox禁止复制粘贴和数字验证,小数验证,汉字验证
    扩展WPF的DataGrid按方向键移动焦点
    WPF 中获取DataGrid 模板列中控件的对像
    IIS设置文件 App_Offline.htm 网站维护
    IIS设置文件 Robots.txt 禁止爬虫
    js中的整除运算
  • 原文地址:https://www.cnblogs.com/xiangwo/p/4348502.html
Copyright © 2020-2023  润新知