軟件工程課后作業——用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++項目出現了問題,耽誤了很長時間!
此程序還有很多不足,希望大家批評指教!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM