一个晚上的成果,效果捉鸡,代码很乱。暂定ver1.0
//Powered by LZR! 2015.3.14
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define random(x) (rand()%x)
using namespace std;
void main()
{
int a[200];
int num,numgroup,cc,zf,ys,fs,zj;
int max,min,range;
int f,m,n,i,p=0;
int error=0;
int x,z,y=1;
int c=0,d=0;
cout<<"请输入题目数:"<<endl;
cin>>num;
cout<<"请输入几道题一组:"<<endl;
cin>>numgroup;
cout<<"是否有乘除法?(请输入1或0)"<<endl;
cin>>cc;
if(cc==1) {cout<<"除法是否余数?(请输入1或0)"<<endl;cin>>ys;}
do{
cout<<"请输入范围->下限和上限:(同样约束分子分母)"<<endl;//范围错误判断
cin>>min>>max;
}while(max<min);
range=max-min;
cout<<"加减法是否负数?(请输入1或0)"<<endl;
cin>>zf;
cout<<"是否分数?(请输入1或0)"<<endl;
cin>>fs;
if(fs==1)
{
cout<<"真假分数?(请输入1或0)"<<endl;
cin>>zj;
}
srand((int)time(0));
for(x=0;x<num;x++)
{
f=random(100)%4;
if(cc==0) f=f%2;
m=min+random(range);
n=min+random(range);
if(fs==1 && zj==1)
{
while( c==0 || d==0 || c<m || d<n)
{
c=min+random(range);
d=min+random(range);
}
}
if(fs==1 && zj==0)
{
while(c==0 || d==0 || c>m || d>n)
{
c=min+random(range);
d=min+random(range);
}
}
while(n==0 && f==3) //0不能做除数
n=min+random(range);
if(ys==0 && cc==1 && f==3 && m%n!=0) x--;//除法余数
else
{
if(zf==1 && (f==0 || f==1))//加减法正负数
{
z=random(100)%4;
if(z==0) m=-1*m;
if(z==1) n=-1*n;
if(z==3) {m=-1*m;n=-1*n;}
}
a[x]=m*1000+f*100+n;//题目重复(非绝对,重复率极低极低)
for(i=0;i<x;i++)
if(a[x]==a[i]) error=1;
if(error!=1)
{cout<<y++<<". ";
cout<<m;
if(fs==1 && m%c!=0) cout<<"/"<<c;
if(f==0) cout<<"+";
if(f==1) cout<<"-";
if(f==2) cout<<"*";
if(f==3) cout<<"/";
cout<<n;
if(fs==1 && n%d!=0) cout<<"/"<<d;
cout<<"="<<endl;
p++;
if(p==numgroup) {p=0;cout<<endl<<endl;}
}
else
{
error=0;
x--;
}
}
}
}
日期 |
开始时间 |
结束时间 |
中断时间 |
净时间 |
活动 |
备注 |
3.13 |
11:00 |
12:00 |
0 |
60min |
构思 |
无 |
3.14 |
18:00 |
20:30 |
30min |
120min |
实现 |
第一版搞定 |
3.19 |
17:00 |
17:03 |
0 |
3min |
写这个表格 |
代码3.14已发 |