TaskOne YYJ学java

实现简单的整数的相加减,不支持括号。

支持各种大数。

Task_0.0


import java.io.*;
import java.util.*;
import java.math.*;
import java.applet.*;
import java.awt.*;
import java.awt.List;

public class yyj extends Applet {
	private Font f;
	private String letter;
	private boolean first;
	private boolean second;
	private char preOp;
	private int xpos, ypos, cnt;

	public void init() {
		f = new Font("Courier", Font.BOLD, 72);
		first = true;
		second = false;
		preOp = '+';
		letter = "";
	}

	public void paint(Graphics g) {
		g.setFont(f);
		if (!first) {
			g.drawString(letter, 70, 350);
		}
	}

	// when a key is pushed down, this function will work
	// key is the number of the key on the keyboard
	public boolean keyDown(Event e, int key) {
		first = false;
		if ((char) (key) == '=') {
			letter += "=" + Deal(letter);
			System.out.println(letter);
			repaint();
			second = true;
		} else {
			if (second)
				letter = "";
			second = false;
			letter += String.valueOf((char) key);
			repaint();
		}
		return true;
	}

	// return the value calculated by the string s
	public String Deal(String s) {
		BigInteger ans = BigInteger.ZERO;
		int len = s.length();
		BigInteger tmp = BigInteger.ZERO;
		for (int i = 0; i < len; i++) {
			char Cur = s.charAt(i);
			if (Cur >= '0' && Cur <= '9') {
				tmp = (tmp.multiply(BigInteger.valueOf(10)));
				tmp = tmp.add(BigInteger.valueOf(Cur - '0'));// a-'0';
			} else if (Cur == '+' || Cur == '-') {
				ans = DealNum(ans, tmp, preOp);
				preOp = Cur;
				tmp = BigInteger.ZERO;
			} else if (Cur == '=')
				break;
		}
		ans = DealNum(ans, tmp, preOp);
		preOp = '+';
		return String.valueOf(ans);
	}

	// do operation ,add or subtract
	public BigInteger DealNum(BigInteger a, BigInteger b, char c) {
		BigInteger ans = BigInteger.ZERO;
		if (c == '+')
			ans = a.add(b);
		else if (c == '-')
			ans = a.subtract(b);
		return ans;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值