JAVA记事本的设计与实现培训讲学.docx

上传人:b****7 文档编号:9861977 上传时间:2023-02-07 格式:DOCX 页数:34 大小:192.64KB
下载 相关 举报
JAVA记事本的设计与实现培训讲学.docx_第1页
第1页 / 共34页
JAVA记事本的设计与实现培训讲学.docx_第2页
第2页 / 共34页
JAVA记事本的设计与实现培训讲学.docx_第3页
第3页 / 共34页
JAVA记事本的设计与实现培训讲学.docx_第4页
第4页 / 共34页
JAVA记事本的设计与实现培训讲学.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

JAVA记事本的设计与实现培训讲学.docx

《JAVA记事本的设计与实现培训讲学.docx》由会员分享,可在线阅读,更多相关《JAVA记事本的设计与实现培训讲学.docx(34页珍藏版)》请在冰豆网上搜索。

JAVA记事本的设计与实现培训讲学.docx

JAVA记事本的设计与实现培训讲学

300元以下□300~400元□400~500□500元以上□

(2)东西全

Beadwrks公司还组织各国的“芝自制饰品店”定期进行作品交流,体现东方女性聪慧的作品曾在其他国家大受欢迎;同样,自各国作品也曾无数次启发过中国姑娘们的灵感,这里更是创作的源泉。

体现市民生活质量状况的指标---恩格尔系数,上海也从1995年的53.4%下降到了2003年的37.2%,虽然与恩格尔系数多在20%以下的发达国家相比仍有差距,但按照联合国粮农组织的划分,表明上海消费已开始进入富裕状态(联合国粮农组织曾依据恩格尔系数,将恩格尔系数在40%-50%定为小康水平的消费,20%-40%定为富裕状态的消费)。

§8-4情境因素与消费者行为2004年3月20日

自制性手工艺品。

自制饰品其实很简单,工艺一点也不复杂。

近两年来,由于手机的普及,自制的手机挂坠特别受欢迎。

手工艺制品是我国一种传统文化的象征,它品种多样,方式新颖,制作简单,深受广大学生朋友的喜欢。

当今大学生的消费行为表现在追求新颖,追求时尚。

追求个性,表现自我的消费趋向:

购买行为有较强的感情色彩,比起男生热衷于的网络游戏,极限运动,手工艺制品更得女生的喜欢。

2.www。

cer。

net/artide/2003082213089728。

shtml。

(二)大学生对DIY手工艺品消费态度分析

1、荣晓华、孙喜林《消费者行为学》东北财经大学出版社2003年2月

 

《面向对象程序设计》课程设计报告

题目:

《日记本的设计与实现》课程设计

学院:

信息工程

姓名:

xxxx

学号:

1134120131

专业:

软件工程

班级:

软工1101班

指导教师:

xxxx

 

二0一二年十二月十四日

摘要

本课程设计通过代码实现将理论知识和具体实践相结合,巩固提高了对JAVA的相关方法与概念的理解,使学生的发散思维及动手能力进一步加强,加强对计算机及软件工程的进一步了解。

在这个课程设计中,做成了一个有日历标记的记事本软件,日记本面板由日历、记事本、图片、时钟四部分组成。

日历部分可以选择不同的年份、月份、日期和星期;记事本模块可以实现查看,保存,删除日志等操作;并且每一步操作都有相应提示;图片模块可以显示预设的图片;时钟模块可以用时钟来显示当前时间。

本软件是一个实用性较强,简洁,美观,方便的功能软件。

 

关键字:

记事本;日历;

 

1引言

Java是一种纯面向对象的、网络编程首选的语言。

Java技术作为软件开的一种革命性技术,已被列为当今世界信息技术的主流之一。

为了适应时代潮流,我们应该加强对Java的学习,更好的掌握这门课程。

为此Java课程设计决定以“写字留痕”为设题材,借此巩固加深我们对Java的了解。

本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但在此程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。

因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。

 

2设计目的与任务

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

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

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

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

 

3设计方案

3.1总体设计

(1)问题定义:

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

(2)问题分析:

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

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

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

而CalendarImage类用来显示图片。

(3)研究意义:

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

3.2设计要求

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

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

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

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

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

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

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

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

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

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

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

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

3.3系统的主要功能

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

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

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

3.4开发环境

WindowsXP;jdk1.6.0;eclipse编辑器。

 

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

3.5.1系统的功能模块划分

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

NoteBook.java

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

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

Note.java

该文件负责创建日记文本

leftPane.java

该文件负责创建创建左侧面板。

NotePade.java

该文件负责创建右侧面板。

NotePopupMenu.java

该文件负责在文本框上弹出快捷菜单

DateTime.java

该文件获得系统当前的日期,包括年月日

YearMonth.java

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

MonthPane.java

该文件负责生成日历创建日历

Music.java

该文件负责创添加背景音乐

3.5.2万年历模块流程图

万年历

选择微调按钮选择日期

正确输入错误输入

改变当天日期

 

当天是否有日记?

 

有无

更改记事本显示

3.5.3日记本模块流程图

显示日记本

保存删除导入导出

以当前日期为值,如果当前TreeMap打开打开文件对打开保存文件

当前内容为值保有今天的记录就话框,如果选择对话框,保存

存到TreeMap中删除它了文件就导入到所选路径下

3.6各个类说明

3.6.1主类NoteBook

1.成员变量

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

年、月、日intyear,month,day

日历对象Calendarc

左侧日历面板LeftPanenotepad

记事本面板NotePane负责改变月

图标Image负责主窗口标题栏图标的显示

2.方法

名称功能备注

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

bookInit变量初始化

addEvent年月微调按钮事件

noteBookRefresh刷新

ymListener年月改变事件监听

main程序开始运行

3.6.2记事本Note类

1、成员变量

描述变量类型名称

文本输入区JTextAreatext

保存、删除日志的按钮Button保存日志、删除日志

保存日志的散列表Hashtabletable

保存散列表的文件Filefile

记录日志的人年、月、日intyear,month,day

2、方法

名称功能备注

NotaPad创建记事本对象构造方法

setYear设置年份

getYear获取年份

setMonth设置月份

getMonth获取月份

setDay设置日期

getDay获取日期

获取日志内容获取日志内容

保存日志保存日志

删除日志删除日志

actionPerformed处理ActionEvent事件接口方法

3.6.3左侧面板LeftPane类

1.成员变量

描述变量类型名称

2.方法

名称功能备注

3.6.4月份显示MonthPane类

1.成员变量

描述变量类型名称

2.方法

名称功能备注

3.6.5年月显示YearMonth类

1.成员变量

描述变量类型名称

2.方法

名称功能备注

3.6.6背景音乐Music类

1.成员变量

描述变量类型名称

2.方法

名称功能备注

3.6.7日期获取DateTime类

1.成员变量

描述变量类型名称

2.方法

名称功能备注

3.6.8右侧记事本显示NotePane类

1.成员变量

描述变量类型名称

2.方法

名称功能备注

3.6.9记事本弹出菜单NotePopupMenu类

1.成员变量

描述变量类型名称

2.方法

名称功能备注

 

4各种功能截图

主界面

 

保存日记

 

删除日志

 

导入日志

 

导出日志

导出前要输入密码

 

密码不正确不能导出

 

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

5课程设计总结

这次课程设计的主要目的是学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程,以及进一步熟悉掌握Java程序设计语言的基础内容,提高Java编程技术以及分析解决问题的综合能力。

通过这次课程设计,我基本掌握了以上要求。

由于专业知识有限,以及动手能力的欠缺,所以开发的系统不是很完善,有一些功能未实现,但是万年历记事本的基本功能均已实现。

这个课程设计使我巩固了Java语言的知识,对于Eclipse开发工具也有了一定的了解。

由于是第一次进行Java语言开发,所以不足之处不可避免。

本系统的统计功能还不够强大,背景音乐,还有日历的阴历,节气都没实现,将在以后的时间,继续完善。

 

6个人心得体会

Java课程设计很快就结束了,虽然每天都熬到深夜,但却让我过得很充实,获益非浅。

通过这次课程设计,我懂得了只有坚持才会有成就。

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

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

在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。

 

7附录

A

YearMonth.java源程序代码

importjava.awt.*;

importjavax.swing.*;

publicclassYearMonthextendsJPanel{

privateintyear;

privateintmonth;

privateJLabelyl;

privateJLabelml;

JSpinnershowYear;

JSpinnershowMonth;

SpinnerNumberModelyearModel,monthModel;

YearMonth(){

ymInit();

add(yl);add(showYear);

add(ml);add(showMonth);

}

voidymInit(){

yl=newJLabel("年");

ml=newJLabel("月");

year=DateTime.getYear();

month=DateTime.getMonth();

yearModel=newSpinnerNumberModel(year,0,10000,1);

showYear=newJSpinner(yearModel);

showYear.setEditor(newJSpinner.NumberEditor(showYear,"0000"));

showYear.setPreferredSize(newDimension(60,30));//改变尺寸

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

monthModel=newSpinnerNumberModel(month,0,13,1);

showMonth=newJSpinner(monthModel);

showMonth.setPreferredSize(newDimension(60,30));//改变尺寸

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

}

}

B

Note.java源程序代码

C

DateTime.java源程序代码

D

LeftPane.java源程序代码

E

MonthPane.java源程序代码

F

Music.java源程序代码

G

Note.java源程序代码

H

NoteBook.java源程序代码

I

NotePane.java源程序代码

J

NotePopupMenu.java源程序代码

 

《日记本的设计与实现》源代码:

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjava.util.*;

importjavax.swing.*;

importjavax.swing.event.*;

classNoteBookextendsJFrameimplementsChangeListener,MouseListener{

intyear,month,day;

Calendarc;

intfirst,days;

LeftPanelp;

NotePanenp;

publicNoteBook(){

super("日记本的设计与实现");

this.setDefaultCloseOperation(3);

Containercon=getContentPane();

bookInit();

addEvent();

add(lp,"West");

add(np);

this.pack();

this.setResizable(true);

this.setVisible(true);

}

voidbookInit(){

lp=newLeftPane();

np=newNotePane();

year=DateTime.getYear();

month=DateTime.getMonth();

day=DateTime.getDay();

}

voidaddEvent(){

lp.ym.showMonth.addChangeListener(this);

lp.ym.showYear.addChangeListener(this);

for(inti=0;i

lp.mp.showDay[i].addMouseListener(this);

}

}

publicvoidstateChanged(ChangeEvente){

month=Integer.parseInt(lp.ym.showMonth.getValue().toString());

year=Integer.parseInt(lp.ym.showYear.getValue().toString());

noteBookRefresh();

}

voidnoteBookRefresh(){

np.refreshContent(year,month,day);

np.setDateInfo(year,month,day);

lp.mp.arrangeNum(year,month,day);

}

publicvoidmouseClicked(MouseEvente){

JTextFieldsource=(JTextField)e.getSource();

try{

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

noteBookRefresh();

}

catch(Exceptionee){}

}

publicvoidmousePressed(MouseEvente){}

publicvoidmouseReleased(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

classYearMonthextendsJPanel{

privateintyear;

privateintmonth;

privateJLabelyl;

privateJLabelml;

JSpinnershowYear;

JSpinnershowMonth;

YearMonth(){

ymInit();

add(yl);add(showYear);

add(ml);add(showMonth);

}

voidymInit(){

yl=newJLabel("年");

ml=newJLabel("月");

year=DateTime.getYear();

month=DateTime.getMonth();

showYear=newJSpinner(newSpinnerNumberModel(year,0,10000,1));

showYear.setEditor(newJSpinner.NumberEditor(showYear,"0000"));

showYear.setPreferredSize(newDimension(60,30));

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

showMonth=newJSpinner(newSpinnerNumberModel(month,1,12,1));

showYear.setPreferredSize(newDimension(60,30));

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

}

}

staticclassDateTime{

staticCalendartoday=Calendar.getInstance();

staticintgetYear(){

returntoday.get(today.YEAR);

}

staticintgetMonth(){

returntoday.get(today.MONTH)+1;

}

staticintgetDay(){

returntoday.get(today.DAY_OF_MONTH);

}

staticintgetMonDay(intyear,intmonth){

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){

return31;

}

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

return30;

}

if((year%4==0&&year%100!

=0)||year%400==0){

return29;

}

else{

return28;

}

}

}

classLeftPaneextendsJPanel{

YearMonthym;

MonthPanemp;

JLabeltupian;

JPanellp;

JSplitPanesplit;

LeftPane(){

super(newBorderLayout());

ym=newYearMonth();

mp=newMonthPane();

lp=newJPanel(newBorderLayout());

lp.add(ym,"South");

lp.add(mp);

split=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT);

this.add(lp);

this.add(split,"East");

}

}

classMonthPaneextendsJPanel{

JTextFieldshowDay[];

intfirst,days;

YearMonthym;

String[]week;

JLabel[]title;

intyear,month,day;

MonthPane(){

super(newGridLayout(7,7,3,3));

mcInit();

for(inti=0;i<7;i++)

add(title[i]);

for(inti=0;i<42;i++)

add(s

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

当前位置:首页 > 高中教育 > 语文

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

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