Java万年历课程设计报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
panel2.add(label[i]);
}
panel.add(panel1,BorderLayout.NORTH);//中层容器布局
panel.add(panel2,BorderLayout.CENTER);
panel.add(panel3,BorderLayout.SOUTH);
setContentPane(panel);
setVisible(true);
init();
com1.addItemListener(this);//对下拉组件监听
com2.addItemListener(this);
but1.addActionListener(new ActionListener() {//按钮动作监听
public void actionPerformed(ActionEvent e) {
1系统模块设计………………………………………………………………………4
1.1需求设计………………………………………………………………………4
1.2开发和运行环境………………………………………………………………4
1.3功能设计………………………………………………………………………4
2万年历详细设计思路………………………………………………………………4
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;
JLabel feng =new JLabel("桂电大烧饼制作!",JLabel.CENTER);
JLabel labelTime=new JLabel("",JLabel.CENTER);
JComboBox com1=new JComboBox();//下拉窗口
JComboBox com2=new JComboBox();
month=(int)(now.get(Calendar.MONTH));//获得月份
year=(int)(now.get(Calendar.YEAR));//获得年份
com1.setSelectedIndex(year-1800);//将年份设置为当前年份
com2.setSelectedIndex(month);//将月份设置为当前月
return first_day;
}
public void stateChanged()
{
int year3,month3,week3;
year3=Integer.parseInt(com1.getSelectedItem().toString());
month3=Integer.parseInt(com2.getSelectedItem().toString())-1;
}
});
timer.start();//线程启动
}
public void init()//设置日期标签函数
{
int year,month,first_day_num;
String log[]={ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
for(int i=0;i<7;i++)
(1)通过MainFrame类,实现图形界面和公历日期。
(2)提供年份、月份的下拉形式菜单来选择年份和月份。
(3)通过Lunar类实现农历日期。
(4)通过national类实现世界时间。
(5)能以月历形式显示日期与星期。
(6)通过SetClock类来实现闹钟功能。
(7)通过点击世界时间按钮查询世界时间
JLabel y_label=new JLabel("年");
JLabel m_label=new JLabel("月");
JLabel dashao =new JLabel("时间总是在不经意间溜走,我们还得向前走",JLabel.CENTER);
JLabel bing =new JLabel("希望在回首时候,不带任何遗憾!",JLabel.CENTER);
4.如果年份小于1900年则程序不予判断。
2.2程序运行主界面
2.3流程图
3各模块功能实现及代码说明
3.1 MainFrame类
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
new aa.SetClock(); //闹钟类
}
});
but2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new aa.national();//世界时间类
}
});
Timer timer = new Timer(1000, new ActionListener()//获得系统时间,并将其显示在主界面下方
setSize(500,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel1.add(but1);
panel1.add(y_label);
panel1.add(com1);
panel1.add(m_label);
panel1.add(com2);
(8)通过点击闹钟按钮设置闹钟
(9)显示系统当前时间和日期。
(10)显示作者信息。
2万年历详细设计思路
2.1程序设计思路
1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。
5参考文献…………………………………………………………………………34
基于Myeclipse的万年历
摘要:万年历是日常生活中不可或缺的小工具,用万年历我们可以准确地查到当前,以后或是过去的日期,极大地方便了我们的生活。在万年历上添加了显示本地时间以后会更加准确地显示时间。无论是对于我们学生还ቤተ መጻሕፍቲ ባይዱ上班族或是自由职业者需要经常查看和查找万年历来规划自己将要做得一些事情,或是回忆在过去的时间里已经做过的事情,使之更加有利于提升我们的学习或是工作进度。
JButton but1=new JButton("闹钟"); //按钮
JButton but2=new JButton("世界时间");
Calendar now=Calendar.getInstance();
public MainFrame()//设置主界面,并添加各组件
{
super("大烧饼万年历");
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
2.1程序设计思路…………………………………………………………………5
2.2程序运行主界面………………………………………………………………5
2.3 流程图…………………………………………………………………………6
3 各模块功能实现及代码说明………………………………………………………6
3.1MainFramel类…………………………………………………………………6
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];//标签
系统功能结构图:主要描述系统要实现的各个模块的功能。
1系统模块设计
1.1需求分析
本程序的要求为:1.使用图形用户界面
2.能够实现日期与星期的查询
3.能够显示农历
4.能够查看世界时间
5.能够添加闹钟
1.2开发和运行环境
开发工具:Myeclipse
运行环境:windows7
1.3功能设计
本程序要构建的万年历程序,其功能有以下几个方面:
2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。
3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。
panel1.add(but2);
panel3.add(dashao);
panel3.add(bing);
panel3.add(feng);
panel3.add(labelTime);
for(int i=0;i<49;i++)//日期标签
{
label[i]=new JLabel("",JLabel.CENTER);
Resetday(first_day_num,year,month);//调用Resetday函数
}
public int use(int year2,int month2)//use函数
{
int first_day;
now.set(year2, month2,1);
first_day=(int)(now.get(Calendar.DAY_OF_WEEK));
{
label[i].setText(log[i]);
}
for(int i=0;i<49;i=i+7)
{
label[i].setForeground(Color.red);//将星期天设置为红色
}
for(int i=6;i<49;i=i+7)
{
label[i].setForeground(Color.red);//将星期六设置为红色
{
public void actionPerformed(ActionEvent evt)
{
String s1= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
labelTime.setText("现在时间是:"+s1);
import javax.swing.Timer;
import aa.Lunar;
public class MainFrame extends JFrame implements ItemListener//建立主界面
{
JPanel panel=new JPanel(new BorderLayout());//建立中层容器并布局
Java课程设计
设计题目:万年历
系 别:计算机科学与工程学院
专 业:信息管理与信息系统
学 号:1100340116
姓 名:岑少兵
指导教师:汪华澄
时 间:2013-6-29
摘要……………………………………………………………………………………3
系统功能结构图………………………………………………………………………3
}
for(int i=1800;i<=2100;i++)//将年份的下拉设置为1800-2100年
{
com1.addItem(""+i);
}
for(int i=1;i<13;i++)//讲月份下拉设置为12月
{
com2.addItem(""+i);
}
first_day_num=(int)(now.get(Calendar.DAY_OF_WEEK));//获得日期
3.2Lunar类………………………………………………………………………14
3.3national类……………………………………………………………………22
3.4 SetClock类……………………………………………………………………26
4小结………………………………………………………………………………34
}
panel.add(panel1,BorderLayout.NORTH);//中层容器布局
panel.add(panel2,BorderLayout.CENTER);
panel.add(panel3,BorderLayout.SOUTH);
setContentPane(panel);
setVisible(true);
init();
com1.addItemListener(this);//对下拉组件监听
com2.addItemListener(this);
but1.addActionListener(new ActionListener() {//按钮动作监听
public void actionPerformed(ActionEvent e) {
1系统模块设计………………………………………………………………………4
1.1需求设计………………………………………………………………………4
1.2开发和运行环境………………………………………………………………4
1.3功能设计………………………………………………………………………4
2万年历详细设计思路………………………………………………………………4
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;
JLabel feng =new JLabel("桂电大烧饼制作!",JLabel.CENTER);
JLabel labelTime=new JLabel("",JLabel.CENTER);
JComboBox com1=new JComboBox();//下拉窗口
JComboBox com2=new JComboBox();
month=(int)(now.get(Calendar.MONTH));//获得月份
year=(int)(now.get(Calendar.YEAR));//获得年份
com1.setSelectedIndex(year-1800);//将年份设置为当前年份
com2.setSelectedIndex(month);//将月份设置为当前月
return first_day;
}
public void stateChanged()
{
int year3,month3,week3;
year3=Integer.parseInt(com1.getSelectedItem().toString());
month3=Integer.parseInt(com2.getSelectedItem().toString())-1;
}
});
timer.start();//线程启动
}
public void init()//设置日期标签函数
{
int year,month,first_day_num;
String log[]={ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
for(int i=0;i<7;i++)
(1)通过MainFrame类,实现图形界面和公历日期。
(2)提供年份、月份的下拉形式菜单来选择年份和月份。
(3)通过Lunar类实现农历日期。
(4)通过national类实现世界时间。
(5)能以月历形式显示日期与星期。
(6)通过SetClock类来实现闹钟功能。
(7)通过点击世界时间按钮查询世界时间
JLabel y_label=new JLabel("年");
JLabel m_label=new JLabel("月");
JLabel dashao =new JLabel("时间总是在不经意间溜走,我们还得向前走",JLabel.CENTER);
JLabel bing =new JLabel("希望在回首时候,不带任何遗憾!",JLabel.CENTER);
4.如果年份小于1900年则程序不予判断。
2.2程序运行主界面
2.3流程图
3各模块功能实现及代码说明
3.1 MainFrame类
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
new aa.SetClock(); //闹钟类
}
});
but2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new aa.national();//世界时间类
}
});
Timer timer = new Timer(1000, new ActionListener()//获得系统时间,并将其显示在主界面下方
setSize(500,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel1.add(but1);
panel1.add(y_label);
panel1.add(com1);
panel1.add(m_label);
panel1.add(com2);
(8)通过点击闹钟按钮设置闹钟
(9)显示系统当前时间和日期。
(10)显示作者信息。
2万年历详细设计思路
2.1程序设计思路
1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。
5参考文献…………………………………………………………………………34
基于Myeclipse的万年历
摘要:万年历是日常生活中不可或缺的小工具,用万年历我们可以准确地查到当前,以后或是过去的日期,极大地方便了我们的生活。在万年历上添加了显示本地时间以后会更加准确地显示时间。无论是对于我们学生还ቤተ መጻሕፍቲ ባይዱ上班族或是自由职业者需要经常查看和查找万年历来规划自己将要做得一些事情,或是回忆在过去的时间里已经做过的事情,使之更加有利于提升我们的学习或是工作进度。
JButton but1=new JButton("闹钟"); //按钮
JButton but2=new JButton("世界时间");
Calendar now=Calendar.getInstance();
public MainFrame()//设置主界面,并添加各组件
{
super("大烧饼万年历");
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
2.1程序设计思路…………………………………………………………………5
2.2程序运行主界面………………………………………………………………5
2.3 流程图…………………………………………………………………………6
3 各模块功能实现及代码说明………………………………………………………6
3.1MainFramel类…………………………………………………………………6
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];//标签
系统功能结构图:主要描述系统要实现的各个模块的功能。
1系统模块设计
1.1需求分析
本程序的要求为:1.使用图形用户界面
2.能够实现日期与星期的查询
3.能够显示农历
4.能够查看世界时间
5.能够添加闹钟
1.2开发和运行环境
开发工具:Myeclipse
运行环境:windows7
1.3功能设计
本程序要构建的万年历程序,其功能有以下几个方面:
2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。
3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。
panel1.add(but2);
panel3.add(dashao);
panel3.add(bing);
panel3.add(feng);
panel3.add(labelTime);
for(int i=0;i<49;i++)//日期标签
{
label[i]=new JLabel("",JLabel.CENTER);
Resetday(first_day_num,year,month);//调用Resetday函数
}
public int use(int year2,int month2)//use函数
{
int first_day;
now.set(year2, month2,1);
first_day=(int)(now.get(Calendar.DAY_OF_WEEK));
{
label[i].setText(log[i]);
}
for(int i=0;i<49;i=i+7)
{
label[i].setForeground(Color.red);//将星期天设置为红色
}
for(int i=6;i<49;i=i+7)
{
label[i].setForeground(Color.red);//将星期六设置为红色
{
public void actionPerformed(ActionEvent evt)
{
String s1= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
labelTime.setText("现在时间是:"+s1);
import javax.swing.Timer;
import aa.Lunar;
public class MainFrame extends JFrame implements ItemListener//建立主界面
{
JPanel panel=new JPanel(new BorderLayout());//建立中层容器并布局
Java课程设计
设计题目:万年历
系 别:计算机科学与工程学院
专 业:信息管理与信息系统
学 号:1100340116
姓 名:岑少兵
指导教师:汪华澄
时 间:2013-6-29
摘要……………………………………………………………………………………3
系统功能结构图………………………………………………………………………3
}
for(int i=1800;i<=2100;i++)//将年份的下拉设置为1800-2100年
{
com1.addItem(""+i);
}
for(int i=1;i<13;i++)//讲月份下拉设置为12月
{
com2.addItem(""+i);
}
first_day_num=(int)(now.get(Calendar.DAY_OF_WEEK));//获得日期
3.2Lunar类………………………………………………………………………14
3.3national类……………………………………………………………………22
3.4 SetClock类……………………………………………………………………26
4小结………………………………………………………………………………34