一、题目要求
要求编写一道程序,随机给出30道四则运算题,可以是整数运算,也包括真分数的运算。
二、设计思路
1、 随机产生一个1-100的整数,使用随机函数。
2、 随机产生一个运算符,运算符有四种,可以用0、1、2、3分别代表一个运算符。
3、 随机产生0、1、2、3四个数
4、 随机产生第二个整数。
5、 循环30次,最后结果用“第一个数”+“运算符”+“第二个数”+“=”的形式表示。
6、 随机产生一个真分数,用随机产生的两个整数加上“/”符号组成真分数。
7、 随机产生第二个真分数。
8、 将四则运算分为:整数和整数运算、整数和真分数运算、真分数和整数运算、真分数和真分数运算。也用0、1、2、3分别表示
9、 随机产生四则运算。
三、源代码
//姓名:黄山成班级:信-1301-1 功能:随机产生道四则运算题,数字为整数或真分数。
#include<iostream>
using namespace std;
#include <time.h>
void proper(int a,int b)//显示真分数的函数
{
if(a>b)
{
cout<<b<<"/"<<a;
}
else if(a<b)
{
cout<<a<<"/"<<b;
}
else
{
cout<<1;
}
}
void main()
{
int figure_1,figure_2,figure_3,figure_4,c;
char operators;
srand((unsigned)time(NULL));
for(int i=0;i<30;i++)
{
figure_1=rand()%100+1;
figure_2=rand()%100+1;
figure_3=rand()%100+1;
figure_4=rand()%100+1;
c=rand()%4;
switch(c)
{
case 0:operators='+';break;
case 1:operators='-';break;
case 2:operators='*';break;
case 3:operators='/';break;
}
switch(c){
case 0:cout<<figure_1<<" "<<operators<<" "<<figure_2<<" ="<<endl;break;
case 1:
proper(figure_1,figure_2);
cout<<" "<<operators<<" ";
proper(figure_3,figure_4);
cout<<" ="<<endl;
break;
case 2:
cout<<figure_1<<" "<<operators<<" (";
proper(figure_3,figure_4);
cout<<") ="<<endl;
break;
case 3 :
cout<<"(";
proper(figure_3,figure_4);
cout<<")";
cout<<" "<<operators<<" "<<figure_1<<" ="<<endl;
break;
}
}
}
四、用时
最初用时2个小时,后来不断地完善程序,总用时5个小时。
五、总结
这次编写代码的最大的收获就是老师所说的“拆减法”,当遇到一个完全不会的程序时,可能无从下手,但一定要逐个拆分,将问题缩小,简单化,然后再整合这些小的问题。这是我们目前编程的最大的问题,所以以后一定要经常使用这种方法。程序编写的时间有点长,但是,这次收获颇深,感悟颇多。而且有一个很关键的地方,就是要静下心来认真的思考问题,而不能做完一点之后就走开,放弃,要坚持。