四则运算项目(java实现)

要求

1.后台输入数字n(1-100),输出n道四则运算并计算结果;

2.每道四则运算包含任意两种符号(+,-,*,/);

3.随机产生运算符号、运算数字。(Math.Random());

附加

1.运算过程中不能产生负数;

 2.后台输入n时,如何判断是否满足要求,如果不满足如何进行提示。 ( 如果输入a、10000、-3?不满足要求怎么办?)

法一:

package java_test;

/**
 * @author : Liangll
 * @time : 2018/4/6 22:51
 */

import java.util.Scanner;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import java.util.Random;

public class TestRandom {
    public static void main(String[] args) throws Exception{
        try{
            System.out.print("请输出题目总数(n的范围为1-100):");
            Scanner input = new Scanner(System.in);
            int n = input.nextInt();
            if(n < 0 || n > 100){
                System.out.println("输入错误");
                return;
            }
            for(int i = 0;i < n;i++){
                //运算符随机数组
                char[] c ={'+','-','*','/'};
                //随机函数
                Random random = new Random();
                //得到一个随机运算符下标
                int idx1 = random.nextInt(c.length);
                //得到一个随机运算符下标
                int idx2 = random.nextInt(c.length);
                // 拼接运算表达式
                String str = "" + random.nextInt(100) + c[idx1] + random.nextInt(100) + c[idx2] +  random.nextInt(100);
                // 输出表达式
                System.out.print(str + " = ");
                //创建一个ScriptEngineManager对象
                ScriptEngineManager manager = new ScriptEngineManager();
                //通过ScriptEngineManager获得ScriptEngine
                ScriptEngine engine = manager.getEngineByName("js");
                String resultStr = String.valueOf(engine.eval(str));
                double result = Double.parseDouble(resultStr);
                if(result < 0 ) {
                    System.out.println("运行结果不能出现负数");
                    continue;
                }
                //用ScriptEngine的eval方法执行脚本
                System.out.println(engine.eval(str));
            }
        }
        catch (Exception e) {
            System.out.println("输入错误!");
        }
    }
}

法二:(来自同学的另一种解法)

package java_test;

/**
 * @author : Liangll
 * @time : 2018/5/6 15:31
 */
import java.util.Scanner;

public class TestRandom3 {
    public static void main(String[] args) throws Exception {
        System.out.print("请输入您想要的四则运算的个数:");
        try{
            Scanner input = new Scanner(System.in);
            int s = input.nextInt();
            for(int i = 1;i <= s;i++){
                int num1 = (int)(Math.random() * 10) + 1;
                int num2 = (int)(Math.random() * 10) + 1;
                int num3 = (int)(Math.random() * 10) + 1;
                int n = (int)(Math.random() * 4);
                if(n == 0){
                    switch((int)(Math.random() * 4)){
                        case 0:
                            int ans1 = num1 + num2 + num3;
                            System.out.println(num1 + " + " + num2 + " + " + num3 + " = " + ans1);
                            break;
                        case 1:
                            int ans2 = num1 + num2 - num3;
                            if(ans2 < 0)
                                i--;
                            else
                                System.out.println(num1 + " + " + num2 + " - " + num3 + " = " + ans2);
                            break;
                        case 2:
                            int ans3 = num1 + num2 * num3;
                            System.out.println(num1 + " + " + num2 + " * " + num3 + " = " + ans3);
                            break;
                        case 3:
                            int ans4 = num1 + num2 / num3;
                            System.out.println(num1 + " + " + num2 + " / " + num3 + " = " + ans4);
                            break;
                    }
                }
                else if(n == 1){
                    switch((int)(Math.random() * 4)){
                        case 0:
                            int ans1 = num1 - num2 + num3;
                            if(ans1 < 0)
                                i--;
                            else
                                System.out.println(num1 + " - " + num2 + " + " + num3 + " = " + ans1);
                            break;
                        case 1:
                            int ans2 = num1 - num2 - num3;
                            if(ans2 < 0)
                                i--;
                            else
                                System.out.println(num1 + " - " + num2 + " - " + num3 + " = " + ans2);
                            break;
                        case 2:
                            int ans3 = num1 + num2 * num3;
                            if(ans3 < 0)
                                i--;
                            else
                                System.out.println(num1 + " - " + num2 + " * " + num3 + " = " + ans3);
                            break;
                        case 3:
                            int ans4 = num1 + num2 / num3;
                            if(ans4 < 0)
                                i--;
                            else
                                System.out.println(num1 + " - " + num2 + " / " + num3 + " = " + ans4);
                            break;
                    }
                }
                else if(n == 2){
                    switch((int)(Math.random() * 4)){
                        case 0:
                            int ans1 = num1 / num2 + num3;
                            System.out.println(num1 + " / " + num2 + " + " + num3 + " = " + ans1);
                            break;
                        case 1:
                            int ans2 = num1 / num2 - num3;
                            if(ans2 < 0)
                                i--;
                            else
                                System.out.println(num1 + " / " + num2 + " - " + num3 + " = " + ans2);
                            break;
                        case 2:
                            int ans3 = num1 / num2 * num3;
                            System.out.println(num1 + " / " + num2 + " * " + num3 + " = " + ans3);
                            break;
                        case 3:
                            int ans4 = num1 / num2 / num3;
                            System.out.println(num1 + " / " + num2 + " / " + num3 + " = " + ans4);
                            break;
                    }
                }
                else {
                    switch ((int)(Math.random() * 4)) {
                        case 0:
                            int ans1 = num1 * num2 + num3;
                            System.out.println(num1 + " * " + num2 + " + " + num3 + " = " + ans1);
                            break;
                        case 1:
                            int ans2 = num1 * num2 - num3;
                            if (ans2 < 0)
                                i--;
                            else
                                System.out.println(num1 + " * " + num2 + " - " + num3 + " = " + ans2);
                            break;
                        case 2:
                            int ans3 = num1 * num2 * num3;
                            System.out.println(num1 + " * " + num2 + " * " + num3 + " = " + ans3);
                            break;
                        case 3:
                            int ans4 = num1 * num2 / num3;
                            System.out.println(num1 + " * " + num2 + " / " + num3 + " = " + ans4);
                            break;
                    }
                }
            }
        }catch(Exception e){
            throw new Exception("你输入的类型不对,请重新运行并输入");
        }
    }
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的使用 JSP 和 Servlet 实现网页四则运算的示例: 1. 首先创建一个名为 "index.jsp" 的 JSP 文件,用于显示网页表单和接收用户输入: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>网页四则运算</title> </head> <body> <h1>网页四则运算</h1> <form method="post" action="calculate"> <label for="num1">第一个数:</label> <input type="text" name="num1" id="num1"><br><br> <label for="num2">第二个数:</label> <input type="text" name="num2" id="num2"><br><br> <label for="operator">运算符:</label> <select name="operator" id="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select><br><br> <input type="submit" value="计算"> </form> </body> </html> ``` 2. 创建一个名为 "CalculateServlet.java" 的 Servlet 文件,用于接收表单数据进行运算: ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CalculateServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 从表单中获取数据 String num1 = request.getParameter("num1"); String num2 = request.getParameter("num2"); String operator = request.getParameter("operator"); // 将字符串转换为数字 double n1 = Double.parseDouble(num1); double n2 = Double.parseDouble(num2); // 根据运算符进行运算 double result = 0; switch (operator) { case "+": result = n1 + n2; break; case "-": result = n1 - n2; break; case "*": result = n1 * n2; break; case "/": result = n1 / n2; break; default: break; } // 将结果存入 request 中 request.setAttribute("result", result); // 跳转到结果页面 request.getRequestDispatcher("/result.jsp").forward(request, response); } } ``` 3. 创建一个名为 "result.jsp" 的 JSP 文件,用于显示计算结果: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>计算结果</title> </head> <body> <h1>计算结果</h1> <p>计算结果为:<%= request.getAttribute("result") %></p> </body> </html> ``` 4. 部署并启动项目,访问 "index.jsp" 页面即可进行四则运算

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值