Java课程设计+文档+源代码(万年历+闹钟+记事本)
JAVA课程设计 闹钟的设计与实现项目报告 附源代码
Java 设计报告
书
课程名称:JAVA语言程序设计
设计题目:闹钟的设计与实现
院系:计算机科学与信息工程系
学生姓名:
学号:
专业班级:
指导教师:许研
2010 年12 月28 日
目录
一、题目描述 (1)
二、设计思路 (1)
三、运行结果 (5)
四、源代码 (6)
五、总结 (10)
六、参考文献 (10)
闹钟的设计与实现
一、题目描述:
结合JAVA图形界面的知识设计一个闹钟
二、设计思路
1、设计要求:
编写闹钟钟程序,要求画出时钟面板,动态的显示当前时间,可设定或解除闹钟时间,并提供闹钟服务相应的文字提示功能与可以自己选择闹钟提示声音提示功能,并在闹钟设定的输入框中有简单的排错功能。
2、算法基本描述:
本程序先是在框架中新建了一个容器,然后用GridLayout类对面板进行划分,程序引入java.util.Date来显示当前时间,并用一个永真循环,来对当前时间显示的更新,引入java.io.File来实现对文件的读写操作,程序设计了一个选择按钮,用来选择文件,并且声明只能选择,WAU、MID的文件,引入用java.applet.Applet 来播放音乐文件,用getText()函数获取输入的闹钟设定时间,并永真循环和当前的时间进行对比,若相等则播放音乐,若不相等则显示离目标设定时间的差距。
3、设计思想与内容
1、画出类的UML简图
Clock类:
Clock类中的变量
ri, shi, fen, miao, dangqian, guanji: JLabe l
queding, dakai: JButton
music, RI, SHI, FEN, MIAO: JTextField
动态网站基础程序的设计课程设计日历记事本Java课程设计
《动态基础程序设计》课程设计
班级:
学生卡:
姓名:
主题:日历记事本
导师:
答复日期:
一、任务详情
解释老师布置的题目、要求和最终结果。(需与老师密切沟通)设计主题:日历记事本
设计要求:
1.类之间的关系如图1-1所示。(添加类图)
图 1-1 类之间的关系
2、java源文件及其功能如表1-1所示。
表 1-1 java 源文件及其功能
系统详细设计
主类CalendarPad
1.成员变量
成员变量说明变量类型姓名
年月日整数年、月、日
用于保存日志的哈希表哈希表哈希表
存储哈希表的文件文件文件
演出日期JTextField[] 表演日
日历对象日历日历
记事本对象记事本记事本
月亮月负责任的变革月
年年负责改年
2.方法
姓名功能评论
日历垫创建程序的主窗口施工方法
设置日历卡设置日历的年月
安排按月排序
鼠标按下处理 MouseEvent 事件接口方法
面程序开始运行
记事本记事本
1.成员变量
描述变量类型姓名
文字输入区文本区域文本
保存和删除日志的按钮按钮保存日志,删除日志用于保存日志的哈希表哈希表桌子
保存哈希表的文件文件文件
日志的年月日整数年、月、日_
2.方法
姓名功能评论
记事本创建记事本对象施工方法
设置年设定年份
获取年份获得年份
设置月设置月份
获取月份获得月份
设置日设置日期
获取日获取日期
获取日志内容获取日志内容
保存日志保存日志
删除日志删除日志
执行的动作处理 ActionEvent 事件接口方法
年
1.成员变量
描述变量类型姓名
整数年
表示年份的整数(负数表示
BC)
显示年份的文本栏JTextField 演出年
负责加减年份的按钮乌顿明年,去年
Java万年历实验报告
Java课程实验报告
姓名:***
学号:**********
作业要求:
编写一个万年历程序,要求能够查询历史时间,能够添加、查看、删除备忘录。
项目概述:
这个项目是一个简单的Java万年历,可以实现所有年份的公历日期的查询,并且在相应的日期做备忘录,以及可以显示当前的日期以及时间。
程序截图:
具体功能介绍:
(1)万年历查询:点击图形界面中年份钱下拉框用来调整要查询的年份,点击月份前来调整要查询的月份,然后可以看到这个月的每一天所对应的星期。(2)Clock功能:在万年历下面显示当前的年月日时间,相当于一个时钟的功能。
(3)记事本功能。
设计与实现(需要附全部代码,GUI自动生成代码除外):
1 类的设计(继承、多态、数据结构):核心类是CalendarWindow. findPassWordDialog等。
2 Java IO ;文件访问
2 GUI (用户界面):点下划线来表示GUI用户界面
6 其他功能:(无)
程序代码:
package app;
import calendar.CalendarWindow;
public class Client {
public static void main(String[] args)
{
new CalendarWindow().setVisible(true);
}
}
第一个包
package account;
public class Account {
private String name;
private String passWord;
public Account(String name, String passWord) {
日历记事本设计(6个类)Java课程设计
Java语言与面向对象技术课程设计报告
( 2013 -- 2014年度第1 学期)
日历记事本
专业软件工程
学生姓名
班级
学号
指导教师
完成日期
目录
1 概述 (1)
1.1 课程设计目的 (1)
1.2 课程设计内容 (1)
2 系统需求分析 (1)
2.1 系统目标 (1)
2.2 主体功能 (1)
2.3 开发环境 (1)
3 系统概要设计 (1)
3.1 系统的功能模块划分 (1)
3.2 系统流程图 (2)
4系统详细设计 (2)
5 测试 (5)
5.1 测试方案 (11)
5.2 测试结果 (12)
6 小结 (14)
参考文献 (15)
附录 (16)
附录1 源程序清单 (16)
日历记事本
1 概述
1.1 课程设计目的
1.学习Java程序开发的环境搭建与配置,并且在实际运用中学习和和掌握Java 程序开发的过程
2.通过课程设计进一步掌握Java程序设计语言的基础内容,如用户图形界面设计等
3.通过亲自设计,编写,调试程序来扩展知识面和动手操作能力
4.加强研发、调试程序的能力;增强分析、解决问题的能力;提高科技论文写作能力
1.2 课程设计内容
设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。
2 系统需求分析
2.1 系统目标
1.系统界面的左侧是日历。该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前的日历的年份减一;当鼠标左键单击“下年”按钮,当前日历年份加一。
2.该日历也可以在某年内按月前后翻动,鼠标单击“上月”按钮时,当前的日历的月份减一;当鼠标左键单击“下月”按钮,当前日历月份加一。
java课程设计任务书万年历
课程设计(论文)任务书
软件学院学院_______________________________ 专业_______________________ 班一、
课程设计(论文)题目 ____________________________________________________________
二、课程设计(论文)工作自2012 年12月_2£日起至2012年12月_28_日止。
三、课程设计(论文)地点:
软件学院实训中心
四、课程设计(论文)内容要求:
1 •本课程设计的目的______________________________________________________________
(1)掌握Java语言的程序设计方法;
( 2)理论联系实际,进一步提高学生的软件开发技术;
( 3)培养学生分析、解决问题的能力;
( 4)提高学生实践论文撰写能力。
2 •课程设计的任务及要求
1 )课程设计任务:
(1) 设计一个万年历系统,能查看日期。 ___________________________________________
(2) 能查任意一年任意一月的日期。 _______________________________________________
(3) 背景显示当前年月。 _________________________________________________________ 2) 创新要求:
(1)月份查看使用下拉菜单。
(2)查看框可随意拉大拉小,背景显示当前的年月。__________________________________
Java课程设计-万年历doc资料
河北科技大学
课程设计报告
学生姓名:学号:
专业班级:
课程名称:Java程序设计课程设计
学年学期:2 014 —2 015 学年第2 学期指导教师:刘伟
2 0 年月
课程设计成绩评定表
学生姓名学号成绩专业班级起止时间
设计题目
指导教师评语学习态度:端正□较端正□一般□较差□
学习纪律:好□较好□一般□较差□
出勤情况:好□较好□一般□较差□
程序设计:好□较好□一般□较差□
动手能力:强□较强□一般□较差□
团队精神:好□较好□一般□较差□
创新意识:强□较强□一般□较差□
课程设计完成情况:优秀□好□一般□较差□
课程设计报告完成情况:优秀□好□一般□较差□
指导教师:
年月日
目录
1.课程设计目的 (1)
2.需求分析 (1)
3.总体设计 (1)
4.详细设计 (1)
5.软件测试 (10)
6.课程设计总结 (11)
一、课程设计目的
(1)熟练使用java语言编写程序,解决实际问题。
(2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
(3)学会自己调试程序的方法并掌握一定的技巧。
二、需求分析
本程序的要求为:
1.使用图形用户界面;
2.本程序能够实现日期与星期的查询。
三、总体设计
(1)可以通过图形界面显示日历。
(2)能以月历形式显示日期与星期。
(3)支持用户自己输入年份,可以通过上一年,下一年等按钮来选择年份和月份。
四、详细设计
1.总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。
2.输出月份第一天为星期几的算法:使总天数除以7取余得几既为星期几,若是0,则为星期日。
java课程设计基于java的万年历设计与实现(附源代码)贯
Java课程设计报告
课程设计题目:万年历
指导老师:**********
学生姓名:*********
专业:**********
学号:*******
Java课程设计-万年历
1、课程设计目的:
这学期我们学习了Java语言,Java语言是面向对象的开发方法是当今世界最流行的开发方法,是当今流行的网络编程语言。它具有面向对象、跨平台、分布应用等特点。它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。很多程序开发人员得第一选择。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。让学生自己动手动脑,将书本上得知识运用到实践当中去,使知识能更好得融会贯通。
为了达到这个目的,我们需要自己动手做一个Java的课程设计,在这个课程设计里我们需要根据我们手中现有得软件与知识基础,独立得将它完成,只有这样,我们才能把理论变成实践,将知识真正得做到学以致用。
这次课程设计我主要研究了利用已学的Java知识编辑一个电子万年历。通过此次课程设计,来巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。并通过自己动手,自主得学习,对Java这门课程有更深得了解与认识。
2、需求分析:
2.1、本程序要求:
1、使用图形用户界面;
2、本程序能够实现日期与星期查询,同时显示此时的时间。
2.2、功能设计:
本程序要构建万年历程序,其功能如下:
java课程设计报告之万年历程序设计报告
目录
前言 (2)
1需求分析 (2)
需求分析 (2)
功能设计 (2)
2.概要设计 (2)
程序设计思路 (2)
程序运行界面 (3)
流程图 (4)
3.各模块的功能及程序说明 (4)
3.1.初始化组件 (4)
3.2.初始化数据 (5)
3.3.绘制程序界面 (5)
4.测试分析 (7)
5.源程序清单 (9)
6.课程设计体会 (17)
参考文献 (17)
前言
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是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。
万年历记事本汇总
《面向对象程序设计》
课程设计报告
题目: 万年历记事本
专业: 计算机科学与技术
班级: 13计科2班
姓名: 鲍超
指导教师: 江涛
成绩:
计算机学院
2016年4月12日
2015-2016学年 第二学期
目录
1设计内容及要求 (1)
1.1概述 (1)
1.2主要功能 (1)
1.3目的和要求 (2)
2概要设计 (2)
2.1软件结构 (2)
2.2主要功能模块 (3)
2.3程序流程框图 (4)
3设计过程或程序代码 (5)
4设计结果与分析 (17)
5参考文献 (20)
6小结 (20)
1设计内容及要求
1.1概述
上学期我们学习了Java语言,Java语言是面向对象的开发方法是当今世界最流行的开发方法,是当今流行的网络编程语言。它具有面向对象、跨平台、分布应用等特点。它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。很多程序开发人员得第一选择。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。让学生自己动手动脑,将书本上得知识运用到实践当中去,使知识能更好得融会贯通。
为了达到这个目的,我们需要自己动手做一个Java的课程设计,在这个课程设计里我们需要根据我们手中现有得软件与知识基础,独立得将它完成,只有这样,我们才能把理论变成实践,将知识真正得做到学以致用。
这次课程设计我主要研究了利用已学的Java知识编写一个万年历记事本。通过此次课程设计,来巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK等开发工具的运用,拓宽常用类库的应用。并通过自己动手,自主得学习,对Java这门课程有更深得了解与认识。
用Java程序编写万年历程序的设计报告
用Java程序编写万年历程序的设计报告
一、引言
本文档是针对使用Java程序编写万年历程序的设计报告,旨在详细介绍该程序的设计思路和实现细节。
二、需求分析
1.背景介绍
在现代社会中,人们经常需要查看特定日期的日历信息。为了方便用户直观地查看任意年月的日历信息,设计一个万年历程序,可以满足用户的需求。
2.功能需求
万年历程序具备以下功能:
●显示指定年月的日历信息
●支持用户输入任意年月
●能够高亮当前日期
●具备简洁易读的界面设计
3.性能需求
●用户界面响应迅速,无明显卡顿
●日历信息准确无误,支持闰年判断
三、概要设计
1.系统架构
万年历程序采用MVC(Model.View.Controller)架构,将数据模型、用户界面和控制逻辑分离。
模型层:负责处理日期计算和数据存储
视图层:负责展示日历信息,接收用户输入
控制器层:负责协调模型层和视图层的交互
2.关键模块
●日历模块:负责日期计算,并提供接口给视图层调用
●用户界面模块:提供用户交互界面,并接收用户输入
●控制器模块:负责协调日历模块和用户界面模块
四、详细设计
1.日历模块设计
●定义日期对象:包括年、月、日等属性
●实现日期计算功能:如计算指定年月的第一天是星期几,判断某年是否为闰年等
●提供接口给其他模块调用:如获取指定年月的日历信息
2.用户界面设计
●设计主界面:包括输入年月的文本框和显示日历信息的面板
●设计按钮事件:响应用户输入的年月,调用日历模块计算并显示日历信息
3.控制器设计
●建立模型与视图之间的联系:将用户输入传递给日历模块,并将计算后的日历信息传递给视图层进行显示
JAVA《万年历系统》课程设计报告附源码
2013-2014学年第二学期《面向对象程序设计》
课程设计报告
题目:万年历系统
专业:计算机科学与技术
班级:
姓名:
学号:
指导教师:
成绩:
计算机与信息工程系
2014年6月6日
目录
1 设计内容及要求 (1)
1.1设计内容 (1)
1.2设计任务及具体要求 (1)
2 概要设计 (2)
2.1程序设计思路 (2)
2.2 总体程序框图 (3)
3 设计过程或程序代码 (4)
3.1各个模块的程序流程图及运行界面 (4)
3.2对关键代码加以分析说明 (7)
4 设计结果与分析 (13)
4.1程序调试的结果 (13)
4.2程序设计分析 (13)
5 小结 (14)
致谢 (15)
参考文献 (16)
源程序 (17)
1 设计内容及要求
1.1设计内容
万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用。在我设计的万年历中主要有:(1)使用图形用户界面来查询用用户所需的日期信息,符合日常软件使用规范。
(2)按月份查询,实现了显示查询1901~2100年某月所有日期的阴阳历对照。
(3)并且添加了重大节日与星座等信息,界面采用日常的星期与月份结合的格式,方便查看与使用。
(4)编写万年历的课程设计,是为了使同学们更加了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。
1.2设计任务及具体要求
利用JAVA语言编写的万年历系统采用了多种JAVA语句来实现多种功能。用户可以通过本程序的applet运行界面来查找一整年某月的农历和阳历,可以查找用户所想了解的某一天具体为星期几,并且可以看到一些重大节日的具体时间。
JAVA课程设计报告_电子钟日历记事本 (NXPowerLite)
课程设计报告
( 2012-- 2013年度第2学期)
日历记事本
专业 计算机科学与技术
学生姓名
董文龙
班级 计算机116 学
号
1110704603 指导教师 徐秀芳 完成日期
2013.7
目录
目录 (2)
1 概述 (4)
1.1课程设计目的 (4)
1.2课程设计内容和要求 (4)
2 系统需求分析 (5)
2.1系统目标 (5)
2.2主体功能 (5)
2.3开发环境 (5)
3 系统总体设计 (5)
3.1系统的功能模块划分 (5)
3.2系统流程图 (6)
4系统详细设计 (6)
4.1主窗口模块设计 (6)
4.1.1 效果图 (6)
4.1.2 类的主要成员变量和方法 (7)
4.1.3 主要程序代码 (8)
4.2日期模块设计 (19)
4.2.1 效果图 (19)
4.2.2 类的主要成员变量和方法 (19)
4.2.3 主要程序代码 (20)
4.3日历模块设计 (21)
4.3.1 效果图 (21)
4.3.2 类的主要成员变量和方法 (22)
4.3.3 主要程序代码 (22)
4.4记事本模块设计 (24)
4.4.1 效果图 (24)
4.4.2 类的主要成员变量和方法 (24)
4.4.3 主要程序代码 (25)
4.5图像模块设计 (34)
4.5.1 效果图 (34)
4.5.2 类的主要成员变量和方法 (34)
4.5.3 主要程序代码 (35)
4.6时钟模块设计 (36)
4.6.1效果图 (36)
4.6.2 类的主要成员变量和方法 (36)
4.6.3主要程序代码 (37)
5 代码调试 (41)
6 软件发布 (42)
java课程设计-日历记事本
题目日历记事本
起讫日期2009年12月28日至2010 年1月11日所在院系软件学院
学生姓名xxxx 专业xxxxx学号xxxx
指导教师职称讲师
所在单位软件学院
2010年1月11日
一.总体设计
1.类之间的关系如图1-1所示。
图1-1 类之间的关系
2.java 源文件及其功能如表1-1所示。
二.详细设计
1.主类CalendarPad (1)成员变量见表1-2
表1-2 主要成员变量(属性)
成员变量描述 变量类型 名称 年、月、日
Int
Year,month,day
表1-1 java 源文件及其功能
序号
文件名
主要功能
备注 1 CalendarPad.java 创建实用万年历记事本程序的主窗口
含有main 方法 2 NotePad.java 该文件负责创建记事本 3 Year.java 该文件负责创建管理年份的对象 4 Month.java
该文件负责创建管理月份的类对象
显示日期JTextField[]showDay
日历对象CalendarPad日历
记事本对象NotePad notepad
月Month 负责改变月
年year 负责改变年
打印对象PrintJob p
图形对象Graphics g
保存日志的散列表Hashtable hashtable
存放散列表的文件File file
(2)方法见表1-3
表1-3 主要方法
方法名功能备注
CalendarPad创建程序主窗口构造方法
设置日历牌设置日历的年份和月份
排列号码排列月份中的号码
mousePressed 处理MouseEvent事件
actionPerformed 处理ActionEvent事件接口方法main 程序开始运行
java课程设计
Java课程设计
姓名:888
班级:软件工程1403 学号:
学院:计算机学院
1.设计任务书
1.1题目与要求
本人计划编写一个万年历,主要用来准确地查到当前,以后或是过去的日
期,极大地方便了我们的生活。在万年历上添加了显示本地时间以后会
更加准确地显示时间。具体要求如下:
1.使用图形用户界面
2.能够实现日期与星期的查询
3.能够显示农历
4.能够查看世界时间
5.能够添加闹钟
1.2本系统涉及的知识点
Mainframe类,Lunar类,Setclock类,函数的调用,累加法
2.功能设计
2.1算法设计
(1)通过Mainframe 类实现图形界面和公历日期。
(2)通过Lunar类实现农历日期。
(3)通过national类实现世界时间。
(4)通过SetClock类来实现闹钟功能。
2.2 部分模块流程图
3.程序代码设计
3.1 Mainframe类
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.text.SimpleDateFormat; import java.util.Calendar;
import java.util.Date;
Java课程设计-万年历精编版
河北科技大学
课程设计报告
学生姓名:学号:
专业班级:
课程名称:Java程序设计课程设计
学年学期:2 014 —2 015 学年第2 学期指导教师:刘伟
2 0 年月
课程设计成绩评定表
学生姓名学号成绩专业班级起止时间
设计题目
指导教师评语学习态度:端正□较端正□一般□较差□
学习纪律:好□较好□一般□较差□
出勤情况:好□较好□一般□较差□
程序设计:好□较好□一般□较差□
动手能力:强□较强□一般□较差□
团队精神:好□较好□一般□较差□
创新意识:强□较强□一般□较差□
课程设计完成情况:优秀□好□一般□较差□
课程设计报告完成情况:优秀□好□一般□较差□
指导教师:
年月日
目录
1.课程设计目的 (1)
2.需求分析 (1)
3.总体设计 (1)
4.详细设计 (1)
5.软件测试 (10)
6.课程设计总结 (11)
一、课程设计目的
(1)熟练使用java语言编写程序,解决实际问题。
(2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
(3)学会自己调试程序的方法并掌握一定的技巧。
二、需求分析
本程序的要求为:
1.使用图形用户界面;
2.本程序能够实现日期与星期的查询。
三、总体设计
(1)可以通过图形界面显示日历。
(2)能以月历形式显示日期与星期。
(3)支持用户自己输入年份,可以通过上一年,下一年等按钮来选择年份和月份。
四、详细设计
1.总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。
2.输出月份第一天为星期几的算法:使总天数除以7取余得几既为星期几,若是0,则为星期日。
java万年历源代码
int monDay;//星期几
tianshu cn=new tianshu();
cn.jsts();
int week=1+cn.totalDay%7;
//System.out.println(""+week);
if (week==7){//求当月第一天
}
for(int i=1;i<=cn.yueTian;i++){
System.out.print(i+"\t");//输出每月的号数
if((cn.totalDay + i - 1) % 7 == 5){//如果当天为周六,输出换行
System.out.println();
}ຫໍສະໝຸດ Baidu
}
}
}
package wannianli;
import java.util.*;
public class tianshu {
int totalDay;//总共的天数
int yueTian;//每月的天数
public void jsts(){
int days=0;//输入月份到当年的天数
System.out.println("*************************************欢迎使用万年历*************************************");
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015年12月18日
一、课程题目
设计一个万年历系统,实现以下功能
(1)可以查看当前的年份、月份和日期;
(2)有时间栏,便于用户查看当前时间;
(3)能够查找1至9999年的日期与星期的关系。
其它功能可自行开发。
二、题目分析与设计
1.使用的开发环境为eclipse
Jdk环境:jdk1.8
2. (此为万
年历界面图)
使用了jTabbedPane 类对功能页面分页,布局策略基本用BorderLayout 和GridLayout 。
3.本项共有5个类,基本一个功能有一个类实现,主类CalendarMain
只包含一个main函数:对创建框架和其属性设置。
AlarmDemo类则实现闹钟功能;NoteBook 类实现记事本功能;CalendarsView 类则实现基本日历功能,ChooseDay 类是一个弹窗,被CalendarsView 调用,CalendarsView 、AlarmDemo 也在该类被调用;
.
new CalendarsView();
4.日历界面使用了jTable ,功能的实现逻辑则是
1.首先定义两个全局变量---年和月,查看不同时间的日历,该变量也
随之改变。
2.写了几个函数获取今年第一天是星期几,然后根据月份天数即可推
算具体某月第一天是星期几。
3.知道一个月第一天是星期几,则该月日历既可以顺序列出。
闹钟的功能实现思路:
1.获取界面设定的时间。
2.使用线程,每过一秒急救获取当前时间,并判断是否到达设定的时
间
3.到设定的时间,启动弹窗,播放闹铃
4.闹铃科根据文件选择器自行选择
记事本功能实现思路
1.在项目文件夹先新建一个txt文件作为储存的数据库
2.利用File 类和io 数据流将界面文本储存进txt文件,实现保存功
能
3.每当程序启动,读取txt文件内容并显示到界面上
三、测试分析
1.使用如下拓展包
2.程序界面截图如下日历主界面
闹钟界面
记事本界面
3.测试流程及功能介绍
(1)
点击上一月、下一月可查看不同月份日历,左下角显示当前时间。点击蓝色的日期栏可以回到当前页
(2)
点击圈中按钮会出现弹框,可以调节年、月,查看指定年月日历(3)
闹铃可以使用默认闹铃,也能自定义选择闹铃,不过闹铃格式只能为wav或au
时间到了以后出现弹框,并响起闹铃
(4)
记事本输入文本,按保存即可。
(5)
点击最小化按钮,可以选择普通缩小或者直接缩小到托盘.
附录:源代码(注:在工程目录下新建文件夹source ,并添加了闹铃文件,txt,托盘图片,如图)
AlarmDemo.java
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.*;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;
public class AlarmDemo extends JPanel implements Runnable { private static final long serialVersionUID = -7066237267822356675L;
Thread alarm;
public AudioClip soumd1;
Calendar c = Calendar.getInstance();
JButton sure = new JButton("确定");
JButton open = new JButton("可选择闹铃");
JLabel jLabel = new JLabel("设置时间日-时-分", JLabel.CENTER);
JLabel dayLabel = new JLabel("日", JLabel.CENTER);
JLabel hourLabel = new JLabel("时", JLabel.CENTER);
JLabel minuteLabel = new JLabel("分", JLabel.CENTER);
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
JPanel jPanel4 = new JPanel();
JTextField music = new JTextField(System.getProperty("user.dir")+"\\source\\alarm.wav");
int y = 0, m = 0, h = 0, mi = 0, d = 0;
boolean fo = false;
public AlarmDemo() {
music.setEditable(false);
// 设置标签格式
dayLabel.setFont(new Font("Dialog", 1, 30));
hourLabel.setFont(new Font("Dialog", 1, 30));
minuteLabel.setFont(new Font("Dialog", 1, 30));
jLabel.setFont(new Font("Dialog", 1, 30));
//按钮设置
sure.setContentAreaFilled(false);
sure.setFocusPainted(false);
open.setContentAreaFilled(false);
open.setFocusPainted(false);
JSpinner spinner1 = new JSpinner();
JSpinner spinner2 = new JSpinner();
JSpinner spinner3 = new JSpinner();
spinner3.setModel(new SpinnerNumberModel(c.get(Calendar.DATE), 1, 31, 1));
spinner1.setModel(new SpinnerNumberModel(c.get(Calendar.HOUR_OF_DAY),
0, 23, 1));