




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密 级 公 开 计算机科学系课程设计报告课 程 名 称: Java 2 程序设计基础 课 题 名 称: 计算器模拟程序 指 导 教 师: 李xxx 姓 名: xxxx 学 号: xxxxx 班 级: 08级应用(2)班 目 录一、课程设计封面1二、目 录3三、设计任务书3四、设计课题及本人任务4五、程序功能简介:4六、主体内容:41设计分析42程序结构(画流程图)53各模块的功能及程序说明64. 源程序65操作方法(流程)106试验结果(包括输入数据和输出结果)107设计体会11(1)对实验原理有更深的理解12(2)对该理论在实践中的应用有深刻的理解12(3)激发了学习的积极性12(4)理解了该知识点以及学科之间的融合渗透12(5)程序所要求的功能13(6)程序设计过程中的不足13七、总 结13一、课程设计封面二、目 录三、设计任务书 主要内容、基本要求、主要参考资料等:主要内容: 了解Java语言的使用,Java语言的开发环境,熟练掌握JDK的环境变量的设置,JDK_API_1_6_zh_CN的使用和查找,使用JDK来查找和使用各项接口、类、对象,继承类等的功能。和使用方法;使用继承、类、抽象等方法实现该程序。使用 import java.awt.*; 创建用户界面和绘制图形图像的所有类; import java.awt.event.*; 提供处理由 AWT 组件所激发的各类事件的接口和类等方法。 最后使该程序显示GUI用户界面,能实现整数的加、减、乘、除四则运算。 基本要求:1、 对系统进行功能模块分析、控制模块分析正确,符合课题要求,实相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2、 系统设计要实用,编程简练,可用,功能全面3、 说明书、流程图要清楚4、 记录设计情况5、 要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式6、 设计上交内容:设计报告一份(按格式书写);源程序文件(刻录) 主要参考资料: Java 2程序设计基础实用教程.北京: 叶核亚等,电子工业出版社,2003. Java 2程序设计.北京: 蔡翠平等,北方交通大学出版社,2003. Java 2面向对象程序设计教程.北京: 印雯等 高等教育出版社,1999. 精彩Java程序设计.北京: 吴逸贤等 科学出版社,2003. Java 2程序设计教程.北京:肖雯等 中国电力出版社,2003. Java 2面向对象程序设计.北京:洪维恩等 中国铁道出版社,2005.完成期限:第十八周指导教师:李老师责 任 人:唐益龙日 期:2010年12月15日四、设计课题及本人任务设计课题: Java 2程序设计基础 计算器模拟程序本人任务: 认真完成各项任务,完成所有项目的制作开发,从设计构想到流程图的完成,完成各项功能的实现。完成课程设计的源代码设计,编译、调试、成功运行等事项。整个系统结束后对程序进行总结,编写小结。撰写实验报告。五、程序功能简介: 程序功能简介:随着人们物质生活水平的日益提高,人民对高质量的计算提出了更高的要求,当今,是云计算的生活和物联网发展和使用阶段,计算性能的高低和计算的效率直接影响到人们生活与各大高校人才的培养质量。基于此,采用面向对象的程序设计方法,UML为建模语言,JAVA为前台开发工具,ORACLE为后台数据库,开发了一个为人们生活带来便利的计算器,主要完成对数据的高效计算。有助于实现计算的信息化、规范化和科学化,使需要计算的人员能够及时、准确地计算所要计算的结果。该系统的主要功能是实现正负数加、减、乘、除法的四则运算。各程序模块均不同程度低显示了其主要功能。六、主体内容:1设计分析 计算器是一种很常用的计算工具,它在计算方面、日常生活中给我们提供很大的方便,在编辑此程序时,除了包括常用的加法运算算法、减法运算算法、乘法运算算法、除法运算算法等四大模块之外。还特意添加了正负数的四则混合运算,给本系统增加了一个亮点。其次本程序对其它算法也有很高的要求,对编程过程中所用到的接口、抽象、对象、类等方法和过程提出较高的要求,同时对编程过程中所编写的实验代码也不同程度的提出了很高的要求,所以在编程的过程中难免遇到了一些困难,所以在完成本次系统的过程中过程中充满了挑战与机遇。2程序结构(画流程图) 计算器模拟程序流程图开始 引用java.awt软件包 引用javax.swing软件包 计算器类继承Frame类 创建计算器类数组的对象 定义计算器字符串数组String arr 输入数字判断输入的是否位数字否是否重新输入调整数字JTextField.RIGHT居右否检验是否有运算符 输入运算符输入下一个需要运算的数字for(int i=0;iindex2.length;i+)for (int i = 0; i arr.length; i+)异常变量数组intindex 设置计算器的窗口尺寸大小 switch(c)循环语句输出运算结果结 束 3各模块的功能及程序说明用于创建用户界面和绘制图形图像的所有类的模块。使用和定义import java.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.UIManager;/类 javax.中的静态变量 一个 Swing 组件,/import sun.util.calendar.JulianCalendar;public class CalculatorFrame extends JFrame/Calculator类继承Frame类 /创建相关的对象并定义私有变量 private JTextField text = new JTextField(); private JButton btnEq = new JButton(=); private JButton btns = new JButton16; private JPanel btnsPanel = new JPanel(); private GridLayout glayout = new GridLayout(4,4,2,2); private String input=0; private double saveFirstInput = 0; private boolean lockpoint = false; private int firstNum = 0; private char c; public CalculatorFrame() init(); /定义+、-、*、的字符串数组 private void init() String arr = 7,8,9,/, 4,5,6,*, 1,2,3,-, 0,+/-,.,+; btnsPanel.setLayout(glayout); text.setHorizontalAlignment(JTextField.RIGHT); / 调整文字使文字居右 for (int i = 0; i arr.length; i+) JButton btn = new JButton(arri); btnsi = btn; btnsPanel.add(btn); intindex=0,1,2,4,5,6,8,9,10,12; /异常变量数组 for(int i=0;iindex.length;i+) btnsindexi.addActionListener(new NumbtnListener(); btns14.addActionListener(new PointbtnListener(); btns13.addActionListener(new changeSybtnListener(); intindex2=3,7,11,15; for(int i=0;iindex2.length;i+) btnsindex2i.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(计算器); this.setVisible(true); /调整计算器的窗口和输入输出界面窗口。并调用this.setVisible(true)语句 class NumbtnListener implements ActionListener /创建ActionListener类,模拟计算器监听输入的窗口 public void actionPerformed(ActionEvent e) if(firstNum+=0) input=e.getActionCommand(); else input+=e.getActionCommand(); text.setText(input); class PointbtnListener implements ActionListener /创建ActionListener类,模拟输出计算的窗口 public void actionPerformed(ActionEvent e) if(lockpoint=false) input+=e.getActionCommand(); lockpoint=true; text.setText(input); class changeSybtnListener implements ActionListener /创建ActionListener类,模拟计算器改变输入的窗口 public void actionPerformed(ActionEvent e) double d=Double.valueOf(input); d=-1*d; input=Double.toString(d); text.setText(input); class calcbtnListener implements ActionListener /创建ActionListener类,模拟计算器改变输出的窗口 public void actionPerformed(ActionEvent e) c=e.getActionCommand().charAt(0); double d=Double.valueOf(input); saveFirstInput = d; firstNum=0; input=0; class btnEqListener implements ActionListener /创建ActionListener类,执行计算器运算的算法 public void actionPerformed(ActionEvent e) double d=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); public static void main(String args) throws Exception /主函数抛出异常 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); new CalculatorFrame(); 5操作方法(流程) 首先检验按键是否是数字与数字(09的数字、小数点组成):1、若是,检验下一次以前是否有运算符“+、-、*、”。是(给第一次输入数字)赋值a;不是(给第二次以后输入数字)赋值b 返回输入2、不是 检验是否是加减乘除号:(1)是检验是否以前运算符是否为空 是 赋值运算符 不是 分别加减乘除运算 返回输入(2)不是 检验是否是等于 是 ,进行运算赋值 返回输入 不是 那只能是清空毽子 清空6试验结果(包括输入数据和输出结果) 计算:10244=? 程序运行的结果如下: 点击或从键盘输入:1024 * 点击或从键盘输入:4 点击或从键盘输入“=”显示如下: 计算结果:4136.0。与预期的相吻合。其它计算类似7设计体会作为一名计算机科学系计算机科学与技术专业大三的学生,我觉得做这样的课程设计是十分有意义。在已度过的两年半大学生活里我们大多数接触的是专业基础课。我们在课堂上掌握的仅仅是专业基础课的理论面,如何去面对现实中的计算机方面所遇到的各种问题?如何把我们所学到的专业基础理论知识用到实践中去呢?我想做类似的大作业就为我们提供了良好的实践平台。在做本次课程设计的过程中,我感触最深的当属查阅了很多次设计书和指导书。为了让自己的设计更加完善,更加符合李老师的要求,一次次翻阅Java 2 程序设计基础教材与Java 2 程序设计基础实验指导书,一次次查阅一些资料。这是十分必要的,同时也是必不可少的。我做的是课程设计,而不是艺术家的设计。艺术家可以抛开实际,尽情在幻想的世界里翱翔,一切都要有据可依.有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。 作为一名计算机专业学生掌握一门或几门计算机软件语言是必不可少的,虽然本次课程设计没有要求尽可能多的用到Java 2 程序设计基础教材中所学的全部知识,在整个设计过程中我都竭尽所能地都用到了它。编程过程中先后涉及Java语言的使用,Java语言的开发环境,熟练掌握JDK的环境变量的设置,JDK_API_1_6_zh_CN的使用和查找,使用JDK来查找和使用各项接口、类、对象,继承类等的功能。和使用方法;使用继承、类、抽象等方法实现该程序。使用 import java.awt.*; 创建用户界面和绘制图形图像的所有类; import java.awt.event.*; 提供处理由 AWT 组件所激发的各类事件的接口和类等方法。 最后使该程序显示GUI用户界面,能实现整数的加、减、乘、除四则运算。JDK方便简洁,速度快,我的设计,大部分不懂的Java语句都是在JDK上查找出来的,然后按程序要求写转换成源代码。这样,有了JDK就可以更好的使程序更加完善。另外,课堂上也有部分知识不太清楚,于是我又不得不边学边用,时刻巩固所学知识,这也是我作本次课程设计的另一大收获。通过本次课程设计可以得出以下一些体会:(1)对实验原理有更深的理解通过Java 2 程序设计基础课程设计,掌握了什么是Java程序设计基础的几大要点,Java 2 程序程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识是机械的,表面的。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。(2)对该理论在实践中的应用有深刻的理解通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理解了计算器程序从理论到现实在计算机中是怎样执行的, 对java理论在实践中的应用有深刻的理解 。(3)激发了学习的积极性通过该课程设计,全面系统的理解了Java程序构造的一般原理和基本实现方法。把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计Java语言的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了Java语言,在这次课程设计中,我就是按照实验指导的思想来完成。加深了理解文件系统的内部功能及内部实现,培养实践动手能力和程序开发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 污水放网具体施工方案
- 第二课 工艺之美-独具匠心的文化创造说课稿高中美术人美版2019选择性必修5 工艺-人美版2019
- Unit 3 Could you please clean your room说课稿-2025-2026学年初中英语人教版五四学制2012八年级上册-人教版五四学制
- 牌匾的应急预案
- 湖州运动木地板施工方案
- 儿童节目主题活动方案策划
- 2025年八年级英语上册 Module 2 My home town and my country Unit 1 Its taller than many other buildings说课稿 (新版)外研版
- 2025年食品行业食品安全追溯体系在食品安全事故调查中的应用研究
- 招商引资活动中的数据分析与决策
- 美容策划活动方案设计图
- 2025年贵州省中考英语试卷
- 血源性传播疾病暴露后处理
- DB44∕T 2418-2023 公路路堤软基处理技术标准
- 人货场的培训课件
- 护理低温烫伤课件
- 搅拌站泵车管理制度
- 减肥店卫生管理制度
- 组胺H1受体拮抗剂合理应用专家共识(2025版)解读
- 2025年PE板材项目市场调查研究报告
- 老年人合理用药管理制度
- 日间手术操作规范管理制度
评论
0/150
提交评论