Java万年历课程设计报告

  • 格式:doc
  • 大小:134.50 KB
  • 文档页数:11

下载文档原格式

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

杭州师范大学钱江学院课程设计

题目万年历

学院钱江学院

专业信电分院计算机科学与技术

班级计算机1101

姓名崔伊平

指导教师王李冬

2013 年9 月20 日

目录

一.概述 (1)

二.总体方案设计 (2)

三.详细设计 (3)

四.最终输出 (7)

五.课程设计总结 (8)

参考文献 (9)

一、概述

1.课程设计的目的

通过显示年日历程序的设计,培养学生综合利用java语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力。

通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《java语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了java语言的好处和其可用性!

2.课程设计的要求

2.1

输入查询的年份与月份,单击“更新”按扭,则可得到相应的日历。本实验是对图形用户界面,布局管理器的综合运用。要掌握APPLET容器中添加组件的方法,理解JAVA 的事件处理机制,编写独立的运行窗口。

2.2 输出形式

使用独立的运行窗口进行显示。界面主要由两部分组成——查询输入部分和结果显示部分。查询输入部分包括两个文本域,一个用于输入年份:一个用于选择月份:一个更新按扭,用来触发查询事件。

二总体方案设计

1.程序开发环境

a.开发环境:eclipse

b.系统环境:windows xp/7

c.设计工具:Microsoft office 2003

2.整体流程图

图1 流程图

3.功能模块图

图2 结构图

三.详细设计

3.1导入的包

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

3.2Applet的初始化

public void init(){

Label L1 = new Label("输入年份");

Label L2 = new Label("输入月份");

TextField F1 = new TextField(5);

TextField F2 = new TextField(5);

Button B1 = new Button("查询");

int arr = new int[12];

add(L1);

add(F1);

add(L2);

add(F2);

add(B1);

Date date = new Date();

F1.setText(String.valueOf(date.getYear() + 1900));

F2.setText(String.valueOf(date.getMonth() + 1));

B1.addActionListener(this);

arr[0] = arr[2] = arr[4] = arr[6] = arr[7] = arr[9] = arr[11] = 31; arr[3] = arr[5] = arr[8] = arr[10] = 30;

date.setDate(1);//设置每月第一天

var = date.getDay();//得到每月最后一天

}

3.3监听器

public void actionPerformed(ActionEvent e) {

int x = Integer.parseInt(F1.getText()), i = Integer.parseInt(F2

.getText()) - 1, s = 0;

if(F1.getText().isEmpty()||F2.getText().isEmpty())

{

JOptionPane.showMessageDialog(null,"输入不能为空!");

}

Date date = new Date();

date.setYear(x - 1900);

date.setMonth(i);

date.setDate(1);

var = date.getDay();

repaint();

}

3.3paint()

public void paint(Graphics g) {

int xpos, ypos;

//arr[0] = arr[2] = arr[4] = arr[6] = arr[7] = arr[9] = arr[11] = 31; //arr[3] = arr[5] = arr[8] = arr[10] = 30;

int x = Integer.parseInt(F1.getText()), i = Integer.parseInt(F2

.getText()) - 1;

if ((x % 4 == 0 && x % 100 != 0) || (x % 400 == 0))

arr[1] = 29;

else

arr[1] = 28;

g.drawString("星期一", 50, 50);

g.drawString("星期二", 100, 50);

g.drawString("星期三", 150, 50);

g.drawString("星期四", 200, 50);

g.drawString("星期五", 250, 50);

g.drawString("星期六", 300, 50);

g.drawString("星期日", 350, 50);

ARR = new String[arr[i]];

int j = 0, k = 1;

while (k <= arr[i]) {

ARR[j] = String.valueOf(k);//获得每个月日期

k ++;

j ++;

}