java万年历课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java万年历课程设
计报告
西安科技大学
程序设计综合实训课程设计报告
题目:万年历
班级:
学号:
姓名:
21 12月
目录
1 绪论 (1)
1.1选题目的及意义 (1)
1.2 系统概述 (1)
1.3 人员组成及分工 (1)
2 需求分析 (1)
3 总体设计 (1)
4 详细设计 (1)
5 系统实现 (2)
5.1 开发环境 (3)
5.2 关键技术 (3)
6.运行结果 (6)
7.软件测试 (7)
8.总结 (7)
9 参考文献 (8)
1.绪论
1.1选题目的及意义
选题目的:本次课程设计为课本后设计题目任选一题进行设计。思考一段时间后,我们组决定做一个万年历的设计。主要考虑到以前时间少课程内容多,JAVA课程基础内容掌握并不是很抓实,而对于设计一个万年历程序,由于其功能简单设计也相对较易,对于我们组每个人的学习情况比较合适,而且经过设计这样的一个日历小组件,也能使自己对JAVA的一些基础知识掌握的更加牢固。
1.2 系统概述
随着电子技术的不断发展,人们的不断创新,万年历已经不再局限于书本形式,而是以电脑软件或者电子产品的形式出现。让其更加便捷。在学习了JAVA课程后,将以JAVA形式编译出一个简易的万年历。
1.3 人员组成及分工
付磊:负责搜集查找资料
王杜超:调试程序
两人共同负责程序的编写与修改
2.需求分析
本程序的要求为:1.使用图形用户界面;
2.本程序能够实现日期与星期的查询。
3.能够添加或者删除日志
3.总体设计
(1)能够经过图形界面显示日历。
(2)能以月历形式显示日期与星期。
(3)支持用户自己输入年份,能够经过上一年,下一年等按钮来选择年份和月份。
(4)能够添加或者删除而且点击对应日期显示日志。
4.详细设计
1. 总天数的算法:首先用if语句判断定义年到输入年之间
每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份而且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。
2. 输出月份第一天为星期几的算法:使总天数除以7取余得
几既为星期几,若是0,则为星期日。
3. 算出输出月份第一天为星期几的算法:算出输出月份第
一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。
4. 查询年份必须为四位有效数字,否则不予显示。
5.显示系统时间。
6.流程图
流程图
5.系统实现
5.1 开发环境
myeclipse-8.5.0-win32
5.2 关键技术
(1)界面的绘制与显示
public class wannianli extends JFrame implements ActionListener, MouseListener
{
private Calendar cld = Calendar.getInstance();
private String [] astr = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"};
private DefaultTableModel dtm = new DefaultTableModel(null,astr); private JTable table = new JTable(dtm); //装日期的表格private JScrollPane sp = new JScrollPane(table);
private JButton bLastYear = new JButton("上一年");
private JButton bNextYear = new JButton("下一年");
private JButton bLastMonth = new JButton("上月");
private JButton bNextMonth = new JButton("下月");
private JTextField jtfYear = new JTextField(5);//jtfYear年份显示和