已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
塔里木大学信息工程学院课程设计目录前言1正文22.1课程设计目的22.2课程设计的基本知识22.3课程设计要求23.1需求分析23.2详细设计33.2.1程序流程图33.2.2界面设计想象图:33.3设计思路:33.3.1主要代码展示及说明:4总结6参考文献6附录7前言Java技术是当今最流行最实用的计算机技术,是二十世纪九十年代的计算机技术的重大发明,Java语言是一种纯粹面向对象的高级编程语言,是因特网上的世界语;当前Java应用形势一片大好,是整个企业系统的宠儿; 掌握Java技术是每一个关心和立志从事IT事业的人的内功, 也是当前市场的迫切需要, 更是振兴中华软件的绝好机会。 Java是现在全球最时髦的开发工具之一,它拥有一套庞大且完善的类库,内置了其他语言需要靠库甚至是操作系统才能支持的功能,拥有一个虚拟机,总之,Java的出现,确实给整个程序界带来了巨大的冲击,也许现在还无法准确评估Java为整个IT业带来的影响,但是有一点却毋庸置疑-Java将不可避免地影响一代程序员. Java是面积网络的设计语言,用来让程序员创建应用程序,这些应用程序可以通过下载,而且可在任何计算平台上安全地运行,如果再加上互联网和公司企业内部网体系,你将会拥有一个未准的网络计算环境,Java作为一个分布式的,面向对象的程序设计各方,可以让位于任何地方的任何计算机应用网络上的的应用程序. 综合上述,Java的生命力体现在如下方面: 1. Java产生与流行是InterNet发展的客观要求. 2.是一门各方面性能都很好的编程语言,它的基本特点是简单,面向对象,分布式,解释的,健壮的,完全的,结构中立的,可移植的,性能很优异的,多线程的,动态的,适合的Internet环境上开发应用系统. 3.Java可以制作大部分网络应用程序系统,而且与如今流行的WWW浏览器结合很好. 4.Java不仅仅是一种各方,更重要的是一种区别于传统系统,遵守网络就是计算机信条的平台技术.Java平台将面向对象系统扩展成包括程序和数据的网络计算机(NC),而这个平台的核心就是Java虚拟机,许多使Java成为万能开发平台的属性都源于Java虚拟机的概念和实现. Java语言是一种功能强大的编程语言,分为J2SE、J2ME、J2EE几个版本.Java由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。平台Java平台由Java虚拟机(Java Virtual Machine,简称JVM)和Java 应用编程接口(Application Programming Interface,简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.4,最近版本为Java1.7。正文2.1课程设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。 通过课程设计,学生在下述各方面的能力应该得到锻炼。 1.进一步巩固、加深学生所学专业课程面向对象程序设计-JAVA的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力; 2.全面考核学生所掌握的基本理论知识及其实际业务能力从而达到提高学生素质的最终目的。 3.利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序训练独立开发应用系统,进行数据处理的综合能力; 4.对于给定的设计题目,如何进行分析,理清思路并给出相应的数学模型; 5.掌握面向对象程序设计的方法。 6.熟练掌握JAVA的基本语法,灵活运用各种数据类型; 7.进一步掌握在DOS环境下如何调试程序、单步调试、设置断点、观察表达式、分块调试)和修改程序. 2.2课程设计的基本知识 熟悉JAVA程序设计的基本知识: 1) GUI图形界面设计; 2) 接口; 3) 实现抽象方法; 4) 响应事件. 2.3课程设计要求 1) 仔细分析设计题目编写程序源代码; 2) 积极上机调试源程序增强编程技巧与调程能力; 3) 认真书写课程设计预习报告,课程设计说明书; 4) 遵守课程设计要求和机房管理制度服从指导教师的安排确保课程设计的顺利完成课程设计内容. 3.1需求分析1.设计的计算器可以完成加法、减法、乘法、除法的简单运算。2.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。3.添加小数点功能,用以实现浮点型数据的计算。4.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。3.2详细设计3.2.1程序流程图开始主界面结果输出运算数据运算符号功能模块继续 图.2界面设计想象图: 7 8 9 4 5 6 /1 2 3 +0 . =CSQRTX 2X 3图设计思路: ( 1 ) 根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个 文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel中,完成界面设计。 ( 2 ) 设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当 中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量中,然后重置文本框内容,将运算符号显示到文本框中,随后输入第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运算符先将字符串数据转化成双精度类型,然后计算出结果并显示到文本框当中。 ( 3 ) 基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、 清零、退格等功能的实现,清零直接重置文本框内容,退格功能则采用substring函数截取字符串长度。( 4 ) 设计的计算器可以完成加法、减法、乘法、除法的简单运算。( 5 ) 实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。( 5 ) 添加小数点功能,用以实现浮点型数据的计算。( 6 ) 使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。3.3.1主要代码展示及说明: JPanel btnpanel,south_panel;/定义两个个按钮面板JTextField txtinput;/定义文本框JButton:b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,divide,add,subtract,clearbtn,equalbtn,sqrt_btn,pingfang_btn,lifang_btn;/定义按钮;super(计算器);/设置窗体标题btnpanel=new JPanel();south_panel = new JPanel();txtinput=new JTextField(25);/创建文本框txtinput.setEditable(false);/设置文本框不可编辑setSize(250,300);/设置窗体初始大小setVisible(true);/设置窗体可见setLocation(300,200);/设置初始窗体在屏幕上的位置setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/设置程序的关闭方式(关闭窗体时,程序自动结束)this.setResizable(false);/设置窗口不能改变大小catch(Exception ouch)JOptionPane.showMessageDialog(null,错误输入,error,JOptionPane.ERROR_MESSAGE);/异常处理3.4运行调试与分析讨论 运行结果截图: 除法截图1.当被除数为零的时候程序会自动提示,被除数不能为零。 例如:6/0 图3.4.1 加法截图 例如 5+5=10 如下: 减法截图:7-3=4如下: 图3.4.4 图3.4.5总结Java课程设计这两周来,通过对所选java题目程序的详细分析和更改,受益匪浅.让我了解到了Java更多的实用功能,也了解到了自己学习结合实践的不足.实用的软件理论,技术与方法才是我们学习的最终目的,应该有更多的时间花在实践环节,也希望学校以后能安排更多的实验性课程,不至于让理论成为白字,为以后的工作打好基础. 该计算器基本运算没有问题,清零、正负号、求倒数、退格功能都能很好的实现,总体能完成一个计算器的基本功能,但仍有许多地方需要改进,比如小数点的实现所存在的一些问题,虽然在基本的运算过程当中不会造成太大影响,但这依然不能认为是一个很好的计算器,同时,在另一方面,该计算器还没能很好的实现连续计算的功能,必须每次按下等号按钮计算出结果后才能用产生的结果接着进行下一次的计算,改进的方法是在运算符上同时注册Result类,让运算符同时拥有计算结果的功能。在这次课程设计中,我学到了很多的知识,在对Java的学习上是我学会了怎么将学到的理论知识用到实践中去,改变了过去的学习方法和学习态度,找到了一门自己很喜欢的学科。在这次课程设计中本课程设计由我一个人来完成,深深的感受到了一个人力量的单薄,了解到了在完成一个完整的项目上团队的重要性,在实际的程序开发中,团队的力量往往比个人力量之和要大上很多,并且在今后的开发中,我们都将是以团队的形式展开工作的,所以我们应该在现在学习的时候养成一种良好的团队精神,以为将来的开发打下一顶的基础。通过此次课程设计,使我更加扎实的掌握了有关java程序设计教程的java方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。参考文献1.张桂珠 刘丽 陈爱国 Java面向对象程序设计(第2版)北京邮电大学出版社2毕广吉.Java程序设计实例教程M. 北京:冶金工业出版社,2007年3.王保罗.Java面向对象程序设计M. 北京:清华大学出版社,2003年4.高林,周海燕.Jsp网上书店系统与案例分析M. 北京:人民邮电出版社,2004年5.刘腾红,孙细明.信息系统分析与设计M. 北京:科学出版社,2003年6.Bruce Eckel,Thinking in Java 4,American:Prentice Hall PTR7.Oreilly,Java Servlet Programming,American:Sernni Yey8.OReilly & Associates, Inc Java Cookbookin the United States or Canada9.Siyan K S,Weaver J.精通JSP网页编程北京:宇航出版社,1988年附录package jsq;import javax.swing.*;import java.awt.*;/图形界面import java.awt.event.*;/监听public class Counter extends JFrame implements ActionListenerJPanel btnpanel,south_panel;/定义两个个按钮面板JTextField txtinput;/定义文本框JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,divide,add,subtract,clearbtn,equalbtn,sqrt_btn,pingfang_btn,lifang_btn;/定义按钮;double simpan,hasil;String operasi;public Counter()super(计算器);/设置窗体标题btnpanel=new JPanel();south_panel = new JPanel();txtinput=new JTextField(25);/创建文本框txtinput.setEditable(false);/设置文本框不可编辑txtinput.setHorizontalAlignment(JTextField.RIGHT);txtinput.setText();/设置起始文本框内容为空b1=new JButton(1);/创建按钮b2=new JButton(2);b3=new JButton(3);b4=new JButton(4);b5=new JButton(5);b6=new JButton(6);b7=new JButton(7);b8=new JButton(8);b9=new JButton(9);b0=new JButton(0);bdes=new JButton(.);sqrt_btn = new JButton(sqrt);pingfang_btn = new JButton(X2);lifang_btn = new JButton(X3);multiply=new JButton(x);divide=new JButton(/);add=new JButton(+);subtract=new JButton(-);equalbtn=new JButton(=);clearbtn=new JButton(C);clearbtn.addActionListener(new ActionListener()/实现清空操作public void actionPerformed(ActionEvent argh)txtinput.setText(););sqrt_btn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / TODO 自动生成方法存根txtinput.setText(Math.sqrt(Double.parseDouble(txtinput.getText() + ););pingfang_btn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / TODO 自动生成方法存根double d = Double.parseDouble(txtinput.getText();txtinput.setText(d * d + ););lifang_btn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / TODO 自动生成方法存根double d = Double.parseDouble(txtinput.getText();txtinput.setText(d * d * d + ););b1.addActionListener(this);/添加监视器b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);b0.addActionListener(this);bdes.addActionListener(this);multiply.addActionListener(this);divide.addActionListener(this);add.addActionListener(this);subtract.addActionListener(this);equalbtn.addActionListener(this);getContentPane().add(this.txtinput,BorderLayout.NORTH);/设置面板位置btnpanel.setLayout(new GridLayout(4,4);/设置面板布局getContentPane().add(btnpanel);/窗体中加入按钮面板/把下列按钮加入到btnpanel面板中btnpanel.add(b7);btnpanel.add(b8);btnpanel.add(b9);btnpanel.add(multiply);btnpanel.add(b4);btnpanel.add(b5);btnpanel.add(b6);btnpanel.add(divide);btnpanel.add(b1);btnpanel.add(b2);btnpanel.add(b3);btnpanel.add(add);btnpanel.add(b0);btnpanel.add(bdes);btnpanel.add(equalbtn);btnpanel.add(subtract);south_panel.add(clearbtn);/设置面板位置south_panel.add(sqrt_btn);south_panel.add(pingfang_btn);south_panel.add(lifang_btn);this.add(south_panel,BorderLayout.SOUTH);setSize(250,300);/设置窗体初始大小setVisible(true);/设置窗体可见setLocation(300,200);/设置初始窗体在屏幕上的位置setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/设置程序的关闭方式(关闭窗体时,程序自动结束)this.setResizable(false);/设置窗口不能改变大小public void actionPerformed(ActionEvent e)tryObject objkcal=e.getSource();/取得按键if(objkcal=b1)/如果按下b1,则把文本框中的内容置为1txtinput.setText(txtinput.getText()+1);elseif(objkcal=b2)txtinput.setText(txtinput.getText()+2);elseif(objkcal=b3)txtinput.setText(txtinput.getText()+3);elseif(objkcal=b4)txtinput.setText(txtinput.getText()+4);elseif(objkcal=b5)txtinput.setText(txtinput.getText()+5);elseif(objkcal=b6)txtinput.setText(txtinput.getText()+6);elseif(objkcal=b7)txtinput.setText(txtinput.getText()+7);elseif(objkcal=b8)txtinput.setText(txtinput.getText()+8);elseif(objkcal=b9)txtinput.setText(txtinput.getText()+9);elseif(objkcal=b0)txtinput.setText(txtinput.getText()+0);elseif(objkcal=bdes)txtinput.setText(txtinput.getText()+.);else/如果按下的是“+”号键,就是保存原来文本框内容并且清空if(objkcal=add)simpan=Double.parseDouble(txtinput.getText();operasi=plus;txtinput.setText();elseif(objkcal=subtract)simpan=Double.parseDouble(txtinput.getText();operasi=minus;txtinput.setText();elseif(objkcal=divide)simpan=Double.parseDouble(txtinput.getText();operasi=bagi;txtinput.setText();else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国自考(金融法)模拟试卷14
- 初中语文七年级下第三单元《走近“小人物”》作业设计
- 人美版七年级美术《艺术节策划与美术设计》作业设计
- 2026 学龄前自闭症融合干预语言课件
- 江苏省苏州市太仓达标名校2026届中考试题猜想英语试卷含答案
- 内蒙古师范大学锦山某中学高三压轴卷新高考化学试卷及答案解析
- 2026 学龄前自闭症童谣诵读训练课件
- 智能设备对家庭生活的影响研究
- 2026 学龄前自闭症情绪适配调整课件
- 2026 学龄前自闭症家校实操课件
- 2026江西南昌市湾里管理局梅岭镇向阳林场面向社会招聘1人笔试参考题库及答案详解
- 2026年甘肃省兰州大学管理人员、其他专业技术人员招聘10人考试备考题库及答案解析
- MT/T 1083-2025煤矿矿井提升机电控设备技术条件
- 2026湖北十堰市房县风雅演艺有限公司演职人员招聘20人备考题库参考答案详解
- 2026年市场监管局消费者权益保护岗面试题
- 老旧小区质量通病防治监理实施细则
- 毒性中药管理培训
- 中国石油大学华东2025年9月《汽车理论》作业考核试题含答案
- 肺部结节CT影像-病理对照及管理策略
- 2026年制式离婚协议书民政局备案版
- 2026年铸造造型(芯)工职业技能鉴定考试题库
评论
0/150
提交评论