四则运算

四则运算

 1 package com.java.sizeyunsuan;

 2

 3 public class lianxi {

 4     String f()

 5     {

 6         int i=(int)(Math.random()*10);

 7         int j=(int)(Math.random()*10);

 8         if(i>=j)

 9         {

10             int temp=i;

11             i=j;

12             j=temp;

13         }

14         return("("+i+"/"+j+")");

15     }

16     public static void main(String[] args)

17     {

18         String a,b;

19         int k;

20         lianxi lianxi=new lianxi();

21         for(int n=0;n<30;n++)

22         {

23             a=lianxi.f();

24             b=lianxi.f();

25             int i=(int)(Math.random()*100);

26             int j=(int)(Math.random()*100);

27             switch((int)(Math.random()*4))

28             {

29             case 0:

30               k=(int)(Math.random()*3);

31                 if(k==0)

32                    System.out.println(i+"+"+j+"=");

33                 else if(k==1)

34                    System.out.println(a+"+"+j+"=");

35                 else if(k==2)

36                        System.out.println(b+"+"+a+"=");

37                 break;

38             case 1:

39                 k=(int)(Math.random()*3);

40                 if(i<j)

41                 {

42                     int temp=i;

43                     i=j;

44                     j=temp;

45                 }

46                     if(k==0)

47                         System.out.println(i+"-"+j+"=");

48                     else if(k==1)

49                         System.out.println(j+"-"+a+"=");

50                     else if(k==2)

51                         System.out.println(b+"-"+a+"=");

52               break;

53             case 2:

54                 k=(int)(Math.random()*3);

55                    if(k==0)

56                        System.out.println(i+"*"+j+"=");

57                     else if(k==1)

58                        System.out.println(a+"*"+j+"=");

59                     else if(k==2)

60                            System.out.println(b+"*"+a+"=");

61               break;

62             case 3:

63             while(j==0)

64               j= (int)(Math.random()*100);

65               System.out.println(i+"/"+j+"=");

66               break;

67               }

68         }

69     }


70 }
1.设计思路:此题目为随机产生30道四则运算,首先要产生随机数,我先写了一个函数用来随机生成一个真分数,然后在主函数中调用这个函数获取它的返回值,然后又利用Random()产生两个二位的随机整数,然后利用Swich分支结构分别实现加减乘除,随机产生0,1,2,3,分别代表加减乘除。
需要注意:(1)考虑到小学生没有学过负数,所以在进行减法时,假如出现被减数大于减数,则将两数交换,再进行减法;
         (2)考虑到除数不能为0,假如除数为0,则再产生一个随机数,利用while循环;
         (3)在每个运算中又用if-else结构分了多种情况,其中除法情况太多并且复杂,没有一一实现,日后会多加改善。
2.运行结果:

 

 

posted @ 2017-12-01 19:12  浪花98  阅读(123)  评论(0编辑  收藏  举报