目 录

  1. 前言 1
  2. 需求分析 1
  3. 概要设计 2
  4. 详细设计 4
  5. 测试 11
  6. 总结 13

参考文献 15

附录 15
2.需求分析
本产品是作为一个形如计算器的程序首先,需要考虑的就是面向用户操作,由于在使用过程中,用户可能不限于使用电脑,手机等设备进行长整数运算,并且如果用户并没有安装环境那么会照成代码无法运行的情况,为了避免这些平台兼容问题,和方便用户操作,可以采用更方便的网页方式面向用户,在美观简洁的同时,满足人际友好交互。
在解决了平台兼容问题以后,我们还需要对功能进行设计。
首先是基本功能:
1.作为长整数加减法,要实现任意唱的整数的加、减法运算。以用户和计算机对话的方式,即用户根据网页对话框显示的提示信息之后,由用户通过键盘,输入演示程序用规定的运算命令,然后返回结果提示。
2.我们的长整数计算器,的集合元素限定了用户的输入的字符只能是[‘0’~‘9’],逗号,以及‘+’和‘-’。否则应该提示用户输入的字符串不符合程序的默认要求,并且需要重新输入。
3.对于输入的数字方面,本文转载自http://www.biyezuopin.vip/onews.asp?id=15262按照中国对长整数的表示习惯,每四位是一组,组间用逗号隔开
其次是输入和输出结果:
例如:
(1)0;0;应输出“0”
(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”
(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”
####(4)1,0001,0001;-1,0001,0001;应输出“0”
###(5)1,0001,0001;-1,0001,0000;应输出“1”
(6)-9999,9999,9999;-9999,9999,9999;应输出“-1,9999,9999,9998”
(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”
3.概要设计
使用技术:数据结构-链表,JAVA基础语法。

package com.itcast.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.itcast.service.algorithmService;
import com.itcast.service.impl.algorithmServiceImpl;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.bind.annotation.*;
import org.junit.Test;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * Topic:
 *
 * @Author:Pinkman
 * @Date:2021/5/25 22:11
 * @Tips:
 */

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = {"classpath:applicationContext.xml"})
@RequestMapping("/quick")
@org.springframework.stereotype.Controller
public class Controller {


    @Autowired
    @Qualifier("algorithmService")
    algorithmServiceImpl algorithmServicimpl ;




    @RequestMapping(value="/sum")
    @ResponseBody
    public String sum(String[] lists) throws IOException {

        String total = "0";

        //判断新添加的元素格式是否正确
        boolean if_correct = algorithmServicimpl.if_correct(lists[lists.length - 1]);

        String ifcorrect ="";

        if (if_correct==true) {
            ifcorrect = "1";
        }
        if(if_correct==false){
            ifcorrect = "0";
        }
        for (int i = 0; i <lists.length ; i++) {
            if ( algorithmServicimpl.if_correct(lists[i]) == false) {
                lists[i] = "0";
            }
        }

        for (int i = 0; i <lists.length ; i++) {

            total = algorithmServicimpl.sum(total,lists[i]);
        }




        Map<String,String> map = new HashMap();
        map.put("data",total);
        map.put("ifcorrect",ifcorrect);

        ObjectMapper mapper = new ObjectMapper();
        String s = mapper.writeValueAsString(map);

        return s ;

    }
/*
9999,1 报错 空指针
 */
    @Test
    public void test() throws JsonProcessingException {
        String[] lists = new String[] {"1,1234,1234","1234,1234"};


        String total = "0";

        //判断新添加的元素格式是否正确
        boolean if_correct = algorithmServicimpl.if_correct(lists[lists.length - 1]);
        String ifcorrect ="";
        if (if_correct==true) {
            ifcorrect = "1";
        }
        if(if_correct==false){
            ifcorrect = "0";
        }


        for (int i = 0; i <lists.length ; i++) {
            if ( algorithmServicimpl.if_correct(lists[i]) == false) {
                lists[i] = "0";
            }
        }

        for (int i = 0; i <lists.length ;i++) {
            total = algorithmServicimpl.sum(total,lists[i]);
            System.out.println(total);

        }



        Map<String,String> map = new HashMap();
        map.put("data",total);
        map.put("ifcorrect",ifcorrect);

        ObjectMapper mapper = new ObjectMapper();
        String s = mapper.writeValueAsString(map);

        System.out.println(s);

    }

}

java实现大整数相加使用BigInteger java长整数相加_算法设计


java实现大整数相加使用BigInteger java长整数相加_加减法_02


java实现大整数相加使用BigInteger java长整数相加_长整数_03


java实现大整数相加使用BigInteger java长整数相加_java_04


java实现大整数相加使用BigInteger java长整数相加_课程设计_05


java实现大整数相加使用BigInteger java长整数相加_长整数_06


java实现大整数相加使用BigInteger java长整数相加_长整数_07


java实现大整数相加使用BigInteger java长整数相加_算法设计_08


java实现大整数相加使用BigInteger java长整数相加_java_09


java实现大整数相加使用BigInteger java长整数相加_长整数_10


java实现大整数相加使用BigInteger java长整数相加_长整数_11


java实现大整数相加使用BigInteger java长整数相加_课程设计_12


java实现大整数相加使用BigInteger java长整数相加_java_13


java实现大整数相加使用BigInteger java长整数相加_加减法_14