软件园学生在线

  • {{ item.name }}
  • 2023试用期

登录与注册

【后端一】吕坤蓬

  • 吕坤蓬
  • 2022-10-16
  • 0

001-四则运算

产品说明

本来想做一个简单html页面然后跳转,时间仓促,几次测试没成功,最后只做了几个后端处理数据。下次有空补上

|介绍

这是一个针对实数的四则计算器

|使用

跑起来Idea后,登录localhost:8080/

By URL

通过不同的url来获得不同的计算结果

operation path
Plus /Plus?q1=%s&q2=%s
Minus /Minus?q1=%s&q2=%s
Multiple /Multiple?q1=%s&q2=%s
Divide /Divide?q1=%s&q2=%s

%s 代表传入参数

|错误信息

Message Decription
输入的参数不完整,残缺 输入的值为空值
无效输入不是数字或者输入超出范围 输入的值异常
输入除数为0 除数不应该为0
加法时结果超出范围 两数之和超出范围

|已知错误

除法为0是可能会有误判。

乘法无法判断结果是否超出范围。

学习历程

1.文档学习:

  • 首先: 根据《 introduction-to-spring-boot》先大概了解的spring全家桶,以及重要的框架,bean,注解,依赖。

  • 其次: 根据《基于Spring boot 的简单REST API》 了解到两种请求方式,准备好Postman ,然后配置好maven环境,

    • 建立起了第一个Spring boot的项目,然后先实现了简单的a+b

2.学习拓展:

  • 没能实现的html里面的form表单,页面跳转等。

  • try-catch对异常的处理

代码

package com.example.firstspringboot.controller;

import com.example.firstspringboot.payload.request.DataRequest;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;

@RestController
public class Main {

    @GetMapping("/index.html")
    public String helloWorld() {
        return "index";
    }

    @GetMapping("/Plus")
    public String plus(@RequestParam String q1, @RequestParam String q2) {
        String s = "";
        if(q1.equals("")||q2.equals("")){
            s+="输入的值为空值";
            return s;
        }
        Double a,b;
        try{
            a = Double.parseDouble(q1);
            b = Double.parseDouble(q2);
        }catch (NumberFormatException e1){
            s+="输入的值异常";
            return s;
        }
        if(Double.MAX_VALUE - a <  b){
            s+="两数之和超出范围";
            return s;
        }
        return ""+(a+b);
    }

    @GetMapping("/Minus")
    public String Minus(@RequestParam String q1, @RequestParam String q2) {
        String s = "";
        if(q1.equals("")||q2.equals("")){
            s+="输入的值为空值";
            return s;
        }
        Double a,b;
        try{
            a = Double.parseDouble(q1);
            b = Double.parseDouble(q2);
        }catch (NumberFormatException e) {
            s += "输入的值异常";
            return s;
        }
        return ""+(a-b);
    }
    @GetMapping("/Multiple")
    public String Multiple(@RequestParam String q1, @RequestParam String q2) {
        String s = "";
        if(q1.equals("")||q2.equals("")){
            s+="输入的值为空值";
            return s;
        }
        Double a,b;
        try{
            a = Double.parseDouble(q1);
            b = Double.parseDouble(q2);
        }catch (NumberFormatException e) {
            s += "输入的值异常";
            return s;
        }
        return ""+(a*b);
    }
    @GetMapping("/Divide")
    public String Divide(@RequestParam String q1, @RequestParam String q2) {
        String s = "";
        if(q1.equals("")||q2.equals("")){
            s+="输入的值为空值";
            return s;
        }
        Double a,b;
        try{
            a = Double.parseDouble(q1);
            b = Double.parseDouble(q2);
            if(Math.abs(b)<1e-18){
                s+="除数不应该为0";
                return s;
            }
        }catch (NumberFormatException e) {
            s += "输入的值异常";
            return s;
        }
        return ""+(a/b);
    }
}
吕坤蓬
吕坤蓬
© 2025 软件园学生在线
Theme by Wing