软件工程个人作业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 另外定义函数执行分数的输出部分

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

原文地址:https://www.cnblogs.com/sisi-job/p/5295539.html