Java万年历课程设计任务书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息科学与工程学院
课程设计
题目: Java万年历设计
姓名:
学号: 20
班级: 201 课程: Java项目实训
任课教师
2015年5月20日
课程设计任务书及成绩评定
目录
前言 (3)
一、系统模块设计 (4)
1.1需求分析 (4)
1.2 开发和运行环境 (4)
二、详细设计 (5)
2.2程序运行主界面 (6)
2.3流程图 (7)
三、部分功能实现及代码说明 (7)
四、小结 (15)
五、参考文献 (15)
前言
摘要:万年历是日常生活中不可或缺的小工具,用万年历我们可以准确地查到当前,以后或是过去的日期,极大地方便了我们的生活。在万年历上添加了显示本地时间以后会更加准确地显示时间。无论是对于我们学生还是上班族或是自由职业者需要经常查看和查找万年历来规划自己将要做得一些事情,或是回忆在过去的时间里已经做过的事情,使之更加有利于提升我们的学习或是工作进度。
系统功能结构图:主要描述系统要实现的各个模块的功能。
一、系统模块设计
1.1需求分析
本程序的要求为:1.使用图形用户界面
2.能够实现日期与星期的查询
3.能够显示农历
4.能够查看世界时间
5.能够添加闹钟
1.2 开发和运行环境
开发工具:Myeclipse
运行环境: windows 7
1.3功能设计
本程序要构建的万年历程序,其功能有以下几个方面:
(1)通过
(2)提供年份、月份的下拉形式菜单来选择年份和月份。
(3)通过Lunar类实现农历日期。
(4)通过national类实现世界时间。
(5)能以月历形式显示日期与星期。
(6)通过SetClock类来实现闹钟功能。
(7)通过点击世界时间按钮查询世界时间
(8)通过点击闹钟按钮设置闹钟
(9)显示系统当前时间和日期。
(10)显示作者信息。
二、详细设计
2.1程序设计思路
1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。
2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。
3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。
4. 如果年份小于1900年则程序不予判断。
2.2程序运行主界面
2.3流程图
三、部分功能实现及代码说明
MainFrame类
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
import aa.Lunar;
public class MainFrame extends JFrame implements ItemListener//建立主界面
{
JPanel panel=new JPanel(new BorderLayout());//建立中层容器并布局
JPanel panel1=new JPanel();
JPanel panel2=new JPanel(new GridLayout(8,7));
JPanel panel3=new JPanel(new GridLayout(4,1));
JLabel[] label=new JLabel[49];//标签
JLabel y_label=new JLabel("年");
JLabel m_label=new JLabel("月");
JLabel dashao =new JLabel("时间总是在不经意间溜走,我们还得向前走",JLabel.CENTER);
JLabel bing =new JLabel("希望在回首时候,不带任何遗憾!",JLabel.CENTER);
JLabel feng =new JLabel("桂电大烧饼制作!",JLabel.CENTER);
JLabel labelTime=new JLabel("",JLabel.CENTER);
JComboBox com1=new JComboBox();//下拉窗口
JComboBox com2=new JComboBox();
JButton but1=new JButton("闹钟"); //按钮
JButton but2=new JButton("世界时间");
Calendar now=Calendar.getInstance();