zoukankan      html  css  js  c++  java
  • 软件工程个人作业02

    设计思想:

    1,定义二维数组,生成随机数后在数组内进行依次比较从而避免重复

    2,循环体终止条件可定义从而可以定义数量

    3,控制生成符号的随机数从而控制有没有乘除法

    4,控制生成随机数从而控制数值范围

    5,定义全局变量控制加减有无负数,控制随机数的生成范围

    6,通过全局变量控制是否有余数生成,在除法部分进行判断

    程序源代码:

      1 #include<iostream>
      2 #include<time.h>
      3 using namespace std;
      4 
      5 void output(int a,int b,int c,int d,int e)
      6 {
      7     for(int i=a;i>1;i--)
      8     {
      9         if(a%i==0&&b%i==0)
     10         {
     11             a=a/i;
     12             b=b/i;
     13             break;
     14         }
     15     }
     16     for(int i=c;i>1;i--)
     17     {
     18         if(c%i==0&&d%i==0)
     19         {
     20             c=c/i;
     21             d=d/i;
     22             break;
     23         }
     24     }
     25     switch(e)
     26     {
     27            case 0:cout<<"("<<a<<"/"<<b<<")"<<"+"<<"("<<c<<"/"<<d<<")"<<"=?";break;
     28            case 1:cout<<"("<<a<<"/"<<b<<")"<<"-"<<"("<<c<<"/"<<d<<")"<<"=?";break;
     29            case 2:cout<<"("<<a<<"/"<<b<<")"<<"*"<<"("<<c<<"/"<<d<<")"<<"=?";break;
     30            case 3:cout<<"("<<a<<"/"<<b<<")"<<"/"<<"("<<c<<"/"<<d<<")"<<"=?";break;
     31     }
     32 }
     33 void main()
     34 {
     35     int z[30][3],x[30][5],m;
     36     int cheng=1,kuo,ma,mi,jia=1,yu=1,amount;
     37     cout<<"请定义以下参数:";
     38     cout<<"生成多少个式子?";
     39     cin>>amount;
     40     cout<<"是否有乘除法?(0没有1有)";
     41     cin>>cheng;
     42     cout<<"数值范围?(最大和最小)";
     43     cin>>ma;
     44     cin>>mi;
     45     cout<<"加减有无负数?(1可以有0不能有)";
     46     cin>>jia;
     47     cout<<"除法有无余数?(可以有0没有)";
     48     cin>>yu;
     49     srand((unsigned)time(NULL));//产生随机种子
     50     for(int i=0;i<amount;i++)
     51     {
     52         cout<<"题目"<<i+1<<"为:";
     53         int e=rand()%2;//两种情况,当为0时为整数四则运算,当为一时为真分数
     54      if(e==0)
     55      {
     56         int a=rand()%ma+mi;
     57         int b=rand()%ma+mi;
     58         int c=rand()%4;//产生加减乘除四种情况
     59         if(i>1)
     60         {
     61             while(m==1)
     62             {
     63                 for(int n=0;n<i;n++)
     64                 {
     65                     if(z[i][1]==z[n][1]&&z[i][1]==z[n][2]&&z[i][2]==z[n][2])
     66                     {
     67                         int a=rand()%ma+mi;
     68                         int b=rand()%ma+mi;
     69                         int c=rand()%4;
     70                         n=0;
     71                     }
     72                     if()
     73                 }
     74             }
     75         }
     76         z[i][1]=a;
     77         z[i][2]=b;
     78         z[i][3]=c;
     79         if(cheng==0)
     80         {
     81             c=rand()%2;
     82         }
     83         switch(c)
     84         {
     85             case 0: cout<<a<<"+"<<b<<"=?";break;
     86         
     87             case 1: if(jia==0)
     88                     {
     89                         while((a-b)<0)
     90                         {
     91                            srand((unsigned)time(NULL));
     92                            b=rand()%ma+mi;
     93                         }
     94                     }
     95                     cout<<a<<"-"<<b<<"=?";break;
     96             case 2: cout<<a<<"*"<<b<<"=?";break;
     97         
     98             case 3:
     99                 if(yu==0)
    100                 {
    101                     while(a%b!=0)
    102                     {
    103                     srand((unsigned)time(NULL));
    104                     b=rand()%100;
    105                     }
    106                 }
    107                 while(b==0)//去掉分母为零的情况
    108                     {
    109                     srand((unsigned)time(NULL));
    110                     b=rand()%100;
    111                     }
    112                     cout<<a<<"/"<<b<<"=?";
    113          
    114         }
    115         cout<<endl;
    116      }
    117      else
    118      {
    119         int a=rand()%100;
    120         int b=rand()%100;
    121         int d=rand()%100;
    122         int e=rand()%100;
    123 
    124         int c=rand()%4;
    125 
    126         if(cheng==0)
    127         {
    128             c=rand()%2;
    129         }
    130         if(b==0)//去掉分母为零的情况
    131         {
    132           b=rand()%100;
    133         }
    134         if(e==0)
    135         {
    136           e=rand()%100;
    137         }
    138         if(a>b)//调整为真分数
    139         {
    140             int x;
    141             x=a;
    142             a=b;
    143             b=x;
    144         }
    145         if(d>e)//调整为真分数
    146         {
    147             int x;
    148             x=e;
    149             e=d;
    150             d=x;
    151         }
    152         switch(c)
    153         {
    154             case 0: output(a,b,d,e,c);break;
    155         
    156             case 1: 
    157                 if(jia==0)
    158                     {
    159                         while((double(a/b)-double(d/e))<0)
    160                         {
    161                            srand((unsigned)time(NULL));
    162                            a=rand()%100;
    163                            d=rand()%100;
    164                         }
    165                     }
    166                 output(a,b,d,e,c);break;
    167          
    168             case 2: output(a,b,d,e,c);break;
    169         
    170             case 3: output(a,b,d,e,c);break;
    171          
    172         }
    173         cout<<endl;
    174      }
    175     }
    176 }

    运行结果截图:

    psp 0级项目计划日志:

    日期 课堂(分钟) 读书(分钟) 博客(分钟) 编程(分钟) 日总结(分钟)
    周一 120 40   30 190
    周二   40     40
    周三       30 30
    周四          
    周五          
    周六     60 40 100
    周日   40 60 120 220
    周总结 120 120 120 220 580

    事件记录日志:

    时间名称 开始时间 结束时间 汇总时间
    上课 周一上午八点 周一上午十点 两小时
    阅读

    周一下午三点

    周二下午四点十五

    周一下午四点

    周二下午五点

    一个小时四十五分钟
    写博客 周日下午四点 周日下午六点 两个小时
    编程

    周日下午三点

    周三晚上七点

    周日下午五点

    周三晚上九点

    四小时
    汇总     九小时四十五分钟

    缺陷记录日志:

    日期 编号 类型 引入 排除 修复时间 修复
    周二 1 随机数生成的范围控制     5 在生成随机数加上输入的数字范围
    周日 2 随机生成的分数显示出来要是最简模式     20 另外定义函数执行分数的输出部分

    仍然存在的问题:不能解决重复还有括号的问题

  • 相关阅读:
    C# DataSet与DataTable的区别和用法
    黑马程序员_ADO.Net(ExecuteReader,Sql注入与参数添加,DataSet,总结DataSet与SqlDataReader )
    CSS中a标签样式的“爱恨”原则
    外部调用JS文件时出现中文乱码的解决办法
    #nav li:hover ul 与#nav li a:hover ul 的区别
    css sprites介绍
    CSS样式优化
    网站页面常用的尺寸
    display:inline、block、inline-block 的区别
    CSS文档流
  • 原文地址:https://www.cnblogs.com/sisi-job/p/5295539.html
Copyright © 2011-2022 走看看