java课程设计模板(windows计算器)(3)

2018-11-22 20:54

divide(secondResult, 100)));

else if(this.lastOp.equals(\

firstNum=String.valueOf(MyMath.add(Double.valueOf(firstNum), secondResult));

else if(this.lastOp.equals(\

firstNum=String.valueOf(MyMath.subtract(Double.valueOf(firstNum), secondResult));

else if(this.lastOp.equals(\

firstNum=String.valueOf(MyMath.multiply(Double.valueOf(firstNum), secondResult));

else if(this.lastOp.equals(\

firstNum=String.valueOf(MyMath.divide(Double.valueOf(firstNum), secondResult));

secondNum = null; this.isSecondNum = true; return firstNum; }

public String setReciprocal(String text)//计算倒数 {

if(text.equals(\ return text; else {

this.isSecondNum = true;

return String.valueOf(MyMath.divide(1, Double.valueOf(text))); } }

public String sqrt(String text)//开方运算 {

this.isSecondNum = true;

return String.valueOf(Math.sqrt(Double.valueOf(text))); }

public String setOp(String cmd,String text)//设置操作符

{

if(!firstNum.equals(\ firstNum = cal(text,false); else {

this.firstNum = text; this.secondNum = null; this.isSecondNum = true; flag = true; }

this.lastOp = cmd;

return firstNum; }

public String setNegative(String text)//设置正负数,text是正数是返回负数数字字符串,反之,返回正数数字字符串

{

return String.valueOf(0-Double.valueOf(text)); }

public String catNum(String cmd,String text)//连接输入的数字,每次单击数字,都把新加数字追加到后面,并封装成字符串返回

{

String result = cmd; if(!text.equals(\ {

if(isSecondNum) {

isSecondNum = false; } else {

result = text + cmd; }

}

if(result.indexOf(\ result = \ return result; }

public String backSpace(String text)//退后一个字符,并返回结果 {

return (text.equals(\? \: text.substring(0, text.length()-1);

}

public String mCmd(String cmd,String text)//用来实现“M+”“MC”“MR”“MS”等与存储有关的功能

{

if(cmd.equals(\累加结果

store = MyMath.add(store, Double.valueOf(text)); else

if(cmd.equals(\清除结果 store = 0; else

if(cmd.equals(\读取结果 {

isSecondNum = true; return String.valueOf(store); } else

if(cmd.equals(\保存结果

store = Double.valueOf(text).doubleValue(); return null; }

public String clearAll()//清空所有计算结果 {

this.secondNum = null;

}

this.firstNum = \

return this.firstNum;

public String clear(String text)//清除上次计算结果 {

return \ } }

class MyMath {

private static BigDecimal getBigDecimal(double number) {

return new BigDecimal(number); }

public static double add(double num1,double num2) {

BigDecimal first = getBigDecimal(num1); BigDecimal second = getBigDecimal(num2); return first.add(second).doubleValue(); }

public static double subtract(double num1,double num2) {

BigDecimal first = getBigDecimal(num1); BigDecimal second = getBigDecimal(num2); return first.subtract(second).doubleValue(); }

public static double multiply(double num1,double num2) {

BigDecimal first = getBigDecimal(num1); BigDecimal second = getBigDecimal(num2); return first.multiply(second).doubleValue(); }

public static double divide(double num1,double num2)

{

BigDecimal first = getBigDecimal(num1); BigDecimal second = getBigDecimal(num2); return

first.divide(second,20,BigDecimal.ROUND_HALF_UP).doubleValue();

} } //主函数 public class Cal {

public static void main(String[] args) {

CalFrame cal = new CalFrame(); cal.setSize(400,280); cal.setVisible(true);

cal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

3、运行结果截图

4.2 编写源程序界面

五、设计心得与体会

通过本次的课程设计,我对GUI编程和Component的事件响应有了更深层次的理解,之前不懂的代码现在已有了总体的认识。然而,虽然本“简单计算器”看上去已经实现了所有按键的功能,但是因为一些细节问题她还不是那么完美。例如:1、缺少菜单栏(帮助、编辑等);2、在输入两行数据的情况下,按“C”键清除所有数据时,上边的一行数据不能清除;3、按下“%”求百分比时,并不能像windows标准计算器一样执行混合百分比计算。可喜的是以上情况不影响基本的简单运算。尽管我做了很大努力,可暂时也未能解决那些问题,感谢它同时也暴漏了我的知识体系还不够牢固的个人技能问题。所以,在以后学习研究中我会更加努力,争取把每一个项目设计都达到完美地步。


java课程设计模板(windows计算器)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:医疗矿泉水项目可行性研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: