java-万年历课程设计报告

  • 格式:docx
  • 大小:205.92 KB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安科技大学

程序设计综合实训课程设计报告

题目:万年历

班级:

学号:

姓名:

年12 月

2103

目录

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

年份显示和输 入文本框

private JTextField

jtfMonth

= new JTextField(2); //jtfMonth

月份显示文

本框

private JPanel p1 = new JPanel();

// 装入控制日期按钮的模块

private JPanel p2 = new JPanel();

private

JPanel

p3 = new JPanel( new BorderLayout()); private JPanel p4 = new JPanel(

new GridLayout(2,1));

private JPanel

p5 = new JPanel(

new

BorderLayout()); private JButton

bAdd = new JButton( " 保存日志 " ); private JButton

bDel = new JButton(

" 删除日志 " );

背景颜色,字体的显示

table .setGridColor(Color. GRAY);

table .setColumnSelectionAllowed( table .setSelectionBackground(Color.

景黑色

table .setSelectionForeground(Color. GREEN); // 选定的日期字体是绿色的 table .setBackground( new Color(184,207,229)); // 日期显示表格颜色浅蓝

// 星期之间的网格线是灰色的 true );

BLACK); // 当选定某一天时这一

天背