计算机学院《面向对象程序设计》课程设计报告12学期《面向对象程序设计》课程设计报告题目:班级通讯录专业:x班级:xx姓名:xxxxxxx指导教师:xxxxxxxxxxx成绩:xx20xx年xx月xx日学号xxxx学年第x学期计算机学院《面向对象程序设计》课程设计报告2目录1.设计任务与要求.......................................................................................................................11.1.设计任务与要求...........................................................................................................11.2.选题目的与意义...........................................................................................................12.需求分析...................................................................................................................................12.1.用户需求分析...............................................................................................................12.2.开发环境分析...............................................................................................................23.系统设计...................................................................................................................................23.1.系统总体设计...............................................................................................................23.2.功能模块设计...............................................................................................................33.3.类的设计.......................................................................................................................33.4.数据库设计.................................................................................................................284.设计体会.................................................................................................................................285.主要参考文献.........................................................................................................................29计算机学院《面向对象程序设计》课程设计报告11.设计任务与要求1.1.设计任务与要求制作一个简单的通讯簿,要求可对朋友的姓名、性别、手机号码、寝室号和QQ号等信息保存、查询、修改和删除等功能。具有友好界面,且需要用户名和密码登陆进入系统。使用数据库作为后台连接。1.2.选题目的与意义如今生活节奏日益加快,各种联系人也不短增多,但是很多人还是单纯的使用手机或纸质电话本来记录联系人的信息,这些记录的方式存在很多缺点,如:信息量少,查找不方便;容易丢失;存储照片不方便;安全性不高,隐私性不高……这个通讯簿,可以帮助用户更好的存储朋友的相关信息,易于添加、修改,存储和使用都很方便。同时这个系统需要登陆才能进入,提高了通讯簿的安全性和隐私性。通过实现通讯薄功能的实际编程了解基于Swing的图形用户界面开发和数据库操作原理,提高Swing和JDBC技术结合的综合运用能力。2.需求分析2.1.用户需求分析通讯簿的目的在于帮助用户实现轻松管理联系人的需求。为了用户通讯录的隐私性和安全性,通讯簿进入前需要进行系统登录,对用户的帐号和密码进行合法性验证,登录成功则进入系统功能界面。该通讯录有已知的帐号和密码,登录时输入帐号和密码即可登录,如果帐号和密码不对会出现提示信息,如果三次输入错误,则系统会自动退出,“清空”按钮可清空用户输入的信息。通讯簿的主系统主要功能包括实现添加、修改、删除、查询联系人的姓名、手机号码等计算机学院《面向对象程序设计》课程设计报告2信息,并且连接进数据库,将信息存储进数据库文件中去。程序的文本框中可以显示姓名、手机号码等联系人信息,通过通讯簿轻松实现联系人的增、删、改、查需求。个人通讯簿主系统由四大模块组成:新建联系人、修改联系人、删除联系人、查询联系人,其功能如下:1.新建联系人:用来增加联系人,并且将其信息存入系统数据库。信息如:姓名、手机号码、寝室号、性别、qq等。2.修改联系人即编辑联系人,用来对数据库中已有的联系人信息进行编辑,将更新后的信息重新写入到系统数据库。3.删除联系人用来删除联系人及其相关信息。4.查询联系人用来根据信息内容,查询该信息联系人姓名及其他相关信息。2.2.开发环境分析系统编程基于JAVASwing的图形用户界面开发,数据信息连接后台为MySql数据库。系统运行环境为运行Windows,具有JDK1.7以上Java编译环境和Eclipse3.0以上Java编辑环境,NavicatforMySQL。3.系统设计3.1.系统总体设计进入系统后必须先进行登陆。登陆成功后,即可进入通讯簿主界面。在主界面可以进行联系人的添加和查找。在查看联系人界面中,可以选择修改信息或删除联系人。系统总体设计图如下:计算机学院《面向对象程序设计》课程设计报告33.2.功能模块设计为了保证通讯簿的隐私性和安全性,进入系统后必须先进行登陆。登陆成功后,即可进入通讯簿主界面。在主界面可以进行联系人的添加和查找。单击“操作”菜单“添加”命令,界面会切换到联系人信息输入的界面。按照需求录入联系人信息即可单击“提交”按钮保存该联系人。如果要进行联系人信息的修改或者删除该联系人,单击“操作”菜单“修改”命令与“操作”菜单“删除”命令即可。可通过“操作”菜单“查询”命令打开一个窗口,以键入联系人姓名进行联系人的查找,输入相关信息后单击“确定”按钮即可,即可弹出一个窗口查看联系人信息。3.3.类的设计由于系统需要链接数据库,所以先设计一个类进行数据库的连接。数据库为NavicatforMySQL版本。该类名称为DButil,是数据库操作类。该类中的属性、方法如下:publicclassDbUtil{privatestaticStringurl=jdbc:mysql://localhost:3306/tongxunlu?useUnicode=true&characterEncodin班级通讯录联系人管理登录添加联系人修改联系人查看联系人删除联系人图1系统总体设计图计算机学院《面向对象程序设计》课程设计报告4g=GBK;privatestaticStringdbName=root;privatestaticStringdbPassword=123;publicstaticStringdriver=com.mysql.jdbc.Driver;publicstaticConnectiongetConn()throwsException{Class.forName(driver);Connectionconn=DriverManager.getConnection(url,dbName,dbPassword);returnconn;}publicstaticvoidclose(Statementstmt,Connectionconn)throwsException{if(stmt!=null){stmt.close();if(conn!=null){conn.close();}}}}设计一个DaoStudent类用于完成联系人查找、添加、修改与删除操作,具体代码如下:publicclassDaoStudent{publicstaticintinsertInfo(Connectionconn,Studentstudent)throwsException{//插入数据conn=DbUtil.getConn();Stringsql=insertintomyclass(gender,name,telephone,qq,room)values(?,?,?,?,?);PreparedStatementstat=conn.prepareStatement(sql);stat.setString(1,student.getGender());stat.setString(2,student.getName());stat.setString(3,student.getTelephone());stat.setString(4,student.getQq());stat.setString(5,student.getRoom());inti=stat.executeUpdate();returni;}publicstaticinteditInfo(Connectionconn,Studentstudent)throwsException{//修改数据conn=DbUtil.getConn();Stringsql=updatemyclasssetgender=?,name=?,telephone=?,qq=?,room=?whereid=?;PreparedStatementstat=conn.prepareStatement(sql);stat.setString(1,student.getGender());stat.setString(2,student.getName());计算机学院《面向对象程序设计》课程设计报告5stat.setString(3,student.getTelephone());stat.setString(4,student.getQq());stat.setString(5,student.getRoom());stat.setInt(6,student.getId());inti=stat.executeUpdate();returni;}publicstaticResultSetfindInfo(Connectionconn,Studentstudent)throwsException{//查询数据conn=DbUtil.getConn();Stringsql=select*frommyclasswher