日历记事本课程设计报告Word下载.docx

上传人:b****6 文档编号:18131108 上传时间:2022-12-13 格式:DOCX 页数:27 大小:108.06KB
下载 相关 举报
日历记事本课程设计报告Word下载.docx_第1页
第1页 / 共27页
日历记事本课程设计报告Word下载.docx_第2页
第2页 / 共27页
日历记事本课程设计报告Word下载.docx_第3页
第3页 / 共27页
日历记事本课程设计报告Word下载.docx_第4页
第4页 / 共27页
日历记事本课程设计报告Word下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

日历记事本课程设计报告Word下载.docx

《日历记事本课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《日历记事本课程设计报告Word下载.docx(27页珍藏版)》请在冰豆网上搜索。

日历记事本课程设计报告Word下载.docx

当鼠标左键单击“下年”按钮,当前日历的年份加一。

2.该日历也可以在某年内按月前后翻动。

当鼠标左键单击“上月”按钮时,当前日历的月份减一;

当鼠标左键单击“下月”按钮时,当前日历的月份加一。

3.使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。

4.用户选择具体日期后,可以将记事本的当前内容保存起来,形成日志。

2.2主体功能

用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。

通过按按钮“上年”和“下年”对年份进行翻页。

通过按按钮“上月”和“下月”对月份进行翻页。

用户可以通过输入年份来查看自己的日志。

2.3开发环境

WindowsXP;

jdk1.5.0-0-05;

ultraedit开发工具

3系统概要设计

3.1系统的功能模块划分与系统流程图

本日历记事本共有4个java源文件。

CalendarPad.java

该java文件生成的类负责创建本日历记事本程序主窗口。

该类含有main方法,程序从该类开始执行。

Year.java

该文件负责创建管理年份的对象。

Month.java

该文件负责创建管理月份对象。

NotePad.java

该文件负责创建记事本。

CalendarPad(主类)

NotePad

Year

Month

4系统详细设计

主类CalendarPad

1.成员变量

成员变量描述

变量类型

名称

年、月、日

int

Year,month,day

保存日志的散列表

Hashtable

hashtable

存放散列表的文件

File

file

显示日期

JTextField[]

showDay

日历对象

Calendar

日历

记事本对象

notepad

负责改变月

负责改变年

2.方法

功能

备注

CalendarPad

创建程序主窗口

构造方法

设置日历牌

设置日历的年份、月份

排列号码

排列月份中的号码

mousePressed

处理MouseEvent事件

接口方法

mian

程序开始运行

记事本NotePad

1.成员变量

描述

文本输入区

JTextArea

text

保存、删除日志的按钮

Button

保存日志、删除日志

table

保存散列表的文件

记录日志的年、月、日

year,month,day

创建记事本对象

setYear

设置年份

getYear

获取年份

setMonth

设置月份

getMonth

获取月份

setDay

设置日期

getDay

获取日期

获取日志内容

保存日志

删除日志

actionPerformed

处理ActionEvent事件

年Year

表示年份的整数(负数表示公元前)

year

显示年份的文本条

JTextField

showYear

负责增减年份的按钮

JButton

明年,去年

创建“年”对象

月Month

表示月份的整数(负数表示公元前)

month

显示月份的文本条

ShowMonth

负责增减月份的按钮

上月,下月

Month

创建“月”对象

setMonth

getMonth

5测试

5.1测试方案

1.打开主界面,鼠标左键右击,查看日历界面。

2.选定一个日期写日志。

3.对日历添加、删除日志。

4.修改年份,查看一些日志。

5.2测试结果

1.打开主界面,鼠标左键点击,查看日历界面。

如图:

2.下图为选择在2012年1月5日写的日志:

3.添加、删除日志,如图:

添加日志

删除日志

4.修改年份,查看日志,如图:

6小结

经过几天的努力,基本上完成了我的java课程设计。

通过这次的课程设计,基本上将书本上的知识运用到实践上,从而进一步巩固和丰富所学知识,也让我更加深层次的认识了java及其功能的强大。

为了更好地完成这次课程设计,我做了很多准备,上网查阅资料,到图书馆翻阅书籍。

这个过程中也锻炼了我的思维分析、遇到问题及想法设法通过各种途径解决问题的能力。

从理论到实践,在整整几天的时间里,可以说,是苦大于甜,但确实学到很多东西,同时不仅巩固了以前的知识,而且学到了许多书上学不到的知识。

通过这次课程设计使我懂得了理论与实践相结合是很重要的,只有理论知识是不够的,只有把所学的理论知识和实践结合起来,从理论中得出结论,才能真正服务社会,从而提高自己的实际动手能力和独立思考能力。

通过这次课程设计,了解到了自己的不足之处,对以前的知识没有掌握到位,所以我们一定要学好理论知识,为以后的实践打下基础。

总而言之,这次课程设计我学到了很多。

参考文献

[1]耿祥义,张跃平. 

Java2实用教程(第三版)[M].北京:

清华大学出版社,2006

[2]耿祥义. 

Java课程设计(第三版)[M].北京:

清华大学出版社,2004

[3]张跃平.Java2实用教程实验指导与习题解答(第三版)[M].北京:

[4]JacquieBarker,Java面向对象编程指南,电子工业出版社,2001

附录1

源程序清单

主类CalendarPad:

CalendarPad。

Java

importjava.util.Calendar;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjava.util.Hashtable;

publicclassCalendarPadextendsJFrameimplementsMouseListener

{

intyear,month,day;

Hashtablehashtable;

Filefile;

JTextFieldshowDay[];

JLabeltitle[];

Calendar日历;

int星期几;

NotePadnotepad=null;

Month负责改变月;

Year负责改变年;

String星期[]={"

星期日"

"

星期一"

星期二"

星期三"

星期四"

星期五"

星期六"

};

JPanelleftPanel,rightPanel;

publicCalendarPad(intyear,intmonth,intday)

{

leftPanel=newJPanel();

JPanelleftCenter=newJPanel();

JPanelleftNorth=newJPanel();

leftCenter.setLayout(newGridLayout(7,7));

rightPanel=newJPanel();

this.year=year;

this.month=month;

this.day=day;

负责改变年=newYear(this);

负责改变年.setYear(year);

负责改变月=newMonth(this);

负责改变月.setMonth(month);

title=newJLabel[7];

showDay=newJTextField[42];

for(intj=0;

j<

7;

j++)

{

title[j]=newJLabel();

title[j].setText(星期[j]);

title[j].setBorder(BorderFactory.createRaisedBevelBorder());

leftCenter.add(title[j]);

}

title[0].setForeground(Color.red);

title[6].setForeground(Color.blue);

for(inti=0;

i<

42;

i++)

showDay[i]=newJTextField();

showDay[i].addMouseListener(this);

showDay[i].setEditable(false);

leftCenter.add(showDay[i]);

}

日历=Calendar.getInstance();

Boxbox=Box.createHorizontalBox();

box.add(负责改变年);

box.add(负责改变月);

leftNorth.add(box);

leftPanel.setLayout(newBorderLayout());

leftPanel.add(leftNorth,BorderLayout.NORTH);

leftPanel.add(leftCenter,BorderLayout.CENTER);

leftPanel.add(newLabel("

请在年份输入框输入所查年份(负数表示公元前),并回车确定"

),

BorderLayout.SOUTH);

leftPanel.validate();

Containercon=getContentPane();

JSplitPanesplit=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,

leftPanel,rightPanel);

con.add(split,BorderLayout.CENTER);

con.validate();

hashtable=newHashtable();

file=newFile("

日历记事本.txt"

);

if(!

file.exists())

try{

FileOutputStreamout=newFileOutputStream(file);

ObjectOutputStreamobjectOut=newObjectOutputStream(out);

objectOut.writeObject(hashtable);

objectOut.close();

out.close();

catch(IOExceptione)

notepad=newNotePad(this);

rightPanel.add(notepad);

设置日历牌(year,month);

addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

System.exit(0);

});

setVisible(true);

setBounds(100,50,524,285);

validate();

publicvoid设置日历牌(intyear,intmonth)

日历.set(year,month-1,1);

星期几=日历.get(Calendar.DAY_OF_WEEK)-1;

if(month==1||month==2||month==3||month==5||month==7

||month==8||month==10||month==12)

{排列号码(星期几,31);

elseif(month==4||month==6||month==9||month==11)

{排列号码(星期几,30);

elseif(month==2)

{if((year%4==0&

&

year%100!

=0)||(year%400==0))

{排列号码(星期几,29);

else

{排列号码(星期几,28);

publicvoid排列号码(int星期几,int月天数)

for(inti=星期几,n=1;

星期几+月天数;

i++)

{showDay[i].setText("

"

+n);

if(n==day)

{showDay[i].setForeground(Color.green);

showDay[i].setFont(newFont("

TimesRoman"

Font.BOLD,20));

{showDay[i].setFont(newFont("

Font.BOLD,12));

showDay[i].setForeground(Color.black);

if(i%7==6)

{showDay[i].setForeground(Color.blue);

if(i%7==0)

{showDay[i].setForeground(Color.red);

n++;

星期几;

{showDay[i].setText("

for(inti=星期几+月天数;

publicintgetYear()

{returnyear;

publicvoidsetYear(inty)

{year=y;

notepad.setYear(year);

publicintgetMonth()

{returnmonth;

publicvoidsetMonth(intm)

{month=m;

notepad.setMonth(month);

publicintgetDay()

{returnday;

publicvoidsetDay(intd)

{day=d;

notepad.setDay(day);

publicHashtablegetHashtable()

{returnhashtable;

publicFilegetFile()

{returnfile;

publicvoidmousePressed(MouseEvente)

{JTextFieldsource=(JTextField)e.getSource();

try{

day=Integer.parseInt(source.getText());

notepad.setDay(day);

notepad.设置信息条(year,month,day);

notepad.设置文本区(null);

notepad.获取日志内容(year,month,day);

catch(Exceptionee)

publicvoidmouseClicked(MouseEvente)

publicvoidmouseReleased(MouseEvente)

publicvoidmouseEntered(MouseEvente)

publicvoidmouseExited(MouseEvente)

publicstaticvoidmain(Stringargs[])

{Calendarcalendar=Calendar.getInstance();

inty=calendar.get(Calendar.YEAR);

intm=calendar.get(Calendar.MONTH)+1;

intd=calendar.get(Calendar.DAY_OF_MONTH);

newCalendarPad(y,m,d);

}

记事本NotePad:

importjava.util.*;

importjavax.swing.event.*;

publicclassNotePadextendsJPanelimplementsActionListener

{JTextAreatext;

JButton保存日志,删除日志;

Hashtabletable;

JLabel信息条;

CalendarPadcalendar;

publicNotePad(CalendarPadcalendar)

this.calendar=calendar;

year=calendar.getYear();

month=calendar.getMonth();

day=calendar.getDay();

;

table=calendar.getHashtable();

file=calendar.getFile();

信息条=newJLabel("

+year+"

年"

+month+"

月"

+day+"

日"

JLabel.CENTER);

信息条.setFont(newFont("

Font.BOLD,16));

信息条.setForeground(Color.blue);

text=newJTextArea(10,10);

保存日志=newJButton("

保存日志"

);

删除日志=newJButton("

删除日志"

保存日志.addActionListener(this);

删除日志.addActionListener(this);

setLayout(newBorderLayout());

JPanelpSouth=newJPanel();

add(信息条,BorderLayout.NORTH);

pSouth.add(保存日志);

pSouth.add(删除日志);

add(pSouth,BorderLayout.SOUTH);

add(newJScrollPane(text),BorderLayout.CENTER);

publicvoidactionPerformed(ActionEvente)

if(e.getSource()==保存日志)

{保存日志(year,month,day);

elseif(e.getSource()==删除日志)

{删除日志(year,month,day);

publicvoidsetYear(intyear)

{this.year=year;

publicvoidsetMonth(intmonth)

{this.month=month;

{returnmonth;

publi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1