小学四则运算改进

      第一次写的太过简单,想做改进。本来的想法是做一个递归的生成混合运算,但是过于复杂。

      所以只随机生成一次算符,添加了真分数的内容,在算式必要的地方加了括号,数值范围控制在100以内。比较第一次,编程时低级错误少多了。

 

  第一周 第二周 第三周 第四周 第五周 第六周
时间(包括上课) 5h 5h        
代码量 100 150        
博客量 1 1        
了解的知识点 随机数生成 switch的用法        

 

 

 

 

 

 

#include "iostream.h"
#include "time.h"
#include <stdlib.h>
#define N 30


void randop(int &a);
void randnum(int &a,int &b);

void main(){
int opnum=0,i,a,b=0;
srand((unsigned)time(NULL));
for(i=N;i>1;i--){
randop(opnum);
switch(opnum){
case 0: { randnum(a,b);
if(b==0) cout<<a<<"+";
if(b!=0) cout<<b<<"/"<<a<<"+";
randnum(a,b);
if(b==0) cout<<a<<"="<<endl;
if(b!=0) cout<<b<<"/"<<a<<"="<<endl;;
}; break;
case 1:{ randnum(a,b);
if(b==0) cout<<a<<"-";
if(b!=0) cout<<b<<"/"<<a<<"-";
randnum(a,b);
if(b==0) cout<<a<<"="<<endl;;
if(b!=0) cout<<b<<"/"<<a<<"="<<endl;;
}; break;
case 2:{
randnum(a,b);
if(b==0) cout<<a<<"*";
if(b!=0) cout<<"("<<b<<"/"<<a<<")"<<"*";
randnum(a,b);
if(b==0) cout<<a<<"="<<endl;;
if(b!=0) cout<<"("<<b<<"/"<<a<<")"<<"="<<endl;
}break;
case 3:{
randnum(a,b);
if(b==0) cout<<a<<"/";
if(b!=0) cout<<"("<<b<<"/"<<a<<")"<<"*";
randnum(a,b);
if(b==0) cout<<a<<"="<<endl;
if(b!=0) cout<<"("<<b<<"/"<<a<<")"<<"*"<<endl;
}break;

}
}

}

 

 

void randop(int &a)
{
a=rand()%4;
}

void randnum(int &a,int &b){
if(rand()%2==0)
{
a=rand()%100;
b=rand()%a;
}
else{
a=rand()%100;
}
}

 

posted @ 2016-03-14 19:02  非战斗人员  阅读(174)  评论(1编辑  收藏  举报