150314 解决老师给二柱子出的问题 之 ver1.0
一个晚上的成果,效果捉鸡,代码很乱。暂定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已发 |