软件工程概论作业01

软件工程作业01

写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。

思路:随机生成两个数进行计算,设立一个随机的参量用来判断是生成整数还是分数;生成分数时先生成分母,然后将分子的上限设置为分母,这样就会生成真分数;

package demo;
import java.util.Random;
import java.util.Scanner;
public class work {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
      int a,b;
      char c;
      int MAX=100;
      int MIN=1;
      char max[]={‘+‘,‘-‘,‘/‘,‘*‘};
     Random random1=new Random();//随即一个整数
     Random random2=new Random();//随机另一个整数
     Random random3=new Random();//随机符号
     Random random4=new Random();//随机生成的类型分数或整数
     Random random5=new Random();//随机分母
     Random random6=new Random();//随机分子

     System.out.println("请输入要生成的式子的数量");
     Scanner input=new Scanner(System.in);
     int number=input.nextInt();
     for(int i=0;i<number;i++)
     {
         int choice=random4.nextInt(3)%(3-1+1)+1;
         if(choice==1)
         {
            a=random1.nextInt(MAX)%(MAX-MIN+1)+MIN;
            b=random2.nextInt(MAX)%(MAX-MIN+1)+MIN;
            c=max[random3.nextInt(4)];
            System.out.print(a+""+c+""+b+"=");
            System.out.println(a+b);
         }//两个整数
         if(choice==2)
         {

                a=random5.nextInt(MAX)%(MAX-2+1)+2;
                b=random6.nextInt(a)%(a-MIN+1)+MIN;
                int a1=random5.nextInt(MAX)%(MAX-2+1)+2;
                int b1=random6.nextInt(a1)%(a1-MIN+1)+MIN;
                c=max[random3.nextInt(4)];
                double aa=(double) a;
                double bb=(double) b;
                double b11=(double) b1;
                double a11=(double) a1;
                double p=aa/bb;
                double q=a11/b11;
                double p1=p+q;
                System.out.print("("+b+"/"+a+")"+c+"("+b1+"/"+a1+")"+"=");

                System.out.println(p1);

         }//两个分数
         if(choice==3)
         {
             a=random1.nextInt(MAX)%(MAX-MIN+1)+MIN;
             int a1=random5.nextInt(MAX)%(MAX-2+1)+2;
              int b1=random6.nextInt(a1)%(a1-MIN+1)+MIN;
              c=max[random3.nextInt(4)];
             double aa=(double) a;
             double b11=(double) b1;
            double a11=(double) a1;
             double p=b11/a11;
             double q=aa+p;

               System.out.print(a+""+c+"("+b1+"/"+a1+")"+"=");

              System.out.println(q);
         }
     }
    }

}
时间: 03-03

软件工程概论作业01的相关文章

软件工程概论作业02

这周,我们上了软件工程概论第三节课,终于体会到的程序员的不易,作业一次比一次难,老师提出的要求越来越多,就像未来的客户一样,要求永远无止境. 这次还在上次的要求上提出了新的要求,要求可选择整数还是分数,可指定范围,不可重复. 可怜的二柱子同学,老师又对他的自动出题系统提出了新的要求: 可以控制下列参数: 是否有乘除法: 是否有括号(最多可以支持十个数参与计算): 数值范围: 加减有无负数: 除法有无余数! 日期 开始时间 结束时间 中断时间 净时间 活动 备注 C U 3/10 14:00 16

软件工程概论作业03

这一周,老师有提出了新的要求. 1.生成随机数,整数的和分数的,分数的用字符串表示,单独写一个分数类,分子分母,写出分数加减乘除的方法. 2.生成随机运算符数组,每道题最多有10个运算数,所以最多有9个运算符. 3.生成表达式,用控制语句选择要生成的表达式. 3.结果的处理,是分数的要化简. package demo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatem

软件工程概论作业

设计思路: 1.定义类node,变量有node类型root ,left,right以及string类型weight 2.初始化函数(以一个新节点为当前节点,根节点为null),设置一个计数器flag=0 2.1初始化weight值,随机数字或符号(若i>=3则必为数将算式限定在10个数以内) 2.11若weight值为符号则i++且调用此初始化函数,(以left为当前节点,本函数中节       点为根节点.) 2.12若weight为符号则i++且调用此初始化函数,(以right为当前节点,本

软件工程结对作业01

一.题目: 结对项目开发-四则运算四 把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目,并可实现在线答题并评判. 注:这是一个两人结对开发的项目,开发人员:曾凯    刘雨鑫 二.程序设计思想: (1)功能分析: 1.这是一个可以在线答题的web版四则运算程序,用户可以通过设点一些参数来生成题目,然后回答这些题目,提交后程序检查回答的正确性,然后将题目的回答情况通过页面显示的方式反馈给用户. 2.由于参数设置导致交互不太方便,用户需要考虑参数如何搭配,由此实现按照年级答题,用户只需要

软件工程个人作业01

一.题目: 像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 "软件",要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性).题目避免重复.可定制出题的数量.(有能力者改编成网页版) 1.设计思想:了解题目要求,进行相关的定义与程序编写,再进行验证. 2.源代码: //韩迪的出题算法//2017/3/6 package dijia;import java.util.Random;import java.util.Scanner; public class

软件工程概论作业(1)

1.网站系统开发需要掌握的技术 至少掌握asp.asp.net.php.Jsp一种编程语言和MSSQL或者MYSQL数据库 2.课堂测试的源程序代码 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="

软件工程概论作业03--将随机产生的表达式导入数据库

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Random; import java.util.Scanner; import java.util.Stack; public class Size { publ

软件工程概论作业三

设计思想:构造如下几个类:试题类(class ShiTi): 属性:运算式.运算式结果.运算式逻辑运算顺序和运算数个数 公共方法:各个属性的set/get方法, setTiMu方法中在设置了题目属性后立即设置运算数的个数并执行计算运算式结果的函数 在计算运算式结果的函数中,利用堆栈将运算式转换为后缀表达式进行计算, 每计算一个子表达式就将该表达式的运算数加上产生该运算数的子表达式的序号用's'分隔(例如运算式为1 + 2 + 4 则第一个子表达式的运算数为1s0,2s0,第二个子表达式为3s1,

软件工程概论-作业02

1.要求:写一个能自动生成三十道小学四则运算题目的 "软件",要求:除了整数以外,还要支持真分数的四则运算.题目避免重复.可定制出题的数量. 2.思路: 1)产生随机数choose,1或2,1表示生成整数表达式,2表示生成分数表达式,并用一个字符串数组存储表达式便于打印输出(长度由用户输入): 2)用一个字符数组存储"+ - * ÷"等符号,取符号则生成随机数0-3: 3)若choose为1,random生成两个整数作为表达式的左操作数和右操作数,并随机产生操作符: