3. 高级功能

1) 时区设置

我们为用户提供了多达75个时区的选择,点击更改时区即可将时间切换到当前用户所在的时区,可以满足用户去往不同国家的需求。是一款“国际化”日历。

2) 自定义图片

用户点击更改图片背景,可以选择自己喜欢的图片,为用户提供了多样化选择。可以根据自己的喜好设置喜爱的图片,比如放置一个名人座右铭可以勉励自己在学业上不断进步。

3) 自定义音乐

考虑到普通闹钟刺耳的缺点,我们给用户提供定制化铃声的功能,让用户可以自己设置闹钟铃声,提供了个性化的用户体验。

4) 保留自定义设置

用户的自定义设置功能都会被记录,下次打开软件时还能保留先前的设置。是一款真正的人性化、个性化日历

二、 设计思路

首先,按照功能将日历分成不同模块,分别是CalendarImage(显示图片),CalendarPad(实现主要功能,主要框架),mainclass(main方法),NotePad(显示

记事本),myClock(钟表的显示),Month(月份的设置和显示),Year(年份的设置和显示)。

图 1 根据功能设计日历模块

首先按照日历所要实现的功能,从外观显示和内部功能设计日历。

日历的外观共分为四个部分,分别是顶部的菜单栏,左上部分显示日历面板,右上部分显示记事本面板,左下部分显示图片,右下部分显示表盘,包括电子表显示和钟表表盘显示。 日历的内部功能:

实现记事本功能:包括获取日志,显示日志,删除日志

实现闹钟功能:包括钟表的显示,不同时区的设置,和到时提醒功能 日历日期的显示:包括月份的设置,年份的设置

根据以上功能的划分,按照面向对象编程的设计思想,将同一对象所应用的功能合并到一个对象上,可以将日历的实现划分为以下几个模块。

图 2 面向对象的日历设计

三、 程序结构

1. 总体结构

在设计多功能日历时,需要编写7个java源文件:mainclass.java, mainclass.java, NotePad.java , Year.java, Month.java,CalendarImage.java ,myClock.java。 这些类的主要功能如下:

主类 mainclass(用于启动程序) 主要框架mainclass(是程序的核心) 记事本NotePad(记事本功能) 年Year(显示年) 月Month(显示月份)

日历图像CalendarImage(显示日历图像) 数字时钟myClock(用于显示数字时钟) 类之间的关系如下图所示

2. 详细设计

mainclass.java
package diaoshizhe;
import java.util.Calendar; //这是程序的主类;程序从这个类开始; public 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类的对象,以参数形式传递获取的当前时间 new CalendarPad(y,m,d); } }