zoukankan      html  css  js  c++  java
  • 四则运算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 }

    四、运行结果截图: 

     

  • 相关阅读:
    ajax专题
    luogu P1346 电车 最短路
    luogu P1462 通往奥格瑞玛的道路 最短路
    luogu P1328 生活大爆炸版石头剪刀布
    luogu P1315 联合权值 枚举
    luogu P1156 垃圾陷阱 背包问题
    luogu P1217 回文质数 枚举
    luogu P3650 滑雪课程设计 枚举
    luogu1209 修理牛棚 贪心
    luogu P1223 排队接水 贪心
  • 原文地址:https://www.cnblogs.com/fychen0302/p/7008923.html
Copyright © 2011-2022 走看看