Java万年历课程设计报告
- 格式:doc
- 大小:134.50 KB
- 文档页数:11
杭州师范大学钱江学院课程设计
题目万年历
学院钱江学院
专业信电分院计算机科学与技术
班级计算机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 ++;
}