昆明理工大学程序设计与应用设计报告
- 格式:doc
- 大小:296.50 KB
- 文档页数:49
昆明理工大学
程序设计与应用设计报告
题目基于JAVA的日历记事本设计
专 业 自动化
班 级 自动化132
学 号 201310401250
学生姓名 杨潇谊
指导教师 汤占军
设计时间 2014年6月30日-7月10日
教师评分
2014年 7 月 10 日
目 录
1.概述………………………………………………………………页码2
1.1课程设计目的………………………………………………………………页码2
1.2.课程设计内容 …………………………………………页码3
2.系统需求分析…………………………………………………………页码3
2.1系统目标……………………………………………………………………页码3
2.2主体功能……………………………………………………………………页码4
2.3开发环境……………………………………………………………………页码4
3系统的概要设计………………………………………………………………页码4
3.1系统的功能模块划分与系统流程图………………………………………页码5
4.详细设计……………………………………………………………………页码5
5.调试…………………………………………………………………………页码25
5.1调试中遇到的问题…………………………………………………………页码25
5.2系统运行…………………………………………………………………页码26
6.总结…………………………………………………………………………页码27
附录……………………………………………………………………………页码28
参考文献 ………………………………………………………………………页码
日历记事本
1 概 述
1.1 课程设计目的
1) 巩固和提高java编程技术。
2)培养掌握成学设计的基本思路和方法。
3)加强研发、调试程序的能力。
4)增强分析、解决问题的能力。
5)提高科技论文写作能力。
1.2 课程设计内容
设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。
2 系统需求分析
2.1 系统目标
1.系统界面的左侧是日历。该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前日历的年份减一;当鼠标左键单击“下年”按钮,当前日历的年份加一。 2.该日历也可以在某年内按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份减一;当鼠标左键单击“下月”按钮时,当前日历的月份加一。
3.使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。
4.用户选择具体日期后,可以将记事本的当前内容保存起来,形成日志。
2.2 主体功能
用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。 通过按按钮“上年”和“下年”对年份进行翻页。通过按按钮“上月”和“下月”对月份进行翻页。用户可以通过输入年份来查看自己的日志。
流程图如下
2.3 开发环境
Windows XP;jdk1.5.0-0-05;ultraedit开发工具
3 系统概要设计
3.1 系统的功能模块划分与系统流程图 本日历记事本共有4个java源文件。 CalendarPad.java
该java文件生成的类负责创建本日历记事本程序主窗口。该类含有main方法,程序从该类开始执行。 Year.java 该文件负责创建管理年份的对象。 Month.java 该文件负责创建管理月份对象。 NotePad.java 该文件负责创建记事本。
图1-1 类之间的关系
4详细设计.
表1 日历记事本系统主面板与日历板模块(CalendarPad.java)
类名 CalendarPad public
接口 MouseListener public
方法 CalendarPad(int,int,int)
设置日历牌(int,int)
排列号码(int,int)
main() public
public void
public void
public static void
表2 日历记事本系统年设置模块(Year.java)
类名 Year public
接口 ActionListener public
方法 setYear()
getYear()
actionPerformed(ActionEvent e) public void
public int
public void
表3 日历记事本系统月设置模块(Month.java)
类名 Month public
接口 ActionListener public
方法 setMonth()
getMonth()
actionPerformed(ActionEvent e) public void
public int
public void
表4 日历记事本系统记事本模块(NotePad.java)
类名 NotePad public
接口 ActionListener public
方法 设置信息条()
设置文本区()
获取日志内容()
保存日志()
删除日志() public void
public void
public void
public void
public void
4.3编码实现
1.日历记事本系统主面板与日历板模块(CalendarPad.java)
该模块设计主要主要包含以下成员变量:
年(year)
月(month)
日(day)
存放日期的表(Hashtable)
存放日志的文件(File)
主要方法有:
创建程序主面板的构造方法(CalendarPad)
处理ActionEvent事件的接口方法(actionPerformed)
程序开始运行的main()方法。
在具体设计过程中,首先,基本功能和组件的创建;然后,创建构造方法,这一部分包括:为各个功能创建监听事件,创建程序主面板以及日历面板.添加关闭窗口方法;第三步分为创建监听方法,实现对各个功能模块的操作,以及鼠标点击实现进入相应的功能面板;最后创建相应的main()方法。
实现编码如下:
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 星期[]={"SUN","MON","TUE","WED","THU","FRI","SAT"};
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]);
}
title[0].setForeground(Color.red);
title[6].setForeground(Color.blue);
for(int i=0;i<42;i++)
{
showDay[i]=new JTextField();
showDay[i].addMouseListener(this);
showDay[i].setEditable(false);
leftCenter.add(showDay[i]);