




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、辽 宁 工 业 大 学JAVA程序设计 课程设计(论文)题目:院(系): 软件学院 专业班级:学 号:学生姓名:指导教师: 丁宝柱 教师职称: 助 教 起止时间:程序设计专题(报告)任务及评语院(系):软件学院 教研室:软件教研窒学 号学生姓名专业班级程序设计(报告)题目程序设计(报告)任务程序设计专题的任务与要求:(1)掌握Java编程、面向对象的基础知识。(2)较熟练地编写Java应用程序Application。(3)了解Java的常用标准类库、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能
2、力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2008 年 1 月 5 日目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1课程设计主要内容22.2概要设计22.2.1自定义说明22.3详细设计32.4测试分析132.4.1程序运行情况13
3、2.4.2程序异常处理143章 课程设计总结16参考资料17第1章 课程设计的目的与要求1.1 课程设计目的JAVA程序设计是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.2 课程设计的实验环境硬件要求能运行Windows 9.X操
4、作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进
5、行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。第2章 课程设计内容2.1课程设计主要内容Java是一种跨平台、面向对象、基于网络及支持多媒体的编程语言。自1995年5月发布以来,Java和快成为开发因特网应用程序的极具魅力的语言。Java程序可以插入HTML页,有Web浏览器下载,为Web客户带来动画和交互式的享受。Java的强大功能不仅仅限于Web应用程序。它还是一种面向对象的通用编程语言,其编程功能完备,可以开发单独的应用程序。基于上述的有点可以看出,现如今Java的应用之广泛,所以我们的课程设计也选用了此编程工具,对生活中常用的时钟程序进行编写,由于我们是刚
6、刚开始接触Java,编程水平有限无法实现特别复杂的编程项目,所以本次所编写的程序是一个简单的,没有接触到连接数据库与错误异常的知识,这也是刚刚起步,不过我们会在今后的学习中不断地深入研究与学习,争取在下一个编程项目中做出更多更复杂的程序来。2.2概要设计2.2.1自定义说明本次课程设计是利用本学期所学习的Java编程工具制作出一个可以显示多国时间及日期的Java时钟程序软件。利用Java制作的原因是因为用Java实现的HotJava浏览器显示了Java的魅力:跨平台、动感的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java apple
7、t。,一方面Java技术也不断更新。本文围绕Java编程语言在编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行概要设计、详细设计,最后使用Java编程实现的全过程。在编程我们使用的java语言,是目前比较流行的编程语言。启动Java时钟程序并运行,可以看到时钟界面。最上面一行的下拉菜单是城市选择下拉菜单,在这里可以选择所要查看的城市的时间,共有六个城市的时间可供查询,它们是(“北京” ,“伦敦” ,“悉尼” ,“夏威夷” ,“莫斯科” ,“纽约”)囊或了世界最大的几座城市的时间。界面的中心则是表盘与表针,以模拟方式显示当前所选城市的时间,它有三个指针,时针、分针和秒针,这与我们日常
8、生活中所使用的时钟是一样的。最下面的两行分别显示的现在所选择的城市名称与当前时间的电子模式。这些项目构成了整个Java时钟程序的整个界面,此程序占用资源少,相应时间短,精确度与灵敏度高。2.3详细设计(以下为程序源代码及注释)本时钟程序共分为三个部分,其中第一部分是时钟程序的定义阶段,此阶段定义了时钟程序的界面,绘制出圆形表盘、表针(时针、分针和秒针)以及时钟的窗口。然后是获取计算机BIOS中的时间及日期。以下则为此程序:package timezoneclock;import java.awt.*;import javax.swing.JPanel;import java.util.*;pu
9、blic class ClockPanel extends JPanel implements TimerInterface BorderLayout borderLayout1 = new BorderLayout(); private Calendar calendar; /定义一个Calendar变量 private String year, month, day, hour, minute, second; private int seconds; /定义整形变量,用于计算当前时间 private String city; /表示城市名称 private TimeZone tz; /表
10、示城市所在的时区 public ClockPanel(String s, String tz1) try city = s; tz = tz.getTimeZone(tz1); calendar = Calendar.getInstance(tz); /获得当前的时间 jbInit(); catch (Exception ex) ex.printStackTrace(); void jbInit() throws Exception this.setLayout(borderLayout1); Timer t = new Timer(1000, this); /定义一个Timer线程 t.st
11、art(); /启动线程,运行run() /定义changeTZ方法,动态地改变时间 public void changeTZ(String s, String tz2) city = s; tz = tz.getTimeZone(tz2); calendar = Calendar.getInstance(tz); protected void paintComponent(Graphics g) /*todo Override this javax.swing.JComponent method*/ super.paintComponent(g); g.drawOval(10, 10, 21
12、0, 210); /绘制圆形 g.drawString("12", 105, 30); g.drawString("3", 200, 115); g.drawString("6", 115, 210); g.drawString("9", 20, 120); for (int i = 0; i < 360; ) g.drawLine(115 + (int) (100 * Math.cos(2 * Math.PI * i / 360 - Math.PI / 2),115 + (int) (100 * Math.
13、sin(2 * Math.PI * i / 360 - Math.PI / 2),115 + (int) (95 * Math.cos(2 * Math.PI * i / 360 - Math.PI / 2),115 + (int) (95 * Math.sin(2 * Math.PI * i / 360 - Math.PI / 2);i = i + 30; double hourAngle = 2 * Math.PI * seconds / (12 * 60 * 60); /计算时针与12点方向的角度double minuteAngle = 2 * Math.PI * seconds / 3
14、600; /计算分针与12点方向的角度double secondAngle = 2 * Math.PI * seconds / 60; /计算秒针与12点方向的角度 g.drawLine(110, 110, 110 + (int) (60 * Math.cos(hourAngle - Math.PI / 2),110 + (int) (60 * Math.sin(hourAngle - Math.PI / 2); /绘制时针 g.drawLine(110, 110, 110 + (int) (80 * Math.cos(minuteAngle - Math.PI / 2),110 + (int
15、) (80 * Math.sin(minuteAngle - Math.PI / 2); /绘制分针 g.drawLine(110, 110, 110 + (int) (90 * Math.cos(secondAngle - Math.PI / 2),110 + (int) (90 * Math.sin(secondAngle - Math.PI / 2); /绘制秒钟 Font f = new Font("New Roman", Font.BOLD, 12); /设置字体 g.setFont(f); g.drawString(city + "时间是:"
16、, 20, 240); /在窗口绘制时间字符串 g.drawString(year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒", 25, 260); public void timeSpare(Timer t) /*todo Implement this graphicalclock.TimerInterface abstract method*/ calendar.se
17、tTime(new Date(); /得到当前时间 year = String.valueOf(calendar.get(Calendar.YEAR); /将整形的时间变量转换为字符串 /在java中0表示一月,故应在所得的月份数字前加1 month = String.valueOf(calendar.get(Calendar.MONTH) + 1); day = String.valueOf(calendar.get(Calendar.DATE); hour = String.valueOf(calendar.get(Calendar.HOUR); minute = String.value
18、Of(calendar.get(Calendar.MINUTE); second = String.valueOf(calendar.get(Calendar.SECOND); seconds = calendar.get(Calendar.HOUR) * 60 * 60 + calendar.get(Calendar.MINUTE) * 60 + calendar.get(Calendar.SECOND); /用于计算当前时间的秒数 repaint(); /窗口重绘 程序制作并运行:图1 程序运行时钟程序界面:图2 时钟程序界面以上为时钟界面的定义及获取时间,第二部分为定义时间及日期的刷新时
19、间,这部分用以控制时钟程序按照多长时间进行刷新,因为介于时钟的特殊性,它的精确度要求的特别高,所以这部分程序也是整个程序中最为重要的部分之一。以下为刷新时间定义程序模块:package timezoneclock;public class Timer extends Thread private int spare; /窗口刷新的时间间隔,单位为毫秒 private TimerInterface ti; /定义一个TimerInterface接口变量 public Timer(int i, TimerInterface t) spare = i; ti = t; setDaemon(true)
20、; public void run() try while (!interrupted() sleep(spare); /线程休息spare时间 ti.timeSpare(this); /调用函数将窗口的内容重绘 catch (InterruptedException e) 以上两部分制作完成之后,就要对时钟程序加入全球化概念,用下面的程序分别加入世界各大主要城市的时间日期,其中包括(“北京、夏威夷、纽约、伦敦、莫斯科和悉尼”)。以下为世界各大城市时间:package timezoneclock;import java.awt.*;import java.awt.event.*;import
21、javax.swing.*;public class TimezoneClock extends JFrame JPanel contentPane; BorderLayout borderLayout1 = new BorderLayout(); JPanel jPanel1 = new JPanel(); Choice choice1 = new Choice(); ClockPanel tzPanel = new ClockPanel("北京", "GMT+8"); /Construct the frame public TimezoneClock
22、() enableEvents(AWTEvent.WINDOW_EVENT_MASK); try jbInit(); catch (Exception e) e.printStackTrace(); /Component initialization private void jbInit() throws Exception contentPane = (JPanel)this.getContentPane(); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(231, 333); this.setTitle(
23、"各种不同时区的时钟"); choice1.addItemListener(new TimezoneClock_choice1_itemAdapter(this); contentPane.add(tzPanel, BorderLayout.CENTER); contentPane.add(jPanel1, BorderLayout.NORTH); jPanel1.add(choice1, null); /在面板中添加一个下拉选择框 choice1.addItem("北京"); choice1.addItem("莫斯科"); choi
24、ce1.addItem("夏威夷"); choice1.addItem("纽约"); choice1.addItem("伦敦"); choice1.addItem("悉尼"); /Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) cessWindowEvent(e); if (e.getID() = WindowEvent.WINDOW_CLOSING)
25、System.exit(0); void choice1_itemStateChanged(ItemEvent e) switch (choice1.getSelectedIndex() case 0: tzPanel.changeTZ("北京", "GMT+8"); /将窗口的时间改为北京时间时间为北京时间:图3 时间为北京 break; case 1: tzPanel.changeTZ("莫斯科", "GMT+3"); /将窗口的时间改为莫斯科时间时间为莫斯科时间:图4 时间为莫斯科 break; case 2
26、: tzPanel.changeTZ("夏威夷", "GMT-10"); /将窗口的时间改为夏威夷时间时间为夏威夷时间:图5 时间为夏威夷 break; case 3: tzPanel.changeTZ("纽约", "GMT-5"); /将窗口的时间改为纽约时间 break; case 4: tzPanel.changeTZ("伦敦", "GMT"); /将窗口的时间改为伦敦时间时间为伦敦时间:图6 时间为伦敦 break; case 5: tzPanel.changeTZ(
27、"悉尼", "GMT+10"); break; class TimezoneClock_choice1_itemAdapter implements java.awt.event.ItemListener TimezoneClock adaptee; TimezoneClock_choice1_itemAdapter(TimezoneClock adaptee) this.adaptee = adaptee; public void itemStateChanged(ItemEvent e) adaptee.choice1_itemStateChange
28、d(e); 2.4测试分析2.4.1程序运行情况在开发大型软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无暇,因此,在软件生命周期的每个阶段都不可避免地会产生差错。我们力求在每个阶段结束之前通过严格的技术审查,尽可能早地发现并纠正差错;但是,经验表明审查并不能发现所有差错,此外在编码过程中还不可避免地会引入新的错误。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分差错,则这些差错迟早会在生产过程中暴露出来,那时不仅改正这些错误的代价更高,而且往往会造成很恶劣的后果。测试的目的就是在软件投入生产性
29、运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。软件测试的目的是寻找错误,并且是最大可能的找出最多的错误。软件测试的目的是要证明程序中有故障存在,并力求设计出最能暴露错误的测试方案,测试不是为了显示程序是好的,而是应该从软件中包含有缺陷和故障这个假定出发去测试程序,从中发现尽可能多的软件故障。这时的关键是如何合理的设计测试用例。在选择测试用例进,着重考虑那些易于发现程序错误的数据。测试以发现故障为目的,是为了发现故障而执行程序的过程。软件测试在软件生命周期中横跨两个阶段。通常在编写出每个模块之后就对它做必要的测试,编码和
30、单元测试属于软件生命周期的同一个阶段。在这个阶段结束之后,对软件系统还应该进行各种综合测试,这是软件生命周期中的另一个独立的阶段。在详细设计阶段结束后,开始进入软件测试阶段。首先应该对每一个窗体都进行测试使其能够完成预期目的,对于有些功能做了相应的修改,根据每个窗体的要求来严格的筛选数据反复的测试。然后进行功能模块测试,由于每个模块的功能不同,因此采用了大量不同的数据进行系统的完整性测试,现以管理员登录功能为例进行说明测试过程。2.4.2程序异常处理程序在运行过程中可能会出现错误而且中断正常的控制流,这就是异常处理现在。不提供处理异常代码的程序可能会在不期望终止的时候终止,甚至可能引发严重问题
31、。Java的异常处理子系统可以为程序员提供处理运行是错误即异常处理的能力,而且比其他语言提供的异常处理能在形式上更简洁、更灵活,使用Java的异常处理子系统,程序员可以开发出比较健壮的程序。要想成为一名出色的Java程序员,就必须能够完全驾驭Java的异常处理子系统。不过本程序比较小,内容也并不是很多所以在异常方面并有没代码产生。不过对于异常命令我们这里还是给出一种,如何抛出并捕捉异常的方法,供今后的编程中参考和借鉴。1.声明异常(throws)声明异常是当方法执行时,声明方法中可能出现的错误。因为任何代码都可能出现系统错误和运行是错误, 所以Java不需要在方法中显示声明Error和Runt
32、imeException,但是如果方法抛出其它异常,则必须在方法中显示声明它们。可以使用方声明中的关键字throws声明方法中的异常。Public void myMethod() throws IOException2.抛出异常(throw)在生命异常的方法中,如果出现异常,可以抛出异常对象。声明异常是一个说明性的子句,只是表明方法可能会抛出异常,而真正抛出异常的动作是有抛出异常语句来完成的。抛出遗产的语法如下:Throw new TheException();也可以使用以下语法:TheException e = new TheException();Throw e;3.使用try-catch语句捕获异常在Java中,异常处理的核
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃省武威市第二十三中学2024年中考适应性考试数学试题含解析
- 广东省广州市天河区暨南大附中2024年中考数学猜题卷含解析
- 2025年部门级安全培训考试试题含答案(考试直接用)
- 2024-2025新入职员工安全培训考试试题答案
- 2025员工安全培训考试试题及答案一套
- 2025年项目部管理人员安全培训考试试题含答案【轻巧夺冠】
- 2024-2025公司职工安全培训考试试题(5A)
- 25年企业员工岗前安全培训考试试题带答案(培优A卷)
- 2025新进厂职工安全培训考试试题带答案(模拟题)
- 2025年中国腕表行业市场规模及未来投资方向研究报告
- 家居建材全屋定制店面运营管理细则规定
- GB/T 27924-2011工业货架规格尺寸与额定荷载
- 大班语言《他们看见了一只猫》课件
- 毕业论文-电力变压器设计
- 消毒产品进货检查验收制度
- 2021年信阳市罗山县中医院医护人员招聘笔试试题及答案解析
- 单叉固定式液压升降台设计
- 《美国消费品安全改进法》的普通合格证书、纺织品服装类产
- GB∕T 40740-2021 堆焊工艺评定试验
- 2022年新高考湖南化学高考真题(word版含答案)
- T∕CADERM 3035-2020 严重创伤院内救治流程和规范
评论
0/150
提交评论