您的位置:首页 > 其它

软件工程概论个人作业01

2016-03-09 19:37 344 查看
一:设计思路:

1.随机产生2个0到99之间的随机数,用作运算数;随机产生1个0到3之间的数,分别代表运算符+,-,*,/。

2.if....else....语句控制输出的算式,for循环输出30道题。

3.当运算符为“/”号时,需要判断除数是否为0,如果为0,则循环次数加一。

4.为了保证随机种子的不同,需要用到srand(time(NULL))函数。

5.循环遍历已经出过的题,查看是否有重题。

二:源程序:


#include<iostream>
usingnamespacestd;
#include<string>
#include<time.h>


voidmain()
{
srand(time(NULL));
stringmark;
intkey_one;
intkey_two;
intdividend1,divider1,dividend2,divider2;
stringresult[30];

for(inti=0;i<30;i++)
{

key_one=rand()%4;
key_two=rand()%2;

if(key_two==0)
{
dividend1=rand()%100;
divider1=rand()%100;
if(key_one==0)
{
cout<<dividend1<<"+"<<divider1<<"=?"<<endl;
result[i]=dividend1+divider1;
}
elseif(key_one==1)
{
cout<<dividend1<<"-"<<divider1<<"=?"<<endl;
result[i]=dividend1-divider1;
}
elseif(key_one==2)
{
cout<<dividend1<<"*"<<divider1<<"=?"<<endl;
result[i]=dividend1*divider1;
}
elseif(key_one==3)
{
if(divider1==0)
{
i++;
break;
}
cout<<dividend1<<"/"<<divider1<<"=?"<<endl;
result[i]="dividend/divider";
}
else
cout<<"Pleasetryagain!"<<endl;
}
if(key_two==1)
{
dividend1=rand()%100;
divider1=rand()%100;
dividend2=rand()%100;
divider2=rand()%100;
if(key_one==0)
{
cout<<dividend1<<"/"<<divider1<<"+"<<dividend2<<"/"<<divider2<<"=?"<<endl;
}
elseif(key_one==1)
{
cout<<dividend1<<"/"<<divider1<<"-"<<dividend2<<"/"<<divider2<<"=?"<<endl;
}
elseif(key_one==2)
{
cout<<"("<<dividend1<<"/"<<divider1<<")"<<"*"<<"("<<dividend2<<"/"<<divider2<<")"<<"=?"<<endl;
}
elseif(key_one==3)
{
if(divider1==0||divider2==0)
{
i++;
break;
}
cout<<"("<<dividend1<<"/"<<divider1<<")"<<"/"<<"("<<dividend2<<"/"<<divider2<<")"<<"=?"<<endl;
}
else
cout<<"Pleasetryagain!"<<endl;
}
}
}



三:结果截图:





四:上课未按时完成作业的原因:

没有认真思考问题,盲目的敲代码,思路不清晰,只是想一步写一步,一旦出错只能从头查找修改,浪费了大量的时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: