Java计算器课程设计.docx
- 文档编号:17901065
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:19
- 大小:147.83KB
Java计算器课程设计.docx
《Java计算器课程设计.docx》由会员分享,可在线阅读,更多相关《Java计算器课程设计.docx(19页珍藏版)》请在冰点文库上搜索。
Java计算器课程设计
密级
公开
计算机科学系课程设计报告
课程名称:
Java2程序设计基础
课题名称:
《计算器模拟程序》
指导教师:
李xxx
姓名:
xxxx
学号:
xxxxx
班级:
08级应用
(2)班
专业名称:
计算机科学与技术
学位授予单位:
黔南民族师范学院
制作日期:
2010年12月31日
目录
一、课程设计封面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
一、课程设计封面
二、目录
三、设计任务书
黔南民族师范学院计算机科学系
课程设计任务书
题目计算器模拟程序专业计算机科学与计技术
学号2008081205姓名唐益龙
主要内容、基本要求、主要参考资料等:
主要内容:
了解Java语言的使用,Java语言的开发环境,熟练掌握JDK的环境变量的设置,JDK_API_1_6_zh_CN的使用和查找,使用JDK来查找和使用各项接口、类、对象,继承类等的功能。
和使用方法;使用继承、类、抽象等方法实现该程序。
使用importjava.awt.*;创建用户界面和绘制图形图像的所有类;importjava.awt.event.*;提供处理由AWT组件所激发的各类事件的接口和类等方法。
最后使该程序显示GUI用户界面,能实现整数的加、减、乘、除四则运算。
基本要求:
1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实
相应功能;可以加以其他功能或修饰,使程序更加完善、合理;
2、系统设计要实用,编程简练,可用,功能全面
3、说明书、流程图要清楚
4、记录设计情况
5、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试
通过和按设计报告格式
6、设计上交内容:
设计报告一份(按格式书写);源程序文件(刻录)
主要参考资料:
《Java2程序设计基础实用教程》.北京:
叶核亚等,电子工业出版社,2003.
《Java2程序设计》.北京:
蔡翠平等,北方交通大学出版社,2003.
《Java2面向对象程序设计教程》.北京:
印雯等高等教育出版社,1999.
《精彩Java程序设计》.北京:
吴逸贤等科学出版社,2003.
《Java2程序设计教程》.北京:
肖雯等中国电力出版社,2003.
《Java2面向对象程序设计》.北京:
洪维恩等中国铁道出版社,2005.
完成期限:
第十八周
指导教师:
李老师
责任人:
唐益龙
日期:
2010年12月15日
四、设计课题及本人任务
设计课题:
Java2程序设计基础计算器模拟程序
本人任务:
认真完成各项任务,完成所有项目的制作开发,从设计构想到流程图的完成,完成各项功能的实现。
完成课程设计的源代码设计,编译、调试、成功运行等事项。
整个系统结束后对程序进行总结,编写小结。
撰写实验报告。
五、程序功能简介:
程序功能简介:
随着人们物质生活水平的日益提高,人民对高质量的计算提出了更高的要求,当今,是云计算的生活和物联网发展和使用阶段,计算性能的高低和计算的效率直接影响到人们生活与各大高校人才的培养质量。
基于此,采用面向对象的程序设计方法,UML为建模语言,JAVA为前台开发工具,ORACLE为后台数据库,开发了一个为人们生活带来便利的计算器,主要完成对数据的高效计算。
有助于实现计算的信息化、规范化和科学化,使需要计算的人员能够及时、准确地计算所要计算的结果。
该系统的主要功能是实现正负数加、减、乘、除法的四则运算。
各程序模块均不同程度低显示了其主要功能。
六、主体内容:
1.设计分析
计算器是一种很常用的计算工具,它在计算方面、日常生活中给我们提供很大的方便,在编辑此程序时,除了包括常用的加法运算算法、减法运算算法、乘法运算算法、除法运算算法等四大模块之外。
还特意添加了正负数的四则混合运算,给本系统增加了一个亮点。
其次本程序对其它算法也有很高的要求,对编程过程中所用到的接口、抽象、对象、类等方法和过程提出较高的要求,同时对编程过程中所编写的实验代码也不同程度的提出了很高的要求,所以在编程的过程中难免遇到了一些困难,所以在完成本次系统的过程中过程中充满了挑战与机遇。
2.程序结构(画流程图)
计算器模拟程序流程图
输入数字
否
是
否
否
3.各模块的功能及程序说明
用于创建用户界面和绘制图形图像的所有类的模块。
使用和定义importjava.awt.*;来调用创建用户界面和绘制图像的函数。
importjava.awt.event.*;该语句提供处理由AWT组件所激发的各类事件的接口和类。
(classCalculatorextendsFrame//Calculator类继承Frame类)设置窗口类的模块,包括窗口的长、宽尺寸、打开、关闭等功能。
classCalculatorPanelextendsPanel函数模块//CalculatorPanel类继承Panel类,实现计算器的加、减、乘、除等的运算功能,implements函数程序模块的引用和使用。
程序启动判断模块,start,启动监视器。
最后一个模块,以publicvoidcalculator(doublex)等语句完成的函数模块的返回运算结果。
4.源程序
//CalculatorFrame.java
//软件包java.awt包含用于创建用户界面和绘制图形图像的所有类。
importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
//对自身进行指派的事件的接口。
importjava.awt.event.ActionListener;
//监听器
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
importjavax.swing.UIManager;
//类javax.中的静态变量一个Swing组件,
//importsun.util.calendar.JulianCalendar;
publicclassCalculatorFrameextendsJFrame
//Calculator类继承Frame类
{
//创建相关的对象并定义私有变量
privateJTextFieldtext=newJTextField();
privateJButtonbtnEq=newJButton("=");
privateJButton[]btns=newJButton[16];
privateJPanelbtnsPanel=newJPanel();
privateGridLayoutglayout=newGridLayout(4,4,2,2);
privateStringinput="0";
privatedoublesaveFirstInput=0;
privatebooleanlockpoint=false;
privateintfirstNum=0;
privatecharc;
publicCalculatorFrame()
{
init();
}
//定义+、-、*、\的字符串数组
privatevoidinit()
{
String[]arr={"7","8","9","/",
"4","5","6","*",
"1","2","3","-",
"0","+/-",".","+"};
btnsPanel.setLayout(glayout);
text.setHorizontalAlignment(JTextField.RIGHT);
//调整文字使文字居右
for(inti=0;i { JButtonbtn=newJButton(arr[i]); btns[i]=btn; btnsPanel.add(btn); } int[]index={0,1,2,4,5,6,8,9,10,12}; //异常变量数组 for(inti=0;i { btns[index[i]].addActionListener(newNumbtnListener()); } btns[14].addActionListener(newPointbtnListener()); btns[13].addActionListener(newchangeSybtnListener()); int[]index2={3,7,11,15}; for(inti=0;i { btns[index2[i]].addActionListener(newcalcbtnListener()); } btnEq.addActionListener(newbtnEqListener()); 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("计算器"); this.setVisible(true); } //调整计算器的窗口和输入输出界面窗口。 并调用this.setVisible(true)语句 classNumbtnListenerimplementsActionListener //创建ActionListener类,模拟计算器监听输入的窗口 { publicvoidactionPerformed(ActionEvente) { if(firstNum++==0) { input=e.getActionCommand(); } else { input+=e.getActionCommand(); } text.setText(input); } } classPointbtnListenerimplementsActionListener //创建ActionListener类,模拟输出计算的窗口 { publicvoidactionPerformed(ActionEvente) { if(lockpoint==false) { input+=e.getActionCommand(); lockpoint=true; } text.setText(input); } } classchangeSybtnListenerimplementsActionListener //创建ActionListener类,模拟计算器改变输入的窗口 { publicvoidactionPerformed(ActionEvente) { doubled=Double.valueOf(input); d=-1*d; input=Double.toString(d); text.setText(input); } } classcalcbtnListenerimplementsActionListener //创建ActionListener类,模拟计算器改变输出的窗口 { publicvoidactionPerformed(ActionEvente) { c=e.getActionCommand().charAt(0); doubled=Double.valueOf(input); saveFirstInput=d; firstNum=0; input="0"; } } classbtnEqListenerimplementsActionListener //创建ActionListener类,执行计算器运算的算法 { publicvoidactionPerformed(ActionEvente) { doubled=Double.valueOf(input); switch(c) { case'+': d+=saveFirstInput; break; case'-': d=saveFirstInput-d; break; case'*': d*=saveFirstInput; break; case'/': d=saveFirstInput/d; break; } input=Double.toString(d); text.setText(input); } } publicstaticvoidmain(String[]args)throwsException //主函数抛出异常 { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); newCalculatorFrame(); } } 5.操作方法(流程) 首先检验按键是否是数字与数字(0——9的数字、小数点组成): 1、若是,检验下一次以前是否有运算符“+、-、*、\”。 是(给第一次输入数字)赋值a;不是(给第二次以后输入数字)赋值b返回输入 2、不是检验是否是加减乘除号: (1)是检验是否以前运算符是否为空①是赋值运算符②不是分别加减乘除运算返回输入 (2)不是检验是否是等于①是,进行运算赋值返回输入②不是那只能是清空毽子清空 6.试验结果(包括输入数据和输出结果) 计算: 1024×4=? 程序运行的结果如下: 点击或从键盘输入: 1024* 点击或从键盘输入: 4点击或从键盘输入“=”显示如下: 计算结果: 4136.0。 与预期的相吻合。 其它计算类似 7.设计体会 作为一名计算机科学系计算机科学与技术专业大三的学生,我觉得做这样的课程设计是十分有意义。 在已度过的两年半大学生活里我们大多数接触的是专业基础课。 我们在课堂上掌握的仅仅是专业基础课的理论面,如何去面对现实中的计算机方面所遇到的各种问题? 如何把我们所学到的专业基础理论知识用到实践中去呢? 我想做类似的大作业就为我们提供了良好的实践平台。 在做本次课程设计的过程中,我感触最深的当属查阅了很多次设计书和指导书。 为了让自己的设计更加完善,更加符合李老师的要求,一次次翻阅《Java2程序设计基础》教材与《Java2程序设计基础》实验指导书,一次次查阅一些资料。 这是十分必要的,同时也是必不可少的。 我做的是课程设计,而不是艺术家的设计。 艺术家可以抛开实际,尽情在幻想的世界里翱翔,一切都要有据可依.有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。 作为一名计算机专业学生掌握一门或几门计算机软件语言是必不可少的,虽然本次课程设计没有要求尽可能多的用到《Java2程序设计基础》教材中所学的全部知识,在整个设计过程中我都竭尽所能地都用到了它。 编程过程中先后涉及Java语言的使用,Java语言的开发环境,熟练掌握JDK的环境变量的设置,JDK_API_1_6_zh_CN的使用和查找,使用JDK来查找和使用各项接口、类、对象,继承类等的功能。 和使用方法;使用继承、类、抽象等方法实现该程序。 使用importjava.awt.*;创建用户界面和绘制图形图像的所有类;importjava.awt.event.*;提供处理由AWT组件所激发的各类事件的接口和类等方法。 最后使该程序显示GUI用户界面,能实现整数的加、减、乘、除四则运算。 JDK方便简洁,速度快,我的设计,大部分不懂的Java语句都是在JDK上查找出来的,然后按程序要求写转换成源代码。 这样,有了JDK就可以更好的使程序更加完善。 另外,课堂上也有部分知识不太清楚,于是我又不得不边学边用,时刻巩固所学知识,这也是我作本次课程设计的另一大收获。 通过本次课程设计可以得出以下一些体会: (1)对实验原理有更深的理解 通过《Java2程序设计基础》课程设计,掌握了什么是Java程序设计基础的几大要点,Java2程序程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识是机械的,表面的。 通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。 (2)对该理论在实践中的应用有深刻的理解 通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理解了计算器程序从理论到现实在计算机中是怎样执行的,对java理论在实践中的应用有深刻的理解。 (3)激发了学习的积极性 通过该课程设计,全面系统的理解了Java程序构造的一般原理和基本实现方法。 把死板的课本知识变得生动有趣,激发了学习的积极性。 把学过的计Java语言的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。 以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了Java语言,在这次课程设计中,我就是按照实验指导的思想来完成。 加深了理解文件系统的内部功能及内部实现,培养实践动手能力和程序开发能力的目的。 (4)理解了该知识点以及学科之间的融合渗透 本次课程设计程序部分是用Java语言编写的,把《计算机操作系统》、《编译原 理》、《C++语言》等学科联系起来,把各个学科之间的知识融合起来,把各门课程的知识联系起来,对计算机整体的认识更加深刻。 使我加深了对《计算机操作系统》、《编译原理》、《C++语言》课程的认识。 (5)程序所要求的功能 本程序是计算器模拟程序,目标是完成加、减、乘、除四则运算,先后使 用了调用Java软件包中的部分函数和方法,Java中的各种类。 创建对象、for循环、switch、case循环、函数的抛出异常、继承、接口等各种函数。 尽可能的使用了各种方法嵌入到函数之中。 完成程序的最终目的;完善该课程设计。 (6)程序设计过程中的不足 首先,从我自身而言: 在程序的书写及执行过程中存在着一些问题,自 身的原因是对Java各种函数及其方法使用不够熟练,影响了程序设计的总体的进度。 自身在程序设计过程中体现出不够细心,Java是严格区分大小写一门计算机语言,在大小写这个问题上调试程序的时候提示“找不到符号”等错误,但是经慢慢的寻找,多次调试终于把该程序调试运行成功。 相信在以后的学习过程中会更加的完善和改进。 在今后的学习中叶需要加强这方面的知识。 其次,从程序本身而言: 该程序虽然使用方便,但是该程序在使用过程中 不具备自动清零的功能,无论是手动操作还所显示的窗口都不具有此项功能;该程序无法对复杂的运算进行计算功能,也不具备四则混合运算的功能。 七、总结 通过对本次客车设计的学习,使我更进一步加深了对Java语言程序设计基础的掌握,从中学习到做事要持之以恒,无论是对学习还是生活我都要有一颗细心的心,真正的领悟到细节决定成败的道理! ! 总体来说整个设计我基本上还满意,也都是严格按照课程设计的要求来做。 但基于水平有限,难免会有错误,还望老师批评指正。 希望在今后的学习之中,老师多指教,由此我可用更好地了解到自己的不足,以便课后加以弥补。 在此,感谢不已! ! 谢谢! !
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 计算器 课程设计