课程设计论文设计题目:java计算器学生姓名:指导教师:专业名称:所在院系:摘要在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。
Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。
该程序是一个图形界面的java 计算器,其界面主要采用了swing包,程序实现了:(1)实现简单加、减、乘、除的运算。
(2)实现除了加、减、乘、除按钮外其他按钮功能。
(3)给软件添加一个编辑、查看、帮助的主菜单。
(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。
(5)科学型计算器与标准计算器之间的菜单切换。
Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。
在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。
与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。
目录第1章概要设计 (1)1.1查找资料 (1)1.2选题 (1)1.3标准型计算器界面设计 (1)1.4本章小节 (3)第2章程序整体设计说明 (4)2.1程序中所用到的变量 (4)2.2程序部分源代码及注释 (4)2.3本章小节 (15)第3章程序运行效果 (16)3.1程序运行主界面 (16)3.2程序中各按钮运行界面 (16)3.3本章小节 (20)第4章设计中遇到的重点及难点 (21)4.1设计中遇到的重点 (21)4.2设计中的遇到的难点 (21)4.3本章小节 (23)第5章本次设计中存在不足与改良方案 (24)5.1本次设计中存在的不足 (24)5.2本次设计的改良方案 (24)5.3本章小节 (24)结论 (25)参考文献 (26)致谢 (27)指导教师评语 (28)答辩委员会评语 (29)第1章概要设计1.1查找资料21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。
计算机正以其前所未有的惊人速度向前发展,新的研究成果、新的实用软件不断涌现。
计算机应用也普及到各行各业、深入到人类各种社会活动和生产中。
为了便于对大量信息的处理,运用计算机软件实现自动管理成为了必然的趋势。
其实,“计算器”早已有了一个很长的历史,人们从很早就已经开始进行科学计算了,在人类不断探索不断进步的过程中计算器的用途越来越广,计算结果越来越精确,只有精确的结果才能使社会更加进步,使人类更能准确的掌握数据所反应的社会现象,并根据准确的数据反应进一步研究进步,所有计算已经成为人们生活学习的一个重要工具,对人类来说必不可少。
1.2选题Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。
图形界面的实现:考虑到简单、实用、高效等特点,就选择了Swing 来完成实现,在选择组件上,文本编辑区就选用了jTextField作为主要输入输出部件、数字则是选用了Swing Components内的JButton按钮、简易菜单主要是选用了Swing Menus里面的JMenu控件、菜单内所包含的选项是选用Swing Menus内的JMenuItem和jRadioButtonMenuItem两个控件。
1.3标准型计算器界面设计1.3.1 JAVA文件的建立(1)建立一个名称为“proj_jsq”Java工程,在该工程中添加一个可视化的Java类。
类所在的package文件包名称为:pack_jsq;类名:JFra_jsq;类中包含一个main函数()。
(2)界面的设计:图1.1标准型计算器界面图1.2 数字按钮字体颜色设置图1.3 功能按钮字体颜色设置(3)保持代码简洁复杂代码写后不易理解,在修改和重写上难度比较大,使工作更加复杂,所以编写代码时应保持代码的简洁易懂。
(4)功能实现在整个设计中要保持完整性,能够实现计算器中最基本的功能,如加、减、乘、除等。
1.3.2明确任务用java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,余数,三角函数,多数连续运算,科学计数法等功能。
1.4 本章小结通过第一章我们可以了解到这次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.2.1窗体中的菜单栏图解:程序框架图为应用程序提供一个图形化的界面本次设计运行出的程序框架图如图2-1所示图2-1程序框架图(1)复制菜单的功能实现代码如下:(2)粘贴菜单的功能实现代码如下:(3)科学型菜单的功能实现代码下:(4)数字分组的功能实现代码如下:编辑查看帮助复制粘贴数字分组科学型标准型关于计算器帮助主题(5)帮助主题菜单的功能实现代码如下:(6)关于计算器菜单的功能实现代码如下:①新建一个Visual Class类文件(名为JDia_About):图2-2 关于计算器的介绍②为关于计算器菜单添加actionperformed事件:2.2.2程序中各个按钮的功能实现:(1)计算器中数字(0~9)按钮所实现的功能代码如下:(2)点按钮的代码如下:①在文件的开头定义一个布尔型的变量:②在点按钮的actionPerformed事件中添加如下代码:(3)正负号按钮功能的实现代码如下:(4)计算器中四则运算符(+、-、*、/)实现的功能代码如下:(5)按钮实现的功能代码如下:(6)按钮实现的功能代码如下:(7) 按钮实现的功能:按百分比的形式显示乘积结果。
输入一个数,单击“*”,输入第二个数,然后单击“%”。
例如,50 * 25% 将显示为12.5。
也可执行带百分数的运算。
输入一个数,单击运算符(“+”、“-”、“*”或“/”),输入第二个数,单击“%”,然后单击“=”。
例如,50 + 25%(指的是50 的25%)= 62.5。
(8)按钮实现的功能代码如下:①在文件初始位置定义一个变量:②在四个运算符号代码内添加:③等于号内的代码如下:(9)为JTextField控件添加键盘输入(keyTyped)事件:其中包括0~9十个数字,Backspace和Ese等按钮的实现功能代码:(10)内存数据处理的功能代码:①清除内存数据:②读取内存数据:③保存数据到内存中:④使计算结果与内存中的数据相加:2.2.3科学型计算器中部分按钮功能的实现:(1)求数字阶乘按钮的代码如下:(2)求数字对数按钮的代码如下:①log函数的代码如下:②ln函数的代码如下:(3)求数字的三角函数(sin、cos、tan)按钮的代码如下:以sin函数为例代码如下:(cos和tan同理)DecimalFormat df=new DecimalFormat("0.0");double a;double b;if(bj==1){b=Double.parseDouble(jTextField1.getText());if((b*180/Math.PI)%180==0){a=0;str="0.";jTextField1.setText(str);}else if(b*180/Math.PI==30){a=Math.sin(b);str=df.format(a);jTextField1.setText(str);}else{a=Math.sin(b);str=Double.toString(a);jTextField1.setText(str);str="";pointIsTyped=false;}}else if(bj==0){if(Double.parseDouble(jTextField1.getText())%180==0){a=0;str="0.";jTextField1.setText(str);}elseif(Double.parseDouble(jTextField1.getText())==30){a=Math.sin((Double.parseDouble(jTextField1.getText()))*Math. PI/180);str=df.format(a);jTextField1.setText(str);}else{a=Math.sin((Double.parseDouble(jTextField1.getText()))*Math. PI/180);str=Double.toString(a);jTextField1.setText(str);str="";pointIsTyped=false;}}(4)求数字的平方按钮的代码如下:(5)Int按钮功能的代码如下:(6)PI按钮功能的代码如下:2.3 本章小节本章主要讲述的是计算器设计的整个过程,其中包括设计计算器界面主要使用到的控件和各按钮功能的实现代码,以及整个程序中所使用到的变量,虽然本章表述的设计过程比较详细,但是仍有不足之处,部分变量值的变化没有包含在内,需要用户根据自己的需要进行调整,在此就不做详细的说明了。
第3章程序运行效果:3.1 程序运行主要界面:(1)标准型计算器与科学型计算器之间的切换:图3-1计算器之间的换切3.2 计算器部分按钮运行主要界面:(1)加减乘除运算:(以除法为例:9/4和9/0)图3-2 9/4运算图图3-3 9/0运算图(2)开平方根运算:图3-4 开平方运算图(3)百分号运算:图3-5百分号运算图(4)求倒数据运算:①有效值的倒数据运行效果:图3-6倒数运算图②0求倒数运算:图3-7 0求倒数运算图(5)求负数的平方根:图3-8负数求平方根3.3本章小结本章主要介绍了用java创建计算器的运行后的效果图。