软件工程课后作业——用JAVA编写的随机产生30道四则运算
 package com.java.sizeyunsuan;
 public class lianxi {
     String f()
     {
         int i=(int)(Math.random()*10);
         int j=(int)(Math.random()*10);
         if(i>=j)
         {
             int temp=i;
             i=j;
             j=temp;
         }
         return("("+i+"/"+j+")");
     }
     public static void main(String[] args)
     {
         String a,b;
         int k;
         lianxi lianxi=new lianxi();
         for(int n=0;n<30;n++)
         {
             a=lianxi.f();
             b=lianxi.f();
             int i=(int)(Math.random()*100);
             int j=(int)(Math.random()*100);
             switch((int)(Math.random()*4))
             {
             case 0:
               k=(int)(Math.random()*3);
                 if(k==0)
                    System.out.println(i+"+"+j+"=");
                 else if(k==1)
                    System.out.println(a+"+"+j+"=");
                 else if(k==2)
                        System.out.println(b+"+"+a+"=");
                 break;
             case 1:
                 k=(int)(Math.random()*3);
                 if(i<j)
                 {
                     int temp=i;
                     i=j;
                     j=temp;
                 }
                     if(k==0)
                         System.out.println(i+"-"+j+"=");
                     else if(k==1)
                         System.out.println(j+"-"+a+"=");
                     else if(k==2)
                         System.out.println(b+"-"+a+"=");
               break;
             case 2:
                 k=(int)(Math.random()*3);
                    if(k==0)
                        System.out.println(i+"*"+j+"=");
                     else if(k==1)
                        System.out.println(a+"*"+j+"=");
                     else if(k==2)
                            System.out.println(b+"*"+a+"=");
               break;
             case 3:
             while(j==0)
               j= (int)(Math.random()*100);
               System.out.println(i+"/"+j+"=");
               break;
               }
         }
     }
 }
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++项目出现了问题,耽误了很长时间!
此程序还有很多不足,希望大家批评指教!
软件工程课后作业——用JAVA编写的随机产生30道四则运算的更多相关文章
- 随机生成30道四则运算-NEW
		
补充:紧跟上一个随机生成30道四则运算的题目,做了一点补充,可以有真分数之间的运算,于是需要在原来的基础上做一些改进. 首先指出上一个程序中的几个不足:1.每次执行的结果都一样,所以不能每天给孩子出3 ...
 - 随机的30道四则运算题(简单的c)
		
#include <stdio.h>#include <stdlib.h>#include <time.h> int main(void){ int i = 0; ...
 - 随机生成30道四则运算题NEW
		
代码: #include <iostream> #include <time.h> using namespace std; void main() { srand((int) ...
 - 软件工程课后作业——四则运算Ⅲ(C++)
		
一.设计思路 题目:可以答题并判断对错,最后显示做对几道题. 在原有的基础上,又拓展了答题模块. 在结构体中添加了answer属性,把输入的答案与正确答案比较,若相等则计数加一. 二.源代码 (1)四 ...
 - Java编写一个随机产生小学生四则运算题30道
		
//注:这个程序还没有实现的地方为分数的计算方法未能实现,只是简单的两个数运算,没有实现多个数,四则运算中的数没有涉及0. package 课堂测试1; import java.io.File; im ...
 - 软件工程随堂作业--随机产生30到四则运算(c语言)
		
#include "stdio.h" #include "math.h" #include "stdlib.h" #include" ...
 - 30道四则运算题目---课堂作业--软件工程c++
		
问题:设计一程序,给二年级小学生随机产生四则运算题目. 一.设计思考问题: 1.四则运算需要俩个运算数和一个运算符. 2.如何产生随机数? 3.如何实现随机产生四则运算? 4.题目是否符合小学生学习范 ...
 - Java——自动生成30道四则运算---18.09.27
		
package chuti;import java.io.PrintWriter;import java.util.Scanner;import java.io.FileNotFoundExcepti ...
 - 00-JAVA语法基础--课后作业
		
题目:像二柱子那样,花20分钟写一个能自动生成30道小学四则运算题目的“软件”. package 课堂作业1; import java.util.Random; import java.util.Sc ...
 
随机推荐
- Button的图像位置设置
			
[button setImageEdgeInsets:UIEdgeInsetsMake(2, 70, 2,70 )]; [button setImageEdgeInsets:UIEdgeInsetsM ...
 - C puzzles详解【31-33题】
			
第三十一题 The following is a simple C program to read and print an integer. But it is not working proper ...
 - HLS入门收集(1)
			
使用HLS各种问题 关于求指数函数 exp(x) 在HLS中使用exp(x),也就是指数函数.不能导出RTL到EDK也就是Pcore 只能导出为VIVADO IP:相关解释:见官方论坛 http:/ ...
 - [leetcode]_Valid Sudoku
			
中间被启程日本的面试弄的没有静下心来复习算法.这样不好,基本功是硬道理.逐步恢复刷题. 题目:给一个数独(九宫格)中的一些数字,判断该数独是否有效. 即按照数独的规则,判断其行.列.小九格中是否有重复 ...
 - ansible的playbook组件
			
playbook的核心元素: tasks: 任务 variables: 变量 templates: 模板 handlers: 处理器 roles: 角色 组织格式:YAML(被称为另外一种标记语言) ...
 - Fragment的创建以及与activity的参数传递
			
点击下面不同的TextView变化不同的Fragment avtivity与Fragment之间传递消息不能使用构造器传递,用bunder传递 首先写一个含有FrameLayout(这个布局最佳),里 ...
 - DELPHI 使用dbexpress控件连接MySQL数据库方法
			
1. 在窗体上放置4个控件: SQLConnection1,SimpleDataSet1,DataSource1,DBGrid (注意: 如果 出现"Operation not allowe ...
 - WebService IIS 部署
			
刚刚开始接触c#怎么发布程序都搞不定,经过查看网上同仁的资料,自己写了个Webservice发布了下 1.首先自己写好程序,鼠标选中所写Webservice程序,单击鼠标右键-------->发 ...
 - [terry笔记]ArchiveLog归档日志激增解决思路
			
归档日志激增的危害是巨大的,最严重的结果就是数据库无法正常工作,导致整个系统无法正常工作,其次就算数据库可以正常工作,但激增的归档会对磁盘产生大量消耗,导致性能下降. 归档日志激增一般是因 ...
 - oracle11g 新特性 - rman自动备份控制文件延迟
			
OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 -6 ...