软件工程概论个人作业02(四则运算2)

1、设计思想:

在四则运算1的基础上,多加了几个要求,是否有乘除法可以通过不同的选择然随机生成符号的函数有时候生成两个数字对应加减,有时候生成四个数对应加减乘除;括号没有实现;数值范围通过一个函数实现(int)(Math.random()*(m-n+1)+n)生成n~m的数字;加减有无负数在减法出负数时输出提示语句;另外求余,即把参与运算的两个数都定义为int类型,比如a,b都为int,a/b=c,若不能整除,余数等于a-c*b。

2、源程序代码:

import java.util.Random;
import java.util.Scanner;
 class Fenshu{
    static int fenzi1;
    static int fenmu1;
    static int fenzi2;
    static int fenmu2;
    public static void fenshu()//分数随机产生
    {
        Random random=new Random();
         fenmu1=(random.nextInt(10)+1);
         fenzi1=(random.nextInt(10)+1);
         fenmu2=(random.nextInt(10)+1);
         fenzi2=(random.nextInt(10)+1);
        if(fenmu1<=fenzi1||fenmu2<=fenzi2)
        {
            fenshu();
        }
        //System.out.println(fenmu1);
        //System.out.println(fenzi1);
        //System.out.println(fenmu2);
        //System.out.println(fenzi2);

    }
    public static char fuhao()//符号随机产生
    {
    char a =0;
    Random random=new Random();
    int f=random.nextInt(4);
    if(f==0)
          a=‘+‘;
    if(f==1)
          a=‘-‘;;
    if(f==2)
          a=‘*‘;
    if(f==3)
          a=‘/‘;
    return a;
    }
public static int GYS(int m, int n)   // 循环实现
      {
        int k,y;
        if(m<n)
        {
          k=m;
          m=n;
          n=k;
        }
        while(m%n!=0)
        {
         y=m%n;
         m=n;
         n=y;
        }
        return n;
      }
    public static void zhenoutput()//真分数输出
    {
        fenshu();
        char a1=fuhao();
        if(a1==‘+‘)
        {
            int jieguo1=fenmu1*fenmu2;
            int jieguo2=fenzi1*fenmu2+fenzi2*fenmu1;
            int a=GYS(jieguo1,jieguo2);
            System.out.println(fenzi1+"/"+fenmu1+"+"+fenzi2+"/"+fenmu2+"="+jieguo2/a+"/"+jieguo1/a);
        }
        if(a1==‘-‘)
        {
            int jieguo1=fenmu1*fenmu2;
            int jieguo2=fenzi1*fenmu2-fenzi2*fenmu1;
            int a=GYS(jieguo1,jieguo2);
            System.out.println(fenzi1+"/"+fenmu1+"-"+fenzi2+"/"+fenmu2+"="+jieguo2/a+"/"+jieguo1/a);
        }
        if(a1==‘*‘)
        {
            int jieguo1=fenmu1*fenmu2;
            int jieguo2=fenzi1*fenzi2;
            int a=GYS(jieguo1,jieguo2);
            System.out.println(fenzi1+"/"+fenmu1+"*"+fenzi2+"/"+fenmu2+"="+jieguo2/a+"/"+jieguo1/a);
        }
        if(a1==‘/‘)
        {
            int jieguo1=fenmu1*fenzi2;
            int jieguo2=fenzi1*fenmu2;
            int a=GYS(jieguo1,jieguo2);
            System.out.println(fenzi1+"/"+fenmu1+"/"+fenzi2+"/"+fenmu2+"="+jieguo2/a+"/"+jieguo1/a);
        }
    }
}
public class Size {

     static int n;
     static int m;
public static void main(String args[])
{

    Fenshu a=new Fenshu();
    boolean p=true;
    while(p)
    {

    Scanner in=new Scanner(System.in);
    System.out.println("1.整式计算 2.真分数计算");
    int ch=in.nextInt();
    if(ch==1)
    {
    System.out.println("请输入你要取得数值的范围:");
    Scanner in1=new Scanner(System.in);
    n=in1.nextInt();
    m=in1.nextInt();
    System.out.print("请确认你要计算的题目中是否包括乘除法:1、包括2、不包括");
    int c=in.nextInt();
    if(c==1)
    {
    System.out.println("请输入要计算的题的数量:");
    int number=in.nextInt();
    int i=0;
    while(i<number)
    {
      output();
      i++;
    }
    }
    if(c==2)
    {
         System.out.println("请输入要计算的题的数量:");
            int number=in.nextInt();
            int i=0;
            while(i<number)
            {
              output1();
              i++;
            }
    }
    }
    if(ch==2)
    {
    System.out.println("请输入要计算的题的数量:");
    int number=in.nextInt();
    int i=0;
    while(i<number)
    {
      Fenshu.zhenoutput();
      i++;
    }
    }
    }
}
public static int shuzi()//随机产生数字并且判断数值范围
    { 

        Random random=new Random();
        int a=(int)(Math.random()*(m-n+1)+n);
        //System.out.print(a);
        return a;

    }
public static void fuhao()//符号随机产生
    {
    Random random=new Random();
    int f=random.nextInt(4);
    if(f==0)
        System.out.print(‘+‘);
    if(f==1)
        System.out.print(‘-‘);
    if(f==2)
        System.out.print(‘*‘);
    if(f==3)
        System.out.print(‘/‘);
    }

public static void output()//整数计算包括乘除法
{
    //Scanner in1=new Scanner(System.in);

    int a=shuzi();
    int b=shuzi();

    Random random=new Random();

    int f=random.nextInt(4);
    if(f==0)
    {
        System.out.print(a);
        System.out.print(‘+‘);
        System.out.print(b);
        System.out.println("="+(a+b));
    }

    if(f==1)
    {
        System.out.print(a);
        System.out.print(‘-‘);
        System.out.print(b);
        System.out.println("="+(a-b));
        if(a-b<0)
        {
            System.out.println("此次计算式式子结果为负数。");
        }
    }
    if(f==2)
    {
        System.out.print(a);
        System.out.print(‘*‘);
        System.out.print(b);
        System.out.println("="+(a*b));
    }
    if(f==3)
    {
        System.out.print(a);
        System.out.print(‘/‘);
        System.out.print(b);
        int c=a/b;
        System.out.println("="+c);
        int yushu=a-c*b;
        if(yushu!=0)
        {
            System.out.println("该式子不能整除,余数为"+yushu);
        }
        if(yushu==0)
        {
            System.out.println("该式子能整除");
        }
    } 

    }
public static void output1()//整数计算不包括乘除
{
    double a=shuzi();
    double b=shuzi();

      Random random=new Random();
      int f=random.nextInt(2);
        if(f==0)
        {
            System.out.print(a);
            System.out.print(‘+‘);
            System.out.print(b);
            System.out.println("="+(a+b));
        }
        if(f==1)
        {
            System.out.print(a);
            System.out.print(‘-‘);
            System.out.print(b);
            System.out.println("="+(a-b));
            if(a-b<0)
            {
                System.out.println("此次计算式式子结果为负数。");
            }
        }
}

}

3、运行结果截图:

时间: 2024-10-09 18:03:52

软件工程概论个人作业02(四则运算2)的相关文章

软件工程概论个人作业2

老师有将上次的作业进行了功能上的升级,加入了新的功能,所以我就将我的作业设计再次展示. 程序设计思路:上次的程序设计只是简单的两个数的四则运算,不需要对运算符的种类进行筛选,这次的作业我将上次的程序设计代码,进行了重新封装,设计了一个输入数据的方法,对不同的输入数据进行不同要求的生成式子,并对程序生成的式子进行判断是否符合标准.对符合要求的式子存放在string数组中,然后在数组中的式子输出到结果即可. 程序源代码: 1 package 四则运算; 2 3 import java.util.Sc

软件工程概论-合作作业02-四则运算网页答题

题目:四则运算web版:把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目,并可实现在线答题并评判 四则运算web版的程序设计思想:之前的程序是可以用户自定义生成任意个数四则运算题目的,这次试验是要求写成web版的,用于给用户提供一一个在线答题的平台.这里需要用到Javaweb的方法,Javabean方法,jsp代码编写等方法. 源程序代码: javabean1: package DBBean; import java.sql.*; import java.util.*; public

软件工程概论个人作业03

第三次写四则运算了,这次又加了一些新的要求,简化了细节,但是在查重方面提出了更高的要求.这次也加上数据库了,存取都要在数据表中. 一.题目要求     二.程序设计思想 三.源代码 四.实验结果截图 五.反思 (1).

软件工程第一周作业----小学生四则运算题

实现功能: 1.整数和真分数的四则运算, 运算数和运算结果都可以是整数或分数: 2.能生成任意个运算数的算式(不超过100): 3.算式的个数.数的范围.运算数的个数由命令行输入: 4.不支持括号. 实现思路: 1.定义算式类,数据成员包含两个数组,分别存储运算数和算符:以及算式的结果: 方法成员包括一个初始化函数,随机生成算式并计算结果:一个输出函数,用来打印算式:以及其他辅助函数. 2.定义运算数类,数据成员包含两个整数,即分子和分母. 3.在主类里调用算式类的方法,来生成和输出算式:接受用

软件工程概论课堂作业3

题目:返回一个整数数组中最大子数组的和 要求: 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 设计思想: 用户自定义数组长度并依次输入数组元素,设一个全局变量初始化为零的数组a[N],N=10000: 1.因为该数组首尾相接可视作一个环,那么我们需要在一个合适的位置断开,把数组元素展成一条笔直的带子. (1).设用户自定义数组长度为m,输入数组各元素值a[1

软件工程概论个人作业01

一:设计思路: 1.随机产生2个0到99之间的随机数,用作运算数:随机产生1个0到3之间的数,分别代表运算符+,-,*,/. 2.if....else....语句控制输出的算式,for循环输出30道题. 3.当运算符为“/”号时,需要判断除数是否为0,如果为0,则循环次数加一. 4.为了保证随机种子的不同,需要用到srand(time(NULL))函数. 5.循环遍历已经出过的题,查看是否有重题. 二:源程序: #include<iostream> using namespace std; #

软件工程概论课堂作业1

1.网站系统开发需要掌握的技术 (1)数据库链接技术 (2)JavaBean技术 (3)Servlet技术 (4)流行框架与流行XML技术 2.本次课堂测试的源程序代码 <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><!DOCTYPE html PUBLIC "-//W3C//DTD H

软件工程概论—第一次作业

①网站系统开发需要的技术有: 一.前台美工设计:Dreamweaver.Flash.Photoshop 二.网站编程:asp.asp.net.php.Jsp.JavaScript.MYSQL ②源代码程序: 1 <!doctype html> 2 3 <html> 4 5 <head> 6 7 <meta charset="utf-8"> 8 9 <title>登录界面</title> 10 11 </hea

软件工程第一周作业----小学生四则运算题2.0

实现功能: 1.整数和真分数的四则运算, 运算数和运算结果都可以是整数或分数: 2.能生成任意个运算数的算式: 3.算式的个数.数的范围.运算数的个数由命令行输入: 4.保证生成的算式不重复; 5.支持括号. 实现思路: 1.新定义了表达式类,数据成员包含表达式的值,表达式的字符串形式,以及两个子表达式中间的算符. 方法成员包括两个构造函数,其中一个随机生成算式并计算结果,另一个是默认的,用来分配空间:一个输出函数,用来打印算式:以及其他辅助函数. 构造函数的思路:构造两个较短的子表达式,然后用