个人项目1——自动生成四则运算

  题目要求:自动生成30个小学四则表达式,要求两数在100以内。

  思路:首先要生成两个100以内的随机数,然后随机产生运算符,那么该怎么产生运算符呢?可以用数字0-3来表示,因此就可以用一个随机数除以4取余,另外要注意,除数不能为0,做减法运算时要注意被减数大于减数。

  具体代码如下:

 1 //这是张晓菲的第一个作业,目的是自动生成30个四则运算
 2 //2016/3/3
 3 
 4 #include <iostream>
 5 #include <cmath>
 6 using namespace std;
 7 
 8 //main函数
 9 void main()
10 {
11     int ran1,ran2,oper;
12     for(int i=0;i<30;i++)
13     {
14         ran1=rand()%100;//产生第一个随机数
15         ran2=rand()%100;//产生第二个随机数
16         oper=rand()%4;//oper用来决定进行什么四则运算
17         switch(oper)
18         {
19         case 0:
20             cout<<ran1<<"+"<<ran2<<"="<<endl;//进行加运算
21             break;
22         case 1:
23             cout<<ran1<<"*"<<ran2<<"="<<endl;//进行乘运算
24             break;
25         case 2:
26             if(ran1<ran2)
27             {
28                 int x=ran1;
29                 ran1=ran2;
30                 ran2=x;
31             }//判断被减数是否大于减数,如果不大于,则将两者交换位置,目的是避免出现负数
32             cout<<ran1<<"-"<<ran2<<"="<<endl;
33             break;
34         case 3:
35             if(ran2==0)
36                 ran2=rand()%100;//判断除数是否为0,如果是,则重新生成
37             else 
38                 cout<<ran1<<"/"<<ran2<<"="<<endl;//进行除运算
39         }
40     }
41 }

  测试结果如下:

  总结:感觉老师上课说的一句话特别有道理,原话我记不住,但是大概意思是,理工科的学生如果有不会的题了,那就对题目进行分解,分解成几个小块,然后再一个小块一个小块的解决,编程序也是这样,如果刚拿到题的时候不会写,那就先将题目进行分解,最后分解到分解不了的时候,问题就解决了。其他的问题就是一些函数怎么用,语句怎么写的问题了,这些都是自己的问题了,解决起来不难。

原文地址:https://www.cnblogs.com/quite-love/p/5240031.html