简单计算器课程设计.doc_第1页
简单计算器课程设计.doc_第2页
简单计算器课程设计.doc_第3页
简单计算器课程设计.doc_第4页
简单计算器课程设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java课 程 设 计 设计题目 简单计算器 学生姓名 汪龙 学 号 08212155140 专业班级 08信息与计算科学 指导教师 尹春娇 信息工程学院信息与计算科学2011年 11 月8日安徽新华学院课程设计成绩评定表课题名称 简单计算器院 系信息工程学院年级专业 08信科成员姓名成员学号承担的任务成 绩汪龙08212155140整个课程设计的编写及整理课题设计目的与设计意义1、课题设计目的:加强自己对java语言更一步的了解认识,检验自己一学期对java的学习成果。2、课题设计意义:不同的语言有不同的语法,通过这个课题可以让我们了解java的语言魅力,同时对java编写一些小的应用软件的一个探寻。指导教师:尹春娇2011年 11 月 8 日摘 要 随着java语言的日益强大,用java开发的各种游戏应用软件不断更新,更是有替代传统C的趋势。Java的强大,是因为它的语法简单,应用方便,没有C的复杂。本课题是主要是利用java来开发的一个简单的计算器,能够进行最基本的加、减、乘除运算功能,界面是通过运用三个面板的叠加而成的。通过按钮来进行简易计算器的各种运算,并正确实现运算功能。如果输入错误,程序会自动提示你的输入错误。整个程序对话框可实现最小化,最大化,关闭。 关键词:java、强大、简单、计算器、实现第一章 绪 论11 什么是JavaJava是一个由Sun公司开发而成的新一代编程语言。使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。不论你使用的是哪一种WWW浏览器,哪一种计算机,哪一种操作系统,只要WWW浏览器上面注明了“支持Java”,你就可以看到生动的主页。Java正在逐步成为Internet应用的主要开发语言。它彻底改变了应用软件的开发模式,带来了自PC机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如,交互式电视、烤面包箱等。Sun内部人员把这个项目称为Green,那时WorldWideWeb还在图纸上呢。该小组的领导人是JamesGosling,是一位非常杰出的程序员。他出生于1957年,于1984年加盟SunMicrosystem公司,之前在一家IBM研究机构工作。他是SunNeWs窗口系统的总设计师。也是第一个用C实现的EMACS的文本编辑器COSMACS的开发者。在研究开发过程中,Gosling深刻体会到消费类电子产品和工作站产品在开发哲学上的差异:消费类电子产品要求可靠性高、费用低、标准化、使用简单,用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准基础之上,具有一系列可选的方案,从8086到80586都可以选取。1.2 java从C开始 为了使整个系统与平台无关,Gosling首先从改写C编译器着手。但是Gosling在改写过程中感到仅C是无法满足需要的,于是在1991年6月份开始准备开发一个新的语言,那么给它起一个什么名字呢?Gosling回首向窗外望去,看见一棵老橡树,于是建一个目录叫Oak,这就是Java语言的前身(后来发现Oak已是Sun公司另一个语言的注册商标,才改名为Java,即太平洋上一个盛产咖啡的岛屿的名字)。 Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行的软硬件环境。他要建立一个系统,这个系统运行于一个巨大的、分布的、异构的网格环境中,完成各电子设备之间的通信与协同工作。Gosling在设计中采用了虚机器码(Virtual Machine Code)方式,即Java语言编译后产生的是虚拟机,虚拟机运行在一个解释器上,每一个操作系统均有一个解释器。这样一来,Java就成了平台无关语言。这和Gosling设计的Sun NeWs窗口系统有着相同的技术味道。在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器,这样便保证了用户界面的良好的可移植性。 Patrick Naughton也是Sun公司的技术骨干,曾经是Open Windows项目的负责人。当Naughton加入该小组后,整个工作进展神速。经过17个月的奋战,整个系统胜利完成。它是由一个操作系统、一种语言(Java)、一个用户界面、一个新的硬件平台、三块专用芯片构成的。通常情况下,这样的项目在Sun公司要75个人干三年。项目完成后,在Sun公司内部做了一次展示和鉴定,观众的反应是:在各方面都采用了崭新的、非常大胆的技术。许多参观者对Java留下了非常深刻的印象,特别得到Sun的两位领导人Scott McNealy和Bill Joy的关注,但Java的前途未卜。1.3 Java语言的转折点 到了1994年,WWW已如火如荼地发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台,它应是一种实时性较高、可靠安全、有交互功能的浏览器。于是Gosling决定用Java开发一个新的Web浏览器。这项工作由Naughton和Jonathan Payne负责,到1994年秋天,完成了Web Runner的开发工作。Web Runner是HotJava的前身,这个原型系统展示了Java可能带来的广阔市场前景。Web Runner改名为HotJava,并于1995年5月23日发表后,在产业界引起了巨大的轰动,Java的地位也随之而得到肯定。又经过一年的试用和改进,Java1.0版终于在1996年年初正式发表。 第二章 需求分析需求分析是整个软件开发过程的指南,是软件开发人员开发出符合用户要求的软件的基础。需求分析为用户和软件开发者双方对该系统的初始框架有一个共同的理解,使之成为整个项目开发工作的基础。2.1鼠标功能分析在整个计算器画面由多个方格和一个文本框等组成。所有数字方块和一些运算符都连有触发事件,点击鼠标就会有相应的反应,具体操作由内部代码给予命令。2.2 主界面显示功能主界面需要有输入文本框,当在输入数字时要显示输入的数字和显示运算结果,同时文本框设计为不可编辑。有了文本框显示器,当然要有输入的数字和运算符,就需要有各相关按钮进行编排,按钮分别是0到9还有“+、-、*、/、.、C(清零)”。控件显示:窗口中各文本框按钮的编排布局,要符合美学要求,可通过一些版面分配的相关类进行自动生成。需要五行四列。错误处理:当输入的数字和步骤非法时要进行相关报错,比如没有输入数字的情况下就进行预算这是计算器要提示报错,在比喻,当进行除法运算时,当除数为零时,计算器要提示“除数不能为零”,这些提示应当都由一个弹出窗口进行提示。2.3总框架分析首先需要用一个counter类继承了JFrame类来形成一个视窗界面,然后通过JPanle定义三个面板,在用JTextField定义文本框,在用JButton定义相关按钮,在将这些仿佛JPanel中,通过GridLayout进行版面布局,在通过super设置窗体标题。在利用这些类的同时要知道需要引入哪些套件比如需要import java.awt.BorderLayout等。但整个过程由三个框架构成,一是主界面,二是版面配置及各相关按钮实现先关功能,三是运算出正确结果及相关报错。计算器主 界 面版 面 配 置 及 相 关 按钮实现正确结果及相关报错代码的框架结构也是按照这样来划分的,主要就分为这三块,这样在程序代码编写过程中,已对各功能进行了模块化,然后对各个模块进行代码实现,在编写过程中一些小问题就很容易解决。这样,一个简单的计算器就开发好了。第三章 代码实现一、代码编写所需要个各套件 import javax.swing .*;import java.io.*;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;功能:这些套件为后面各按钮的相关功能提供的保障。二、代码中各种类 1、counter类 public class counter extends JFrame implements ActionListenerJPanel txtpanel,btnpanel,southpanel;/定义三个面板JTextField txtinput;/定义文本框JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,add,divide,subtract,clearbtn,equalbtn;GridLayout g1;/创建布局double simpan,hasil;String operasi;。功能:形成主界面,然后对各组件进行声明。二、各函数 1、构造函数 counter public counter().setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/设置程序的关闭方式功能:初始化各组件,并对一些组件进行大小位置等设计。2、事件触发函数actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e)try .catch(Exception ouch)JOptionPane.showMessageDialog(null,错误输入,error,JOptionPane.ERROR_MESSAGE);/异常处理功能:获取由计算器的到的数据并进行计算,同时加入trycatch,用于捕捉在输入当中出现的错误。 3、主函数public static void main(String args)tryUIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel);catch(Exception e)/异常处理new counter();/创建窗体 功能:程序运行的开始,激活counter类。三、各组件 1、版面及各组件生成布局 getContentPane().add(txtpanel,BorderLayout.NORTH);/设置面板位置txtpanel.add(txtinput);/添加文本框到txtpanel面板中g1=new GridLayout(4,4,5,5);/设置面板布局btnpanel.setLayout(g1); getContentPane().add(btnpanel); 2、清除键设计 public void btnCancelActionPerformed()/清空文本框内容txtinput.setText();第四章 测试1、窗口 2、加法 例子:4+5=9 3、减法 9-5=4 4、乘法 6*3=18 5、除法 20/8=2.5 6、除数为0时 第五章 心得体会 在此次的课程设计实践中,我学到了教科书上没有的东西。这次课程设计,我按照课程设计的要求,分块实现程序的功能。在实践中我遇到许多的问题,通过网上求助和同学帮助,最后都克服了,最后我成功的完成了这次课程设计。从中我充分了解java面对对象的特性,并体会到java与C语言的不同之处。在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的发展带来帮助。第六章 总结1、通过编写这个相对复杂的程序,让我认识解决实际问题前应先建立模型,再通过建立的模型使问题简单化,从而解决问题。2、这次编写的程序大部分是通过调用各种包中的方法来实现的,这也让我充分理解了包和类调用的关系。3、由于这次编写的程序对于我来说相对的比较复杂,所以不能一次性编写调试,也由此让我学会把程序分块,逐个编写、调试。第七章 参考文献 【1】丁振凡.java语言实用教程(第二版)【M】.北京邮电大学出版社.2008.1【2】杨树林等.java语言最新实用案例教程(第二版)M.清华大学出版社.2010.7 【3】叶核亚.java程序设计实用教程(第三版)M.电子工业出版社.2010.2*附录 import javax.swing .*;import java.io.*;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;public class counter extends JFrame implements ActionListenerJPanel txtpanel,btnpanel,southpanel;/定义三个面板JTextField txtinput;/定义文本框JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,add,divide,subtract,clearbtn,equalbtn;GridLayout g1;/创建布局double simpan,hasil;String operasi;public counter()super(计算器汪龙);/设置窗体标题txtpanel=new JPanel();/创建面板btnpanel=new JPanel();southpanel=new JPanel();txtinput=new JTextField(25);/创建文本框txtinput.setEnabled(false);/设置文本框不可编辑txtinput.setHorizontalAlignment(JTextField.RIGHT);txtinput.setText();/设置起始文本框内容为空b1=new JButton(1);/创建按钮b2=new JButton(2);b3=new JButton(3);b4=new JButton(4);b5=new JButton(5);b6=new JButton(6);b7=new JButton(7);b8=new JButton(8);b9=new JButton(9);b0=new JButton(0);bdes=new JButton(.);multiply=new JButton(x);multiply.setFont(new Font(Gothic,Font.BOLD,20);/设置画笔属性multiply.setBackground(Color.black);/设置按钮边框颜色multiply.setForeground(Color.blue);/设置画笔颜色divide=new JButton(/);divide.setFont(new Font(Gothic,Font.BOLD,20);divide.setBackground(Color.black);divide.setForeground(Color.blue);add=new JButton(+);add.setFont(new Font(Gothic,Font.BOLD,20);add.setBackground(Color.black);add.setForeground(Color.blue);subtract=new JButton(-);subtract.setFont(new Font(Gothic,Font.BOLD,20);subtract.setBackground(Color.black);subtract.setForeground(Color.blue);clearbtn=new JButton(C);clearbtn.setFont(new Font(Arial,Font.ITALIC,16);clearbtn.setBackground(Color.black);clearbtn.setForeground(Color.green);clearbtn.addActionListener(new ActionListener()public void actionPerformed(ActionEvent argh)btnCancelActionPerformed(););equalbtn=new JButton(=);equalbtn.setFont(new Font(Arial,Font.ITALIC,20);equalbtn.setBackground(Color.black);equalbtn.setForeground(Color.red);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);b0.addActionListener(this);bdes.addActionListener(this);multiply.addActionListener(this);divide.addActionListener(this);add.addActionListener(this);subtract.addActionListener(this);equalbtn.addActionListener(this);getContentPane().add(txtpanel,BorderLayout.NORTH);/设置面板位置txtpanel.add(txtinput);/添加文本框到txtpanel面板中g1=new GridLayout(4,4,5,5);/设置面板布局btnpanel.setLayout(g1);getContentPane().add(btnpanel);/窗体中加入第二个面板/把下列按钮加入到btnpanel面板中btnpanel.add(b7);btnpanel.add(b8);btnpanel.add(b9);btnpanel.add(multiply);btnpanel.add(b4);btnpanel.add(b5);btnpanel.add(b6);btnpanel.add(divide);btnpanel.add(b1);btnpanel.add(b2);btnpanel.add(b3);btnpanel.add(add);btnpanel.add(b0);btnpanel.add(bdes);btnpanel.add(equalbtn);btnpanel.add(subtract);getContentPane().add(southpanel,BorderLayout.SOUTH);/设置面板位置southpanel.add(clearbtn); /把clearbtn加入到southpanel面板中setSize(250,300);/设置窗体初始大小setVisible(true);/设置窗体可见setLocation(300,200);/设置初始窗体在屏幕上的位置setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/设置程序的关闭方式public void btnCancelActionPerformed()/清空文本框内容txtinput.setText();public void actionPerformed(ActionEvent e)try / txtinput.setText();Object objkcal=e.getSource();/取得按钮if(objkcal=b1)/如果按下b1,则把文本框中的内容置为1txtinput.setText(txtinput.getText()+1 );else if(objkcal=b2)txtinput.setText(txtinput.getText()+2);else if(objkcal=b3)txtinput.setText(txtinput.getText()+3 );else if(objkcal=b4)txtinput.setText(txtinput.getText()+4 );else if(objkcal=b5) txtinput.setText(txtinput.getText()+5 );else if(objkcal=b6) txtinput.setText(txtinput.getText()+6 );else if(objkcal=b7) txtinput.setText(txtinput.getText()+7 );else if(objkcal=b8) txtinput.setText(txtinput.getText()+8 );else if(objkcal=b9) txtinput.setText(txtinput.getText()+9 );else if(objkcal=b0)txtinput.setText(txtinput.getText()+0 );else if(objkcal=bdes)txtinput.setText(txtinput.getText()+.);else if(objkcal=add) simpan=Double.parseDouble(txtinput.getText(); operasi=plus; txtinput.setText(); else if(objkcal=subtract)simpan=Double.parseDouble(txtinput.getText();operasi=minus;txtinput.setText(); else if(objkcal=divide) simpan=Double.parseDouble(txtinput.getText();operasi=bagi;txtinput.setText(); else if(objkcal=multiply) simpan=Double.parseDouble(txtinp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论