《面向对象程序设计》课程设计java日历.doc
《《面向对象程序设计》课程设计java日历.doc》由会员分享,可在线阅读,更多相关《《面向对象程序设计》课程设计java日历.doc(15页珍藏版)》请在沃文网上搜索。
1、目录1 设计时间32 设计目的33设计任务34 设计内容34.1概念设计34.1.1 系统功能图34.1.2 需求分析44.1.3设计思路64.2详细设计74.2.1类设计74.2.2界面设计74.2.3功能实现94.3运行调试与分析讨论124.3.1运行结果和分析124.3.2改进想法135 总结与展望14参考文献15成绩评定151 设计时间2011年12月19日2011年12月22日2 设计目的面向对象程序设计是学习完Java 6 程序设计课程之后,进行的一次全面的综合性练习,是学习完理论课程之后的必要的集中实践环节。面向对象程序设计的课程设计的目的在于是提高学生对所学知识综合应用能力的一
2、种方式,要求我们对理论课中所学习到的知识综合运用,实现有一定规模的Java应用。此次课程设计也为我们将来的毕业设计和具体工作实践奠定了坚实的基础。3设计任务Java日历设计一个java日历,要求用java编写简单日历,只需要输入年、月就可打印出对应月的日历。要求有简单的用户界面。4 设计内容 4.1概念设计4.1.1 系统功能图该系统主要实现的功能如图一所示:查询指定年份日历查询相邻年份日历查询相邻月份日历查看今日万年历系统显示日期选择其他日期查询指定月份日历图一1、 当用户需要查询指定年月的日历时,用户将选择框内年月改变,系统获取信息并设置月历,具体流程如图二所示:选择年份月份获取年月份并转
3、化为英文格式获得该月1号所在位置和该月天数设置系统为该年月生成日历界面图二2、用户用鼠标点击选择一个日期后,系统可用蓝色方框框住该日期,表示系统已选择该日,具体流程如图三所示:用户点击某一日期系统判断用户已点击标签的下标清除上一个方框对被点击的标签设一个蓝色方框图三4.1.2 需求分析对于万年历系统,其主要功能是:查看当日日期(年、月、日)、查看当时时间、查看其他年月的月历、对选中的日期进行标识。主要使用流程是:查看万年历系统,查看其他月份或年份日历,选中其他日期查看,查看当日日期。主要功能的用例描述如下:(1)查看万年历1、进入万年历系统;2、系统获取当日日期并设置日历为当月,蓝框选中当日日
4、期;(2)查询当月其他年份改变年份有两张方法,一种是选择年份,一种是摁按键选择上一年或下一年。下拉菜单选择年份:1、点击选择年份的下拉菜单,选择年份;2、系统获取已选择的年份;3、系统设置为已选年份当月的月历并显示在界面显示。 按键选择上一年(或下一年):1、点击选择“年”(或“年+”)的按键;2、系统获取选择框内的年份;3、将系统获取年份的数字减去1(或加上1);4、将选择框内的年份设为已更改的年份;5、系统设置为已更改年份当月的月历并显示在界面显示。(3)查询当年的其他月份改变月份有两张方法,一种是选择月份,一种是摁按键选择上一月或下一月。下拉菜单选择月份:1、点击选择月份的下拉菜单,选择
5、年份;2、系统获取已选择的月份;3、系统设置已选月份为当年的月历并在界面显示。按键选择上一月(或下一月):1、点击选择“月”(或“月+”)的按键,;2、系统获取选择框内的月份;3、将系统获取月份的数字减去1(或加上1);4、将选择框内的月份设为已更改的月份;5、系统设置为已更改月份当年的月历并在界面显示。(4)选择其他日期查看1、点击其他日期;2、系统对所有日期的label进行监听,判断点击的那个label;3、返回被点击的label的数组下标;4、对该下标的label设置蓝色边框,表示选中。(5)查看当日日期1、点击“今日”按键;2、系统获取今日日期;3、设置年份和月份选择框为当日年月;4、
6、系统设置为当日年月的月历并在界面显示;5、判断当日日期在哪个label上;6、返回被点击的label的数组下标;7、对该下标的label设置蓝色边框,表示选中。4.1.3设计思路本课程设界面由两个模块构成,主要有表头模块和日历模块两部分。(1) 表头模块上有查询输入部分和时间显示部分:1、两个下拉列表用于选择的年份和月份,如改变年份后系统用getShowYear()获得组合框中的中文年份,getCombYear()转换成英文格式,得到用户选择的年份,同时用getMonthDays()和getInitWeek()得到界面的设定,最终,用setDays()设置出用户所要求的月历,改变月份同理;2、
7、四个button按钮用于实现年、年+、月、月+,如选择了“年+”后,系统用getShowYear()和getCombYear()获得组合框中的年份,在其年份上加1,将改变的年份显示在组合框里,计算出该年月日历的安排,并用setDays()设置出用户所要求得月历,其他按钮同理;3、一个button按钮用于实现对今日日期的查找,当用户选择了“今日”后,系统用getNowYear()和getNowMonth()得到当日年月,并调用setNowDay()将系统组合框内年月设为当日年月,显示当月月历,同时系统用getNowDay()获得当日日期,用labelDayi.setBorder(border1)
8、语句将当日的日期用蓝色的边框框住表示选定;4、创建一个标签用于显示时间,监听系统时间并显示。(2)日历模块上添加系统的结果显示部分:1、该部分最初显示为当日年月的月历,改变年月后,获得需要显示的月份天数m和当月1号是从labelDayn开始后按顺序从添加到labelDaym+n,遇到周末用setForeground(Color.red)设定字体显示为红色;2、对labelDay标签进行监听,如果鼠标点击某个label,判断该标签的的序号,用setBorder()为该label设置蓝色边框并用setBordr(null)将上一个边框清除。4.2详细设计4.2.1类设计本程序创建了一个AidyCa
9、lender类,该类包括了改变年月对月历界面显示的改变和时间的显示,主要包括函数如表1所示:表-1 AidyCalenderpublic AidyCalender(String title) 界面设计public void actionPerformed(ActionEvent ae) 判断button按键public int turnWeek(String week) 将系统中的英文周转化成中文周public int getNowDay( ) 获得现在的日期public Integer getShowYear( ) 获取组合框中显示的中文格式年份public int getComboYear
10、( ) 获取组合框中的年份public int getInitWeek(String initWeek) 返回当月中的1号是从星期几开始public int getMonthDays(int year, int month) 返回所选年月的天数public void setSysDate(int year,int month) 设置系统日期public void setChangeDate( ) 改变显示日期public void setDays(int monthDays,int initWeek,int day) 设置月历 4.2.2界面设计界面该界面由上表头模块输入选择部分和中央的结果显
11、示部分组成。输入部分创建两个下拉列表选择年月及5个功能按键用于实现日历的基本操作;结果显示部分根据该月1号所属星期和该月的天数设置出该月月历界面。主要的界面设置代码如下:加上星期日到六for(int i=0;i7;i+) labelWeeki = new JLabel();labelWeeki.setHorizontalAlignment(0);if(i=0|i=6)labelWeeki.setForeground(Color.red); /设置周末为红色labelWeeki.setFont(new Font(新宋体,Font.BOLD,18);elselabelWeeki.setForegr
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 面向 对象 程序设计 课程设计 java 日历