日历记事本报告书有提醒功能

上传人:第*** 文档编号:57348740 上传时间:2018-10-21 格式:DOCX 页数:65 大小:601.12KB
返回 下载 相关 举报
日历记事本报告书有提醒功能_第1页
第1页 / 共65页
日历记事本报告书有提醒功能_第2页
第2页 / 共65页
日历记事本报告书有提醒功能_第3页
第3页 / 共65页
日历记事本报告书有提醒功能_第4页
第4页 / 共65页
日历记事本报告书有提醒功能_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《日历记事本报告书有提醒功能》由会员分享,可在线阅读,更多相关《日历记事本报告书有提醒功能(65页珍藏版)》请在金锄头文库上搜索。

1、JAVAJAVA 程序设计课程设计报告 设计题目:日历记事本 组 长: : 黎建毅 组 员:尹志军 毛博弘 吴海杰 指导教师:肖建明 专 业:计算机科学与技术(网络方向) 设计时间: 2011-12-122011-12-12 目录目录一一.开发背景开发背景 2二二.系统分析系统分析 3三三.设计要求设计要求 7四四.总体设计总体设计 7五五.详细设计详细设计 10(一)mainclass 类(二)CalendarPad 类(三)NotePad 类(四)Year 类(五)Month 类(六)CalendarImage 类(七)ClockDemo 类六六. 系统打包与发布系统打包与发布 66七七.

2、 系统维护系统维护 67一.开发背景设计 GUI 界面的日历记事本。实现日历、记事本、校历显示、时钟、闹钟、整点报时、设置图片背景等功能,用户可以在任何日期记事或查看某个日期的记录,可以设置校历开始的时间、一学期校历的长度, 、添加了数字时钟的功能。还有闹钟功能,可以设置闹钟时间,时钟有整点报时的功能。设置功能都会被记录,下次打开软件时还能保留先前的设置。软件效果图:软件效果图: 二.系统分析1.显示年、月、日软件可以显示日历的年月日,并且对今天的日历给出了特殊的显示(大字体和青色显示)。还能查看当前时间之前和之后的日历,可以通过按钮操作,也支持在输入框里面输入年和月。如图:2.校历功能与一般

3、的日历不同的是,本软件提供的日历能显示校历,特别适合于学生和老师的使用,而且可以自定义校历的开始时间和一学期校历的长度。随时可以更新,而且可以保存用户先前的设置和选择。对于不在校历显示方法为内的日期,用“无校历”标出。3.日志功能本日历软件还提供了写日志的功能,用户可以在右侧点击日历的日期,然后写下日志,并保存,也可以读取先前写下并保存的日志,还可以删除存储的日志。还能对用户的非法操作给予提醒,例如当用户在没有日志存储的日期点击删除日志时,软件就会弹出警告对话框。如图:4.显示数字时钟功能本软件提供了数字时钟的显示功能,能够准确地显示当前的时间,精确到秒。如图:5.闹钟功能和整点报时功能在时钟

4、的基础上,本软件还添加了闹钟功能。用户可以自行设置闹钟的时间,而且每次设置时都会显示上次设置的闹钟时间,而且软件自己会记住当前设置的闹钟,即使关闭了软件再重新打开时,还能记住上次的设置。设置完闹钟时间后,当时间到达闹钟时间是,软件会发出铃声提醒用户。另外,软件还具有整点报时的功能,当时间离整点还有 10 秒的时候。软件会自动报时,报时方式模仿电台。6.日历图像显示功能为了增加日历的外观效果,达到美化界面的目的,软件还能显示图片(在日历的正下方)。用户还可以通过设置选项,选择自己喜欢的图片显示在日历上。这也是个性化的体现, (二)主要功能的实现方法(二)主要功能的实现方法本软件虽然功能比较多,但

5、实现方法都比较简单:1.显示年、月、日这应该是相对较难实现的一个功能,实现这个功能要求将一个容器分成7*7 的小块,在上面 7 快添加表示星期的标题,下面 7 块用来表示日期。显示时,要获得显示月份的第一天星期几,再获得显示月份的天数,这样就可以从头到尾设置这个月显示内容了,没有显示内容的格子,将内容置为空。至于月份和年的显示相对简单,初始值为现在实际的年和月,以后的显示值跟随操作走就好了,而上、下年和上、下月按钮事件也是比较简单的。2.校历功能校历显示功能是这个软件设计的一大难点,从接受输入说起,当用户在点击菜单栏中的“设置校历初始状态”时,软件会把用户输入的信息存起来,再把最新输入的信息应

6、用到校历显示中,更新校历。当用户第一次打开软件时,校历有一个默认值,一旦用户设置了校历信息,以后用户再打开软件时,软件会自动去对应文档里读取先前用户存储的信息,这样就使软件记住用户的设置了。这一点,在下面的闹钟设置,日历图片选择时都会用到。至于显示校历,是这样的过程,先获取校历开始的日期和校历的长度。然后,对于日历当前的显示月份,计算这个月份之前的校历的周数,这个计算过程是重点也是难点,因为得判断一个月的第一周是新的一周还是上个月最后一周的延续,这就很多日期的处理。完成这个过程之后就可以实现对当前将要显示的月份的校历显示做处理了。最后再注意当前月份是否在校历范围内即可。3.日志功能日志功能也是

7、一个重点,主要是创建一个文档,把用户的日志跟日期一一对应存到文档里面,以后的保存和删除都是在这个基础上实现的。显示日志时只要从存储的文档中判断有没有选择日期对应的日志,有的话把其显示在文字编辑框里面即可。按钮事件的监听也比较简单。4.显示数字时钟功能数字显示功能主要利用了多线程和组件重绘的方法实现的。在这里,创建一个时钟对象时,会产生一个新的线程,这个线程负责时间显示,每隔 1 秒钟会进行组件重绘,而重绘的结果就是时间显示增加一秒,这就是数字时钟显示的简单原理。5.闹钟功能和整点报时功能本功能是基于数字时钟功能的,每隔一秒,在组建重绘时,判断当前时间是否与闹钟时间相符或与整点报时时间相符,若是

8、播放对应的音频即可,比较好实现。至于闹钟的设置,原理与校历初始状态的设置很相似,都是建一个文档把用户的设置存进去,操作时把它读出来。6.日历图像显示功能日历图像显示功能,也比较简单 java 中有现成方法可以调用显示图片,就是涉及 IO 流的一些东西,略感繁琐。对于选择显示的图片也很简单,就新建一个文件对话框,并且接受用户的输入,把用户的输入信息存到以文档中,以便记住用户的选择,这样子就把该显示的图片的路径获得,显示出来就比较容易了。三三. .设计要求设计要求1、系统界面的左侧是日历和图片显示区域。在日历区域,日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前日历年份减一,显示上一年这个月份

9、的日历;当鼠标左键单击“下年”按钮,当前日历年份加一,显示下一年这个月份的日历。日历也可以按月前后翻动,鼠标单击“上月”按钮时,显示上个月的日历(若是 1 月份,则显示上一年的 12 月份) ;鼠标单击“下月”按钮时,显示下个月的日历(若是 12 月份,则显示下一年的 1 月份) 。在图片显示区域显示默认的或用户选择的图片。2、系统界面的右侧是记事本和数字时钟。记事本的编辑区域上面显示日志对应的日期时间,编辑区域可供编辑和显示日志,编辑区域底下为按钮,点击“保存”按钮可以保存当前写的日志,点击“删除”按钮可以删除当前显示在编辑区域的日志。数字时钟显示区域用于显示当前的时间,能够具体到秒。四四.

10、 .总体设计总体设计在设计多功能日历时,需要编写 7 个 java 源文件:mainclass.java, mainclass.java, NotePad.java , Year.java, Month.java,CalendarImage.java ,ClockDemo.java。这些类的主要功能如下:主类 mainclass(用于启动程序)主要框架 mainclass(是程序的核心)记事本 NotePad(记事本功能)年 Year(显示年)月 Month(显示月份)日历图像 CalendarImage(显示日历图像)数字时钟 ClockDemo(用于显示数字时钟)这些类的关系如下图所示:m

11、ainclassCalendarPadNotePadYearMonthCalendarImageClockDemo各个类显示在效果图中,则如下图所示:CalendarPadNotePadMonthYear五五. .详细设计详细设计(一)(一)mainclassmainclass 类类mainlclass 主要用于启动整个软件,比较简单。生成一个日历的实例对象,将当前的日期时间传递给生成的一个CalendarPad对象;代码(mainclass.java):CalendarImageClockDemoimport java.util.Calendar;/这是程序的主类;程序从这个类开始;publ

12、ic class mainclass public mainclass() /main 方法;public static void main(String args) /创建一个日历的实例对象,用于返回当前时间;Calendar calendar=Calendar.getInstance(); /得到当前时间; int y=calendar.get(Calendar.YEAR); int m=calendar.get(Calendar.MONTH)+1; int d=calendar.get(Calendar.DAY_OF_MONTH); /新建一个 CalendarPad 类的对象,把当前时

13、间传递给它,几乎本程序的所用操作 都从这里开始,是程序的最最核心部分;new CalendarPad(y,m,d); ( (二二)CalendarPad)CalendarPad 类类1.1.效果图效果图CalendarPad 新建的窗口效果如下:其中菜单功也在这里实现,效果图如下:对于菜单按钮的各项响应也在这个类实现,效果如下:2.UML2.UML 图图CalendarPad 类是 java.swing 包中 JFrame 中的一个子类,并实现了MouseListener,ActionListener 接口,表明该类的主要成员变量和方法的 UML图如下图所示CalendarPadint : y

14、ear,month,day; int : ringhour,ringmin;int : day_of_the_week;int : beginyear,beginmonth,beginday,weeknum;String : picturename, weekDayJTextField :showDay,showxiaoli;JPanel leftUp,rightUp,leftWhole,rightWhole,leftUp_center_west;Hashtable hashtable; File file; JLabel title; Calendar calendar; NotePad n

15、otepad Month showMonth; Year showYear; JMenuItem setxiaoli; CalendarImage calendarImage;ClockDemo clock;(构造函数)CalendarPad();void getbeginmessage()String getPicture_address()void getsettingtime()void setschoolcalendar(int,int,int,int,int,int)Boolean after()int countweek(int,int)void setCalendar(int,int)void sortDay(int,int)int getYear()void setYear(int)int getMonth()void setMonth(int)int getDay()void setDay(int)Hashtable getHashtable()File getFile()void mousePressed(MouseEvent)voidactionPerformed(ActionEvent)JFrameMouseL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号