通讯簿管理系统.doc_第1页
通讯簿管理系统.doc_第2页
通讯簿管理系统.doc_第3页
通讯簿管理系统.doc_第4页
通讯簿管理系统.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长 春 大 学 课程设计纸1 引 言随着科学技术的发展,各种电子产品的使用逐步增加,人们交际的不断扩大,需要存储的信息越来越多,以往的传统方式无法适应人们的需求。为此人们设计了电子通讯簿来存储信息。电子通讯簿的使用可以方便与亲朋好友联系,每个人都可以用于记录亲朋好友联系方式,用计算机软件来实现电子通讯录,不仅可以节省纸张,而且有长期保存的优势,可以随时更新随地查看信息。当今时代是飞速发展的信息时代,在各行各业中都离不开信息处理,计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大提高了其安全性。通讯簿已成为人们社会生活中不可或缺的一部分,对于每个人来说,大量的电话号、传真号等复杂信息难于通过传统的方法进行记录;对于每个人来说,大量繁多的联系方式使他们感到杂乱无章、不知所需。结构化生命周期开发方法严格区分了开发阶段,非常重视文档工作,对于开发过程中出现的问题可以得到及时的纠正,避免出现混乱状态。但是,该方法不可避免地出现开发周期过长、系统预算超支的情况,而且在开发过程中,用户的需求一旦发生变化,系统将很难做出调整。应用这种开发方法达到充分利用企业现有资源,提高系统开发水平和应用效果的目的;系统应符合新闻发布的新闻管理、用户管理、业务管理、实用工具及系统维护的要求,满足新闻管理相关人员日常使用的需要,并达到操作过程中直观、方便、实用、安全的特点;系统应采用模块化程序设计的方法,既便于系统功能的各种组合和修改,又便于未参与项目设计的人员进行系统维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、修改、删除及备份数据等操作。本次设计首先调查系统的需求并进行分析整理,用文字与图形工具相结合的方法,描述了系统的功能需求,以防止与用户沟通时产生理解上的二义性。然后在系统需求分析的基础上进行了系统模块的划分及模块层次关系的确定,对每个模块功能进行了详细的论述,并介绍了数据库的设计过程;接下来对系统进行详细设计,包括向各个界面添加组件及添加代码,并进行单元测试;最后对系统进行集成测试并调试。2 需求分析2.1任务概述使用JSP和JavaBean及数据库相结合,编写一个通讯簙系统。这个系统提供用户查询他人联系方式的平台。未注册的用户可以注册成为系统用户,已注册用户可以通过登录系统进入通讯簿管理系统。在系统中用户可以选择查询其他用户的信息、修改自己的基本信息。管理员通过登录进入通讯簿管理系统修改用户和本人信息、查询用户、添加用户、删除用户。2.2设计目的(1)掌握JSP指令元素、JSP动作标记、JSP内置对象、数据库连接的用法。(2)学会使用JSP语言实现通讯簿管理系统具体功能模块的编程方法,学会使用流程图设计开发具体环境。(3)提供了一个用户查询他人联系方式的平台。进入系统的用户可以根据查询方式选择要查询的内容。2.3系统功能通讯簿管理系统要实现用户操作、管理员操作功能模块。用户操作模块中注册登录可以使新用户通过注册,老用户可以直接登录、进入并使用通讯簿管理系统;进入通讯簿管理系统可以查询用户、修改个人资料;管理员操作模块可以修改用户和本人信息、查询用户、添加用户、删除用户;退出通讯簿管理系统是用来处理用户和管理员的离开动作。2.4详细功能2.4.1 用户对功能的需求(1)用户可以登录获取用户权限。(2)注册。注册信息包括用户名、密码、性别、年龄、联系电话、电子邮件、地址信息。(3)修改本人的信息。本人信息包括用户名、密码、性别、年龄、联系电话、电子邮件、地址。进入修改界面之后用户的基本信息会被从数据库中调出而进行修改,这些修改的信息会存入数据库,保证自己信息的正确性,及时的更新便于他人的联系(4)查询用户。可以根据id号、用户名、性别、年龄、联系电话、电子邮件、地址等查询类型输入查询内容来查询用户的信息。(5)退出通讯簿管理系统。2.4.2 管理员对功能的需求(1)管理员可以登录获取管理员权限。(2)修改所有用户和本人的信息。用户和本人信息包括用户名、密码、性别、年龄、联系电话、电子邮件、地址。(3)查询用户。可以根据id号、用户名、性别、年龄、联系电话、电子邮件、地址等查询类型输入查询内容来查询用户的信息。(4)添加新用户。用户信息包括用户名、密码、性别、年龄、联系电话、电子邮件、地址。(5)删除不合法用户。(6)退出通讯簿管理系统。3 系统总体设计3.1系统流程分析用户登录之后,进入用户操作界面,进行查询用户、修改个人信息、退出的操作。管理员登录之后,进入管理员操作界面,进行修改用户和本人信息、查询用户、添加用户、删除用户、退出的操作。如图3-1所示:图3-1 通讯簙系统流程图3.2数据库的设计本系统采用数据库Microsoft Office Access 2003建立用户信息数据。数据库表的结构设计是应用软件中的关键部分。通讯簿管理系统中用户需要登录、注册才可以进行用户操作的部分,这些信息需要存储在一个数据库中建立数据表,在数据库中建立数据库users,用户信息数据库用来存储新用户注册的信息,以便于用户对自己的信息进行修改等操作,更新信息。数据库中user表的设计如图3-2所示:图3-2用户信息数据设计3.3界面设计3.3.1系统登录界面 用户和管理员登录,登录时填写用户名和密码,服务器将用户填写的信息与数据库比较如果相同,用户进入用户操作的界面,如果不相同,则要从新填写,用户登录后才可以进行查询其他用户和修改个人信息,便于网站管理。点击“注册新用户”就可进行注册,用户注册是为了保证用户在本网站的安全性,注册后服务器将这些信息送至数据库保存,便于下次登录时进行验证。登录界面设计如图3-3所示:图3-3 系统登录设计界面3.3.2修改个人信息和添加用户用户和管理修改个人信息、管理员修改用户信息和添加用户都需要修改或者添加姓名,密码、性别、年龄、联系电话、电子邮件、地址等信息。及时更新信息保持信息的正确性。修改个人信息和添加用户设计界面如图3-4所示:图3-4 修改个人信息和添加用户设计界面3.3.3查询用户用户查询用户的时候需要根据id号、用户名、性别、年龄、联系电话、电子邮件、地址等查询类型输入查询内容来查询用户的信息,查询到用户便于修改用户的信息或者删除用户,快捷简单。查询用户设计界面如图3-5所示:图3-5 查询用户设计界面4 系统详细设计4.1DBBean类中的代码private String driverStr = sun.jdbc.odbc.JdbcOdbcDriver;private String connStr = jdbc:odbc:mydbsource;private Connection conn = null;private Statement stmt = null;try Class.forName(driverStr); catch(ClassNotFoundException ex) System.out.println(ex.getMessage();这段代码是Class类通过调用它的静态方法forName加载sun,jdbc,odbc包中的JdbcOdbcDriver类建立JDBC-ODBC桥接器。建立桥接器是可能发生的异常,必须捕获异常,建立桥接器的代码就是用改代码来实现的try conn = DriverManager.getConnection(connStr); stmt = conn.createStatement();rs = stmt.executeQuery(sql); catch(SQLException ex) System.out.println(ex.getMessage();这段代码是和ODBC数据源指定的数据库建立连接时处理SQLException异常的代码,conn = DriverManager.getConnection(connStr);是使用java.sql包中的Connection类声明一个对象,然后再使用类DirverManager调用它的静态方法getConnection创建这个连接对象,完成数据库的连接。数据库连接好之后就可以通过SQL语句和该数据源所指定的数据库中的表进行查询、修改、添加等交互信息。4.2用户登录判断这段代码是用户输入用户名和密码点击“登录”,服务器将用户填写的信息与数据库的进行比较,用户或者密码是错误的,都需要在登陆界面上重新填写,才能进行登录。4.3分页显示记录if(rsTmp.next()totalrecord = rsTmp.getInt(mycount);if(totalrecord % size =0) totalPage = totalrecord / size; else totalPage = (int) Math.floor( totalrecord / size ) + 1; 这段代码是分页显示记录的代码,前面的代码已经定义每页显示的记录有8条,显示数据库中所有注册的要分页显示才能显示完!如果记录数是页数的整数倍,那么页数就是记录数除页数即:otalPage = totalrecord / size; 如果记录数不是页数的整数倍,那么页数就是记录数除页数整体加1即:totalPage = (int) Math.floor( totalrecord / size ) + 1;用ifelse即可完成页数的显示。4.4处理输入页码异常catch(NumberFormatException e) p = 1;if(p totalPage) p = totalPage;if(rs.next()out.println(printPage(rs,p,size);这段代码就是捕获用户从浏览器地址拦直接输入非数字信息而引出的异常,如果浏览器地址拦直接输入非数字内容小于1,显示的记录直接填转到第一页,如果浏览器地址拦直接输入非数字内容大于1,显示的记录直接填转到左后一页,即显示完所有记录的页数。4.5处理中文乱码 String username=request.getParameter(username);username=new String(username.getBytes(8859_1);String password=request.getParameter(password);password=new String(password.getBytes(8859_1);这段代码是用户和管理员登录,获取用户名和密码,将获得的用户名和密码进行内码转换,防止中文乱码问题,导致用户和管理员登录不进去。5 运行结果5.1用户操作界面用户查询其他用户、修改个人资料、退出都在这个界面中进行,只要点击“查询用户”、“修改个人资料”左边的模块都会改变,从而进行操作。如图5-1所示:图5-1 用户查询信息结果界面5.2管理员操作界面管理员添加用户就点击“添加用户”按照左边的内容进行添加;删除用户点击“删除用户”出现“是否删除”然后选择要删除的用户,点击下面“删除”就可以删除要删除的用户。如图5-2所示:图5-2 管理员添加用户、删除用户结果界面管理员如果选择修改用户的信息,点击用户的id号,即可出现“修改用户”的表单,从而进行用户或者本人的信息的修改。如图5-3所示:图5-3 管理员修改用户信息结果界面5.3软件测试软件测试时,需要成功安装myeclipse和服务器:Tomcat 6.0软件,另外需要正确配置环境变量,才能正确运行。系统的主要功能都已实现,整个系统可以正常运行 。6 总 结通过本学期对Java语言 JSP程序设计的学习,我对JSP网页设计有更深的了解。在这学期中学习到了许多以前没有学好的知识。此次通讯簿管理系统的设计和实现,使我学习和使用了JSP技术。学习并实践了网页制作、Web服务器安装、数据库操作、程序设计等多种实用技术,完成了一个简单的通讯簿管理系统系统。通讯簿管理系统完成了用户和管理员的操作。未注册的用户可以注册成为系统用户,已注册用户可以通过登录系统进入通讯簙系统。在系统中用户可以选择查询其他用户的信息、修改自己的基本信息。管理员通过登录进入通讯簙系统修改用户和本人信息、查询用户、添加用户、删除用户。用Microsoft Office Access 2003数据库来实现数据库的构造,存储用户信息。用JavaBean实现数据库的连接操作,将其页面所有公用的内容放在DBBean类中,方便其他页面的调用。设计用户注册将自己的信息发布,便于其他人的查找,也便于自己登录查找其他人的信息。设计管理员登录界面,方便管理员直接再浏览器上进行操作,对用户进行管理,对系统进行维护。这次节课作业的完成,对整个学期的内容进行了比较习用的复习,将所有的知识点都串联在一起,对自己学习网页设计有了更大的提高。经过四周的Java Web项目实践与代码编写,基本完成了通讯簿管理系统的设计与实现。在这个系统中,可实现由计算机代替人工执行一系列诸如新闻添加、新闻删除等操作,还可以对系统进行必要的维护操作,这样就使管理人员从繁重的工作中解脱出来。在项目实践过程中,我考虑到了页面的简洁、美观性和实用性,使系统简单、清晰,便于操作,因此本系统具有良好的操作性和维护性。本次设计的数据库应用系统,可能在实际应用中有些功能不到位。在今后将进一步完善,将Web系统的功能做的更全面,更完美,更强大。我将不断提高自己,争取今后在编制程序时,能编写出有个性且应用性较强的数据库管理系统。总之,本次项目实践是对自己以前所学的知识进行系统的综合升华,使自己收获匪浅。在本次毕业设计过程中,在老师的耐心指导及同学们帮助下,基本上完成了预定目标。参考文献1赛奎春. JSP工程应用与项目实践. 机械工业出版社.20052唐爱国杭志. Web 2.0动态网站开发JSP技术详解与应用实践. 清华大学出版社.20093刘中兵,陈艳燕,程琳梅. Web 2.0动态网站开发 : JSP技术与应用清华大学出版社. 2009 4邓子云. JSP网络编程从基础到实践. 电子工业出版社. 2009 5石志国. JSP网络开发详解. 电子工业出版社. 2007 6王黎. JSP+Dreamweaver CS4+CSS+Ajax动态网站开发典型案例. 清华大学出版社. 2010 7Gary Bollinger著. JSP程序设计指南. 清华大学出版社. 2003 8马斗.专家门诊JSP开发答疑200问.人民邮电出版社. 2005 9中国IT培训工程篇委会. 中文实列版JSP:JSP入门与提高. 珠海出版社. 200310 Vivek Chopra等编著. JSP高级程序设计. 人民邮电出版社. 2006 11 黄梯云. 管理信息系统M. 北京:经济科学出版社, 1999年8月. 122 12 张海藩. 软件工程导论M. 北京:人民邮电出版社, 2002年3月. 313913 张晓东. Delphi5 编程与开发实例M. 北京:人民邮电出版社, 1999年6月.56 14 肖永明. Delphi5 开发基础与范例M. 北京:电子工业出版社, 2000年2月.89 15 萨师煊. 数据库系统概论M. 北京:高等教育出版社, 2002年5月. 2125 16 许哲平. Delphi程序设计教程M. 北京:中国宇航出版社, 2004年9月.3032 17 东方人华. Delphi7 范例入门与提高M. 北京:人民邮电出版社, 2004年6月.18718Paul Dickinson. Delphi高级编程M. 北京:中国电力出版社, 2000年3月.455819 Patrick ONeil, Elizabeth ONeil. 数据库原理编程与性能(第二版 影印版)9. 北京:高等教育出版社, 2001年4月. 566020 Robert Culbertson, Chris Brown, Gary Cobb. RAPID TESTING. 120124 21 核心研究室,雷颖杰,陈锦辉. 精通Delphi6数据库程序设计M. 北京:中国铁道出版社,2002年7月.10111022 启明工作室. Delphi+ SQL Server数据库应用系统开发与实例M. 北京:人民邮电出版社,2005年4月.120125 附录(程序源代码)在线投票 单选投票 % String sql=select * from vote where flag = 0 and optType=0 order by id desc; ResultSet rs=dbBean.executeQuery(sql); int questionNum=0,optType,id,id1; String question,str,optContent,type; while(rs.next() /输出投票的主题 questionNum+;str=主题+questionNum+:; question=rs.getString(question); optType=rs.getInt(optType);id=rs.getInt(id); out.print(str+question+); ResultSet rs1; sql=select * from vote where flag=+id;rs1=dbBean.executeQuery(sql);out.print();/输出该主题的选项while(rs1.next() id1=rs1.getInt(id); optContent=rs1.getString(optContent); if(optType=0) type=radio; else type=checkbox; % input type= name=vote value= 投票结果单选投票结果% String sql=select * from vote order by id ; ResultSet rs=dbBean.executeQuery(sql); String id; id = request.getParameter(vote); sql=update vote set number=number+1 where id=+id; dbBean.executeQuery(sql); ResultSet rs1,rstotal; int questionNum=0,optType,id1,number,total=0; String question,str,optContent; sql=select * from vote where flag=0 and optType=0 order by id desc; rs=dbBean.executeQuery(sql); while(rs.next() questionNum+; str=主题+questionNum+:; question=rs.getString(question); optType=rs.getInt(optType);id=Integer.toString(rs.getInt(id); out.print(str+question+);sql=select * from vote where flag=+id;rstotal=dbBean.executeQuery(sql);/求得投票的总数while(rstotal.next() number=rstotal.getInt(number); total+=number;sql=select * from vote where flag=+id;rs1=dbBean.executeQuery(sql);out.print();/输出各选项的得票数while(rs1.next() id1=rs1.getInt(id); optContent=rs1.getString(optContent); number=rs1.getInt(number);% 得票数: img src = bar.gif width = height = 10 返回主页 if(submit1!=null) sql=insert into vote(flag,optType,question) values(0,+optType+,+question+);dbBean.executeUpdate(sql);sql=select * from vote order by id desc;ResultSet rs=dbBean.executeQuery(sql);id=rs.getInt(1);for(int i=1;i删除主题 删除主题 增加主题|删除主题| 查看主题 |修改主题 |返回首页 out.println(+rs.getString(optContent)+);out.println(+rs.getInt(number)+); out.println(); % 修改主题 修改主题 增加主题|删除主题| 查看主题 |修改主题 |返回首页 请输入您所要修改的主题名: % String submit,sql; int id; submit=request.getParamete

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论