1、java课设个人备忘录管理系统面向对象的程序设计(Java)课程设计报告题目: 个人备忘录管理系统 专 业 班 级 姓 名 学 号 指导教师 完成日期 2010 年 春季 学期面向对象程序设计(Java)课程设计成绩评定 经考核,给出如下评语: 并综合评定该生课程设计成绩为 。指导教师: 年 月 日一、系统需求分析 在现代信息社会里,人们越来越重视信息的交流和沟通,更加注重时间的有效利用,其中个人信息量也在告诉增长,因此个人信息的管理在日常工作和生活中成为一项必不可少的内容,方便实用的个人备忘录管理系统对于提高信息利用效率具有重要意义。随着个人电脑的普及,简单实用的个人备忘录管理系统成为人们日
2、常个人信息管理的不错选择。二、系统实现目标个人备忘录管理系统是能够运行在普通个人电脑上,为使用者提供日常信息管理功能的工具软件,使用者可以通过个人备忘录管理系统对日常工作/生活琐事和电话本等方面进行更有效的管理,主要是为使用者提供对个人信息更方便的记录和查询功能,为使用者在个人信息管理上带来更多的便利。个人备忘录管理系统的总体目标是为使用者管理日益繁杂的个人日常信息提供一个方便有效的管理平台,提高日常生活和工作效率。具体实现以下基本功能:(1)权限验证:检验用户合法身份,保障个人信息安全。(2)口令维护:用户可以定期或不定期的更改登录口令,提供系统的安全性。(3)日常记事:记录日常生活或者工作
3、事件,以免遗忘,并提供记录的查询,添加和删除等管理功能。(4)电话本:记录朋友,亲戚,同事和陌生人等联系人的通信功能,以免遗忘。并提供记录的查询,添加和删除等管理功能。三、相关技术本次系统采用结构化的设计方法进行设计,是设计成一个相对封闭的单机运行系统,作为大众化的应用软件,其用户界面是决定软件质量的首要条件。所以,界面设计是开发与设计的重点。充分贯彻简单易用、美观大方的基本原则,采用快速开发平台netbeans进行开发,并结合access数据库完成数据的导入。NetBeans 平台是一种可重复使用的框架用于简化其他桌面应用程式的开发。当基于NetBeans 平台的应用被执行,平台主要类别的m
4、ain方法便会被执行。可用的模组会被放置在存储器中,并且开始执行任务。通常模组会只在被需要时,其代码才会被装进记忆。应用程式能动态安装模组。任何应用程式能包括更新模组,允许用户申请下载的应用程式升级和加入新功能。这样安装,升级以及新发并行不必迫使用户每次再下载整个应用程式。整个 Netbeans 平台提供对桌面应用程式常用的服务,允许开发者集中于仅限于他的应用程式的逻辑设计。 Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,
5、将数据库管理的各种功能封装在各类对象中。Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。 Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。Access支持ODBC(开发数据库互连,Open Data Base Connectivit
6、y),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。四、系统设计 依据需求分析,个人备忘录管理系统可以分为三个模块:日常记事模块、电话本模块和系统维护模块。系统模块结构如图(1)所示。图(1):系统模块结构图系统主控平台登录界面设计:系统主界面使用简单和直观的布局设计,通过用户名和密码登录功能模块界面。具体设计效果如图(2)所示:图(2)系统主控平台登录界面设计效果图日常记事模块:该模块提供对个人日常生活、工作等事件的备忘功能,主要是提供对日常事件信息的录入、删除
7、和查询功能。其中,记录的信息主要包括事件的日期、事件类别、事件标题和事件内容等。日常记事管理模块的模块功能树如图(2)所示。图(3):日常记事管理模块功能树图具体设计效果如图所示:图(4)日常记事管理模块界面设计效果图电话本模块:该模块提供对联系人 通信信息的管理功能,主要是提供对各类通信信息的录入、查询、删除功能。电话本管理模块的模块功能树如图(3)所示。图(5):电话本模块功能树图具体设计效果如图所示:图(6)电话本管理模块界面设计效果图系统维护模块:该模块提供用户帮助、用户权限验证和口令维护功能。其中用户帮助主要是对于初次使用次系统的用户提供帮助;权限验证主要是通过检查用户输入口令来判断
8、用户是否拥有登录系统的权限;口令维护提供修改用户登录口令功能。系统维护模块功能树如图(4)所示。图(7)系统维护模块功能树用户如果初次使用这个管理系统可以通过点击帮助按钮,就会得到相应的提示,如下图(8):图(8)用户私用帮助界面设计效果图 口令维护界面具体设计效果如图(9)所示:图(9)口令维护界面具体设计效果 五、系统实现数据库设计:根据系统功能设计的要求以及功能模块的划分,对于本系统的数据库,可以列出以下数据项和数据结构。(1)名称:用户表(见表(10) 表名称标识:user 数据来源:口令维护功能录入。表(10)(2)名称:日常记事记录表(见表(11)表名称标识:jishi数据来源:日
9、常记事模块录入。表(11)(3)电话本记录表(见表(12) 表名称标识:dianhuaben数据来源:电话本模块录入。表(12) 主要功能的实现:(1)登录界面用户帮助按钮的实现: private void jButton18ActionPerformed(java.awt.event.ActionEvent evt) this.jDialog1.setVisible(true); (2)登录界面用户登录按钮的实现: private void jButton16ActionPerformed(java.awt.event.ActionEvent evt) int i = 0; if (!jTe
10、xtField14.getText().equals() i+; String a = jTextField14.getText(); if (i = 0) JOptionPane.showMessageDialog(null, 用户名不能为空!); if (i = 1) try String url = jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=beiwang.mdb; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn = DriverManager.get
11、Connection(url, , ); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(select username from user); while (rs.next() if (rs.getString(1).equals(a) i+; break; rs = stmt.executeQuery(select password from user where username= + a + ); while (rs.next() if (rs.getString(1).equals(j
12、PasswordField2.getText() i+; break; rs.close(); stmt.close(); conn.close(); catch (Exception e) e.printStackTrace(); if (i = 1) JOptionPane.showMessageDialog(null, 用户名不存在!); jTextField14.setText(); jPasswordField2.setText(); if (i = 2) JOptionPane.showMessageDialog(null, 密码错误!); jPasswordField2.setT
13、ext(); if (i = 3) this.jPanel10.setVisible(true); this.jDialog1.setVisible(false); this.jPanel11.setVisible(false); (3)日常记事模块查询按钮的功能实现:private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) String url = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=beiwang.mdb;characterEncoding=
14、GBK;/ Float sum2 = 0.0f; Connection conn = null; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn = DriverManager.getConnection(url, , ); Statement statement = conn.createStatement(); ResultSet bs = statement.executeQuery(select * from jishi where datetime= + this.jTextField1.getText() + ); Def
15、aultTableModel dtm = (DefaultTableModel) this.jTable1.getModel(); for (int i = dtm.getRowCount() - 1; i = 0; i-) dtm.removeRow(i); while (bs.next() String data = new String5; data0 = String.valueOf(bs.getLong(id); data1 = bs.getString(datetime); data2 = bs.getString(sort); data3 = bs.getString(title
16、); data4 = bs.getString(content); dtm.addRow(data); conn.close(); catch (Exception e) e.printStackTrace(); (4)日常记事模块新增按钮的功能实现:private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) String url = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=beiwang.mdb;characterEncoding=GBK; Conn
17、ection conn = null; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn = DriverManager.getConnection(url, , ); Statement statement = conn.createStatement(); String datetime = this.jTextField2.getText(); String sort = this.jTextField4.getText(); String title = this.jTextField3.getText(); String co
18、ntent = this.jTextArea1.getText(); if ( datetime.equals() | sort.equals() | title.equals() | content.equals() JOptionPane.showMessageDialog(this, 日记信息输入不完整!); else String sqlStr = insert into jishi( datetime, sort, title, content) values( +datetime+ , +sort+ , +title+ , +content+ ); if (statement.ex
19、ecuteUpdate(sqlStr) 0) JOptionPane.showMessageDialog(null, 日记添加成功!); this.jTextField2.setText(); this.jTextField4.setText(); this.jTextField3.setText(); this.jTextArea1.setText(); conn.close(); catch (Exception e) JOptionPane.showMessageDialog(null, 日记添加失败!); e.printStackTrace(); (5)日常记事模块删除按钮的功能实现:
20、 private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) String url=jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=beiwang.mdb;characterEncoding=GBK; Connection conn = null; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn = DriverManager.getConnection(url,); String datetime=
21、this.jTextField2.getText(); Statement statement=conn.createStatement(); ResultSet rs=statement.executeQuery(select * from jishi where datetime=+datetime+); System.out.println(datetime); if(datetime.equals()|!rs.next() JOptionPane.showMessageDialog(null, 没有输入日期或日期有误!); else String sort=this.jTextFiel
22、d4.getText(); String title=this.jTextField3.getText(); String content=this.jTextArea1.getText(); String sqlStr=delete from jishi where datetime=+datetime+; statement.executeUpdate(sqlStr); JOptionPane.showMessageDialog(null, 日记已删除!); conn.close(); catch(Exception e) e.printStackTrace(); (6)电话本模块查询按钮
23、的功能实现: private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) String url = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=beiwang.mdb;characterEncoding=GBK; int sum1 = 0; Float sum2 = 0.0f; Connection conn = null; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn = DriverMana
24、ger.getConnection(url, , ); PreparedStatement ps = conn.prepareStatement(select * from dianhuaben where xingming = ?); System.out.println(this.jTextField5.getText(); ps.setString(1, this.jTextField5.getText(); ResultSet rs = ps.executeQuery(); DefaultTableModel dtm = (DefaultTableModel) this.jTable3
25、.getModel(); for (int i = dtm.getRowCount() - 1; i = 0; i-) dtm.removeRow(i); while (rs.next() String data = new String7; data0 = String.valueOf(rs.getLong(id); data1 = rs.getString(xingming); data2 = rs.getString(xingbie); data3 = rs.getString(guanxi); data4 = rs.getString(zhuzhaidianhua); System.o
26、ut.println(data4); data5 = rs.getString(yidongdianhua); data6 = rs.getString(beizhu); dtm.addRow(data); conn.close(); catch (Exception e) e.printStackTrace(); (7)电话本模块新增按钮的功能实现: private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) String url = jdbc:odbc:driver=Microsoft Access Driver
27、 (*.mdb);DBQ=beiwang.mdb;characterEncoding=GBK; Connection conn = null; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn = DriverManager.getConnection(url, , ); Statement statement = conn.createStatement(); String xingming = this.jTextField6.getText(); String xingbie = this.jComboBox3.getSelect
28、edItem().toString(); String guanxi = this.jTextField7.getText(); String zhuzhaidianhua = this.jTextField8.getText(); String yidongdianhua = this.jTextField9.getText(); String beizhu = this.jTextArea2.getText(); if ( xingming.equals() | xingbie.equals() | guanxi.equals() | zhuzhaidianhua.equals() | y
29、idongdianhua.equals() | beizhu.equals() JOptionPane.showMessageDialog(this, 电话本信息输入不完整!); else String sqlStr = insert into dianhuaben( xingming, xingbie,guanxi, zhuzhaidianhua,yidongdianhua,beizhu) values( + xingming + , + xingbie + , + guanxi + , + zhuzhaidianhua + , + yidongdianhua + , + beizhu + ); if (statement.executeUpdate(sqlStr) 0) JOptionPane.showMessageDialog(null, 电话本添加成功!); this.jTextField6.setText(); this.jComboBox3.setSelectedItem(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1