已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮阴工学院 JavaJava ProgrammingProgramming 课程设计报告课程设计报告 课题名称课题名称 万年历 系 院 系 院 计 算 机 工 程 学院 专专 业业 计算机科学与技术 软件工程方向 班班 级级 计算机 309 1 班 姓姓 名名 陆一峰 学学 号号 3092101116 指导教师指导教师 夏 森 学年学期学年学期 2012 2013 学年 第 1 学期 2013 年 01 月 12 日 1 淮阴工学院 JavaJava ProgrammingProgramming 课程设计课程设计任务任务 书书 课题课题 名称名称 万年历 设计设计 目的目的 通过设计一个万年历给用户提供时间日期查询 和对每天进行备忘记事 大大方便了使用者对日历的使用 简化了操作 更有各时区的时间的对比 实验实验 环境环境 JDK6 0 Eclipse3 6 Access Win7 任务任务 要求要求 学习研究万年历算法 同时使用 java 实现这一算法 开发相应的界面 可以进行的日历查询 工作进度计划工作进度计划 序号序号起止日期起止日期工工 作作 内内 容容 120130106 20130107选定课题并完成需求分析 220130106 20130107完成概要设计 初步建立数据库 320130107 20130107完成详细设计 420130108 20130108完成代码编写并测试运行 指导教师 签章 指导教师 签章 2013 年年 01 月月 06 日日 2 序序 言言 Java 的前身是 Oak 它一开始只是被应用于消费性电子产品中 后来它的开 发者们发现它还可以被用于更大范围的 Internet 上 1995 年 Java 语言的名字 从 Oak 编程了 Java 1997 年 J2SE1 1 发布 1998 年 J2SE1 2 发布 标志 Java2 的诞生 十多年来 Java 编程语言及平台成功地运用在网络计算及移动等各个领 域 Java 的体系结构由 Java 语言 Java class Java API Java 虚拟机组成 它具有简单 面向对象 健壮 安全 结构中立 可移植和高效能等众多优点 Java 支持多线程编程 Java 运行时系统在多线程同步方面具有成熟的解决方案 Java 的平台标准有 Java ME Java SE 和 Java EE Java 发展到今天 它的卓越 成就及在业界的地位毋庸置疑 目前在众多的支持 Java 的开发工具中主要的 7 有 Java Development Kit NetBeans Jcreator JBuilder JDeveloper 和 Eclipse 等 其中 Java Development Kit 简称 JDK 是大多开发工具的基础 以 上的每种开发工具都有优缺点 对于开发者来说 重要的是要根据自己的开发规 模 开发内容和软硬件环境等因素来选择一种合适的开发工具 我做的课程题目是万年历的设计 万年历在我们的手机 电脑 MP4 等电子产品 中随处可见 其功能也十分简单 最核心的是提供某年某月的日历 在我的设计中 还增加了具体的时刻以及不同时区不同国家的时刻 简单的设计确是复杂的代码 实现 不过万年历确实给予我们生活的诸多方便 3 目目 录录 摘摘 要要 3 正正 文文 4 1 系统分析与设计 4 1 需求分析 4 2 功能设计 4 2 详细分析 5 3 系统测试 10 4 软件使用说明书 13 总总 结结 14 参考文献参考文献 15 致致 谢谢 16 附件附件 源程序代码源程序代码 17 4 摘摘 要要 这学期我们学习了Java语言 Java语言是面向对象的开发方法是当今世界最 流行的开发方法 是当今流行的网络编程语言 它具有面向对象 跨平台 分布 应用等特点 它不仅具有更贴近自然的语义 而且有利于软件的维护和继承 很 多程序开发人员得第一选择 为了进一步巩固课堂上所学到的知识 深刻把握Java语言的重要概念及其面 向对象的特性 锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的 能力 开设了Java程序设计课程设计 让学生自己动手动脑 将书本上得知识运 用到实践当中去 使知识能更好得融会贯通 为了达到这个目的 我们需要自己动手做一个Java的课程设计 在这个课程 设计里我们需要根据我们手中现有得软件与知识基础 独立得将它完成 只有这 样 我们才能把理论变成实践 将知识真正得做到学以致用 这次课程设计我主要研究了利用已学的Java知识编辑一个电子万年历 通过 此次课程设计 来巩固所学Java语言基本知识 增进Java语言编辑基本功 掌握 JDK JCreator等开发工具的运用 拓宽常用类库的应用 并通过自己动手 自 主得学习 对Java这门课程有更深得了解与认识 关键词 关键词 万年历万年历 JavaJava 语言语言 日历算法日历算法 5 正正 文文 1 1 系统分析与设计系统分析与设计 1 1 需求分析需求分析 本程序的要求为 1 使用图形用户界面 2 本程序能够实现日期与星期的查询 3 可以显示不同时区的时刻 4 模拟一个计时器 不断地输出下一秒 2 2 功能设计功能设计 1 定义一个时间类Time 能提供时 分 秒组成的时间 并提供时间增 加的方法 按秒 2 定义一个日期类Date 记录年 月 日 并提供日期增加的方法 按 天 3 由类Time和日期类Date 派生出DateTime类 除具有年 月 日 时 分 秒外 还增加国名和与格林威治时间的差 4 输入年 月 日 时 分 秒 在屏幕上模拟显示一电子计时器 不 断输出下一秒的时间和日期 以及格林威治的日期和时间 6 2 2 详细分析详细分析 3 WindowsWindows 类中的成员函数 类中的成员函数 4 Frame B new Frame 万年历 5 Panel a1 new Panel 6 Panel a2 new Panel 7 Panel a3 new Panel 8 Panel a4 new Panel 9 TextField T1 T2 P1 P2 P3 P4 P5 P6 10 TextField p new TextField 7 时间输出框 11 Label R1 R2 12 Button S1 查询按钮 13 TextField a 月份查询表按钮 14 int i yy 15 int k 0 mouth1 16 17 int y1 0 31 28 31 30 31 30 31 31 30 31 30 31 平年的月份天数 18 int y2 0 31 29 31 30 31 30 31 31 30 31 30 31 闰年的月份天数 19 Button S2 new Button 北京 启动北京时间按钮 20 Button S3 new Button 夏威夷 启动夏威夷时间按钮 21 Button S4 new Button 伦敦 启动伦敦时间按钮 22 Label R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 23 final TextField K1 K2 K3 24 final TextField K4 25 final TextField K5 26 final TextField K6 27 28 Button S5 new 7 Button 开始计算 计算格林威治时间所有按钮和文本框 29 30 Windows 成员方法 成员方法 31 void getmessage int x int y 获取年月并进行判断 32 public void go 运行主要程序 33 34 35 Time 类成员变量 类成员变量 36 Boolean t true 模拟时钟必要成员变量 37 int h 0 m 0 s 0 时分秒的成员变量 38 Time 类成员方法 类成员方法 39 void gettime int a int b int c 获得时分秒 40 public void run 时间增加方法 41 42 43 Date 类成员变量类成员变量 44 DATE 拥有 TIME 中所有成员变量和方法 45 int y1 0 31 28 31 30 31 30 31 31 30 31 30 31 平年的月份天数 46 int y2 0 31 29 31 30 31 30 31 31 30 31 30 31 闰年的月份天数 47 int y 0 mo 0 d 0 年月日成员变量 48 49 50 Date 类成员方法类成员方法 51 void getdate int a int b int c 获得年月日 52 53 8 54 55 DateTime 类成员变量类成员变量 56 继承了 Date 57 int gy gmo gd gh gm gs 格林威治时间的成员变量 58 String name 城市名称 59 int ctime 0 时差 60 int L 0 文本框组的下标 61 DateTime 类成员方法类成员方法 62 public String returnname 返回城市名 63 public int returnctmie 返回时差 64 void Gtimechange 通过北京时间计算格林威治时间 65 public void countrytime 转换为国家时间 66 public void countrytoGL 通过国家时间计算格林威治时间 67 public void num int i 为 L 赋值 68 public void startswap 输出前的准备 69 public void run 方法重写 用于输出时间 1 主要框架 Panel 万年 输入 框 Panel 万年 历表 Panel 电子 钟 Frame 万年历 Panel 万年历查 询输入 Panel 万年历表 Panel 电子钟 Panel 计时 器 9 2 S3 鼠标点击事件流程图 3 DateTime 中 run 方法图 yes no 开始 s 60 睡眠 1S s 1 s 0 m 1 创建 DateTime 对象 XW 创建 Calender 类 d 用 d 的方法获取年月日时分秒并用 XW gettime 和 XW getdate 为成员变量赋值 调用 XW Gtimechange 得出格林威治时间 调用 XW startswap 将得出时间赋值给时钟成员变量 调用 XW countrytime 得出夏威夷时间 信息输出 10 no yes no yes no yes no yes m 60 m 0 h 1 h 24 h 0 d 1 d mouth mo h 0 d 1d 1 mo 1 mo 12 mo 1 y 1 判断新的 y 是闰年 还是平年 并启用相应月份数组 输出信息到 p 文本框 11 3 3 系统测试系统测试 图 1 输入 2012 年 11 月后得到的万年历表 图 2 输入时间显示电子钟 12 图 3 显示此时与北京的时差以及此时北京时间 图 4 显示此时与伦敦的时差以及此时伦敦时间 13 图 4 显示此时与纽约的时差以及此时纽约时间 图 4 显示此时与莫斯科的时差以及此时莫斯科时间 14 4 4 软件使用说明书软件使用说明书 1 启动程序后出现万年历程序由万年历查询 电子钟 计时器三部分组成 2 万年历表第一次显示的是当天的月表 红颜色的日期就是当天日期 3 在输入年月出输入你要查找的年月 就能显示相应的年月表 4 点击北京 伦敦 纽约 莫斯科按钮会在下方分别显示三个地区的国名 时差 和时间 15 总总 结结 1 选题目的 本次课程设计为课本后设计题目任选一题进行设计 思考 一段时间后 我决定做一个万年历的设计 主要考虑到以前时间少课程内容多 JAVA 课程基础内容掌握并不是很抓实 而对于设计一个万年历程序 由于其功能 简单设计也相对较易 对于我的学习情况比较合适 并且通过设计这样的一个日 历小组件 也能使自己对 JAVA 的一些基础知识掌握的更加牢固 2 对于本程序的设计 首先考虑其功能有哪些 需要显示什么 如何进 行窗体构建布局 需要用哪些知识点 如相关的类和对象等 最后 就是根据初 步设计的功能和布局构架 考虑用源代码进行实现了 经过了长时间的反复编写调试 课本和网上查阅相关资料相关文章 终于完 成了整个课程设计 在这个过程中 在把书本上的知识给系统的复习了一下的同 时 同时也发现了自己的太多不足 对 JAVA 语言整体知识构架不够熟悉 不能 灵活地运用所学的知识点 自己的编程方式也不是很标准 经常出现代码写错而 调试很久的低级错误情况出现 在夏老师的带领下 通过这次课程设计 我明白了编写程序 不仅要求对课 本知识有较深刻的了解 同时要求程序设计者有较强的思维和动手能力 还要熟 悉常用的编程技巧和编程思想 不能只关心程序的运行结果 更要注重程序代码 的结构 编程者更要有严谨地态度 还有通过设计过程中大量地查阅网络文章 对一些关键知识点逐个地了解并解决相关问题 所以网络这个强大的工具 确实 是我们学习之中可以借助的一个很好的帮手 16 参参考考文文献献 1 曲朝阳 杨杰明等 Java 程序设计 北京 清华大学出版社 2008 10 2 耿祥以 张跃平 Java 大学生实用教程 北京 电子工业出版社 2012 6 3 明日科技 Java 经典编程 北京 清华大学出版社 2012 10 4 李尊朝 苏军 Java 语言程序设计 北京 中国铁道出版社 2004 2 5 王博 面向对象的建模 设计技术与方法 北京希望电脑公司 1990 17 致致 谢谢 通过近这几天课程设计 使我们收益匪浅 让我学到了很多在课堂上难以学 到的知识 如何运用基础知识来思考解决现实的问题 首先我们要感谢我院给我 们安排的这次算法与数据结构课程设计实习 然后我更要感谢夏老师对我热心的 指导和帮助 是您教会了我如何思考和解决实际问题的方法 这样使得我的课程 设计才会更加顺利地进行 并且充分掌握了设计程序的方法 经过夏老师的精心 指导和我自己的努力 我顺利地完成了课程设计 在此 我衷心的感谢夏老师对 我的帮助 18 附附件件 源源程程序序代代码码 import java awt Button import java awt Color import java awt Font import java awt Frame import java awt GridLayout import java awt Label import java awt Panel import java awt TextArea import java awt TextField import java awt event ActionEvent import java awt event ActionListener import java awt event WindowAdapter import java awt event WindowEvent import java util Calendar public class MyNewCalendar public Color c1 new Color 255 194 233 public Color c2 new Color 245 204 235 public Color c3 new Color 245 104 135 public Font w0 new Font 黑体 Font PLAIN 30 public Font w1 new Font 幼圆 Font PLAIN 50 public Font w3 new Font 黑体 Font PLAIN 30 public Font w2 new Font 黑体 Font PLAIN 30 public Frame f new Frame MyCalendar 魏向波 10240322 public Panel p1 new Panel public Panel p2 new Panel public Panel p3 new Panel public Panel p4 new Panel public Panel p5 new Panel public Panel p6 new Panel public Panel p7 new Panel public Panel p8 new Panel public Panel p9 new Panel public TextField t1 new TextField public TextField t2 new TextField public TextField t3 new TextField public TextField t4 new TextField public TextField t5 new TextField public TextField t6 new TextField 19 public TextField t9 new TextField public TextField t10 new TextField public TextArea t7 new TextArea public TextArea t8 new TextArea public TextArea t11 new TextArea public TextArea t12 new TextArea public TextArea t13 new TextArea public Label l1 new Label 年 public Label l2 new Label 月 public Label l3 new Label 日 public Label l4 new Label 时 public Label l5 new Label 分 public Label l6 new Label 秒 public Label l7 new Label 年 public Label l8 new Label 月 public Label week1 new Label 星期天 public Label week2 new Label 星期一 public Label week3 new Label 星期二 public Label week4 new Label 星期三 public Label week5 new Label 星期四 public Label week6 new Label 星期五 public Label week7 new Label 星期六 public Label j new Label 42 public Button B1 new Button 确定 public Button B2 new Button 北京 public Button B3 new Button 伦敦 public Button B4 new Button 纽约 public Button B5 new Button 莫斯科 public Button B6 new Button 查询 public void running f setLayout new GridLayout 5 1 p1 setLayout new GridLayout 1 13 p2 setLayout new GridLayout 1 1 p3 setLayout new GridLayout 2 1 p4 setLayout new GridLayout 2 1 p5 setLayout new GridLayout 1 4 p6 setLayout new GridLayout 1 1 p7 setLayout new GridLayout 1 5 p8 setLayout new GridLayout 7 7 p9 setLayout new GridLayout 3 1 B1 setBackground c1 20 B2 setBackground c2 B3 setBackground c2 B4 setBackground c2 B5 setBackground c2 B6 setBackground c1 t9 setBackground c1 t10 setBackground c1 l7 setBackground c1 l8 setBackground c1 l1 setBackground c1 l2 setBackground c1 l3 setBackground c1 l4 setBackground c1 l5 setBackground c1 l6 setBackground c1 t1 setBackground c1 t2 setBackground c1 t3 setBackground c1 t4 setBackground c1 t5 setBackground c1 t6 setBackground c1 t7 setBackground c1 t8 setBackground c1 t11 setBackground c1 t12 setBackground c1 t13 setBackground c1 week1 setBackground c3 week2 setBackground c3 week3 setBackground c3 week4 setBackground c3 week5 setBackground c3 week6 setBackground c3 week7 setBackground c3 p1 add t1 p1 add l1 p1 add t2 p1 add l2 p1 add t3 p1 add l3 p1 add t4 p1 add l4 p1 add t5 p1 add l5 p1 add t6 21 p1 add l6 p1 add B1 p2 add t7 p7 add t9 p7 add l7 p7 add t10 p7 add l8 p7 add B6 p5 add B2 p5 add B3 p5 add B4 p5 add B5 p6 add t8 p3 add p1 p3 add p2 p4 add p5 p4 add p6 p8 add week1 p8 add week2 p8 add week3 p8 add week4 p8 add week5 p8 add week6 p8 add week7 for int h 0 hMonth month month day 1 if month 12 year month 1 if v if s 北京 t8 setText s 与格林威治的时间差是 time 小时 现在时间是 hour time 时 min 分 sec 秒 if s 纽约 t12 setText s 与格林威治的时间差是 time 小 时 现在时间是 hour time 时 min 分 sec 秒 if s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咨询顾问高级企业战略诊断与转型计划书
- 广州大专免考入户通知书
- 广州社保调整情况通知书
- 广西教育厅整改通知书
- 庆州区堵车通知书
- 应征入伍送达入伍通知书
- 庞马村封村文件通知书
- 延安沟口停水通知书
- 建业尊府入伙通知书
- 建设用地设计条件通知书
- 联通创新能力考试复习题库大全-上(单选题汇总)
- 盐酸贝尼地平片
- 金属材料凝固原理与技术PPT完整版全套教学课件
- iso9000基础知识解读课件
- 《朝花夕拾》版读书心得感想模板
- 气体充装站建设项目可行性研究报告
- GB/T 5210-2006色漆和清漆拉开法附着力试验
- 传热学-第9章辐射计算
- 安全教育登记表(三 级)
- 干挂大理石施工合同
- 混凝土结构设计原理课程设计报告报告
评论
0/150
提交评论