1、个人电话簿信息管理系统代码行数596项目名称个人电话簿管理系统1实训目的面向对象程序设计课程设计是计算机科学与技术专业培养计划中的重要实践教学环节,旨在通过一个管理信息系统的开发,加深学生对Java语言的理解和应用,尤其是对面向对象编程思想、Java编码规范、JDBC访问数据库的理解,巩固软件工程课程的相关知识,了解软件开发的基本流程,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。2实训内容使用Eclipse为开发工具,使用MySQL为数据库服务器,基于JDBC技术,分析、设计并实现一个管理信息系统。3.需求分析3.1 需求描述登录:输入账号和密码,完成登录操作,进入主界面,显示电话
2、簿中的所有联系人姓名以及可进行的相关操作的选项。退出:登录后可进行退出操作,结束整个程序。注册:输入账户、密码和确认密码完成新用户的注册。按字典序显示所有联系人的姓名:登录成功后在主界面中以表格形式按字典序升序显示所有联系人的姓名。添加联系人:输入联系人的各项信息,完成联系人信息的添加操作,添加成功后以表格形式按字典序升序显示所有的联系人信息。删除联系人:根据联系人的主键,完成联系人的删除操作,删除成功后以表格形式按字典序升序显示剩余联系人的信息。修改联系人:输入联系人主键,显示联系人的详细信息,输入每个字段值,完成联系人信息的修改,修改成功后以表格形式按字典序升序显示所有的联系人信息。查询联
3、系人:利用模糊查询完成对联系人名称的查询操作,获得包含查询关键字的联系人姓名列表,再输入某个联系人的主键,显示该联系人的详细信息。3.2 用例描述图1用例图4.功能设计4.1 系统层次方框图 图2系统层次方框图4.2 算法设计(活动图或时序图) 1.登录功能在主界面(MainView)输入账号和密码,封装成Login对象后发后给业务层(LoginService),在业务层中组合成执行登录操作的SQL语句,再将其传递给数据库访问类(DB),由其完成数据库的查询操作。依据查询结果,如果成功则创建控制类(Controller)对象,显示欢迎信息和对用户信息进行维护的选项;如果失败,则显示提示信息并允
4、许重新输入账号和密码。 图3登录功能时序图 图4登录功能活动图2.注册功能在主界面输入数字1,表示进行注册操作。依次输入账户、密码和确认密码,当密码和确认密码不一致时,需要重新输入密码和确认密码。之后,账户和密码封装至Login对象中,传递给业务层(LoginService),由业务层组合成添加SQL语句,发送至数据库访问类(DB),完成添加操作。如果添加成功,则返回主界面,输入新注册的账户和密码进行登录;如果添加失败,则重新进行输入。 图5注册功能时序图 图6注册功能活动图3.显示所有用户信息功能登录成功及完成对用户信息增、删、改操作后,均需要进行所有用户信息的显示,由控制类(Control
5、ler)调用视图层(MainView)中的方法,在方法中再利用业务层(UserService)完成对数据库访问类(DB)的访问,获取t_directory表的所有记录。图7显示所有用户信息时序图图8显示所有用户信息活动图4.添加用户信息功能在控制类(Controller)输出的选择信息的提示下(1表示执行添加操作),利用简单工厂模式创建视图层(AddView)对象,之后回调接口方法,完成对业务层(UserService)中注册方法的调用,在该方法中向数据库访问类(DB)发送添加SQL语句。如果添加成功,则显示所有用户信息(参考显示所有用户信息功能的实现);如果添加失败,则提示重新输入。图9用户
6、信息添加时序图图10用户信息添加活动图5.查询用户信息功能在控制类(Controller)输出的选择信息的提示下(4表示执行添加操作),利用简单工厂模式创建视图层(QueryView)对象,之后回调接口方法,在方法中输入要查询的用户名,再对业务层(UserService)中查询方法执行调用,在该方法中向数据库访问类(DB)发送模糊查询SQL语句。如果查询成功,则显示查询到的用户信息(参考显示所有用户信息功能的实现);如果查询失败,则提示重新输入。图11查询用户信息时序图 图12查询用户信息活动图5.数据设计 5.1 类图设计根据分析,系统由14个类构成,分别为: 数据库访问层:DB类 数据封装
7、类:Login类、User类 业务层:Loginservice类、Userservice类 控制层:Controller类 视图层:Addview类、Deleteview类、Modifyview类、Queryview类、Mainview类、Operation类、txt类 其它:Test类1.数据库访问层DB类用于封装JDBC的操作,完成对数据库的直接访问,采用单态模式创建对象,具体内容如下所示: 图13数据库访问层类图2.数据封装类Login类和User类分别用于登录、注册操作时的数据封装和用户信息管理时的数据封装,具体内容如下图所示:图14数据封装类类图3.业务层LoginService类进
8、行登录、注册等对Login类的访问操作,UserService类进行用户信息管理的操作,两者均采用单态模式创建对象,具体内容如下图所示:图15业务层类图4.控制层Controller类用于进行系统的流程控制,具体内容如下所示 图16控制层类图5.视图层MainView类用于完成登录、注册等提示信息的显示和系统主界面的显示,具体内容如下所示: 图17MainView类图Operation接口是增、删、改、查等操作的抽象,AddView类、DeleteView类、ModifyView类和QueryView类均使用Operation接口,分别完成增、删、改、查等操作,利用简单工厂模式与Control
9、ler类建立关系,具体内容如下所示:图18视图层类图6.其它Test类是程序的主类,用于启动系统,具体内容如下: 图19Test类图5.2 数据表设计t_login表序号字段名类型长度备注1usernamevarchar20主键,不为空2passwordvarchar20不为空t_directory表序号字段名类型长度备注1idint4主键、自增、不为空2namevarchar20不为空3phonenumbervarchar20不为空4emailvarchar20无6.运行结果1.注册 程序运行后,首先显示系统的登录界面,在其中可输入账号和密码进行登录操作,或输入“1”进行账户注册。注册成功后
10、需要重新输入账号和密码进行登录。 图20注册成功如果输入的密码和确认密码不一致,则需要重新输入 图21注册失败2.登录用户可在系统首界面直接输入账号和密码进行登录,或在注册成功后再进行登录。登录成功后显示所有用户信息和系统主控制界面。图22登录3.添加输入“1”,选择添加用户信息操作。输入“0”表示返回上一级菜单。依次输入用户的姓名、性别和生日,完成添加。添加成功后,显示成功的提示信息,并显示所有用户信息和系统主控制界面。如果添加失败,则显示失败的提示信息,并提示重新输入。图23添加成功4.删除输入“2”,选择删除用户信息操作。如果输入“0”表示返回上一级菜单。输入要删除的用户的id(主键)值
11、,完成删除。删除成功后,显示成功的提示信息,并显示所有用户信息和系统主控制界面。如果删除失败,则显示删除失败的提示信息,并提示重新输入。图24删除成功5.修改输入“3”,选择修改用户信息操作。如果输入“0”表示返回上一级菜单。输入要修改的用户的id(主键)值,显示该用户的信息。再依次输入要修改的用户名、性别和生日,执行修改操作。修改成功后,显示成功的提示信息,并显示所有用户信息和系统主控制界面。如果修改失败,则显示删除失败的提示信息,并提示重新输入。图25修改成功6.查询输入“4”,选择查询用户信息操作。如果输入“0”表示返回上一级菜单。利用模糊查询完成对联系人名称的查询操作,获得包含查询关键
12、字的联系人姓名列表,再输入某个联系人的主键,显示该联系人的详细信息。图26查询成功7. 导出输入“5”,选择导出操作。如果输入“0”表示返回上一级菜单,输入其他则表示导出。图27导出成功图28导出的文本文档8.退出输入“6”,表示退出系统,结束整个程序。图29退出8. 关键代码1)按姓名升序排列public List getAllUsers() String sql = select * from t_directory ORDER BY NAME ASC; ResultSet rs = db.executeQueryNoParam(sql); List users = null; try u
13、sers = this.getList(rs); catch (SQLException e) e.printStackTrace(); finally db.close(); return users; 2)Operation接口是增、删、改、查等操作的抽象,AddView类、DeleteView类、ModifyView类、QueryView类和txt类均使用Operation接口,分别完成增、删、改、查、导出等操作,利用简单工厂模式与Controller类建立关系public class Controller public void controller() throws InputMis
14、matchException Scanner scan = new Scanner(System.in); while (true) System.out.println(请选择操作:); System.out.println(1.增加 2.删除 3.修改 4.查询 5.导出 6.退出”); int i = scan.nextInt(); UserService service = UserService.getInstance(); Operation o = null; boolean flag = true; switch (i) case 1: o = new AddView(); b
15、reak; case 2: o = new DeleteView(); break; case 3: o = new ModifyView(); break; case 4: o = new QueryView(); break; case 5: o = new txt(); break; case 6: System.out.println()ByeBye); return; default: System.out.println(请输入1-6); flag = false; if (flag) o.operation(service); public interface Operation void operation(UserService service) throws InputMismatchException;9. 实训总结 在这三周Java程序设计的实训时间里,老师针对我们本学期的学习,有针对性地对我们进行了很有价值的实训工作,从最基础的Java语句,到jdbc连接数据库进行增删改查等操作。经过了这次磨练,我又一次感受到只有付出才能有收获,成功永远是属于不懈努力的人们的。成 绩Score教师签字 日期
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1