Java课程设计-万年历

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

河北科技大学

课程设计报告

学生姓名:学号:

专业班级:

课程名称:Java程序设计课程设计

学年学期:2 014 —2 015 学年第2 学期指导教师:**

2 0 年月

课程设计成绩评定表

目录

1.课程设计目的 (1)

2.需求分析 (1)

3.总体设计 (1)

4.详细设计 (1)

5.软件测试 (10)

6.课程设计总结 (11)

一、课程设计目的

(1)熟练使用java语言编写程序,解决实际问题。

(2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

(3)学会自己调试程序的方法并掌握一定的技巧。

二、需求分析

本程序的要求为:

1.使用图形用户界面;

2.本程序能够实现日期与星期的查询。

三、总体设计

(1)可以通过图形界面显示日历。

(2)能以月历形式显示日期与星期。

(3)支持用户自己输入年份,可以通过上一年,下一年等按钮来选择年份和月份。

四、详细设计

1.总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。

2.输出月份第一天为星期几的算法:使总天数除以7取余得几既为星期几,若是0,则为星期日。

3.算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。

4.查询年份必须为四位有效数字,否则不予显示。

程序源代码:

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.sql.Date;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.awt.*;

import java.awt.event.*;

import java.text.*;

import java.time.Clock;

import java.util.*;

import javax.swing.*;

import javax.swing.table.*;

import javax.swing.*;

import javax.swing.table.DefaultTableModel;

public class wannianli extends JFrame implements ActionListener{

private Calendar cal= Calendar.getInstance();

private String [] str = {"星期一", "星期二", "星期三", "星期四", "

星期五", "星期六", "星期日"};

private DefaultTableModel dtm = new DefaultTableModel(null,str);

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 Year = new JTextField(4);//jtfYear年份显示和输入文本

private JLabel jla=new JLabel("年");

private JTextField month = new JTextField(4);

private JLabel jla1=new JLabel("月");

private JTextField jtfMonth = new JTextField(2);//jtfMonth月份显示文本框

private JComboBox comb;

private JPanel p1 = new JPanel();//装入控制日期按钮的模块

private JPanel p2 = new JPanel();

private JPanel p3 = new JPanel(new GridLayout(2,1));

private JPanel p4 = new JPanel();

private JPanel p5 = new JPanel();

private JLabel l = new JLabel("文本框中可直接键入要查找的年份,以提高查询效率");

private JLabel lt = new JLabel();

private JLabel com = new JLabel("请选择月份:");

private int lastTime;

private

wannianli(){

super("万年历"); //框架命名

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口关闭函数

table.setGridColor(Color.GRAY);//星期之间的网格线是灰色的table.setColumnSelectionAllowed(true);

table.setSelectionBackground(Color.BLACK);//当选定某一天时这一天背景黑色

table.setSelectionForeground(Color.GREEN);//选定的日期字体是绿色的

相关文档
最新文档