Java计算器课程设计——计算器模拟程序公开计算机科学系课程设计报告课程名称:Java 2程序设计基础课题名称:《计算器模拟程序》指导教师:李XXX姓名:xxxx学号:xxxxx班级:08级应用(2)班目录一、课程设计封面 ........................................................................ .... 1 二、目录 ........................................................................ .............. 3三、设计任务书 ........................................................................ ........ 3四、设计课题及本人任务 (4)五、程序功能简介: ...................................................................... ...4六、主体内容: ...................................................................... .. (4)1(设计分析......................................................................... . (4)2(程序结构(画流程图) (5)3(各模块的功能及程序说明 (6)4.源程序......................................................................... .. (6)5(操作方法(流程) (10)6(试验结果(包括输入数据和输出结果) (10)7(设计体 (11)(1)对实验原理有更深的理解 ........................................12(2)................... 对该理论在实践中的应用有深刻的理解12(3)激发了学习的积极性 (12)(4)............... 理解了该知识点以及学科之间的融合渗透12(5)程序所要求的功能 (13)(6)程序设计过程中的不足............................................. 13七、总结........................................................................ . (13)一、课程设计封面二、目录三、设计任务书主要内容、基本要求、主要参考资料等:主要内容:了解兀耳语言的使用,Java语言的开发环境,熟练掌握JDK的环境变量的设置,JDK_API_l_6_zh_CN的使用和查找,使用JDK来查找和使用各项接口、类、对象,继承类等的功能。
和使用方法;使用继承、类、抽象等方法实现该程序。
使用import java. awt. *;创建用户界面和绘制图形图像的所有类;import java. awt. event.*;提供处理由AWT组件所激发的各类事件的接口和类等方法。
最后使该程序显示GUI用户界面,能实现整数的加、减、乘、除四则运算。
基本要求:1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2、系统设计要实用,编程简练,可用,功能全面3、说明书、流程图要清楚4、记录设计情况5>要求采用模块化程序设讣方法,及锯齿型书写格式,要求上机调试通过和按设讣报告格式6、设计上交内容:设计报告一份(按格式书写);源程序文件(刻录)主要参考资料:Cava 2程序设计基础实用教程》.北京:叶核亚等,电子工业出版社,2003.Cava 2程序设计》.北京:蔡翠平等,北方交通大学出版社,2003.Cava 2面向对象程序设计教程》.北京:印雯等高等教育出版社,1999.《精彩Java程序设计》.北京:吴逸贤等科学出版社,2003.《Java 2程序设计教程》.北京:肖雯等中国电力出版社,2003.Cava 2面向对象程序设计》.北京:洪维恩等中国铁道出版社,2005.完成期限:笫十八周指导教师:李老师责任人:唐益龙日期:2010年12月15日四、设计课题及本人任务设计课题:Java 2程序设计基础计算器模拟程序本人任务:认真完成各项任务,完成所有项LI的制作开发,从设计构想到流程图的完成,完成各项功能的实现。
完成课程设计的源代码设计,编译、调试、成功运行等事项。
整个系统结束后对程序进行总结,编写小结。
撰写实验报告。
五、程序功能简介:程序功能简介:随着人们物质生活水平的日益提高,人民对高质量的计算提出了更高的要求,当今,是云计算的生活和物联网发展和使用阶段,计算性能的高低和计算的效率直接影响到人们生活与各大高校人才的培养质量。
基于此,采用面向对象的程序设计方法,UML为建模语言,JAVA为前台开发工具,ORACLE为后台数据库,开发了一个为人们生活带来便利的汁算器,主要完成对数据的高效计算。
有助于实现计算的信息化、规范化和科学化,使需要计算的人员能够及时、准确地计算所要计算的结果。
该系统的主要功能是实现正负数加、减、乘、除法的四则运算。
各程序模块均不同程度低显示了其主要功能。
六、主体内容:1 (设计分析计算器是一种很常用的计算工具,它在计算方面、日常生活中给我们提供很大的方便,在编辑此程序时,除了包括常用的加法运算算法、减法运算算法、乘法运算算法、除法运算算法等四大模块之外。
还特意添加了正负数的四则混合运算,给本系统增加了一个亮点。
其次本程序对其它算法也有很高的要求,对编程过程中所用到的接口、抽象、对象、类等方法和过程提出较高的要求,同时对编程过程中所编写的实验代码也不同程度的提出了很高的要求,所以在编程的过程中难免遇到了一些困难,所以在完成本次系统的过程中过程中充满了挑战与机遇。
2(程序结构(画流程图)计算器模拟程序流程图开始引用java, awt软件包引用javdx. swing软件包计算器类继承Frame类创建计算器类数组的对象定义计算器字符串数组String[] arr输入数字判断输入的是否位数字是否否重新输入调整数字JTextField. RIGHT居右否检验是否有输入运算符运算符输入下一个需要运算的数字for (int i = 0; i < arr. length; i++) for(int i=0;i<index2.length;i++) 异常变量数组int □ index {}设置讣算器的窗口尺寸大小switch (c)循环语句输出运算结果结束3(各模块的功能及程序说明用于创建用户界面和绘制图形图像的所有类的模块。
使用和定义importjava. awt. 来调用创建用户界面和绘制图像的函数。
import java. awt. event. *; 该语句提供处理由AWT组件所激发的各类事件的接口和类。
(class Calculator extends Frame //Calculator 类继承Frame 类)设置窗口类的模块,包括窗口的长、宽尺寸、打开、关闭等功能。
class CalculatorPanel extends Panel函数模块//CalculatorPanel类继承Panel类,实现汁算器的加、减、乘、除等的运算功能,implements函数程序模块的引用和使用。
程序启动判断模块,start,启动监视器。
最后一个模块,以public void calculator (double x) 等语句完成的函数模块的返回运算结果。
4.源程序//CalculatorFrame. java//软件包java.awt包含用于创建用户界面和绘制图形图像的所有类。
import java・ awt・ BorderLayout:import java・ awt・ GridLayout;import java・ awt・ event・ ActionEvent;〃对自身进行指派的事件的接口。
import java・ awt・ event・ ActionListener; //监听器import javax・ swing・ JButton;import javax・ swing・ JFrame:import javax・ swing・ JPanel;import javax・ swing・ JTextField;import javax.swing.UIMandger;//类javax.中的静态变量一个Swing组件,//import sun. uti1. calendar・ JulianCalendar;public class CalculatorFrame extends JFrame //Calculator Frame 类{〃创建相关的对象并定义私有变量private JTextField text = new JTextFieldO;private JButton btnEq = new JButton("=");private JButton[] btns = new JButton[16];private JPanel btnsPanel = new JPanel():private GridLayout glayout = new GridLayout(4, 4, 2, 2);private String input二"0";private double saveFirstlnput = 0;private boolean lockpoint = false;private int firstNum = 0;private char c;public CalculatorFrame(){init ();}〃定义+、-、*、,的字符串数组private void init() {StringE] arr 二[:VbtnsPane1. setLayout(glayout);text・ setHorizontalAlignment(JTextField・ RIGHT); //调整文字使文字居右for (int i = 0; i < arr・ length; i++){JButton btn = new JButton(arr[i]):btnsLil = btn;btnsPane1. add(btn);}int[] index= {0, 1, 2, 4, 5, 6, 8, 9, 10, 12};//异常变量数组for (int i=0;i<index・1ength;i++){btnsFindexEi[]・ addActionListener(new NumbtnListener());}btnsLl4]・ addActionListener(new PointbtnListener());btnsL13]・ addActionListener(new changeSybtnListener());int 匚index2={3, 7, 11, 15};for (int i=0;i<index2・1ength;i++){btns[index2[i[]・ addActionListener(new calcbtnListener ());}btnEq. addActionListener(new btnEqListener());this・ getContentPane()・ add(btnsPanel);this・ getContentPane()・ add(text, BorderLayout・ NORTH);this・ getContentPane()・ add(btnEq, BorderLayout・ SOUTH);this・ setLocation(300, 250);this. setSize(240, 250);this・ setDefaultCloseOperation(JFrame・ EXIT_ON_CLOSE);“);this. setTitle(,z计算器this・ setVisible(true);}//调整计算器的窗口和输入输出界面窗口。