已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
六安职业技术学院毕业设计(论文)用JAVA编一个计算器姓 名: 古 松 泽 学 号: 20103113 班 级: 软件技术1002 指 导 教 师: 胡 君 所 在 系 部: 信息工程系 二一三年六月毕业论文(设计)开题报告学生姓名古松泽班级软件技术1002指导教师胡君学号20103113毕业论文(设计)题目用JAVA编一个计算器 Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。 Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。通过本论文课题的研究,可以实现一个类似电脑自带计算器实现=各种简单运算,并在设计过程中,不断扩展自己知识面,让自己在设计中学习,学习中设计,是自己的语言汇编能力得到提高。具体安排进度:2013年3月1日3月30日,确定设计方案并搜集所需材料;2013年4月1日4月30日,细化设计方案及论文具体设计;2013年5月1日5月31日,检查并补充论文中不足。毕业论文(设计)成绩评定指导教师意见答辩专家组意见系专业教学委员会意见摘要本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开根号、百分号、求倒数,还可以实现数值的符号转换,操作科学型计算器与标准计算器之间的菜单切换。 ,Backspace表示退格, CE表示将当前文本框内数据清除,C表示文本框内数据清除。此外还提供了“编辑”、“查看”、“帮助”三个菜单项,使用者可通过使用菜单项实现复制、粘贴功能总体设计与详细设计-数据分析,算法思路,类设计,功能实现(含程序流程图,主要代及注释),界面等运行调试与分析讨论-给出运行屏幕截图,分析运行结果,有何改进想法等。界面类似windows自带计算器界面,Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。关键词: java语言;计算器;标准Abstract This calculator is a standard calculator java language programming, decimal under the four operations (addition, subtraction, multiplication, division), square root, percent sign, a reciprocal, and can also achieve the conversion of numeric symbols menu to switch between the operation of scientific calculator and standard calculator. , The Backspace backspace, CE to clear the current text box data, C, said the text box data cleanup. Also provided the Edit, View, help three menu items, users can use the menu items to achieve copy and paste function of the overall design and detailed design - data analysis, algorithmic thinking, class design, functionality to achieve (including the program flowchart, on behalf of and notes), the interface to run debug and analysis discussion - given the run screenshots, analysis of operating results, in place to improve the idea. Interface similar to windows built-in calculator interface, since the early versions of Java Abstract Window Toolkit user interface components provide a platform-independent API. In AWT, each component by a native equivalent components to generate and control the native component is determined by the current graphics window system. In contrast, Swing components are often described as lightweight because they do not have the native operating system brought their own windowing toolkit resources to generate.Keywords: Java language; calculator; standard目 录引 言1第1章 程序设计基本概述21.1 设计目的21.2 Java主要特点21.3 功能模块设计31.4系统功能图41.5 本章小结4第2章程序整体设计说明52.1程序中所用到的变量52.2 程序部分源代码及注释52.3图形界面设计方法72.3.1标准计算器界面72.3.2 界面设计代码72.4 本章小节9第3章 程序运行后实现效果103.1 程序实现部分运算图103.2本章小结15第4章 设计中遇到的问题及改良164.1 设计中的遇到的问题164.2问题解决及改良164.3本章小结16结 论17致 谢18参考文献19VI六安职业技术学院毕业论文第 1 页引 言随着网络的时代的到来,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用本课程是Java面向对象程序设计,体现的是面向对象而不是面向过程,它与面向过程有很大的区别,它避免了面向过程中很多容易出错的内容,例如:指针等,在面向对象的设计中,注意体现的是面向对象的几大机制,继承、封装、多态和抽象,在面向过程的设计中的多继承Java采用了接口来代替实现, Java分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。 * Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。* Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。* Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能 第1章 程序设计基本概述1.1 设计目的图形界面设计,熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。从而检测对这门课的掌握情况,有助于及时查漏补缺。1.2 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的运行环境是用ANSI C实现的。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.3 功能模块设计n 标准计算器以下为标准计算器的基本功能:(1)加法 两个数据进行加操作,可以为小数。(2)减法 两个数据进行减操作,可以为负数相减。(3)乘法 两个数相乘操作。(4)除法 两个数相除操作。(5)开平方对任意一个数进行开方运算,可以是小数。(6)百分号对任意一个数进行百分号运算。(7)倒数对任意一个数进行倒数运算。标准计算器加法运算减法运算乘法运算除法运算开平方运算百分号运算倒数运算1.4系统功能图 1.5 本章小结通过第一章我们可以了解到这次java课程设计的一个总的概况。掌握了java程序编辑器、图形界面以及文件操作的实现。这次程序设计在设计类的时候考虑到了简单明了。我们设计的优点是:条理清晰,容易理解,容易修改。第2章程序整体设计说明2.1程序中所用到的变量(1)控件变量:JMenu /定义菜单JMenuItem /菜单中项的实现JMenuBar /菜单栏的实现。将 JMenu 对象添加到菜单栏以构造菜单。JRadioButtonMenuItem /选中一个的时候,禁用另外一个取消选中的时候,释放禁用的那一个JTextField /JTextField是一个显示用户输入输出的文本区域。JPanel /JPanel 作为一个容器,可以包容一些组件,然后将这个 JPanel 对象作为一个组件添加到另一个容器 (称作父容器) 中。JToggleButton /用于记录内存中是否存在用户保存的数据信息。JButton /是用户进行计算时主要的使用工具,一般为其添加actionPerformed事件。(2)其它变量private double data_One; /用来存储运算的数据private double data_Two; /用来存储运算的数据private char Operator=A; /存放运算符private boolean pointIsTyped=false; /判断输入的数据是否是小数private int memoryi; /存储内存中的整数数据private double memoryd; /存储内存中的小数数据2.2 程序部分源代码及注释程序框架图为应用程序提供一个图形化的界面本次设计运行出的程序框架图如图2-1所示编辑查看帮助复制粘贴数字分组科学型标准型关于计算器帮助主题图2-1程序框架图(1)复制菜单的功能实现代码如下:(2)粘贴菜单的功能实现代码如下:(3)科学型菜单的功能实现代码下:(4)数字分组的功能实现代码如下:(5)帮助主题菜单的功能实现代码如下:2.3图形界面设计方法2.3.1标准计算器界面 2.3.2 界面设计代码计算器的界面由一个菜单栏 一个文本框及27个按钮组成,具体实现代码如下所示:public void init()clickable = true;/添加菜单栏MenuBar myB=new MenuBar();setMenuBar(myB);Menu m1=new Menu(编辑(E);MenuItem m11= new MenuItem(复制(C) Ctrl+C);m11.addActionListener(this);m1.add(m11);MenuItem m12=new MenuItem(粘贴(P) Ctrl+V);m12.addActionListener(this);m1.add(m12);myB.add(m1);Menu m2=new Menu(查看(V);m2.add(new MenuItem(标准型(T);m2.add(new MenuItem(科学型(S);m2.addSeparator();m2.add(new MenuItem(数字分组(I);m2.addActionListener(this);myB.add(m2);Menu m3=new Menu(帮助(H);MenuItem m31=new MenuItem(帮助主题(H);m31.addActionListener(this);m3.add(m31);m3.addSeparator();MenuItem m32=new MenuItem(关于计算器(A);m32.addActionListener(this);m3.add(m32);myB.add(m3); /JPanel pa1=new JPanel();pa1.setBackground(new Color(236,231,210);text=new JTextField(0.,31);pa1.add(North,text); /面板添加和按钮的设置 JPanel pa=new JPanel();JPanel pa2=new JPanel();JButton bt1=new JButton(Backspace);JButton bt2=new JButton(CE);JButton bt3=new JButton(C);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);pa2.add(bt1);pa2.add(bt2);pa2.add(bt3);pa.setLayout(new BorderLayout(); pa.add(pa2,North);JPanel p1=new JPanel();p1.setLayout(new GridLayout(4,1,2,5);JButton bt4=new JButton(MC);JButton bt5=new JButton(MR);JButton bt6=new JButton(MS);JButton bt7=new JButton(M+);p1.add(bt4);p1.add(bt5); p1.add(bt6); p1.add(bt7); pa.add(p1,West);JPanel p = new JPanel(); p.setLayout(new GridLayout(4, 5,2,5); Stringbuttons=7,8,9,/,sqrt,4,5,6,*, %,1,2,3,-,1/x,0,.,=,+,+/-; JButton btn=new JButtonbuttons.length; for (int i = 0; i buttons.length; i+) addButton(p, buttonsi); pa.add(p, Center); pa1.add(South,pa);this.getContentPane().add(pa1);2.4 本章小节本章主要介绍了用java创建计算器的运行后的效果图。运行java计算器以后出现的那个框架图就是我们所说的java图形用户界面(GUI),它是程序与用户进行交流的图像窗口,为应用程序提供一个图形化的界面,程序通过GUI与用户交互,GUI通过事件机制响应用户和程序的交互。如当用户单击某个按钮时就会产生动作事件,要处理产生的事件,需要在特定的方法中编写处理事件的程序。这样,当产生某种事件时就会调用处理这种事件的方法,从而实现用户与程序的交互。另外GUI能使一个应用程序具有与众不同的“外观”与“感觉”。有了GUI,用户就不用花很多时间去记忆各个键盘序列的功能,从而把更多的时间投入到有效地使用应用程序本身上第3章 程序运行后实现效果3.1 程序实现部分运算图(1)加法、乘法运算分别输入9和3然后分别计算其加法、乘法运算+ | *= | 功能实现代码:if (op.equals(+) arg += n; else if (op.equals(-) arg -= n; else if (op.equals(*) arg *= n; else if (op.equals(/) arg /= n; else if (op.equals(=) arg = n;Sqrt 功能实现代码:if (s1.charAt(0) = -& clickable = true) text.setText(负数不能开根号); clickable = false; else text.setText(Double.toString(java.lang.Math.sqrt(Double. parseDouble(text.getText();(4)百分号运算 % 功能实现代码:if(s.equals(%)/单击了%按钮 double x;x=Double.parseDouble(text.getText().trim(); text.setText(+(0.01*x); /str.setLength(0); /y=0d; (5)倒数运算1/x 功能实现代码:if(s.equals(1/x)/单击了1/X按钮 double x;x=Double.parseDouble(text.getText().trim(); if(x=0) text.setText(除数不能为零); else text.setText(+(1/x); 3.2本章小结本章主要讲述的是计算器设计的整个过程,其中包括设计计算器界面主要使用到的控件和各按钮功能的实现代码,以及整个程序中所使用到的变量,虽然本章表述的设计过程比较详细,但是仍有不足之处,部分变量值的变化没有包含在内,需要用户根据自己的需要进行调整,在此就不做详细的说明了。第4章 设计中遇到的问题及改良4.1 设计中的遇到的问题在进行aqrt 、%、 1/x这三个运算后再输入数据就在文本框中继续输入,不能重新输入。需要按下清零键才可继续输入下一数据再进行运算。菜单栏中虽然设计了“查看标准型、科学型、数字分组”以及“帮助帮助主题、关于计算器”可是其功能并没有时间。该计算器设计了有关内存的操作,可是并没有达到预期中的效果。Java计算器在进行混合运算时,不能准备的进行计算,后面输入的数值会覆盖先前输入的数据,造成数据丢失。4.2问题解决及改良在文件开头部分定义一个标志性布尔型变量sign,并赋初值为false;在加号、减号、乘号、除号的代码里添加if判断语句,如果sign值为false,就另Operator的值为相应的运算符,并改变sign的值为true;如果sign的值为true,则执行与等号代码相同的switchcase选择分支语句;最后在四个运算符按钮代码的switch语句的最后分别添加一句、 、 、。4.3本章小结通过对本程序的改良,这个程序将会更加完善,问题都是我们自己发现的,只要我们多做,就会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030消费品行业数字化转型与渠道变革分析报告
- 2025-2030海洋风电安装船队供需缺口与装备技术升级路线报告
- 2025-2030海洋生物资源开发利用技术经济性评估报告
- 2025-2030海洋工程装备防腐涂料技术创新与市场需求预测报告
- 2025-2030海外早教品牌本土化运营痛点与跨文化适应策略解析
- 天津二十一中学2026届物理九年级第一学期期末联考试题含解析
- 湖南长沙长郡芙蓉中学2026届九年级物理第一学期期中质量检测试题含解析
- 山东省济南市育英中学2026届九上物理期中综合测试试题含解析
- 2026届安徽省亳州市高炉学校物理八上期末检测模拟试题含解析
- 广东省揭阳市榕城区空港经济区2026届物理八年级第一学期期末调研模拟试题含解析
- 2025陕西寰宇正信科技产业发展有限公司招聘(71人)笔试参考题库附答案解析
- 国际贸易新形态:市场采购模式的经济溢出效应研究
- 磷矿采矿基本知识培训课件
- 电气采购基本知识培训课件
- 高新技术企业政策宣传辅导
- 水利PPP项目可行性分析-洞察及研究
- 手术室多重耐药菌感染防控与管理
- 2025年供应链管理师职业技能考试题库(含答案)
- 卡西欧手表5114机芯中文说明书
- 要素式民事起诉状(房屋租赁合同纠纷)
- 泥瓦工培训教学课件
评论
0/150
提交评论