四则运算1

四则运算1

一、题目:写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。

二、程序设计思想:

通过产生随机数生成百以内的int类型数据,判断是否重复:定义一个String类型数组,将生成的算式保存,每次输出之前先验证是否存在,如果存在则不输出

三、源程序代码:

  1 package demo;

  2 

  3 import java.util.*;

  4 

  5 public class Random {

  6     @SuppressWarnings("resource")

  7     public static void main(String args[])

  8     {

  9         Scanner sc = new Scanner(System.in);

 10         int num;

 11         System.out.println("请输入需要生成的个数。");

 12         num = sc.nextInt();

 13         String[] s = new String[100];//保存已有的运算式

 14         int ss = 0;//运算式个数计数

 15         char[] ch = new char[4];

 16         ch[0] = '+';

 17         ch[1] = '-';

 18         ch[2] = '*';

 19         ch[3] = '/';

 20         int a,b,a1,b1;

 21         double A,B,A1,B1;

 22         int k;

 23         String str;

 24         int flagA = 0,flagB = 0;//判断是否用真分数。

 25         for(int i = 0;i < num;i ++)

 26         {

 27             flagA = SuiJileixing();

 28             flagB = SuiJileixing();

 29             if(flagA == 1 && flagB == 1)

 30             {

 31                 a = SuiJi1();

 32                 b = SuiJi1();

 33                 k = SuiJiyunsuanfu();

 34                 str = a + " " + ch[k] + " " + b + " = ";

 35                 if(Check(s,str,ss) != 1)

 36                 {

 37                     s[ss] = str;

 38                     System.out.print(s[ss]);

 39                     A = (double)a;

 40                     B = (double)b;

 41                     show(A,B,k);

 42                     ss ++;

 43                 }

 44             }

 45             else if(flagA == 1 && flagB == 0)

 46             {

 47                 a = SuiJi1();

 48                 b = SuiJi1();

 49                 b1 = SuiJi1() + 1;

 50                 if(b < b1)

 51                 {

 52                     b = b;

 53                 }

 54                 else 

 55                 {

 56                     b1 = b1 + b;

 57                 }

 58                 k = SuiJiyunsuanfu();

 59                 str = a + " " + ch[k] + " (" + b + "/" + b1 + ") = ";

 60                 if(Check(s,str,ss) != 1)

 61                 {

 62                     s[ss] = str;

 63                     System.out.print(s[ss]);

 64                     A = (double)a;

 65                     B = (double)b;

 66                     B1 = (double)b1;

 67                     show(A,B/B1,k);

 68                     ss ++;

 69                 }

 70             }

 71             else if(flagA == 0 && flagB == 1)

 72             {

 73                 a = SuiJi1();

 74                 a1 = SuiJi1() + 1;

 75                 b = SuiJi1();

 76                 if(a > a1)

 77                 {

 78                     a1 = a + a1;

 79                 }

 80                 k = SuiJiyunsuanfu();

 81                 str = "(" + a + "/" + a1 + ") " + ch[k] + " " + b + " = ";

 82                 if(Check(s,str,ss) != 1)

 83                 {

 84                     s[ss] = str;

 85                     System.out.print(s[ss]);

 86                     A = (double)a;

 87                     A1 = (double)a1;

 88                     B = (double)b;

 89                     show(A/A1,B,k);

 90                     ss ++;

 91                 }

 92             }

 93             else

 94             {

 95                 a = SuiJi1();

 96                 a1 = SuiJi1() + 1;

 97                 b = SuiJi1();

 98                 b1 = SuiJi1() + 1;

 99                 if(a > a1)

100                 {

101                     a1 = a + a1;

102                 }

103                 if(b > b1)

104                 {

105                     b1 = b + b1;

106                 }

107                 k = SuiJiyunsuanfu();

108                 str =  "(" + a + "/" + a1 + ") " + ch[k] + " " + b + "/" + b1 + " = ";

109                 if(Check(s,str,ss) != 1)

110                 {

111                     s[ss] = str;

112                     System.out.print(s[ss]);

113                     A = (double)a;

114                     A1 = (double)a1;

115                     B = (double)b;

116                     B1 = (double)b1;

117                     show(a/a1,b/b1,k);

118                     ss ++;

119                 }

120             }

121 

122             

123             

124         }

125         

126     }

127     

128     public static int SuiJi1()

129     {

130         int a;

131         a = (int)(Math.random()*100);

132         return a;

133     }

134     public static int SuiJiyunsuanfu()

135     {

136         int a;

137         a = (int) (Math.random()*4);

138         return a;

139     }

140     public static int Check(String s[],String str,int ss)

141     {

142         int qqq = 0;

143         for(int i = 0;i < ss;i ++)

144         {

145             if(str.equals(s[ss]))

146             {

147                 qqq = 1;

148                 break;

149             }

150         }

151         return qqq;

152     }

153     public static int SuiJileixing()

154     {

155         int flag = (int)(Math.random()*2);

156         return flag;

157     }

158     public static void show(double a,double b,int k)

159     {

160         if(k == 0)

161         {

162             System.out.println(a + b);

163         }

164         if(k == 1)

165         {

166             System.out.println(a - b);

167         }

168         if(k == 2)

169         {

170             System.out.println(a * b);

171         }

172         if(k == 3)

173         {

174             System.out.println(a / b);

175         }

176     }

177 }

四、运行结果截图: 

 

原文地址:https://www.cnblogs.com/fychen0302/p/7008923.html