您的位置:首页 > 其它

课堂作业第三周

2015-03-18 10:32 267 查看
题目要求:1 题目避免重复

2 可定制(数量/打印方式)

3 可控制下列参数:

是否有乘除法,数值范围,加减有无负数,除法有无余数,是否支持分数(真分数,假分数)

思路:用随机数生成两个数,将两个数分别存入两个数组,每出一道题都与以前的每组进行对比,如果两个数分别都与以前的相同,则重新产生两个随机数。设置参数,用for循环控制出题数量。并且可以控制每行的输出题目的个数。设置参数,用if来判断是否有乘除法。由于用roud()函数产生随机数所以用变量控制数值范围。随机数生成后进行判断,若无负数则要求第一个随机数必须大于第二个否则重新产生。若不产生余数,则让计算机进行判断,无法整除的则跳过。

日期开始时间结束时间中断时间净时间活动备注
3/1410:0011:1010分钟1小时查阅资料,思考题目翻看以前的程序
15:3017:001个半小时进行初步编写规划写出题目避免重复
3/159:0011:0030分钟1个半小时编写出乘除法,加法的程序和同学聊天,寻找思路
16:0017:001个小时编写是否有无余数
3/1616:0017:001个小时编写加减有无负数修改错误
3/1810:0011:001个小时调试,修改bug
3/1912:0013:0020分钟40分钟进行最后的调试,编写文档
代码

#include<iostream>
#include <iomanip>
#include<cmath>
using namespace std;
void main()
{
int i,j,m,n,k,g=0,h,w,a[1000],b[1000],e,p,t,l,f,d,v,x,u=0;
cout<<"请输入出题数目"<<endl;
cin>>m;

cout<<"请输入数值范围"<<endl;
cin>>n;
cout<<"请输入每行题目的个数:1-5"<<endl;
cin>>x;
cout<<"1 有乘除 2 无乘除"<<endl;
cin>>w;
if(w==1){
cout<<"1 无余数 2 有余数"<<endl;
cin>>v;}
cout<<"1 无负数 2 有负数"<<endl;
cin>>t;

for(i=0;i<1000;i++)
{a[i]=0;b[i]=0;
}

for(p=0;p<m;p++)
{
if(t==1)
{
k=rand()%n+1;
j=rand()%n+1;}
else{
l=rand()%2+1;
f=pow(-1.0,l);
d=pow(-1.0,l);
k= f*rand()%n+1;
j= d*rand()%n+1;
}
e=0;
if(v==1&&w==1&&k%j!=0)
{
m=m+1;}
else{

if(t==1&&k<j)
{
m=m+1;}

else{
if(j==0)
{m=m+1;
}
else{

for(i=0;i<1000;i++)
{
if(a[i]==k&&b[i]==j)
{ e=1;
m=m+1;}
}
if(e==0)
{
g=g+1;
for(i=g-1;i<g;i++)
{ a[i]=k;
b[i]=j;
}

if(w==1){

h=rand()%4+1;

}
else{

h=rand()%2+1;
}

if(h==1)
cout<<setiosflags(ios::right)<<setw(8)<<k<<"+ "<<j<<"="<<" ";
if(h==2)
cout<<setiosflags(ios::right)<<setw(8)<<k<<"- "<<j<<"="<<" ";
if(h==3)
cout<<setiosflags(ios::right)<<setw(8)<<k<<"* "<<j<<"="<<" ";
if(h==4)
cout<<setiosflags(ios::right)<<setw(8)<<k<<"/ "<<j<<"="<<" ";

u=u+1;
if(u%x==0)
cout<<endl;

}

}
}}

}
}


总结

通过这次编程,我知道了编程前策划的重要性,还有要和同学们相互交流沟通可以拓展自己的思路,寻找灵感,特别是当你遇到瓶颈时,要多看资料。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: