计算器设计的java课程设计报告(4)

2018-12-06 19:26

华东交通大学课程设计

else {

this.dNowInput=1/this.dNowInput;

tf1.setText(Double.toString(this.dNowInput)); } }

// key \

if(this.keyAvailable && e.getActionCommand()==\ {

this.alreadyClickedEqueal=true; switch(this.nOperation) {

case 1: this.dResult+=this.dNowInput; break; case 2: this.dResult-=this.dNowInput; break; case 3: this.dResult*=this.dNowInput; break; case 4: {

if(this.dNowInput==0) {

tf1.setText(\除数不能为零\ this.keyAvailable=false; }

else this.dResult=this.dResult/this.dNowInput; } }

if(this.keyAvailable)tf1.setText(Double.toString(this.dResult)); }

// key \

if(this.keyAvailable && e.getActionCommand()==\ {

this.dMemory=this.dNowInput; if(this.dMemory!=0) tf2.setText(\ }

// key \

if(this.keyAvailable && e.getActionCommand()==\ {

this.dMemory=0; tf2.setText(\ }

// key \

if(this.keyAvailable && e.getActionCommand()==\ {

this.dNowInput=this.dMemory;

- 12 -

华东交通大学课程设计

tf1.setText(Double.toString(this.dNowInput)); }

// key \

if(this.keyAvailable && e.getActionCommand()==\ {

this.dMemory+=this.dNowInput; if(this.dMemory!=0) tf2.setText(\ else tf2.setText(\ }

// key \

if(this.keyAvailable && e.getActionCommand()==\ {

this.dNowInput=(this.dResult*this.dNowInput)/100; tf1.setText(Double.toString(this.dNowInput)); }

// key \

if(this.keyAvailable && e.getActionCommand()==\ {

if(!this.alreadyClickedEqueal){ if(this.dNowInput!=0) {

if(this.alreadyHaveDot) {

if(this.n==-1) {

this.alreadyHaveDot=false; this.n=0; } else {

String str,str1; str=tf1.getText();

str1=str.substring(0,this.nBitsNum-1); this.nBitsNum--; this.n++;

this.dNowInput=Double.parseDouble(str1);

tf1.setText(Double.toString(this.dNowInput)); } } else {

int temp;

temp=(int)(this.dNowInput/10);

- 13 -

华东交通大学课程设计

this.dNowInput=(double)temp;

tf1.setText(Double.toString(this.dNowInput)); } } } } }

public static void main(String args[]) {

Calculation cal=new Calculation(); cal.display(); }

public void windowClosing(WindowEvent e) {

System.exit(0); } }

- 14 -

华东交通大学课程设计

第4章 运行结果及分析

如图1所示,以下就是我们设计出的计算器的运行界面截图,这一计算器采用的是BorderLayout布局,能够实现十进制下正负数的加法、减法、乘法、除法四则运算以及求平方根、百分号、求倒数、清零、退格等简单操作。Backspace表示退格,CE表示将当前文本框内数据清空,C表示文本框内数据清除。相应按钮上的名称代表了相应的数字或运算,最终通过“=”按钮将运算结果显示在第一行的文本框内,整体上说设计还成功。

图4-1 计算器界面

我们发现了程序能够准确地进行运算,并显示出正确结果,同时发现该计算器可进行一般的语法分析,例如如果除数为零,计算结果显示“除数不能为零”。

例如如果对超过八位的数据进行操作,计算结果用科学表示法表示。

- 15 -

华东交通大学课程设计

例如如果对非负数进行求平方根,计算结果显示“函数输入无效”。

但是也发现了计算器对于类似5+6*3的运算不能判断运算顺序。 如图4-2所示,5+6*3计算器计算结果为33,而正确结果应为23。

图4-2 5+6*3的运算结果

- 16 -

华东交通大学课程设计

第5章 心得体会

5.1系统需要完善的地方

1.在第四章提到的不能对类似5+6*3的运算判断运算顺序。 2.程序比较长,还可以进行简化。

3.对于运算方法等方面仍可以进行一些改进。 4.这界面还可设有菜单操作(包括:“编辑”,“查看”,“帮助”三个菜单项) 5.2 课程设计感想

本计算器模拟Windows计算器的界面和功能,由于时间仓促和能力有限等问题,只能实现以上功能。本次课程设计到此算是告一段落了,经过这次的学习,我学到了很多东西,在此基础上更加巩固了自己对java的认识与了解。

在做本项目是时候,会遇到很多小问题,比如说,在整个运算过程中要如何确保输入的计算数据哪个是第一个计算数据的,哪个是第二个计算数据的,同时也要区分运算符,因为该计算器程序应用的都是利用字符串来完成计算的,而且不能重复输出运算符,更不能将运算符错误的存储在了第一个计算数据的数值中,也得考虑到万一不小心重复点击了运算符按钮会不会造成第一个计算数据的重新赋值等等问题,最后想到利用布尔类型来很好的控制运算符的应用!

此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我对所学知识能够融会贯通,又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。

在以前,我们只是对书上已经给出的程序进行编译和运行,而这次我们算是真正自己编写了一个程序(虽然参考了书上的程序),觉得自己对于java的应用得到了很大的提高,也体会到了编写一个程序是一个十分艰辛的过程,需要不断的调试,改进,以及小组成员的努力思考。

在制作简易计算器的过程中,很容易打错源程序代码而导致编译通不过。这是一个细心程度的问题,做什么事都必须细心严谨,这样才不容易出错。在编译通过运行程序出现了一个计算器界面时心里非常高兴,迫不及待地使用制作出来的计算器。编一个程序真心不容易啊,程序员都是伟大的人啊,向他们看齐。这次的课设作业让我明白了无论多复杂的东西都是由好多基础的东西组合在一起的。

在接下来的时间里,我觉得我要更加努力的往深一层次的方面看齐,了解更多有关java的知识,对java有更深一步的了解,我会一步一步的走下去!

参考文献

(1)丁振凡.《J ava语言程序设计》 清华大学出版社

(2)丁振凡.《J ava语言程序设计实验指导与习题解析》清华大学出版社 (3)http://mvcpro.cloudfoundry.com

- 17 -


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

下一篇:融资财务顾问协议(详尽版).

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

马上注册会员

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