您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > Java带计算过程的计算器课程设计报告
Java程序设计课程设计报告(2010--2011年度第1学期)保存计算过程的计算器专业网络工程学生姓名陆春燕班级B计算机092学号0970704211指导教师徐森完成日期2011年1月13日保存计算过程的计算器保存计算过程的计算器11概述1.1课程设计目的课程设计是课程学习的一个重要环节,通过课程设计使学生加深对Java程序设计的理解,掌握Java程序开发的基本方法,把课堂上所学到的多个单元串到一起,提高解决问题和分析问题的能力,具体体现在以下几个方面:1、了解Java开发一般应用程序的方法和步骤;2、进一步强化类的定义,掌握类的继承、接口;3、熟练掌握变量、数组的应用;4、熟悉图形用户界面中常用组件的使用,掌握事件处理机制;5、学习掌握一般的软件的设计方法和查阅、运用资料的能力;6、掌握JAVA程序设计语言,面向对象的软件设计思想、方法。7、设计一个简单的计算器程序能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面美观、简洁、适用。8掌握JAVA语言编程的基础知识并能熟练运用。9.熟悉类声明与对象的使用。。10.运用JAVASWING编写简单计算器程序,并实现其功能。1.2课程设计内容设计GUI界面的计算机程序,用户可以通过鼠标依次输入参加计算的数值,进行加,减,乘,除,等混合运算。2系统需求分析2.1系统目标一个简单的计算器程序。用户可以利用鼠标点击数值或操作符按键完成计算的输入,计算的结果将被显示在窗口上部的文本框中。2.2主体功能(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据的复位(清零);(4)实数运算中小数位的精度一致。2.课程设计的主要设计思想保存计算过程的计算器2对于此计算器程序,首先要设计其GUI界面,总体界面有一个文本框,18个按钮,总体界面用BorderLayout布局。文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。2.3开发环境JDK3系统概要设计3.1系统的功能模块划分1.主界面模块2.事件相应模块3.2系统流程图1二总体方案设计1.界面设计界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如下:保存计算过程的计算器32.功能介绍这是计算器中的一种:简单计算器,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;还能通过用户自己在文本框中输入数字,进行简单运算;如果输入有误时可以按Clear撤销后重新输入新数据三详细设计主题任务程序流程图如下:保存计算过程的计算器44系统详细设计1.主界面模块详细设计顶层容器:ComputerPad类实现主窗口,顶层容器中包含了1个mainpanel容器,1个结果显示textfield,1个centerpanel。各组件作用:其中centerpanel容器用于放数字按钮,小数点,运算符按钮;显示区panel用于放清零按钮,退格按钮和一个文本框。文本框用于显示输入数据和计算结果。布局方式:顶层容器用BroadLayOut布局,显示区文本框以及清零按钮和退格按钮放在mainpanel容器的north即显示区panel,显示区panel用FlowLayout布局,centerpanel容器用GridLayOut布局部分代码如下数字按钮类:实现数字按钮的定义publicclassNumberButtonextendsButton{}运算符按钮类:实现运算符号的定义publicclassOperationButtonextendsButton{}主窗口类实现监视器的注册,窗口布局,组件颜色大小等的设置publicclassComputerPadextendsFrameimplementsActionListener{NumberButtonnumberButton[];OperationButtonoprationButton[];Button小数点按钮,正负号按钮,退格按钮,保存计算过程的计算器5求倒数按钮,等号按钮,清零按钮;Panelpanel;JTextField显示区String运算符号[]={+,-,*,/};boolean是否按下等号=false;publicComputerPad(){super(计算器);//进行组件的声明,初始化设置,对数字符和运算符注册监听器JButton[]buttons=newJButton[18];{buttons[0]=newJButton(1);buttons[1]=newJButton(2);buttons[2]=newJButton(3);buttons[3]=newJButton(+);buttons[4]=newJButton(4);buttons[5]=newJButton(5);buttons[6]=newJButton(6);buttons[7]=newJButton(-);buttons[8]=newJButton(7);buttons[9]=newJButton(8);buttons[10]=newJButton(9);buttons[11]=newJButton(*);buttons[12]=newJButton(0);buttons[13]=newJButton(.);buttons[14]=newJButton(=);buttons[15]=newJButton(/);buttons[16]=newJButton(CE);buttons[17]=newJButton(BACK);}centerpanel.setLayout(newGridLayout(4,4,8,8));for(inti=0;i16;i++){centerpanel.add(buttons[i]);buttons[i].addActionListener(this);}A.setLayout(newFlowLayout());A.add(txt);对清零按钮和退位按钮进行监听保存计算过程的计算器6for(inti=16;i18;i++){A.add(buttons[i]);buttons[i].addActionListener(this);};//对显示过程的文本框进行设置JTextField=newJTextField(14);process.setEditable(false);//对面板进行设置this.setTitle(我的计算器);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setContentPane(mainpanel);this.setResizable(false);BorderLayoutbl=newBorderLayout();mainpanel.setLayout(bl);mainpanel.add(A,BorderLayout.NORTH);mainpanel.add(centerpanel,BorderLayout.CENTER);txt.setText(0);2.事件响应模块详细设计模块功能:事件响应模块用于实现数据输入,保存,运算以及显示。具体实现:将主窗口作为窗口中所有组件的监视器,链表用来存储输入的数字以及操作符以便运算时提取出来,publicvoidactionPerformed(ActionEvente){按下数字按钮时的事件处理JButtonjb=(JButton)e.getSource();charc=jb.getText().charAt(0);switch(c){case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':{addNum(c);break;}保存计算过程的计算器75测试5.1测试方案进行各种情况的输入检测进行加,减,乘,除运算,数字很大,小数,整数以及先按下“=”等非法输入情况。5.2测试结果进行四则运算Case1:18+20预计结果38实际结果如下Case2:20-50预计结果-30实际结果Case3:5/3预计结果1.67实际结果如下保存计算过程的计算器8Case412*8预计结果96实际结果如下Case5开始数字57按退位按钮预计结果5执行结果如下保存计算过程的计算器9Case6开始数字78按清零按钮预计结果0执行结果如下保存计算过程的计算器106小结在做本项目是时候,会遇到很多问题,最大的问题的如何保存已经输入的数字或者符号进行运算,如何显示运算过程,经过多次研究和查询发现运可以运用链表进行存储和提取数据,用栈也是可以的。此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。最大的收获是在弯完成过程中培养的解决问题的能力,在做项目时必然会遇到困难,会有不会的东西,重要的不是现在会不会,而是遇到问题知道如何找到解决的途径。还使我对所学知识能够融会贯通,又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。参考文献[1]耿祥义,张跃平.Java2实用教程(第三版)[M].北京:清华大学出版社,2006[2]耿祥义.Java课程设计(第三版)[M].北京:清华大学出版社,2004[3]张跃平.Java2实用教程实验指导与习题解答(第三版)[M].北京:清华大学出版社,2004保存计算过程的计算器11保存计算过程的计算器12
本文标题:Java带计算过程的计算器课程设计报告
链接地址:https://www.777doc.com/doc-5975151 .html