java课设--个人备忘录管理系统Word下载.doc
《java课设--个人备忘录管理系统Word下载.doc》由会员分享,可在线阅读,更多相关《java课设--个人备忘录管理系统Word下载.doc(23页珍藏版)》请在冰点文库上搜索。
检验用户合法身份,保障个人信息安全。
(2)口令维护:
用户可以定期或不定期的更改登录口令,提供系统的安全性。
(3)日常记事:
记录日常生活或者工作事件,以免遗忘,并提供记录的查询,添加和删除等管理功能。
(4)电话本:
记录朋友,亲戚,同事和陌生人等联系人的通信功能,以免遗忘。
并提供记录的查询,添加和删除等管理功能。
三、相关技术
本次系统采用结构化的设计方法进行设计,是设计成一个相对封闭的单机运行系统,作为大众化的应用软件,其用户界面是决定软件质量的首要条件。
所以,界面设计是开发与设计的重点。
充分贯彻简单易用、美观大方的基本原则,采用快速开发平台netbeans进行开发,并结合access数据库完成数据的导入。
NetBeans平台是一种可重复使用的框架用于简化其他桌面应用程式的开发。
当基于NetBeans平台的应用被执行,平台主要类别的main方法便会被执行。
可用的模组会被放置在存储器中,并且开始执行任务。
通常模组会只在被需要时,其代码才会被装进记忆。
应用程式能动态安装模组。
任何应用程式能包括更新模组,允许用户申请下载的应用程式升级和加入新功能。
这样安装,升级以及新发并行不必迫使用户每次再下载整个应用程式。
整个Netbeans平台提供对桌面应用程式常用的服务,允许开发者集中于仅限于他的应用程式的逻辑设计。
Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。
Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。
Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。
系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。
Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。
Access支持ODBC(开发数据库互连,OpenDataBaseConnectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。
四、系统设计
依据需求分析,个人备忘录管理系统可以分为三个模块:
日常记事模块、电话本模块和系统维护模块。
系统模块结构如图
(1)所示。
图
(1):
系统模块结构图
系统主控平台登录界面设计:
系统主界面使用简单和直观的布局设计,通过用户名和密码登录功能模块界面。
具体设计效果如图
(2)所示:
图
(2)系统主控平台登录界面设计效果图
日常记事模块:
该模块提供对个人日常生活、工作等事件的备忘功能,主要是提供对日常事件信息的录入、删除和查询功能。
其中,记录的信息主要包括事件的日期、事件类别、事件标题和事件内容等。
日常记事管理模块的模块功能树如图
(2)
所示。
图(3):
日常记事管理模块功能树图
具体设计效果如图所示:
图(4)日常记事管理模块界面设计效果图
电话本模块:
该模块提供对联系人通信信息的管理功能,主要是提供对各类通信信息的录入、查询、删除功能。
电话本管理模块的模块功能树如图(3)所示。
图(5):
电话本模块功能树图
图(6)电话本管理模块界面设计效果图
系统维护模块:
该模块提供用户帮助、用户权限验证和口令维护功能。
其中用户帮助主要是对于初次使用次系统的用户提供帮助;
权限验证主要是通过检查用户输入口令来判断用户是否拥有登录系统的权限;
口令维护提供修改用户登录口令功能。
系统维护模块功能树如图(4)所示。
图(7)系统维护模块功能树
用户如果初次使用这个管理系统可以通过点击帮助按钮,就会得到相应的提示,如下图(8):
图(8)用户私用帮助界面设计效果图
口令维护界面具体设计效果如图(9)所示:
图(9)口令维护界面具体设计效果
五、系统实现
数据库设计:
根据系统功能设计的要求以及功能模块的划分,对于本系统的数据库,可以列出以下数据项和数据结构。
(1)名称:
用户表(见表(10))
表名称标识:
user
数据来源:
口令维护功能录入。
表(10)
(2)名称:
日常记事记录表(见表(11))
表名称标识:
jishi
数据来源:
日常记事模块录入。
表(11)
(3)电话本记录表(见表(12))
表名称标识:
dianhuaben
电话本模块录入。
表(12)
主要功能的实现:
(1)登录界面用户帮助按钮的实现:
privatevoidjButton18ActionPerformed(java.awt.event.ActionEventevt){
this.jDialog1.setVisible(true);
}
(2)登录界面用户登录按钮的实现:
privatevoidjButton16ActionPerformed(java.awt.event.ActionEventevt){
inti=0;
if(!
jTextField14.getText().equals("
"
)){
i++;
}
Stringa=jTextField14.getText();
if(i==0){
JOptionPane.showMessageDialog(null,"
用户名不能为空!
);
}
if(i==1){
try{
Stringurl="
jdbc:
odbc:
Driver={MicrosoftAccessDriver(*.mdb)};
DBQ=beiwang.mdb"
;
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
Connectionconn=DriverManager.getConnection(url,"
"
"
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery("
selectusernamefromuser"
while(rs.next()){
if(rs.getString
(1).equals(a)){
i++;
break;
}
}
rs=stmt.executeQuery("
selectpasswordfromuserwhereusername='
+a+"
'
while(rs.next()){
if(rs.getString
(1).equals(jPasswordField2.getText())){
i++;
break;
}
}
rs.close();
stmt.close();
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
if(i==1){
JOptionPane.showMessageDialog(null,"
用户名不存在!
jTextField14.setText("
jPasswordField2.setText("
if(i==2){
密码错误!
if(i==3){
this.jPanel10.setVisible(true);
this.jDialog1.setVisible(false);
this.jPanel11.setVisible(false);
}
}
(3)日常记事模块查询按钮的功能实现:
privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){
Stringurl="
driver={MicrosoftAccessDriver(*.mdb)};
DBQ=beiwang.mdb;
characterEncoding=GBK"
//
Floatsum2=0.0f;
Connectionconn=null;
try{
Class.forName("
conn=DriverManager.getConnection(url,"
Statementstatement=conn.createStatement();
ResultSetbs=statement.executeQuery("
select*fromjishiwheredatetime='
+this.jTextField1.getText()+"
DefaultTableModeldtm=(DefaultTableModel)this.jTable1.getModel();
for(inti=dtm.getRowCount()-1;
i>
=0;
i--){
dtm.removeRow(i);
while(bs.next()){
Stringdata[]=newString[5];
data[0]=String.valueOf(bs.getLong("
id"
));
data[1]=bs.getString("
datetime"
data[2]=bs.getString("
sort"
data[3]=bs.getString("
title"
data[4]=bs.getString("
content"
dtm.addRow(data);
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
}
(4)日常记事模块新增按钮的功能实现:
privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt){
Stringdatetime=this.jTextField2.getText();
Stringsort=this.jTextField4.getText();
Stringtitle=this.jTextField3.getText();
Stringcontent=this.jTextArea1.getText();
if(datetime.equals("
)||sort.equals("
)||title.equals("
)||content.equals("
JOptionPane.showMessageDialog(this,"
日记信息输入不完整!
}else{
StringsqlStr="
insertintojishi([datetime],[sort],[title],[content])values('
+datetime+"
'
+sort+"
+title+"
+content+"
)"
if(statement.executeUpdate(sqlStr)>
0){
JOptionPane.showMessageDialog(null,"
日记添加成功!
this.jTextField2.setText("
this.jTextField4.setText("
this.jTextField3.setText("
this.jTextArea1.setText("
}
}catch(Exceptione){
日记添加失败!
e.printStackTrace();
}
}
(5)日常记事模块删除按钮的功能实现:
privatevoidjButton4ActionPerformed(java.awt.event.ActionEventevt){
Stringurl="
try{
conn=DriverManager.getConnection(url,"
"
Stringdatetime=this.jTextField2.getText();
Statementstatement=conn.createStatement();
ResultSetrs=statement.executeQuery("
+datetime+"
System.out.println(datetime);
if(datetime.equals("
)||!
rs.next())
没有输入日期或日期有误!
else{
Stringsort=this.jTextField4.getText();
Stringtit