ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:430.28KB ,
资源ID:3666279      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3666279.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(个人基于电话簿管理系统.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

个人基于电话簿管理系统.docx

1、个人基于电话簿管理系统代码行数572项目名称个人电话簿管理系统1实训目的面向对象程序设计课程设计是计算机科学与技术专业培养计划中的重要实践教学环节,旨在通过一个管理信息系统的开发,加深学生对Java语言的理解和应用,尤其是对面向对象编程思想、Java编码规范、图形用户接口、JDBC访问数据库的理解,巩固软件工程课程的相关知识,了解软件开发的基本流程,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。2实训内容使用MyEclipse为开发工具,使用Rational Rose为建模工具,使用MySQL为数据库服务器,基于GUI和JDBC技术,分析、设计并实现一个管理信息系统。3.需求分析3.

2、1 需求描述登录:输入账号和密码,完成登录操作,进入主界面,显示电话簿中的所有联系人姓名以及可进行的相关操作的选项。退出:登录后可进行退出操作,结束整个程序。注册:输入账户、密码和确认密码完成新用户的注册。按字典序显示所有联系人的姓名:登录成功后在主界面中以表格形式按字典序升序显示所有联系人的姓名。添加联系人:输入联系人的各项信息,完成联系人信息的添加操作,添加成功后以表格形式按字典序升序显示所有的联系人信息。删除联系人:根据联系人的主键,完成联系人的删除操作,删除成功后以表格形式按字典序升序显示剩余联系人的信息。修改联系人:输入联系人主键,显示联系人的详细信息,输入每个字段值,完成联系人信息

3、的修改,修改成功后以表格形式按字典序升序显示所有的联系人信息。查询联系人:利用模糊查询完成对联系人名称的查询操作,获得包含查询关键字的联系人姓名列表,再输入某个联系人的主键,显示该联系人的详细信息。3.2 用例描述4.功能设计4.1 系统层次方框图为保证系统具有较好的可维护性和可扩展性,对系统进行分层设计,共分四层: 视图层:接收用户输入信息,显示界面信息和用户信息 控制层:访问流程控制 业务层:完成具体功能的实现 数据库访问层:完成对数据库访问操作的封装具体结构如下图所示:4.2 算法设计(活动图或时序图) 注册活动图登录活动图添加活动图 删除互动图 查询活动图 修改活动图5.数据设计5.1

4、 类图设计根据分析,系统由9个类构成,分别为: 数据库访问层:DBConn类 数据封装类:Userxx类、User类 业务层:Userxxdao类、Userdao类 控制层:Tooljdbc类 视图层:Login类、类、LxManager类 其它:RunFrame类系统中各类之间关系如下图所示:1.数据库访问层DBConn类用于封装JDBC的操作,完成对数据库的直接访问,采用单态模式创建对象,具体内容如下所示:2.数据封装类Userxx类和User类分别用于登录、注册操作时的数据封装和用户信息管理时的数据封装,具体内容如下图所示:3.业务层Userxxdao类进行登录、注册等对Userxx类的

5、访问操作,Userdao类进行用户信息管理的操作,两者均采用单态模式创建对象,具体内容如下图所示:4.控制层Tooljdbc类用于进行系统的流程控制,具体内容如下所示:5.视图层6.其它RunFrame类是程序的主类,用于启动系统,具体内容如下:5.2 数据表设计根据概要设计中Login类图和User类图可知,系统需要两张表t_xinxi和t_user,其中,t_user表用于存储登录信息,t_xinxi表用于存储用户基本信息,两张表之间没有关联关系,具体结构如下所示:表5-1 t_user表序号字段名类型长度备注1idint4主键2accountchar20唯一性、不为空3passwordc

6、har20不为空表5-2 t_xinxi表序号字段名类型长度备注1idint4主键2namechar20不为空3sexint20表示男,1表示女4telchar20不为空6.运行结果1.注册 程序运行后,首先显示系统的登录界面,在其中可输入账号和密码进行登录操作,或输入“2”进行账户注册。注册成功后需要重新输入账号和密码进行登录。2.登录用户可在系统首界面直接输入账号和密码进行登录,或在注册成功后再进行登录。登录成功后显示此用户信息和系统主控制界面。3.添加输入“4”,选择添加用户信息操作。依次输入用户的姓名、性别和电话,完成添加。添加成功后,显示成功的提示信息,并显示所有用户信息和系统主控制

7、界面。如果添加失败,则显示失败的提示信息, 4.删除输入“3”,选择删除用户信息操作。输入要删除的用户的id(主键)值,完成删除。删除成功后,显示成功的提示信息,并显示所有用户信息和系统主控制界面。如果删除失败,则显示删除失败的提示信息。 5.修改输入“2”,选择修改用户信息操作。输入要修改的用户的id(主键)值,显示该用户的信息。再依次输入要修改的用户名、性别和电话,执行修改操作。修改成功后,显示成功的提示信息,并显示所有用户信息和系统主控制界面。如果修改失败,则显示删除失败的提示信息。6.查询输入“1”,选择查询用户信息操作。输入要查询的用户名,显示所查用户的信息,之后显示所有用户信息和系

8、统主控制界面。7.关键代码1、数据库访问类 package ccut.wzy.jdbc; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/* * 工具bean * 连接数据库 * 驱动串 * 数据库的地址 * 数据库的登录名、密码 * 更新、查询的实现 * */public class DBConn private static final String DRIVER

9、=com.mysql.jdbc.Driver;/驱动串 private static final String URL=jdbc:mysql:/localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8;/访问本机的MySQL数据库test,test是库名,可以根据实际情况修改 private static final String USERNAME=root; private static final String PASSWORD=123456;/访问MySQL的密码,可以根据实际情况修改 private Connection c

10、on;/数据库连接对象 private Statement st;/sql语句的执行对象 private ResultSet rs;/查询结果集,用来存放查询的结果,没有查到rs为空 private int n;/更新数据时,成功操作的行数 /a) 语句加载数据库的驱动程序 static try Class.forName(DRIVER); catch (ClassNotFoundException e) / TODO Auto-generated catch block System.out.println(驱动程序找不到); /b) 建立数据库连接 public Connection ge

11、tCon() try con=DriverManager.getConnection(URL, USERNAME, PASSWORD); catch (SQLException e) / TODO Auto-generated catch block System.out.println(数据库连接失败); return con; /c) 创建执行sql语句的对象 public Statement getSt() try st=this.getCon().createStatement(); catch (SQLException e) / TODO Auto-generated catch

12、block System.out.println(创建执行sql语句的对象失败); return st; /执行sql语句-查询 public ResultSet getRs(String sql) try rs=this.getSt().executeQuery(sql); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return rs;/在调用类中使用集合对象进行接收 /执行sql语句-更新(增加、删除、修改) public int getN(String sql) try n=

13、this.getSt().executeUpdate(sql); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return n;/在调用类中使用整形变量接收 /d) 断开数据库连接 public void closeRs() try rs.close(); st.close(); con.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); public void

14、closeN() try st.close(); con.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); 2、数据封装类(1)User.Java package ccut.wzy.model;public class User private int id; private String username,password; public int getId() return id; public void setId(int id) this.id = id; pub

15、lic String getUsername() return username; public void setUsername(String username) this.username = username; public String getPassword() return password; public void setPassword(String password) this.password = password; public User(int id, String username, String password) super(); this.id = id; th

16、is.username = username; this.password = password; public User() super(); (2)Userxx.Java package ccut.wzy.model;public class Userxx private int id; private String name,xinbie,tel; public int getId() return id; public void setId(int id) this.id = id; public String getName() return name; public void se

17、tName(String name) this.name = name; public String getXinbie() return xinbie; public void setXinbie(String xinbie) this.xinbie = xinbie; public String getTel() return tel; public void setTel(String tel) this.tel = tel; public Userxx(int id, String name, String xinbie, String tel) super(); this.id =

18、id; this.name = name; this.xinbie = xinbie; this.tel = tel; public Userxx() super(); Override public String toString() return Userxx id= + id + , name= + name + , xinbie= + xinbie + , tel= + tel + ; 3、业务层(1) Userxxdao.java package ccut.wzy.dao;import java.sql.ResultSet;import java.sql.SQLException;i

19、mport java.text.Collator;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import ccut.wzy.jdbc.DBConn;import ccut.wzy.model.User;import ccut.wzy.model.Userxx;import ccut.wzy.tool.Tooljdbc;public class Userxxdao private DBConn db; public Userxx

20、dao() db=Tooljdbc.getdb(); public int add(Userxx aa) String sql=INSERT INTO t_xinxi(name,xingbie,tel)VALUES(+aa.getName()+,+aa.getXinbie()+,+aa.getTel()+); return db.getN(sql); public int update(Userxx aa ,int id) ResultSet rs = db.getRs(SELECT* FROM t_xinxi WHERE id=+id); if(rs=null) System.out.pri

21、ntln(用户不存在); return 0; String sql=UPDATE t_xinxi set name=+aa.getName()+,tel=+aa.getTel()+,xingbie=+aa.getXinbie()+ where id=+id; return db.getN(sql); public int delete(int id) String sql=DELETE FROM t_xinxi WHERE id=+id ; return db.getN(sql); public List list() String sql=SELECT * FROM t_xinxi; Res

22、ultSet rs=db.getRs(sql); List course = new ArrayList(); try while (rs.next() Userxx cou=new Userxx(); cou.setName(rs.getString(name); cou.setXinbie(rs.getString(xingbie); cou.setTel(rs.getString(tel); course.add(cou); catch (SQLException e) / TODO Auto-generated catch block course=null; Collections.

23、sort(course,new Comparator() Override public int compare(Userxx o1,Userxx o2) Comparatorcom=Collator.getInstance(java.util.Locale.CHINA); return pare(o1.getName(), o2.getName(); ); return course; public List list(String name) String sql=SELECT* FROM t_xinxi WHERE name like +name+%; ResultSet rs=db.g

24、etRs(sql); List course = new ArrayList(); try while (rs.next() Userxx cou=new Userxx(); cou.setName(rs.getString(name); cou.setXinbie(rs.getString(xingbie); cou.setTel(rs.getString(tel); course.add(cou); catch (SQLException e) / TODO Auto-generated catch block course=null; / Collections.sort(course,

25、new Comparator() / Override/ public int compare(Userxx o1,Userxx o2) / Comparatorcom=Collator.getInstance(java.util.Locale.CHINA);/ return pare(o1.getName(), o2.getName();/ / ); return course; public List list(int id) String sql=SELECT* FROM t_xinxi WHERE id=+id; ResultSet rs=db.getRs(sql); List cou

26、rse = new ArrayList(); try while (rs.next() Userxx cou=new Userxx(); cou.setName(rs.getString(name); cou.setXinbie(rs.getString(xingbie); cou.setTel(rs.getString(tel); course.add(cou); catch (SQLException e) / TODO Auto-generated catch block course=null; / Collections.sort(course,new Comparator() /

27、Override/ public int compare(Userxx o1,Userxx o2) / Comparatorcom=Collator.getInstance(java.util.Locale.CHINA);/ return pare(o1.getName(), o2.getName();/ / ); return course; (2) Userdao.java package ccut.wzy.dao;import java.sql.ResultSet;import java.sql.SQLException;import ccut.wzy.jdbc.DBConn;import ccut.wzy.model.User;import ccut.wzy.tool.Tooljdbc; public c

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

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