软件工程实验一:
——编程随机生成30个四则运算,算数包括100以内的整数和真分数。
实验思路:先利用rand()函数随机生成两个算数,包括100以内的整数和真分数,生成100以内的整数,用rand()%100,为了避免在除法运算中除数不能为零,所以运算符右边的整数直接用1+rand()%99;在随机生成真分数时,我先生成两个整数,来充当分子和分母,同样分母不能为零,用1+rand()%99。加减乘除四则运算有整数与整数之间的运算,分数与分数之间的运算,整数和分数之间的运算,分数和整数之间的运算,一共有16种情况,先随机生成一个整数,然后除以16取余数,余数一共有16种情况,作为switch 语句中的事件,来随机生成一个四则运算,再用一个for循环生成30个四则运算。
1 #include<iostream> 2 #include<stdlib.h> 3 #include<time.h> 4 using namespace std; 5 void main() 6 { 7 int Num_1,Num_2,i,j,a,b; //定义两个整数变量Num_1,Num_2,在四则运算时做100以内的整数算数,定义i,a为整型,做真分数的分子,定义j,b为整型,做真分数的分母。 8 int x,y; //定义整型x,y,x为siwtch,case语句中的事件,y随机生成一个数。 9 srand((unsigned)time(NULL));//运用srand函数设立随机种子,让种子和当前时间有关,避免每次生成的随机数相同。 10 for(int k=0;k<30;k++) //运用for循环,共循环30次,生成30随机运算。 11 { 12 Num_1=rand()%100; //运用rand()函数随机生成100以内的整数。 13 Num_2=1+rand()%99; //运用rand()函数生成1到100以内的整数,作为第二个运算数,避免在除法运算中0的出现。 14 i=rand()%100; //用于随机生成第一个真分数的分子。 15 j=1+rand()%99; //用于随机生成第一个真分数的分母。 16 a=rand()%100; //用于随机生成第二个真分数的分子。 17 b=1+rand()%99; //用于随机生成第二个真分数的分母。 18 y=1+rand(); //随机生成一个整数,用于除以15取余 19 x=y%16; //把取得的余数赋给x,整数和整数之间的四则运算,分数之间的四则运算,整数和分数之间的四则运算,分数和整数之间的四则运算 20 switch(x) //运用siwtch,case语句进行条件判断,随机生成。 21 { 22 case 0:cout<<Num_1<<"+"<<Num_2<<"="<<endl;break;//case0到case3是整数和整数之间的四则运算 23 case 1:cout<<Num_1<<"-"<<Num_2<<"="<<endl;break; 24 case 2:cout<<Num_1<<"*"<<Num_2<<"="<<endl;break; 25 case 3:cout<<Num_1<<"/"<<Num_2<<"="<<endl;break; 26 case 4:if(i<j) //case4到case7是分数和分数之间的四则运算 27 { 28 if(a<b) 29 {cout<<"("<<i<<"/"<<j<<")"<<"+"<<"("<<a<<"/"<<b<<")"<<"="<<endl;} 30 else 31 {cout<<"("<<i<<"/"<<j<<")"<<"+"<<"("<<b<<"/"<<a<<")"<<"="<<endl;} 32 } 33 else 34 { 35 cout<<"("<<j<<"/"<<i<<")"<<"+"<<"("<<a<<"/"<<b<<")"<<"="<<endl; 36 } 37 break; 38 case 5:if(i<j) 39 { 40 if(a<b) 41 {cout<<"("<<i<<"/"<<j<<")"<<"-"<<"("<<a<<"/"<<b<<")"<<"="<<endl;} 42 else 43 {cout<<"("<<i<<"/"<<j<<")"<<"-"<<"("<<b<<"/"<<a<<")"<<"="<<endl;} 44 } 45 else 46 { 47 cout<<"("<<j<<"/"<<i<<")"<<"-"<<"("<<a<<"/"<<b<<")"<<"="<<endl; 48 } 49 break; 50 case 6:if(i<j) 51 { 52 if(a<b) 53 {cout<<"("<<i<<"/"<<j<<")"<<"*"<<"("<<a<<"/"<<b<<")"<<"="<<endl;} 54 else 55 {cout<<"("<<i<<"/"<<j<<")"<<"*"<<"("<<b<<"/"<<a<<")"<<"="<<endl;} 56 57 } 58 else 59 { 60 cout<<"("<<j<<"/"<<i<<")"<<"*"<<"("<<a<<"/"<<b<<")"<<"="<<endl; 61 } 62 break; 63 case 7:if(i<j) 64 { 65 if(a<b) 66 {cout<<"("<<i<<"/"<<j<<")"<<"/"<<"("<<a<<"/"<<b<<")"<<"="<<endl;} 67 else 68 {cout<<"("<<i<<"/"<<j<<")"<<"/"<<"("<<b<<"/"<<a<<")"<<"="<<endl;} 69 70 } 71 else 72 { 73 cout<<"("<<j<<"/"<<i<<")"<<"/"<<"("<<a<<"/"<<b<<")"<<"="<<endl; 74 } 75 break; 76 case 8:if(i<j) //case8到case11是分数和整数之间的四则运算 77 cout<<i<<"/"<<j<<"+"<<Num_2<<"="<<endl; 78 else 79 cout<<j<<"/"<<i<<"+"<<Num_2<<"="<<endl; 80 break; 81 case 9:if(i<j) 82 cout<<i<<"/"<<j<<"-"<<Num_2<<"="<<endl; 83 else 84 cout<<j<<"/"<<i<<"-"<<Num_2<<"="<<endl; 85 break; 86 case 10:if(i<j) 87 cout<<i<<"/"<<j<<"*"<<Num_2<<"="<<endl; 88 else 89 cout<<i<<"/"<<j<<"*"<<Num_2<<"="<<endl; 90 break; 91 case 11:if(i<j) 92 cout<<i<<"/"<<j<<"/"<<Num_2<<"="<<endl; 93 else 94 cout<<i<<"/"<<j<<"/"<<Num_2<<"="<<endl; 95 break; 96 case 12:if(a<b) //case12到case15是分数和整数之间的四则运算 97 cout<<Num_1<<"+"<<"("<<a<<"/"<<b<<")"<<"="<<endl; 98 else 99 cout<<Num_1<<"+"<<"("<<b<<"/"<<a<<")"<<"="<<endl; 100 break; 101 case 13:if(a<b) 102 cout<<Num_1<<"-"<<"("<<a<<"/"<<b<<")"<<"="<<endl; 103 else 104 cout<<Num_1<<"-"<<"("<<b<<"/"<<a<<")"<<"="<<endl; 105 break; 106 case 14:if(a<b) 107 cout<<Num_1<<"*"<<"("<<a<<"/"<<b<<")"<<"="<<endl; 108 else 109 cout<<Num_1<<"*"<<"("<<b<<"/"<<a<<")"<<"="<<endl; 110 break; 111 case 15:if(a<b) 112 cout<<Num_1<<"/"<<"("<<a<<"/"<<b<<")"<<"="<<endl; 113 else 114 cout<<Num_1<<"/"<<"("<<b<<"/"<<a<<")"<<"="<<endl; 115 break; 116 } 117 } 118 }