java课程设计方案.docx

上传人:b****0 文档编号:17382615 上传时间:2023-07-24 格式:DOCX 页数:59 大小:5.69MB
下载 相关 举报
java课程设计方案.docx_第1页
第1页 / 共59页
java课程设计方案.docx_第2页
第2页 / 共59页
java课程设计方案.docx_第3页
第3页 / 共59页
java课程设计方案.docx_第4页
第4页 / 共59页
java课程设计方案.docx_第5页
第5页 / 共59页
java课程设计方案.docx_第6页
第6页 / 共59页
java课程设计方案.docx_第7页
第7页 / 共59页
java课程设计方案.docx_第8页
第8页 / 共59页
java课程设计方案.docx_第9页
第9页 / 共59页
java课程设计方案.docx_第10页
第10页 / 共59页
java课程设计方案.docx_第11页
第11页 / 共59页
java课程设计方案.docx_第12页
第12页 / 共59页
java课程设计方案.docx_第13页
第13页 / 共59页
java课程设计方案.docx_第14页
第14页 / 共59页
java课程设计方案.docx_第15页
第15页 / 共59页
java课程设计方案.docx_第16页
第16页 / 共59页
java课程设计方案.docx_第17页
第17页 / 共59页
java课程设计方案.docx_第18页
第18页 / 共59页
java课程设计方案.docx_第19页
第19页 / 共59页
java课程设计方案.docx_第20页
第20页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java课程设计方案.docx

《java课程设计方案.docx》由会员分享,可在线阅读,更多相关《java课程设计方案.docx(59页珍藏版)》请在冰点文库上搜索。

java课程设计方案.docx

java课程设计方案

java课程设计方案

1.设计目的与任务

本课程设计所要求达到的目的和任务:

通过Java程序设计的一些重要理论基础来实现“写字留痕”的“日历”和“记事本”的双重功能。

并通过此次课程设计的训练,使学生巩固和加深对Java这门课程的理解,通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。

通过这次课程设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局观念。

设计方案

3.1总体设计

(1)问题定义:

创建写字留痕,实现对某日期的事情进行记录这主要功能,并能显示设置的图片,增加美观。

(2)问题分析:

通过对“写字留痕”这一题材的分析,我需要四个类来实现其“日历”和“记事本”这两大功能。

通过主类N2创建动写字留痕软件的主窗口,该类含有main方法,程序从该类开始执行。

再用余下YearMonth、MonthPane类来显示并改变日期和实现记事本的功能。

而ImagePanel类用来显示图片,Music类用来实现音乐的播放控制。

(3)研究意义:

通过本次课程设计,我们掌握了Java语言的基本运用,提高了理论结合实际的能力。

3.2设计要求

(1)日记本使用Java语言开发设计。

课程的基本功能包括万年历、记事本和辅助功能三个部分。

(2)万年历部分由微调器确定年月,由一组文本框显示日历。

年月可选择数据符合逻辑,默认为当前日期。

(3)月历显示应该符合查看习惯,如星期六和星期日分别用不同颜色表示,当日可用特别的字号和颜色

(4)记事本区,记事本内容按年月日记录且保存。

(5)微调器应该进行事件设置,以及即时地显示该年月的月历;日期文本框可监听鼠标事件,当单击任何一个日期时,若该日有记事内容,则在日记本中显示该日期的记录文字;若该日无记录,记事区保持空白。

(6)日记本应该是开放的,内容可按日期增减,保存应即时,删除需谨慎删除记录时,应进行对话框询问确定。

(7)辅助功能包含了日记的导入导出。

“导入”可以将其他日记文件导入合并到当前“写字留痕”的日记本中;“导出”可将“写字留痕”的所有记录内容按日期为序导出到一个文本文件中。

为安全起见导出时需加以安全确认,要求输入正确设定的密码后才能导出。

(8)系统界面外观和布局,可个性化设计,总体原则是“界面简洁,操作便捷”。

3.3系统的主要功能

(1)可以对个人日志进行保存、删除、导入和导出;

(2)可以方便地在任何日期记载个人日志以及查看某个日期记载的日志;

(3)可以显示当前日期。

3.4开发环境

WindowsXP;jdk1.5.0_16;EditPlus编辑器。

 

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

3.5.1系统的功能模块划分

本日历记事本共有6个类。

ClassNoteBook

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

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

此外,该主类负责创建日记文本、负责创建创建左侧面板、负责创建右侧面板、负责在文本框上弹出快捷菜单。

ClassDateTime

该类获得系统当前的日期,包括年月日。

ClassYearMonth

该类负责创建管理年份和月份的对象。

ClassMonthPane

该类负责生成日历创建日历。

ClassImagePanel

该类负责出现图片的轮换。

ClassMusic

该类负责出现背景音乐以及控制音乐的播放。

模块图如图3-1所示.

 

图3-1

 

3.5.2万年历模块流程图

万年历流程图如图3-2所示.

万年历

按钮选择日期

正确输入错误输入

改变当天日期

 

当天是否有日记?

 

有无

更改记事本显示

图3-2

3.5.3日记本模块流程图

日记本流程图如图3-3所示.

 

 

各个类说明

3.5.4主类NoteBook

1.成员变量

表3-1

成员变量描述变量类型名称

年、月、日intnian,yue,ri,year,month,day

日历对象Calendarc,d

时、分、秒inthour,minute,second

文本框JTextAreat

记事本面板JPaneltext

微调器YearMonthdate

月份面板MonthPanemp

按钮JButtonbclear,daoru,bsave,daochu

gnew,gopen,gsave,gcopy,gcut,gpaste,ghelp

标签JLabeltime1,time2

菜单栏JMenuBarmnb

菜单JMenufile,edit,config,help,color

菜单项JMenuItemNew,open,save,exit,copy,cut,paste,selectall,fc,bc,dc,about;

颜色Colorr

弹出式菜单JPopupMenutc,tc1

工具栏JToolBargj

保存日志的散列表Hashtabletable

保存散列表的文件Filef

2.方法

表3-2

名称功能备注

NoteBook创建窗口主程序构造方法

init主界面上的按钮初始化

menuinit菜单项初始化

gjinit工具栏对象初始化

tcinit弹出式菜单对象初始化

addEvent年月微调按钮事件

menuaddEvent菜单项进行监听

gjaddEvent工具栏进行监听

tcaddEvent弹出式菜单进行监听

main程序开始运行

gettime得到当前的时间

run小时钟的线程

initFile新建文件

actionLIstener设置事件监听方法

mousePressed鼠标事件监听

mouseClicked鼠标事件监听

mouseEntered鼠标事件监听

mouseExited鼠标事件监听

mouseReleased鼠标事件监听

export导出函数

save保存方法

getDaterKey导出时的key值

refreshContent刷新

noteBookRefresh刷新

stateChanged监听微调器

delete删除方法

openfile打开文件并读入

3.6.2图片轮换ImagePanel类

1.成员变量

表3-13

描述变量类型名称

标签JLabell

图片数组Iconii[]Icon[5]

计数器intcount

2.方法

表3-14

名称功能备注

ImagePanel实现图片轮换构造方法

showInit变量初始化

run线程启动方法

3.6.3月份显示MonthPane类

1.成员变量

表3-7

描述变量类型名称

单行文本框JTextFieldshowDay[]

第一天Intfirst,days

一周的天数String[]week

标签JLabel[]title

年,月,日Intyear,month,day;

2.方法

表3-8

名称功能备注

MonthPane产生月份构造方法

arrangeNum将不同的日期设置不同的颜色

3.6.4年月显示YearMonth类

1.成员变量

表3-9

描述变量类型名称

年,月intyear,month

标签JLabely1,m1

年份微调器JSpinnershowYear

月份微调器JSpinnershowMonth

模版SpinnerNumberModelyearModel,monthModel

2.方法

表3-10

名称功能备注

YearMonth年月微调器构造方法

3.6.5背景音乐Music类

1.成员变量

表3-11

描述变量类型名称

播放控制按钮JButtonstart,stop

组合框JComboBoxmusic

字符串Strings

MP3文件的名字String[]musicname

播放器对象MediaPlayerplay

2.方法

表3-12

名称功能备注

Music添加背景音乐构造方法

Musicinit初始化

musicaddEvent添加监听的方法

itemStateChanged组合框监听事件处理

actionPerformed对按钮的监听处理

3.6.6日期获取DateTime类

1.成员变量

表3-13

描述变量类型名称

日历对象Calendartoday

2.方法

表3-14

名称功能备注

DateTime产生鼠标点击的日期构造方法

getYear产生当前的年份

getMonth产生当前的月份

getDay产生当前的天

getMonday产生当前年、月的总的天数

4、各种功能截图

1、日记本界面

2、保存日志:

3、删除日志

 

4、导入日志

导入前要输入密码:

密码不正确不能导入:

成功导入:

5、导出日志

导出前要输入密码

密码不正确不能导出

密码正确可以指定文件名导出

6.图片轮换

 

 

 

 

 

 

 

7、各种工具栏、弹出式菜单、快捷方式的使用

工具栏:

剪切:

粘贴:

菜单栏:

 

 

 

弹出式菜单:

(1)右键实现:

(2)工具栏剪切:

(3)字体变化,中间键实现

 

8、组合框使用,控制音乐的播放

 

5、课程设计总结

从本次课程设计的完成中,首先我们发现了我们有很多不足的地方,最突出的是我们所学的东西太少了,根本满足不了平时编写程序的需要。

此外,我们了解了课程设计的要求与方法,学会了程序设计基本步骤也进一步提高了团队合作的意识。

同时,使我们感觉到,一个优秀的程序,不仅仅是可以运行的,更应该具较高的效率,合理的结构,良好的可读性和一定的容错性。

除此之外,我们认为一个程序的成功完成需要严谨的务实态度。

由于知识的限制,我们没有设置日记查看密码功能,但是在以后的学习中,我们将虚心向学力争编写出更有意义的程序。

 

6、个人心得体会

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,回顾起课程设计,至今我仍感慨颇多,的确,在这一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

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

在设计的过程中遇到问题,可以说得是困难重重,经验不多,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

通过课程设计之后,把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在同学的帮助下终于迎刃而解。

在此,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

 

6、附录

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjava.io.*;

importjavax.swing.border.BevelBorder;

importjava.util.*;

importjavax.media.bean.playerbean.MediaPlayer;

A

NoteBook主类

publicclassNoteBookextendsJFrameimplementsActionListener,MouseListener,ChangeListener,Runnable{

publicstaticJPanelrili,shijian,p,q,time;

JTextAreat;

YearMonthdate;

MonthPanemp;

JButtonbclear,daoru,bsave,daochu;

JMenuBarmnb;

JMenufile,edit,config,help,color;

JMenuItemNew,open,save,exit;

JMenuItemcopy,cut,paste,selectall;

JMenuItemfc,bc,dc;

JMenuItemabout;

Colorr;

JPopupMenutc,tc1;

JPaneltext,yinyue,w;

JToolBargj;

JMenuItemtcut,tcopy,tpaste,tselectall;

JMenuItemtsong,tkai,twei,tsongti,tli;

JButtongnew,gopen,gsave,gcopy,gcut,gpaste,ghelp;

JLabeltime1,time2;

Calendarc,d;

intyear;

intmonth;

intday;

inthour;

intminute;

intsecond;

intnian;

intyue;

intri;

intdays;

intfirst;

JPanelli;

Filef;

Hashtabletable;

NoteBook(){

super("写字留痕V4.0---------bywangjiaojiao");

setDefaultCloseOperation(3);

Containercc=this.getContentPane();

init();

menuinit();

gjinit();

tcinit();

menuaddEvent();

gjaddEvent();

tcaddEvent();

date=newYearMonth();

mp=newMonthPane();

text.setLayout(newBorderLayout());

this.setJMenuBar(mnb);

q.setLayout(newFlowLayout());

q.add(gj);

q.add(time);

time.setLayout(newFlowLayout());

time.add(time1);

time.add(time2);

time.setFont(newFont("",Font.BOLD,22));

text.add(q,"North");

text.add(newJScrollPane(t),"Center");

text.add(w,"South");

w.setLayout(newFlowLayout());

w.add(p);

w.add(yinyue);

cc.setLayout(newBorderLayout());

cc.add(rili,"Center");

cc.add(text,"East");

rili.setLayout(newBorderLayout());

rili.add(li,"Center");

rili.add(shijian,"South");

shijian.setLayout(newBorderLayout());

shijian.add(mp,"Center");

shijian.add(date,"South");

this.setSize(900,600);

this.setVisible(true);

t.setFont(newFont("",0,14));

initFile();

nian=DateTime.getYear();

yue=DateTime.getMonth();

ri=DateTime.getDay();

addEvent();

}

publicStringgettime()

{returnhour+":

"+minute+":

"+second;}

publicvoidrun(){

while(true){

try{Thread.sleep(1000);

c=Calendar.getInstance();

hour=c.get(c.HOUR_OF_DAY);

minute=c.get(c.MINUTE);

second=c.get(c.SECOND);

}

catch(Exceptione){}

time2.setText(gettime());

time2.setFont(newFont("TimesRomn",Font.BOLD,16));

time2.setForeground(Color.RED);

}

}

publicvoidinitFile(){

if(!

f.exists()){

try{

FileOutputStreamout=newFileOutputStream(f);

ObjectOutputStreamobjectOut=newObjectOutputStream(out);

objectOut.writeObject(table);

objectOut.close();

out.close();

}

catch(IOExceptione){}

}

}

publicvoidmenuinit(){

file=newJMenu("File");

file.setMnemonic('F');

New=newJMenuItem("New");

New.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));

open=newJMenuItem("Open");

open.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));

save=newJMenuItem("Save");

save.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));

exit=newJMenuItem("Exit");

exit.setAccelerator(KeyStroke.getKeyStroke('E',java.awt.Event.CTRL_MASK));

file.add(New);

file.add(open);

file.addSeparator();

file.add(save);

file.addSeparator();

file.add(exit);

edit=newJMenu("Edit");

edit.setMnemonic('E');

copy=newJMenuItem("Copy");

copy.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK));

paste=newJMenuItem("Paste");

paste.setAccelerator(KeyStroke.getKeyStroke('V',java.awt.Event.CTRL_MASK));

cut=newJMenuItem("Cut");

cut.setAccelerator(KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK));

selectall=newJMenuItem("Selectall");

selectall.setAccelerator(KeyStroke.getKeyStroke('A',java.awt.Event.CTRL_MASK));

edit.add(cut);

edit.add(copy);

edit.add(paste);

edit.addSeparator();

edit.add(selectall);

config=newJMenu("Config");

config.setMnemonic('C');

color=newJMenu("Color");

bc=newJMenuItem("BackColor");

bc.setAccelerator(KeyStroke.getKeyStroke('B',java.awt.Event.CTRL_MASK));

fc=newJMenuItem("ForeColor");

fc.setAccelerator(KeyStroke.getKeyStroke('F',java.awt.Event.CTRL_MASK));

dc=newJMenuItem("DefaultColor");

dc.setAccelerator(KeyStroke.getKeyStroke('D',java.awt.Event.CTRL_MASK));

config.add(color);

color.add(bc);

color.add(fc);

color.addSeparator();

color.add(dc);

help=newJMenu("Help");

help.setMnemonic('H');

about=newJMenuItem("About");

about.setAccelerator(KeyStroke.getKeyStroke('a',java.awt.Event.CTRL_MASK));

help.add(about);

mnb=newJMenuBar();

m

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2