四则运算出题器(c++)

一、设计思路

这次版本加入了一下功能:

可定制题目的数量:修改循环次数;

可以定制每行打印的题目数和行间距的大小(当前题目序号可以整除定制数时输出输入的行间距个换行符);

可以定制算式的范围(修改随机数的最大值);

可以选择有无乘除法(没有乘除法即修改符号的情况,有四种改为两种);

可以选择减法中得数是否可以为负(不要负数的情况即比较减式中俩数大小,大数放前面)。

二、代码

  1 #include<iostream.h>

  2 #include<stdlib.h>

  3 #include<time.h>

  4 int main()

  5 {

  6     int Ques1=1;

  7     int Ques2=1;

  8     int Ques3=100;

  9     char Ques4='y';

 10     int Ques5=1;

 11     char Ques6='n';

 12     char Ques7='n';

 13 Again:

 14     cout<<"请输入题目数量:";

 15     cin>>Ques1;

 16     cout<<"请输入每行打印题目数(1-5):";

 17     cin>>Ques2;

 18     cout<<"请输入算式中数值的最大值:";

 19     cin>>Ques3;

 20     while(1)

 21     {

 22         cout<<"运算中需要乘除法吗?y:需要;n:不需要";

 23         cin>>Ques4;

 24         cout<<"减法运算需要有负数吗?y:需要;n:不需要";

 25         cin>>Ques7;

 26         cout<<"行间距(正整数):";

 27         cin>>Ques5;

 28         srand(time(NULL));

 29         if(Ques4=='y')

 30         {

 31             while(1)

 32             {

 33                 if(Ques1<1)

 34                 {

 35                     cout<<"输入有误,请重新输入:";

 36                     cin>>Ques1;

 37                 }

 38                 else

 39                 {

 40                     for(int j=0;j<Ques1;j++)

 41                     {

 42                         if(j!=0&&j%Ques2==0)

 43                         {

 44                             for(int i=0;i<Ques5;i++)

 45                             {

 46                                 cout<<endl;

 47                             }        

 48                         }

 49                         int num1=rand()%Ques3;

 50                         int num2=rand()%Ques3;

 51                         int sign=rand()%4;

 52                         switch(sign)

 53                         {

 54                         case 0:

 55                             cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";

 56                             break;

 57                         case 1:

 58                             if(Ques7=='y')

 59                             {

 60                                 cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";

 61                             }

 62                             else

 63                             {

 64                                 if(num1>num2)

 65                                 {

 66                                     cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";

 67                                 }

 68                                 else

 69                                 {

 70                                     cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";

 71                                 }

 72                             }

 73                             break;

 74                         case 2:

 75                             cout<<j+1<<":"<<" "<<num1<<"*"<<num2<<"="<<"\t";

 76                             break;

 77                         case 3:

 78                             if(num2!=0)

 79                             {

 80                                 cout<<j+1<<":"<<" "<<num1<<"/"<<num2<<"="<<"\t";

 81                             }

 82                             else

 83                             {

 84                                 j--;

 85                             }

 86                             break;

 87                         }

 88                     }

 89                     break;

 90                 }

 91             }

 92             break;

 93         }

 94         if(Ques4=='n')

 95         {

 96             while(1)

 97             {

 98                 if(Ques1<1)

 99                 {

100                     cout<<"输入有误,请重新输入:";

101                     cin>>Ques1;

102                 }

103                 else

104                 {

105                     for(int j=0;j<Ques1;j++)

106                     {

107                         if(j!=0&&j%Ques2==0)

108                         {

109                             for(int i=0;i<=Ques5;i++)

110                             {

111                                 cout<<endl;

112                             }

113                         }

114                         int num1=rand()%Ques3;

115                         int num2=rand()%Ques3;

116                         int sign=rand()%2;

117                         switch(sign)

118                         {

119                         case 0:

120                             cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";

121                             break;

122                         case 1:

123                             if(Ques7=='y')

124                             {

125                                 cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";

126                                 break;

127                             }

128                             else

129                             {

130                                 if(num1>num2)

131                                 {

132                                     cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";

133                                     break;

134                                 }

135                                 else

136                                 {

137                                     cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";

138                                     break;

139                                 }

140                             }

141                             break;

142                         }

143                     }

144                 }

145                 break;

146             }

147             break;

148         }

149         

150         else

151         {

152             cout<<"输入有误,请按要求输入!"<<endl;

153         }

154     }

155     cout<<endl;

156     while(1)

157     {

158         cout<<"还需要继续出题还是退出?(y:继续出题;n:退出)";

159         cin>>Ques6;

160         if(Ques6=='y')

161         {

162             goto Again;

163         }

164         if(Ques6=='n')

165         {

166             goto Exit;

167         }

168         else

169         {

170             cout<<"输入有误,请重新输入:";

171         }

172     }

173 Exit:

174     return 0;

175 }

 

三、运行结果

四则运算出题器(c++)

四、实验总结

  在这次试验中,我发现了我不会使用函数,导致所有的代码都是在主函数中完成的,看上去很乱,还有对文件的读写也不明白,要想把这个程序做得更好,我接下来还要继续看课本,找资料。

你可能感兴趣的:(四则运算)