java程序设计计算器论文.docx
《java程序设计计算器论文.docx》由会员分享,可在线阅读,更多相关《java程序设计计算器论文.docx(18页珍藏版)》请在冰点文库上搜索。
![java程序设计计算器论文.docx](https://file1.bingdoc.com/fileroot1/2023-8/15/0fda0e53-53ea-4b8c-95d8-72c04c26f2ba/0fda0e53-53ea-4b8c-95d8-72c04c26f2ba1.gif)
java程序设计计算器论文
本科学年论文
论文题目:
java计算器——图形界面设计
院系:
信息科学与技术
专业:
计算机
姓名:
学号:
指导教师:
撰写学年:
2009至2010学年
二零一零年六月
目 录
中文摘要……………………………………………………………………
第一章标准计算器概述…………………………………………………
设计目的………………………………………………………
功能模块设计…………………………………………………
系统功能图……………………………………………………
第二章标准计算器设计与实现…………………………………………
Java技术概述…………………………………………………
Java主要特点…………………………………………………
图形界面设计方法……………………………………………
标准计算器界面………………………………………………
JAVA计算器的具体实现代码…………………………………
程序设计过程中的问题……………………………………………………
参考文献……………………………………………………………………
中文摘要
本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开根号、百分号、求倒数,还可以实现数值的符号转换操作。
,Backspace表示退格,CE表示将当前文本框内数据清除,C表示文本框内数据清除。
此外还提供了“编辑”、“查看”、“帮助”三个菜单项,使用者可通过使用菜单项实现复制、粘贴功能。
界面类似windows自带计算器界面。
关键词:
java语言;计算器;标准
第一章标准计算器概述
设计目的
图形界面设计,熟悉包中的组件,掌握图形界面设计方法,理解委托事件处理模型。
从而检测对这门课的掌握情况,有助于及时查漏补缺。
功能模块设计
⏹标准计算器
以下为标准计算器的基本功能:
(1)加法
两个数据进行加操作,可以为小数。
(2)减法
两个数据进行减操作,可以为负数相减。
(3)乘法
两个数相乘操作。
(4)除法
两个数相除操作。
(5)开平方
对任意一个数进行开方运算,可以是小数。
(6)百分号
对任意一个数进行百分号运算。
(7)倒数
对任意一个数进行倒数运算。
系统功能图
第二章标准计算器设计与实现
2.1标准计算器界面
界面设计代码
计算器的界面由一个菜单栏一个文本框及27个按钮组成,具体实现代码如下所示:
MenuBarmyB=newMenuBar();
setMenuBar(myB);
Menum1=newMenu("编辑(E)");
MenuItemm11=newMenuItem("复制(C)Ctrl+C");
(this);
(m11);
MenuItemm12=newMenuItem("粘贴(P)Ctrl+V");
(this);
(m12);
(m1);
Menum2=newMenu("查看(V)");
(newMenuItem("标准型(T)"));
(newMenuItem("科学型(S)"));
();
(newMenuItem("数字分组(I)"));
(this);
(m2);
Menum3=newMenu("帮助(H)");
MenuItemm31=newMenuItem("帮助主题(H)");
(this);
(m31);
();
MenuItemm32=newMenuItem("关于计算器(A)");
(this);
(m32);
(m3);
31);
("North",text);
"=","+","+/-"};
JButtonbtn[]=newJButton[];
for(inti=0;i<;i++)
{addButton(p,buttons[i]);
(p,"Center");
}
("South",pa);
().add(pa1);
}
privatevoidaddButton(Containerc,Strings)
{JButtonb=newJButton(s);
(b);
(this);
第三章标准计算器的实现与演示
Java技术概述
Java,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口已经从版发展到版。
目前常用的Java平台基于,最近版本为。
Java分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。
*JavaSE(JavaPlatform,StandardEdition)。
JavaSE以前称为J2SE。
它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。
JavaSE包含了支持JavaWeb服务开发的类,并为JavaPlatform,EnterpriseEdition(JavaEE)提供基础。
*JavaEE(JavaPlatform,EnterpriseEdition)。
这个版本以前称为J2EE。
企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。
JavaEE是在JavaSE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-orientedarchitecture,SOA)和Web应用程序。
*JavaME(JavaPlatform,MicroEdition)。
这个版本以前称为J2ME。
JavaME为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。
JavaME包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。
基于JavaME规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能
Java主要特点
1、Java语言是简单的。
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。
特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java语言是一个面向对象的。
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(为implements)。
Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的。
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。
Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的。
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。
对指针的丢弃是Java的明智选择。
Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的。
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。
除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的。
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
8、Java语言是解释型的。
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。
在运行时,Java平台中的Java对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。
与那些解释型的高级脚本语言相比,Java的确是高性能的。
事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
10、Java语言是多线程的。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:
其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。
线程的活动由一组方法来控制。
Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
11、Java语言是动态的。
Java语言的设计目标之一是适应于动态变化的环境。
Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。
这也有利于软件的升级。
另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
标准计算器演示
(1)启动计算器
(2)加法、乘法运算
分别输入9和3然后分别计算其加法、乘法运算
9
+
3
=
9
*
3
=
(3)开平方运算
sqrt
(4)百分号运算
%
(5)倒数运算
1/x
JAVA程序设计计算器的具体实现代码
import.*;
import.*;
publicclassjisuanqiextendsJFrameimplementsActionListener,ItemListener{
JTextFieldtext;
JTextFieldtextMemory;
booleanclickable;
doublememoryd;,31);
("North",text);
"=","+","+/-"};
JButtonbtn[]=newJButton[];
for(inti=0;i<;i++)
{addButton(p,buttons[i]);
(p,"Center");
}
("South",pa);
().add(pa1);
}
privatevoidaddButton(Containerc,Strings)
{JButtonb=newJButton(s);
(b);
(this);
}
rim());
(""+(-x));
}
else
if(s=="sqrt"){
Strings1=();
if(0)=='-'&&clickable==true){
("负数不能开根号");
clickable=false;
}
else
parseDouble()))));
}
elseif("%"))rim());
(""+*x));
rim());
if(x==0)
{
("除数不能为零");
}
else
{
(""+(1/x));
}
||
(i)=='-')){
isNumber=false;
break;
}
if(isNumber==true){
ength();i++)
if('.'==().charAt(i)){
isDot=true;
break;
}
ength();i++)
if('.'==().charAt(i)){
isDot=true;
break;
}
if(memoryi!
=0){quals("粘贴(P)Ctrl+V")){
(copy);
}
)
{//("");
if(start)
(s);
else()+s);
start=false;
}
else
{if(start)
{if("-"))
{(s);start=false;}
elseop=s;
}
else
{
doublex=());
calculate(x);
op=s;
start=true;
}
}
}
publicvoidcalculate(doublen)
{if("+"))arg+=n;
elseif("-"))arg-=n;
elseif("*"))arg*=n;
elseif("/"))arg/=n;
elseif("="))arg=n;
(""+arg);
}
privatedoublearg=0;
privateStringop="=";
privatebooleanstart=true;
///////
publicvoiditemStateChanged(ItemEvente)
{
}
publicstaticvoidmain(Stringargs[])
{
JFrameframe=newJFrame();
jisuanqimyMenu=newjisuanqi();
();
(true);
();
}
}
程序设计过程中的问题
该设计目前还不太完整全面,在测试时有以下问题:
(1)在进行aqrt、%、1/x这三个运算后再输入数据就在文本框中继续输入,不能重新输入。
需要按下清零键才可继续输入下一数据再进行运算。
(2)菜单栏中虽然设计了“查看—标准型、科学型、数字分组”以及“帮助—帮助主题、关于计算器”可是其功能并没有时间。
(3)该计算器设计了有关内存的操作,可是并没有达到预期中的效果。
[参考文献]
[1].施霞萍张欢欢王瑾德马可幸编著《Java程序设计教程》北京:
机械工业出版社,
[2].李芝兴杨瑞龙主编《JavaEEWeb编程(Eclipse平台)》北京:
机械工业出版社,
[3].苗春义等编著《Java项目开发全过程实录》北京:
清华大学出版社,
类的命名及功能实现
包名
类名
类的功能实现
Package
主类jia
主类包含了界面的定义和布局并且实现了运算的功能;
树组件的类shu
实现了“帮助文档”的树形分层结构