软件工程课后作业——用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++项目出现了问题,耽误了很长时间!      此程序还有很多不足,希望大家批评指教!
时间: 2024-10-24 20:28:27

软件工程课后作业——用JAVA编写的随机产生30道四则运算的相关文章

软件工程课堂练习-随机生成30道四则运算练习题

习题要求:随机生成30道四则运算题 以下是程序代码: 1 #include "stdafx.h" 2 #include "stdio.h" 3 #include "time.h" 4 #include "stdlib.h" //随机器函数头文件 5 6 void print() 7 { 8 srand((int)time(0)); 9 for(int i=0;i<=29;i++) 10 { 11 int x; 12 in

随机生成30道四则运算-NEW

补充:紧跟上一个随机生成30道四则运算的题目,做了一点补充,可以有真分数之间的运算,于是需要在原来的基础上做一些改进. 首先指出上一个程序中的几个不足:1.每次执行的结果都一样,所以不能每天给孩子出30道一样的题吧!2.没有考虑,如果随机出的是除法,且除数为0的情况.3.没有实现生成真分数的四则运算的功能. 经过分析,决定依次进行改进: 针对问题1:在程序中设置时间种子,即可使得每次程序运行的结果不同. 针对问题2:当判断要生成除法运算时,做一个判断,若除数为0,则重新生成. 针对问题3:定义一

随机产生30道四则运算(C语言)

利用自己熟悉的语言别写一段程序,要求能随机产生30道四则运算的算数题 以下是程序代码: 1 #include "stdafx.h" 2 #include "stdio.h" 3 #include "math.h" 4 #include "stdlib.h" //随机器函数头文件 5 6 void print() 7 { 8 for(int i=0;i<=29;i++) 9 { 10 int x; 11 int a=ran

随机输出30道四则运算题

题目要求:随机输出30道小学二年级四则运算题. 思路:用for循环实现数量30道,rand函数产生随机数,switch语句加0到3的随机数实现四种运算的随机输出,if语句添加限制条件,用取余方式限制运算数.结果不超过100,除法不出现分数等,以符合小学二年级的实际水平. 编写过程中,在写if语句添加限制条件时,不符合条件的不知道如何实现跳转,出现了数量不足30道的情况,后通过程序中定义的整型 i 自减实现. 代码如下: #include<iostream.h>#include <stdl

随机生成30道四则运算题目

1.题目要求:随机生成30到四则运算题,其中不能超过2位运算,包含真分数. 2.设计思路 (1)先随机产生四个数,前两个数用作整数的四则运算,然后前两个数再作为第一个分数,后两个数作为第二个分数. (2)利用switch\case函数分别对每种情况进行表示,利用除以7的余数表示8中不同的情况,前四种表示整数的加减乘除运算,后四种表示分数的加减乘除运算. (3)利用for循环产生30个运算式. 3.程序代码: //2016/3/3 王宗泽 #include<iostream> #include&

随机生成30道四则运算题

思路:首先随机生成两个操作数.将运算符存到数组c中,随机生成0-3的整数作为数组下标.即相当于随机产生运算符. 利用for循环输出30道四则运算题 #include<iostream.h>#include<stdlib.h>int main(){     int a,b,d,i;     char c[4]={'+','-','*','/'};     for(i=0;i<30;i++)     {           a=int(rand()%11);           

随机生成30道四则运算

设计思路: 1.生成随机数 ①找到生成随机数函数 ②控制随机数产生的范围 ③输出随机数 2.解决随机运算符问题 ①用生成的随机数除4取余加1得1,2,3,4四个数(分别表示+,-,*,/四个符号) ②运用switch输出符号 3.真分数的解决 ①分子小于分母 ②生成的分子随机数小于分母随机数 4.真分数和整数运算同时输出 ①再运用一次随机函数,用1和2分别代表整数和真分数 代码: //随机生成30个1~99的加减乘除运算,包括真分数#include<iostream>#include<t

第一次课上作业——编写程序,输出30道四则运算题

一.设计思路 1.首先完成一个四则运算的出题程序,其次运用循环的方式完成30道题2.首先使用随机函数生成四则运算中的第一个数的随机数,随机数要求是整数和真分数,其他的数不支持 2.1.首先生成一个随机数,取值为1或2,以此来确定四则运算中第一个随机数应该是整数还是真分数.若随机数为1则为整数,若随机数为2则为真分数.. 2.2.若为四则运算中的数为真分数,则随机生成两个数,作为分子和分母,并使得分母大于分子. 3.使用随机函数生成四则运算中的第二个数的随机数,此随机数的要求以及操作同第二步 4.

随机的30道四则运算题(简单的c)

#include <stdio.h>#include <stdlib.h>#include <time.h> int main(void){ int i = 0; srand((unsigned)time(NULL)); //本地时间为种子 while(i<30) { int a = rand()%100; //产生随机数 int b = rand()%100; int j;   j = rand()%4; //产生随机符号0到3分别代表四则运算 printf(&