java课程设计策画日历记事本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书
课程: Java程序设计
院系:计算机科学学院
专业班级:计算机科学与技术(2)班
组员:张少华、张天阳
2010年6月 26 日
《Java程序设计》课程设计
——日历记事本
我们开发了一个实现有日历标记的记事本软件,日历记事本面板由日历和和记事本两部分组成。日历部分可以调节年份,月份,日期,星期。记事本可以实行查看,保存,删除等操作,并且每一步操作都有相应提示。本软件是一个实用性很强,简洁,方便的功能软件。
引言
Java是一种纯面向对象的、网络编程首选的语言。Java技术作为软件开的一种革命性技术,已被列为当今世界信息技术的主流之一。为了适应时代潮流,我们应该加强对Java的学习,更好的掌握这门课程。为此,我们成了一个课程小组,经过小组成的商讨之后,我们决定以“日历记事本”为设题材,借此巩固加深我们对Java 的了解。
本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但在此程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。
1、设计的目的与要求;
(1)为用户提供一个简便的日历记事本;
(2)对java技术的进一步了解和简单的运用;
(3)初步的接触软件工程;
2.设计目的与任务
本课程设计所要求达到的目的和任务:通过Java程序设计的一些重要理论基础来实现“日历记事本”的“日历”和“记事本”的双重功能。并通过此次课程设计的训练,使学生巩固和加深对Java这门课程的理解,通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。通过这次课程设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局观念。
3.设计方案
3.1 总体设计
(1)问题定
义:创建日历记事本,实现对某日期的事情进行记录等功能。
(2)问题分析:通过对“日历记事本”这一题材的分析,我需要四个类来实现其“日历”和“记事本”这俩大功能。通过主类CalendPad创建主窗口,再用余下Year、Month、NotePad 类来控制日期的变化和实现记事本的功能。
(3)研究意义:通过本次课程设计,我们掌握了Java语言的基本运用,提高了理论结合实际的能力。
3.2设计要求
(1)界面的左侧是日历。该日历可以按年前后翻动,当鼠标单击“上一年”按钮时,当前日历的年份将减一;当鼠标左键单击“下年”按钮,当前日历的年份将加一。
(2)也可以在某年内按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份将减一;当鼠标左键单击“下月” 当前日历表的月份将加一。
(3)使用鼠标左键在要选择的日期上单击,如有记事内容,程序将弹出对话框提示该日有记事内容,提示用户是否用记事本显示该内容。
(4)选择具体日期后,可以将记事本的内容保存起来,形成一个日志。
3.3系统的主要功能
(1)可以进行日期查询;
(2)可以方便地在任何日期记载有关内容以及查看某个日期记载的内容。
3.4系统功能结构图
(1)CalendarPad类:负责创建日历记事本主窗口。该文件含有main方法,程序从该类开始执行,实现代码中的方法。
(2)Year类:负责创建管理年份的对象
(3)Month类:负责创建管理月份的对象。
(4)NotePad类:负责创建记事本。
图1 系统功能结构图3.5运行功能(截图)
图2 日历记事本界面
图3 保存记事
图4 删除记事
图5 输入记事
图6 修改年份
图7 查看记事
4.结束语
从本次课程设计的完成中,我们了解了课程设计的要求与方法,学会了程序设计基本步骤。进一步提高了团队合作的意识。同时,使我们感觉到,一个优秀的程序,不仅仅是可以运行的,更应该具较高的效率,合理的结构,良好的可读性和一定的容错性。同时,我们认为一个程序的成功完成需要严谨的务实态度,和团队的团结协作的精神.团结协作和认真的态度是我们课程设计取得成功的一项非常重要的保证。但在完成过程中也发现了不足,由于知识的限制,没有设置日记查看密码功能.以后的学习中我们将虚心向学.
5.附录A:源程序
import java.util.Calendar;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Hashtable;
public class CalendarPad extends JFrame implements MouseListener
{
int year,month,day;
Hashtable hashtable;
File file;
JTextField showDay[];
JLabel title[];
Calendar 日历;
int 星期几;
NotePad notepad=null;
Month 负责改变月;
Year 负责改变年;
String 星期[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
JPanel leftPanel,rightPanel;
public CalendarPad(int year,int month,int day)
{
leftPanel=new JPanel();
JPanel leftCenter=new JPanel();
JPanel leftNorth=new JPanel();
leftCenter.setLayout(new GridLayout(7,7));
rightPanel=new JPanel();
this.year=year;
this.month=month;
this.day=day;
负责改变年=new Year(this);
负责改变年.setYear(year);
负责改变月=new Month(this);
负责改变月.setMonth(month);
title=new JLabel[7];
showDay=new JTextField[42];
for(int j=0;j<7;j++)
{
title[j]=new JLabel();
title[j].setText(星期[j]);
title[j].setBorder(BorderFactory.createRaisedBevelBorder());
leftCenter.add(title[j]);
}