1、徐州工业职业技术学院 第 1 页 目目 录录 前言前言 2 1 1 需求分析需求分析 . 2 1.11.1 需求分析需求分析 . 2 1.21.2 功能设计功能设计 . 2 2.概要设计概要设计 . 2 2.12.1 程序设计思路程序设计思路 . 2 2.22.2 程序运行界面程序运行界面 . 3 2.32.3 流程图流程图 . 4 3.3.各模块的功能及程序说明各模块的功能及程序说明 4 3.1.3.1.初始化组件初始化组件 4 3.2.3.2.初始化数据初始化数据 4 3.3.3.3.绘制程序界面绘制程序界面 5 4测试分析测试分析 6 5源程序清单源程序清单 8 6 6课程设计体会课程设
2、计体会 16 参考文献 错误错误!未定义书签。未定义书签。 徐州工业职业技术学院 第 2 页 前言前言 Java 是一种可 以撰写跨平台应 用软件的面向 对象的程序设计 语言,是由 Sun Microsystems公司于1995年5月推出的Java程序设计语言和 Java平台 (即JavaSE, JavaEE, JavaME)的总称。Java 最初被命名为 Oak,目标设置在家用电器等小型系统的程序语言, 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市 场需求没有预期的高,Sun 公司放弃了该项计划。随着 1990 年代互联网的发展,Sun 公司看 见 Oak
3、 在互联网上应用的前景,于是改造了 Oak,于 1995 年 5 月以 Java 的名称正式发布。 Java 编程语言的风格十分接近 C、C+语言。Java 是一个纯的面向对象的程序设计语言,它 继承了 C+语言面向对象技术的核心。Java 舍弃了 C +语言中容易引起错误的指针(以引 用取代) 、运算符重载(operator overloading) 、多重继承(以接口取代)等特性,增加了垃 圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理 而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming) 、类型安全
4、的枚举、不定长参数和自动装/拆箱等语言特性。 1 1 需求分析需求分析 1.11.1 需求分析需求分析 本程序的要求为: 1.使用图形用户界面; 2.本程序能够实现日期与星期的查询。 1.21.2 功能设计功能设计 本程序要构建的万年历程序,其功能有以下几个方面: (1)通过网页形式运行,实现图形界面。 (2)能以月历形式显示日期与星期。 (3)支持用户自己输入年份,并提供月份的下拉形式菜单来选择月份。 (4)通过点击“更新”来刷新日历。 2.概要设计概要设计 2.12.1 程序设计思路程序设计思路 1. 总天数的算法:首先用 if 语句判断定义年到输入年之间每一年是否为闰年,是 闰年,该年的
5、总天数为 366,否则,为 365。然后判断输入的年是否为定义年,若是,令 徐州工业职业技术学院 第 3 页 总天数 S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到 要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使 总天数加 1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。 2. 输出月份第一天为星期几的算法:使总天数除以 7 取余加 2 得几既为星期几,若 是 7,则为星期日。 3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日 期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的
6、天数加上该月 一日为星期几的数字再除以 7 得 0 换行,即可完整的输出该月的日历。 4. 如果年份小于 1582 年则程序不予判断。 2.22.2 程序运行界面程序运行界面 图 1 手动调节屏幕大小后的样子 徐州工业职业技术学院 第 4 页 2.32.3 流程图流程图 3.3.各模块的功能及程序说明各模块的功能及程序说明 3.1.3.1.初始化组件初始化组件 import java.applet.Applet; import java.awt.*; import java.util.*; 3.3.2 2. .初始化数据初始化数据 public class CalendarApplet extends Applet static final int TOP = 70; /顶端距离 static final int CELLWIDTH=50,CELLHEIGHT = 30; /单元格尺寸 static final int MARGIN = 3; /边界距离 static final int FEBRUARY = 1; 程序