版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java课程设计万年
历
文档仅供参考
河北科技大学
课程设计报告
学生姓名:学号:
专业班级:
课程名称:Java程序设计课程设计
年学期:2014—2015年第2学期
指导教师:刘伟
20年月
课程设计成绩评定表
文档仅供参考
学生姓名学号成绩
专业班级起止时间
设计题目
学习态度:端正口较端正口一般口较差口
学习纪律:好口较好口一般口较差口
出勤情况:好口较好口一般口较差口
程序设计:好口较好口一般口较差口
动手能力:强口较强口一般口较差口
团队精神:好口较好口一般口较差口
创新意识:强口较强口一般口较差口
指课程设计完成情况:优秀口好口一般口较差口
导课程设计报告完成情况:优秀口好口一般口较差口
教
师
评
语
指导教师:
年月日
文档仅供参考
目录
1.课程设计目
的..................................................1
2.需求分
析.......................................................1
3.总体设
计.......................................................1
4.详细设
计.......................................................1
5.软件测
试.......................................................10
6.课程设计总
结...................................................11
文档仅供参考
文档仅供参考
一、课程设计目的
(1)熟练使用java语言编写程序,解决实际问题。
(2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试
等基本方法和技能;
(3)学会自己调试程序的方法并掌握一定的技巧。
二、需求分析
本程序的要求为:
L使用图形用户界面;
2.本程序能够实现日期与星期的查询。
三、总体设计
(1)能够经过图形界面显示日历。
(2)能以月历形式显示日期与星期。
(3)支持用户自己输入年份,能够经过上一年,下一年等按钮来
选择年份和月份。
四、详细设计
1.总天数的算法:首先用if语句判断定义年到输入年之间每一年是
否为闰年,是闰年,该年的总天数为366,否则,为365。
2.输出月份第一天为星期几的算法:使总天数除以7取余得几既为
星期几,若是0,则为星期日。
3.算出输出月份第一天为星期几的算法:算出输出月份第一天为星
文档仅供参考
期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直
到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换
行,即可完整的输出该月的日历。
4.查询年份必须为四位有效数字,否则不予显示。
程序源代码:
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.FlowLayout;
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.ItemEvent;
importjava.sql.Date;
importjava.text.DateFormat;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.awt.*;
importjava.awt.event.*;
importjava.text.*;
importjava.time.Clock;
importjava.util.*;
文档仅供参考
importjavax.swing.*;
importjavax.swing.table.*;
importjavax,swing.*;
importjavax.swing.table.DefaultTableModel;
publicclasswannianliextendsJFrameimplementsActionListener{
privateCalendarcal=Calendar.getlnstanceO;
privateString[]str={“星期一","星期二",“星期三","星期四"
星期五","星期六","星期日"};
privateDefaultTableModeldtm=newDefaultTableModel(nuII,str);
privateJTabletable=newJTable(dtm);〃装日期的表格
privateJScrollPanesp=newJScrollPane(table);
privateJButtonbLastYear=newJButton("上一年");
privateJButtonbNextYear=newJButton("下一年");
privateJButtonbLastMonth=newJButton("上月");
privateJButtonbNextMonth=newJButton("下月");
privateJTextFieldYear=newJTextField(4);//jtfYear年份显示和输
入文本
privateJLabeljla=newJLabel("年");
privateJTextFieldmonth=newJTextField(4);
privateJLabeljlal=newJLabel("月");
privateJTextFieldjtfMonth=newJTextField(2);//jtfMonth月份显
示文本框
文档仅供参考
privateJComboBoxcomb;
privateJPanelpl=newJPanel();〃装入控制日期按钮的模块
privateJPanelp2=newJPanel();
privateJPanelp3=newJPanel(newGridLayout(2,l));
privateJPanelp4=newJPanel();
privateJPanelp5=newJPanel();
privateJLabel1=newJLabel("文本框中可直接键入要查找的年
份,以提高查询效率)
privateJLabelIt=newJLabel();
privateJLabelcom=newJLabel("请选择月份:");
privateintlastTime;
private
wannianli(){
super("万年历)//框架命名
this.setDefaultCloseOperation(JFrame.EX/7LON_CLOSE);〃窗I1关
闭函数
table.setGridColor(Color.G/MK);//星期之间的网格线是灰色的
table.setColumnSelectionAllowed(true);
table.setSelectionBackground(Color.HLACK);〃当选定某■天时这一天
背景黑色
table.setSelectionForeground(Color.GREEN);〃选定的Fl期字体是绿色
的
文档仅供参考
table.setBackground(newColor(184,207,229));〃日期显示表格颜色浅
蓝色
table.setFont(newFont("黑体”,Font.BQLQ,24));〃日期数字字体格式
table.setRowHeight(30);〃表格的高度
Year.addActionListener(this);//可输入年份的文本框
//month.addActionListener(this);//可输入年份的文本框〃为各个
按钮添加监听函数
bLastYear.addActionListener(this);
bNextYear.addActionListener(this);
bLastMonth.addActionListener(this);
bNextMonth.addActionListener(this);〃将按钮添加到
String[]str={"l","2","3","4","5","6","7","8","9","10","11","12"};
comb=newJComboBox(str);
pl.add(bLastYear);
pl.add(Year);//年份输入文本框
pl.add(jla);
pl.add(month);//年份输入文本框
pl.add(jlal);
pl.add(bNextYear);
p1.add(bLastMonth);
文档仅供参考
pl.add(jtfMonth);
pl.add(bNextMonth);
pl.add(com);
pl.add(comb);
p2.setLayout(newFlowLayout());
p2.add(p4,BorderLayout.E4S7);
p2.add(sp,BorderLayout.CENTER);
p2.add(p5,BorderLayout.WEST);
p3.add(l);
p3.add(lt);
this.add(p3,BorderLayout.SOUTT/);
this.add(p2,BorderLayout.CENTER);
this.add(pl,BorderLayout.NORTH);
String[]strDate=DateFormat.ge/£)a,e/〃s/4〃ce().format(new
java.util.Date()).split("-");
cal.set(Integer.parse/痴(strDate[0]),Integer.parse/痴(strDate[1])-1,0);
showCaIendar(Integer.parse/m(strDate[0]),
Integer.parse历,(strDate[l]),cal);
jtfMonth.setEditable(false);//设置月份的文本框为不可编辑
Year.setText(strDate[0]);
month.setText(strDate[1]);
文档仅供参考
comb.setToolTipText(strDate[1]);
comb.addItemListener(newItemListener(){
publicvoiditemStateChanged(ItemEvente){
jtfMonth.setText((String)comb.getSelectedItem());
month.setText((String)comb.getSelectedItem());
intm,y;
try//控制输入的年份正确,异常控制
(
if(Year.getText().length()!=4)
{thrownewNumberFormatException();
)
y=Integer.pa%e/〃《Year.getText());
m=Integer.parse/〃/(jtfMonth.getText());
)
catch(NumberFormatExceptionex)
(
//JOptionPane.showMessageDialog(this,”请输入4
位0-9的数字!“年份有误”,JOptionPane.ERROR_MESSAGE);
return;
)
for(inti=0;i<lastTime+1;i++)
文档仅供参考
dtm.removeRow(O);
)
cal.set(y,m-1,0);
showCalendar(y,m,cal);
)
});
jtfMonth.setText("1");
month.setText("1");
this.setBounds(200,200,700,320);
this.setResizable(false);
this.setVisible(true);
)
publicstaticvoidmain(String[]args)
(
newwannianli();
}
publicvoidshowCalendar(intlocalYear,intlocalMonth,Calendarcld)
(
intDays=getDaysOfMonth(localYear,localMonth)+
cld.get(Calendar.OALOFLW£EK)-2;
Object[]ai=newObject[7];
lastTime=0;
文档仅供参考
for(inti=cld.g)et(Ca\end,ir.DAY_OF_WEEK)-1;i<=Days;i++)
(
ai[i%7]=String.ua/〃eCy(i-(cld.get(Calendar.WEE*-
2));
if(i%7==6)
(
dtm.addRow(ai);
ai=newObject[7];
lastTime++;
}
}
dtm.addRow(ai);
)
publicintgetDaysOfMonth(intyear,intMonth)〃显示所选月份的
天数
(
if(Month==1||Month==3||Month==5||Month==7||Month
==8||Month==1()||Month==12)
return31;
)
文档仅供参考
if(Month==4||Month==6||Month==9||Month==11)
(
return30;
}
if(year%4==0&&year%100!=0||year%400==0)〃闰年
(
return29;
)
else
(
return28;
}
)
publicvoidactionPerformed(ActionEvente)
(
if(e.getSource()==Year||e.getSource()==bLastYear||
e.getSource()==bNextYear||e.getSource()==bLastMonth||e.getSource()
==bNextMonth)
(
intm,y;
try//控制输入的年份正确,异常控制
文档仅供参考
if(Year.getText().length()!=4)
{thrownewNumberFormatException();
)
y=Integer.parse历/(Year.getText。);
m=Integer.parse/痴(jtfMonth.getText。);
}catch(NumberFormatExceptionex)
(
JOptionPane.s〃owA/essage£)h/og(this,”请输入4位0-9
的数字!"年份有误",JOptionPane.ERROR_MESSAGE);
return;
)
for(inti=0;i<lastTime+1;i++)
(
dtm.removeRow(O);
)
if(e.getSource()==bLastYear)
(
Year.setText(String.vtzZM^O/(—y));
)
if(e.getSource()==bNextYear)
Year.setText(String.va/“e(2A++y));
文档仅供参考
)
if(e.getSource()==bLastMonth)
(
if(m==1)
(
Year.setText(String.va/M^Cy(—y));
m=12;
jtfMonth.setText(String.v6r/weCy(m));
)
else
(
jtfMonth.setText(String.V6zZ«^(?/(—m));
)
)
if(e.getSource()==bNextMonth)
(
if(m==12)
(
Year.setText(String.va/〃eQ/(++y));
m=1;
jtfMonth.setText(String.va/«eC>Xin));
}
文档仅供参考
else
(
jtfMonth.setText(String.v«/«^(9/(++m));
)
)
cal.set(y,m-1,0);
showCalendar(y,m,cal);
month.setText(String.valueOfim)),,
〃comb.setToolTipText(String.valueOf(m));
)
)
五、软件测试
文档仅供参考
图1界面图
巴,万年历I=I,
|年|月|下一年坛
上一年J|2015|211|2下月清选择月份:2▼
星期一星期二星期三星期四星期五星期六星期日
1
2345678
9101112131415
16171819202122
232425262728
文本框中可直接键入1任查找的年份以提高查询效率
图2界面图下拉选择2月份
六、课程设计总结
本次Java课程设计我们这组做的课题是万年历,刚开始拿到题目我
们组员都不知如何下手,经过小组成员一起查找资料,而且开会讨论,
我们确定了设计的设计目标以及具体实现方式,包括如何将Java的思想
运用到实际系统的详细设计之中。
实验过程中,首先要将系统要实现的功能分为几大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024届新疆昌吉市第九中学高三下学期4月考(数学试题)试卷
- 2024年北海客运资格证题库
- 2024年自贡货运从业资格证考试题
- 3#楼施工组织设计
- 2024年陕西驾考客运资格证考试
- 2024年泰安资格证客运题库
- 2024年芜湖客运从业资格证理论考试答案
- 江苏省徐州一中、如皋中学、宿迁中学2025届生物高二上期末质量跟踪监视模拟试题含解析
- 2025届山西省吕梁育星中学数学高二上期末统考模拟试题含解析
- 黑龙江省大庆市让胡路区铁人中学2025届高二数学第一学期期末联考模拟试题含解析
- 2024年江苏省苏州昆山市人社局编外招聘6人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 医德医风培训课件图文
- 新P90用百分数解决问题(例4)市公开课一等奖省赛课微课金奖课件
- 2024年初中升学考试地理专题复习(含习题)09土地资源
- 《青春飞扬》初中 心理健康教育教学课件
- 中国网络媒体的基本格局和态势
- 产品设计灯具设计说明
- 《动物在生物圈中的作用》公开课课件
- 剪映课件pptx-2024鲜版
- 第三单元 传统工艺制作:08 动画手翻书 教学设计苏科版一年级上册小学劳动
- 第9章 输血不良反应课件
评论
0/150
提交评论