日历记事本课程设计报告解读Word下载.docx
《日历记事本课程设计报告解读Word下载.docx》由会员分享,可在线阅读,更多相关《日历记事本课程设计报告解读Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
2、设计思想
此处主要指根据功能划分的功能模块,以及打算解决实现这些模块功能的思路
设计思想
Java记事本程序是:
图形界面、流与文件等技术的综合应用。
图形界面的实现:
考虑到简单、实用、高效等特点,大部分选择了awt来完成实现,其中也有swing组件。
文本编辑区就选用了TaxtArea作为主要的部件。
文件操作的实现:
利用了字符文件流FileReader和FileWriter类来实现。
由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能。
在设计类的时候,考虑到简单明了,就用了三个类,一个主类、一个类设计构造函数实现监听接口作为程序的整体框架,一个类设计构造函数实现查找替换功能。
所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。
主类完成对象的实例化及显示。
这们设计的优点是:
条理清晰,容易理解,容易修改。
这样设计的缺点是:
不利于共享类中的方法。
1、主要技术
日历记事本系统主面板与日历板模块(CalendarPad.java)
该模块设计主要主要包含以下成员变量:
年(year)月(month)日(day)
存放日期的表(Hashtable)
存放日志的文件(File)
主要方法有:
创建程序主面板的构造方法(CalendarPad)
处理ActionEvent事件的接口方法(actionPerformed)
程序开始运行的main()方法。
在具体设计过程中,首先,基本功能和组件的创建;
然后,创建构造方法,这一部分包括:
为各个功能创建监听事件,创建程序主面板以及日历面板.添加关闭窗口方法;
第三步分为创建监听方法,实现对各个功能模块的操作,以及鼠标点击实现进入相应的功能面板;
最后创建相应的main()方法。
2.日历记事本系统年设置模块(Year.java)
该模块用于实现日历记事本系统中关于年的设置,模块中包含的主要成员变量有用于改变年的按钮(Jbutton明年去年),显示年的文本框(JTextField)。
模块中包含的主要方法有用于设置年的方法(setYear),用于获取年的方法(getYear)和处理ActionEvent事件的接口方法(actionPerformed)等在具体设计过程中,首先,显示年的文本框、按钮、文件列表、区域的创建和初始化;
然后创建构造方法,实现以上信息和组件的实体化,下一步实现接口监听,创建监听方法,通过以上方法可以实现年设置模块的基本功能实现。
3.日历记事本系统月设置模块(Month.java)
该模块用于实现日历记事本系统中关于月的设置,模块中包含的主要成员变量有用于改变月的按钮(Jbutton上月下月),显示月的文本框(JTextField)。
模块中包含的主要方法有用于设置月的方法(setMonth),用于获取月的方法(getMonth)和处理ActionEvent事件的接口方法(actionPerformed)等在具体设计过程中与年设置大体上相近,首先,显示年的文本框、按钮,文件列表、区域的创建和初始化;
4.日历记事本系统记事本模块(NotePad.java)
该模块中包含的主要成员变量有文本框(JTextArea),按钮(JButton保存日志删除日志),用于存放日志记录的文件(File)以及响应相关操作的信息提示(JLabel)。
该模块中包含的主要方法有设置信息条,设置文本区,获取日志内容,保存日志,删除日志在具体设计过程中首先,将记事本模块中的文本框、按钮创建和初始化;
然后创建构造方法,实现以上信息和组件的实体化,实现接口监听,创建监听方法,选择日期时若记事本系统中已经存在记录,则弹出提示,询问是否查看;
若不存在记录,则可以保存日志;
对存在的日志使用删除日志功能时会弹出提示是否删除日志,选是即删除日志,选否即可返回.以上即实现学生基本信息模块的基本功能实现。
二、采用的主要技术、遇到的问题和解决方法
此处主要指用到Java中的主要技术,以及技术中的类和方法。
在程序设计中遇到的难点和问题,是如何解决的。
主类CanlendarPad
(1)成员变量
成员变量描述变量类型名称
年、月、日intyear,month,day
保存日志的散列表Hanshtablehanshtable
存放散列表的文件Filefile
显示日期JtextFile[]showDay
日历对象Calendar
日历记事本对象NotePadnotepad
月Month负责改变月
年Year负责改变年
2.方法
名称功能备注CalendarPad
创建窗口主程序构造方法设置日历牌设置日立的年份、月份排列号码排列月份中的号码
mousePressed处理MouseEvent事件接口方法main程序开始运行
3.对日历添加,基本上完成了我的java课程设计,通过这次的课程设计,同时做这门课程设计也进一步加强了我的动手能力,为了完成好这次课程设计,记事本Note1、成员变量描述变量类型名称文本输入区JTextAreatext保存、删除日志的按钮Button保存日志、删除日志保存日志的散列表Hashtabletable保存散列表的文件
4.功能设置
名称功能备注
NotaPad创建记事本对象构造方法
setYear设置年份
getYear获取年份
setMonth设置月份
getMonth获取月份
setDay设置日期
getDay获取日期
获取日志内容获取日志内容
保存日志保存日志
删除日志删除日志
actionPerformed处理ActionEvent事件接口方法
年Year
1.成员变量
描述变量类型名称
表示年份的整数intyear显示年份的文本条JtextFiledshowYear负责增减年份的按钮Jbutton明年、去年
Year创建年对象构造方法setYear设置年份
月Month
表示月份的整数intmonth
显示月份的文本条JtextFiledshowMonth负责增减月份的按钮Jbutton下月,上月
Month创建“月”对象构造方法SetMonth设置月份
actionPerformed处理ActionEvent接口方法
2、遇到的问题和解决方法
问题
(1):
数据传输问题
无法连接数据库
解决方法:
找同学帮忙解决
问题
(2):
三、实现的主要功能和系统结构
此处写本课程设计的重要功能模块以及模块结构图
日历记事本系统
四、核心算法描述和相关技术说明
此处指解决每个模块问题设计的算法思想描述或者自己写的方法,以及代码实现(不需要在代码中加注释,解释部分在算法思想描述中阐述清楚即可)
主类CalendarPad
(1)数据库连接
importjava.sql.Connection;
importjava.sql.DriverManager;
publicclassDB{
privateStringDriver_name=
"
jdbc:
mysql:
//localhost:
3306/test"
;
privateStringUSER="
root"
privateStringPASS="
publicstaticConnectioncon;
publicDB(){
try{
Class.forName("
com.mysql.jdbc.Driver"
);
con=DriverManager.getConnection(Driver_name,USER,PASS);
con.prepareStatement("
setNAMESutf8"
).executeUpdate();
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicstaticConnectiongetConnection(){
if(con==null){
newDB();
returncon;
}
(2)系统登录
publicclassLogin{
Fontd=newFont("
楷体"
Font.BOLD,22);
Fontf=newFont("
Font.BOLD,15);
JFramelogingui=newJFrame("
用户登录界面"
JLabeluserlogin=newJLabel("
用户登录"
JLabelusername=newJLabel("
用户名:
"
JLabelpassword=newJLabel("
密码:
JTextFieldname=newJTextField();
JTextFieldpwd=newJPasswordField();
JButtonlogin=newJButton("
登陆"
JButtoncancle=newJButton("
取消"
JButtonregist=newJButton("
注册"
Useruser=newUser();
(3)系统注册
importjava.awt.Font;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
importjava.util.Calendar;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
importnet.cw.edu.CalendarPad;
importnet.cw.view.DB;
publicclassregistgui{
//初始化字体
Fontd=newFont("
Fontf=newFont("
//初始化对象
JTextFieldname=newJTextField();
JTextFieldpwd=newJPasswordField();
JTextFieldrpwd=newJPasswordField();
JFrameregistgui=newJFrame("
用户注册界面"
JLabeluserregist=newJLabel("
用户注册"
JLabelusername=newJLabel("
JLabelpassword=newJLabel("
JLabelrpassword=newJLabel("
确认密码:
JButtonaffirm=newJButton("
确认"
JButtoncancle=newJButton("
Useruser=newUser();
(4)记录日志
publicString获取日志内容(intyear,intmonth,intday)
{
Stringkey="
+year+"
+month+"
+day;
Connectioncon=DB.getConnection();
PreparedStatementps=con.prepareStatement("
select*fromlog"
ResultSetrs=ps.executeQuery();
if(rs.getRow()!
=0){
rs.first();
Stringtext=rs.getString(3);
设置文本区(text);
returnrs.getString(text);
}else{
text.setText("
无记录"
returnnull;
}
(5)删除或保存日志
publicclassNotePadextendsJPanelimplementsActionListener{
JTextAreatext;
JButton保存日志,删除日志;
Hashtabletable;
JLabel信息条;
intyear,month,day;
Filefile;
CalendarPadcalendar;
publicNotePad(CalendarPadcalendar)
this.calendar=calendar;
year=calendar.getYear();
month=calendar.getMonth();
day=calendar.getDay();
table=calendar.getHashtable();
file=calendar.getFile();
信息条=newJLabel("
年"
月"
+day+"
日"
JLabel.CENTER);
信息条.setFont(newFont("
TimesRoman"
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);
五、总结和体会
1、总结
对本次课程设计进行总结,重点写课程设计实现的总结(不要写感受,感受在体会中写)
在这为期一周的课程设计中,我们组的课题项目为日历记事本(CalendarPad.java)作为
组长的我亲自请缨担任CalendarPad.java代码的编写,我们通过eclipse软件进行项目的编写。
在编写的代码的过程中我们遇到了这样那样的问题,我问询问同学,共同探讨,虽然大家java的学习并不是想象中的那么好,但是大家都在尽心尽力的来完成,特别是在最后的合并起来之后,我们发现在可视窗口的底部的文字显示部分存在很大的漏洞,我们对了几遍源代码,发现并没有出现错误,我们没有放弃。
我们发现问题可能出现在了编码上,于是我们尝试着使用CalendarPad.java类包进行编写改动,这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,而且团队之间的合作,成员之间的默契,也很重要,这将对我以后的工作形成良好的习惯CalendarPad.Java的编写,该文件创建记事本,包括对记事本的输入,保存删除日志的按钮,保存日志散列表和文件,以及记录日志的年,月,日。
利用java.awt类的使用。
使用类创建记事本,输入文字和保存日志,对日志的年月日进行编辑,设置代码,进一步加深了对java类的认识和使用,编写java的困难,一定要认真仔细,先思考后编写,要想到使用的成员变量和使用的方法,要对编写java进行规范的编写,在编写CalendarPad.java时,充分认识到对java编写重要性,对类的如何使用。
对NotePad.java部分的编写,了解了编写一个程序真的是很不容易,这部分主要是文本输入区、保存、删除日志的按钮、保存日志的散列表、保存散列表的文件以及记录日志年、月、日这部分的实现(变量类型主要有:
JTextArea、Button、Hashtable、File、int;
主要方法:
NotePad、setYear、getYear、setMonth、getMonth、setDay、getDay、获取日志内容、保存日志、删除日志、actionPerformed)通过java.awt;
java.io等类的运用让我进一步加深了对java类的认识和使用。
在编写程序时多次出现错误,对于java语言基础的理解还不够透彻不够仔细。
不过所幸最后通过同学的指点和资料的补充最终共完成了这次的课程设计。
通过这次的课程设计我深刻意识到要在以后的而学习中认真努力,多做程序,多进行练习,不会的多问老师同学,努力培养自己对java的兴趣,努力学好java。
由于是第一次进行Java语言开发所以不足之处不可避免。
以前不懂得的东西,通过这次组员之间的讨论,完善,得到补充,使自己对于java这门课程有了全新的认识。
用到变量类型有int、JTextField、JButton,对于这些,以前只是听老师讲过,没有运用于实践中,所以创建“年”对象,设置年份,获取年份该用些什么方法,哪些变量,在这次实践得到更完善的积累。
这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,而且团队之间的合作,成员之间的默契,也很重要,这将对我以后的工作形成良好的习惯。
以及进一步熟悉掌握Java程序设计语言的基础内容,提高Java编程技术以及分析解决问题的综合能力。
由于自身能力有限,所以在编写代码的时候难免出现问题,像用什么变量显示日期,用什么变量保存日志的散列表等等,像int、Hashtable、File、JTextField[]、这些都通过组员之间的讨论得到解决。
以前对Java语言的很多知识认识都不深刻,做过这次实训之后,我对Java语言的开发有了一个比较系统的了解,从中发现自己平时学习不足和薄弱环节,从而加以弥补
2、体会
写课程设计过程中自己的体会
经过这一次的设计,总体来说收获还是不小。
刚刚开始学习Java语言的时候也曾经想过利用所学的知识来做些真东西。
之前用过C语言编写过一些程序,但C语言与Java之前差异比较大,而Java语言对我来说是个新事物,对Java了解不是十分深刻,用起来也不能得心应手。
但是此次的设计让我对Java有了更深刻的认识和了解,通过亲手编写Java程序不仅大大的提高了我的动手能力,更让我从更深一层来了解Java语言。
尽管如此,但Java中可发掘的东西太多了,一个小小的程序不可能将全部的内容都展现出来。
因此对Java,我依然还有许多不明白的地方。
这将在之后的学习中进行更深层次的学习。
通过这次的课程设计,基本上将书本上的知识运用到实践上,从而进一步巩固和丰富所学知识,也让我更加深层次的认识了java及其功能的强大。
为了更好地完成这次课程设计,我做了很多准备,上网查阅资料,到图书馆翻阅书籍。
这个过程中也锻炼了我的思维分析、遇到问题及想法设法通过各种途径解决问题的能力。
从理论到实践,在整整几天的时间里,可以说,是苦大于甜,但确实学到很多东西,同时不仅巩固了以前的知识,而且学到了许多书上学不到的知识。
通过这次课程设计使我懂得了理论与实践相结合是很重要的,只有理论知识是不够的,只有把所学的理论知识和实践结合起来,从理论中得出结论,才能真正服务社会,从而提高自己的实际动手能力和独立思考能力。
通过这次课程设计,了解到了自己的不足之处,对以前的知识没有掌握到位,所以我们一定要学好理论知识,为以后的实践打下基础。
总而言之,这次课程设计我学到了很多
读书的好处
1、行万里路,读万卷书。
2、书山有路勤为径,学海无涯苦作舟。
3、读书破万卷,下笔如有神。
4、我所学到的任何有价值的知识都是由自学中得来的。
——达尔文
5、少壮不努力,老大徒悲伤。
6、黑发不知勤学早,