文档介绍:信息科学与技术学院
《Java面向对象程序设计》
课程报告
课程设计题目:
1、Window系统时间属性模拟实现
2、简单通讯录设计
目录
Windows时间和日期属性模拟
第1部分设计内容要求 2
课程设计目的 2
课程设计内容和要求 2
第2部分设计思路 3
问题分析要点 3
算法设计思想说明 3
第3部分详细设计 5
设计步骤及流程 5
第4部分运行效果图 7
第5部分心得与体会 8
第6部分附录 8
简单通讯录设计
第7部分设计的内容要求 21
课程设计目的 21
课程设计内容及要求 21
第8部分设计思想 21
问题分析及要点 21
设计思路 21
第9部分详细设计 22
详细设计 22
第10部分运行效果图 22
第11部分心得与体会 24
第12部分附录 24
Windows系统时间属性模拟
设计内容要求
课程设计目的
1、综合使用各种图形用户界面设计组件,实现常见的功能,熟悉这些组件的使用方法,如选择框,下拉列表框。
2、通过日期,日历类的使用掌握这些类的用途。
3、掌握线程生成,运行的机制,理解多线程编程。
4、掌握一个的界面布局管理技术
课程设计内容和要求
设计并模拟实现Windows系统中“时间和日期”属性对话框的编程,要求界面和功能尽量和Windows提供的一致。要求能实现日期的设置,时间的显示,时钟界面的绘图。参考图形如下:
设计思路
问题分析要点
对课程设计提供的截图分析可知,时区,时间不要求实现。程序的主体部分由两个部分组成。
1、左边部分主要实现的是日历的动态显示和设置,可以选择月份的下拉选择框是java提供的Choice组件,右边点击旁边的小型按钮能使当前的年份加一或者减以一,这是由java中的JSpinner组件。其中边框上面显示的文字,是调用面板Panel的方法设置成功的。至于动态设置无论是选择了月份的下拉选择框还是JSpinner组件的值改变都引起了当前日历信息中显示的改变。这点不难想到是选择这两个组件的某一项触发了事件引起了左边中间的日期显示的重新设置。实际上刚好是Choice的ItemListener事件和JSpinner的构造函数的参数ChangeListene的事件,具体实现将在后面加以讨论。;
2、右边部分为一个模拟的时钟程序,每隔一秒分针该变一次位置,分针每隔一分钟改变一次位置,和生活中常见的时钟一样,实现方式采用线程,现成的run()方法每隔一秒恢复执行一次,执行完毕后又睡眠一分钟,然后又继续运行,周而复始。时钟部分是调用了一个paint()函数每次执行时重画时钟,并用当前背景色填充原来秒针的位置就行了。具体实现后面再详细讨论。
算法设计思想说明
1、本次课程设计的需要核心函数共有两个,一个用于实现设置日期和年份显示的函数 update(int year,int month)。这个函数的传入参数month为Choice选择框中选中的月份对应的整数值,year为JSpinner中选中的年份对应的整数值,函数的功能是在每次这两个组件的事件触发处理函数中调用重新设置显示日期的方式。
函数伪码表示如下:
update(int year,int month)
{
int n=0,s,i,j,k,r;
Calendar calendar=();// 日历类的方法和操作如何
(new Date()); // 设置时间无名对象,得到了当前的时间date 的类的结构。
j=();// 获得当前的年份
k=()+1; //获得当前的月份
r=(); //当前的天数
(y, m-1, 1);// 设置日历对象为参数的部分
s=(); // 星期几这天是
switch(m)
…….
创建一个日历对象,设置对象的时间为当前系统对象。();调用返回当前的月份,其余类似。这里涉及到一个月的天数的确定,只要一个简单的Switch()语句根据这个年份是平年还是闰年就能确定,需要注意的是我们生活中的12月其实就是日历类的0月,所以在代码中m-1了。
中间显示日期的中放置了49个标签