软件工程课后作业——用JAVA编写的随机产生30道四则运算
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.运行结果:
3.上课未完成原因:
(1)根本原因:对c,c++,java等语言不熟练,忘记了随机函数怎么用,甚至连最基本的语法都忘了,说来惭愧!
(2)客观原因:对编程软件使用不熟练,在VS2010中创建C++项目出现了问题,耽误了很长时间!
此程序还有很多不足,希望大家批评指教!