资源描述
毕业设计(论)1.引言1.1课题的来源随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。对于一个图书馆来说,图书种类的繁多管理方式的低下,使管理者在资源的管理上感到有些力不从心,传统的人工管理方式不仅消耗管理者的精力,也同样的加大了管理者的开支,更重要的是工作的繁琐,工作量的巨大给管理者带来的压力使管理者在市场上的竞争失去了先机。而且传统的人工管理方式有时还会出现相关的错误,这同样的也给管理者带来了一些不必要的损失。在这样效率及其低下的管理方式下,我们应该充分利用计算机的优势,它不仅能处理人所不能处理的大量而复杂的数据而且很少会出现错误,如果将大量复杂的数据的统计与计算交给计算机来操作,这样不仅减少人力,还能在一定的程度上减少管理者的开支,减轻用户的工作强度,提高工作效率,从而使我们的管理方式迈上了一个新的台阶。1.2课题的意义在计算机日益普及的今天,若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。设计一个网上图书馆系统,读者可以进行网上查询和借阅图书,并记录读者的历史借阅图书的情况,管理员的页面的功能不仅仅可以查看读者的信息,而且可以管理读者,比如添加、删除等等的功能。有效的解决了企业在管理方面上的不足,并大大的提高了人们的工作效益。其开发主要包括后台数据库的设计和与前台用户的交互,对于前者要求建立统一完善,并且安全性高的高效数据库;而后者则需要一个友好,易操作的用户交互平台。1.3网上图书管理的作用图书信息管理系统,其主要包含图书基本信息和图书借阅系统,能进行图书信息的录入、读者登记、查询等功能。该软件设计完成后可用于所有中小型图书馆的图书信息的管理.。图书信息管理系统能够为用户提供充足的信息和快捷的查询手段.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书信息管理的效率,也是图书管理的科学化、数字化、正规化管理,的重要条件。而今,这类相关的管理系统已广泛的应用在各行各业,成为各行业提高相关管理效率的重要手段。图书信息管理系统也在日益广泛地应用于各图书馆的管理中,大大提高了图书管理的相关管理效率,其在图书管理中所起的作用是显而易见的。1.4网上图书管理系统的任务网上图书管理系统针对的用户是单个中小型图书馆或单位,藏书的种类和数量较少,读者的数量和来源受到一定的限制。相应的需求有:1能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:1) 图书信息的录入、删除及修改。2) 图书信息的关键字检索查询。3) 图书的出借、返还和资料统计。2能够对一定数量的读者进行相应的信息存储与管理,这其中包括:1) 读者信息的增加、删除及修改。 2) 读者资料的统计与查询。3能够对需要的统计结果提供列表显示输出。4能够提供一定的安全机制,提供数据信息授权访问,防止随意删改。2.需求分析图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作;图书馆管理人员的功能则包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看。2.1系统功能需求图书借阅者根据本人借书证号和密码登录系统,可以进行图书馆藏书、本人借书情况的查询和个人密码修改。图书馆工作人员有增加、修改图书借阅者借书和还书记录的权限。图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以查询、浏览、添加、删除、修改、图书和用户的基本信息。2.2系统流程图在分析阶段我们要以概括的形式表达对系统的认识,进人设计阶段以后应该把设想的系统的逻辑模型转变为物理模型。系统流程图表现的就是系统各部件之间流动的情况。系统流程图如下所示:3.数据库设计数据库是信息管理系统的核心。本系统要求数据库必需尽量减少数据的冗余,并且要保证数据的完整性。我们根据数据流图来设计数据库,良好的数据库能提高系统执行的效率, 在一定程度上给管理者带来方便。3.1 静态数据图书管理系统的静态数据包括:19第1页图书(book):图书编号(BookID);图书书名(BookName);图书作者(Author);图书出版社(Publisher);图书单价(BookPrice);图书摘要(Abstract);图书分类(Class);图书状态(BookStatus);读者(User): 读者识别号(ReaderID);读者姓名(Name);读者权限(Level);读者联系方法(Address);读者电话号码(TelephoneNumber);读者电子邮件(Email);图书借阅(borrow): 借阅图书号(BookID); 借阅者编号(UserID);借书日期(BorrowBeginDate);到期时间(BorrowEndDate);操作员权限表(Power): 记录序号(Id);权限级别(Level);用户名(Name);3.2数据流图和数据词典图书管理系统的总体功能如下:l 图书的出借;l 图书的返回;l 图书信息查询;l 图书的增删改;l 读者的增删改;l 图书管理者查询统计图书和读者信息;l 图书管理系统数据备份;l 图书管理系统数据恢复;l 图书管理者口令修改;3.2.1 图书管理员增删改图书: (1):数据流图:l 数据流名词条描述: 数据流名:管理员信息说明:用于传递图书管理员的身份信息以备验证数据流来源:图书管理员,管理员库数据流去向:身份验证数据流组成:管理员信息口令姓名口令3字符8姓名2字母24 数据流名:操作信息说明:用于传递图书管理员的操作命令数据流来源:身份验证数据流去向:增删改图书数据流组成:操作信息2字母50 数据流名:操作确认说明:用于传递增删改图书是否成功数据流来源:增删改图书数据流去向:图书管理员数据流组成:操作确认1字母503.2.2 图书管理员增删改读者 (1):数据流图:l 加工逻辑词条描述: 加工名:身份验证加工编号:简要描述:根据所读入的管理员信息,检索管理员库验证该人身份输入数据流:管理员信息,读者输出数据流:检验错误,操作确认加工逻辑:根据所读入的管理员信息,检索管理员库验证该人身份 加工名:增删改图书加工编号:10简要描述:根据所读入的操作信息,增删改读者库里的内容输入数据流:操作信息,读者信息输出数据流:操作确认,读者信息加工逻辑:根据所读入的操作信息,增删改读者库里的内容3.2.3 图书管理者口令修改: (1):数据流图:l 加工逻辑词条描述: 加工名:身份验证加工编号:17简要描述:根据所读入的管理员信息,检索管理员库验证该人身份输入数据流:管理员信息输出数据流:检验错误,操作确认加工逻辑:根据所读入的管理员信息,检索管理员库验证该人身份 加工名:口令修改加工编号:18简要描述:根据所读入的操作信息,修改管理员库里的口令输入数据流:操作信息,管理员信息输出数据流:操作确认加工逻辑:根据所读入的操作信息,修改管理员库里的口令4.系统总体设计4.1系统功能设计(1)用户登录要求用户选择自己所在的用户组,然后输入正确的用户名和密码。(2)系统设置包括系统初始化,用户类型设置,用户权限设置,图书类型设置,会员类型设置,借书期限设置。(3)基本资料管理包括图书信息管理,用户信息管理,借阅到期管理,借阅历史管理。(4)图书流动管理包括新书入库,图书借出,图书归还。(5)报表打印图书超期打印,图书信息打印,用户信息打印。(6)系统数据管理包括数据导入,数据导出,数据库备份,数据库还原。(7)借书量超出警报当用户的借阅书籍数大于权限所能借阅数上限或有图书尚未归还时,系统会警报管理员让其先归还图书。(8)系统管理包括修改工作人员和用户密码。4.2 系统功能结构图5.系统详细设计5.1 界面设计(1)后台管理员登陆页面:(2)管理员登陆后页面:5.2编码设计5.2.1 超级管理员页面代码编辑一个UserContro命名为AdminLeft.ascx。以便于在管理员登陆后的界面中做为左侧菜单使用。并使其连接在framemain 中显示。其代码如下:<table id="table1" height="100%" cellspacing="0" cellpadding="0" width="80" border="0" bgcolor="#f1f0f4"><tr><td valign="top" style="width: 99px"><asp:treeview id="treeview1" runat="server" font-size="10pt" > <nodes> <asp:treenode text="用户管理" value="用户管理"> <asp:treenode text="添加用户" value="添加用户" navigateurl="/usersmanage/useradd.aspx" target="framemain"></asp:treenode> <asp:treenode text="用户修改" value="用户修改" navigateurl="/UsersManage/UserLists.aspx" target="framemain"></asp:treenode> </asp:treenode> <asp:treenode text="书刊管理" value="书刊管理"> <asp:treenode text="添加书刊" value="添加书刊" navigateurl="/bookmanage/bookadd.aspx" target="framemain"></asp:treenode> <asp:treenode text="书刊修改" value="书刊修改" navigateurl="/bookmanage/booklists.aspx" target="framemain"></asp:treenode> </asp:treenode> <asp:treenode text="查询修改" value="查询修改"> <asp:treenode text="修改密码" value="修改密码" navigateurl="/modifypassword.aspx" target="framemain"></asp:treenode> </asp:treenode> </nodes></asp:treeview></td></tr></table>5.2.2 用户增加页面代码 在管理员增加用户时单击按钮增加,此时获取各个TextBox中的值,并将其添加至数据库中。点击返回按钮时则返回上一页面。 其代码如下:protected void imgBtnAdd_Click(object sender, ImageClickEventArgs e) if (Page.IsValid) Users user = new Users();/创建Users对象user user.UserID = txtUserID.Text.Trim(); if (!user.CheckUser(user.UserID)/使用CheckUser方法验证用户是否存在 /为user对象属性赋值 user.UserPassword = txtPassword.Text.Trim(); user.UserPower = Convert.ToInt16(ddlUserPower.SelectedValue); user.UserName = txtUserName.Text.Trim(); user.UserSex = Convert.ToBoolean(rblUserSex.SelectedValue); user.UserDepart = txtUserDepart.Text.Trim(); user.UserTelephone = txtUserTelephone.Text.Trim(); user.UserEMail = txtUserEMail.Text.Trim(); if (user.InsertByProc()/要插入用户不存在,使用InsertByProc方法执行插入用户操作 lblMessage.Text = "成功添加用户!" txtUserID.Text = "" txtUserName.Text = "" txtUserDepart.Text = "" txtUserTelephone.Text = "" txtUserEMail.Text = "" else/插入失败,给出提示 lblMessage.Text = "添加用户失败!" else/用户存在,给出提示 lblMessage.Text = "数据库中存在具有该编号的用户,请重新输入!" protected void imgBtnBack_Click(object sender, ImageClickEventArgs e) Response.Write("<script language=javascript>window.history.back()</script>"); 5.2.3 图书查询页面代码.用户选择查询所需满足的条件(作者、书名、出版社、出版时间)并输入查询关键字(作者、书名、出版社);点击提交按钮开始查询。其代码如下:protected void confirm_Click(object sender, ImageClickEventArgs e) this.Session"Type" = ddlType.SelectedValue; this.Session"Content" = txtContent.Text.Trim(); this.Session"Mode" = int.Parse(rblMode.SelectedValue); Response.Redirect("BookSearchResult.aspx");/转向查询结果页面6.软件测试6.1软件测试的目标软件测试是为了发现程序中的错误面执行程序的过程,这与成功的测试是没有发现软件错误的测试是完全相反的测试软件是为了发现错误,所以在设计测试方案上就会力求设计出最能暴露程序错误的设计方案,这才是软件测试的真正目的。软件测试的目标包括以下几个方面:(1)测试是为了发现程序中的错误而执行程序的过程(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案(3)成功的测试是发现了至今为止尚为发现的错误的测试6.2软件测试方法软件的设计主要就是为了能减轻用户的负担,因此软件的测试也要追溯到用户的需求,尽量发现导致程序不能满足用户需求的那些错误。而在测试开始之前就应该制订出测试计划和寻找一个好的测试方法6.2.1单元测试(1)单元测试集中检测软件设计的最小单元模块,通常,单元测试主要使用白盒测试技术,而且对多个模块的测试可以进行并行地进行。所谓白盒测试技术是把一个程序看成是一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按照预定的要求正确的工作。(2)单元测试期间主要着重于模块接口,局部数据结构,重要的执行通路,出错处理通路和边界条件等五方面对模块进行测试。6.2.2集成测试(1)集成测试是测试和组装软件的系统化技术,主要的目标是发现与接口有关的问题。(2)由模块组装成程序时有两种方法。一种是先分别测试每个模块,再把所有模块按设计的要求放在一起结合成所要的程序,这种方法称为非渐增式测试方法。另一种方法是把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,这种方法称为渐增式测试方法。而目前在进行集成测试时普通采用渐增式测试方法。使用渐增方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略。6.3条件与限制一个更为完善的图书管理系统,应提供更为便捷与强大的信息查询功能,如相应的网络操作及服务,由于开发时间有限,该系统并未提供这一功能。对信息的保护手段仅限于设置用户级别,以及提供数据文件的查询,比较简单,全面性有待进一步完善。7.缺点和改进(1)随着信息技术的飞速发展和硬件性能的提高,在图书流动时,人工输入的方法显然有些力不从心,我们应该利用现代化的智能设备来改进这个不足之处。对于本系统来说必进的方法是接入能识别条形码的智能设备(如扫描枪等)。(2)对于数据管理来说,数据的导入和导出应该能支持多种格式或是多种数据库之间的导入导出,这样有助于数据的重复利用。(3)由于本人能力有限,一些改进方法并没有找到,不过管理员录入数据时尽量细心、仔细,可能会更少的减少错误发生。(4)由于此项目比较小,除了认真建立文档、编码阶段写详细的注释外,没有特殊的维护设计。8.总结在系统的开发过程中,让我认识到开发一个好的软件项目并不是一件很容易的事情,也不是一个人能完成的事情,一方面,软件项目的分析与设计是软件开发过程中至关重要的工作;另一方面,软件项目开发过程中开发人员与用户的沟通以及开发人员之间的相互协作是必不可少的。做一个软件项目之前,我们应该以软件工程的思想和过程来分析与设计系统,合理的分析与详细的设计会让我们在开发软件的过程中缩短开发周期,提高开发效率,降低软件项目成本,提高软件的质量等。另外,软件的最终使用者是用户,因此我们做软件的中心要以用户为标准,因此开发人员与用户之间的交流就显得至关重要。得到用户的需求之后开发人员的相互协作也是一个软件项目成败的关键所在。本系统最终完成系统相应的功能项,通过系统的测试和调试,使该系统达到了可以实际应用的阶段。本系统着重于图书的借阅、归还及图书的查询三个功能,适应大多数小中型企业使用。本系统尽管还存在着不足之处,但是相对于传统的人工管理方式,但其界面友好,操作方便,效率高和安全性好等优点依然使之有着一定的使用价值。随着图书种类的繁多,管理的复杂与烦琐,本系统仍然是图书馆管理不可缺少的信息管理软件。相信本系统的产生能给相应的企业带来管理上的便捷,系统的不足之处将会在以后继续完善,争取满足大多数用户的需求。通过开发这个系统,不仅使我掌握了系统相关的项目过程,了解了图书馆借书及归还的一些基本知识,而且巩固了我的专业知识,也使我对本专业的兴趣愈加浓厚。但是在本次毕业设计中最大的收获并不是掌握几个开发工具的使用以及开发语言的学习,而是学会了在开发软件项目时设计软件的思想以及同学之间相互帮助的精神。致谢在毕业论文即将完成之际,回顾紧张但充实的开发过程,本人在些向所有关心以及帮助过我的老师和同学致以最真诚的感谢。本篇论文虽然凝聚着自己的汗水,但却不是个人智慧的产品,没有导师的指引和赠予,没有父母和朋友的帮助和支持,我在大学的学习成长肯定会大打折扣。当我打完毕业论文的最后一个字符,涌上心头的不是长途跋涉后抵达终点的欣喜,而是源自心底的诚挚谢意。我首先要感谢我的指导老师李安裕,对我的构思以及论文的内容不厌其烦的进行多次指导和悉心指点,使我在完成论文的同时也深受启发和教育。经过李安裕老师的精心指导,我在他的身上学到了很多东西,认真的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。 再次由衷感谢答辩组的各位老师对学生的指导和教诲,我也在努力的积蓄着力量,尽自己的微薄之力回报母校的培育之情,争取使自己的人生对社会产生些许积极的价值!参考文献1.Visual C#.NET程序设计经典. 曹祖圣、吴明哲等编著. 科学出版社 . 2004年1月.2.SQL Server 2000数据库应用技术. 虞益诚编著. 中国铁道出版社. 2004年7月.3.软件工程导论. 张海藩编著. 清华大学出版社. 2003年9月.4.Visual C#.NET数据库开发经典安全解析. 王晟编著 . 清华大学出版社 . 2005年1月.5.C#入门经典(第三版).(美)沃森(Watston, K.)、(美)内格尔(Nagel, C.)等编著、 齐利波翻译 . 清华大学出版社 . 2006年7月.6.Visual C#.NET深入编程. 徐可、熊伟等编著 . 北京希望电子出版社 . 2001年9月.7.SQL Server高级开发与高级应用. 敬铮编著 . 国防工业出版社 . 2002年1月.8.数据库系统原理(第1版). 王能斌编著 . 北京电子工业出版社. 2001年6月.
展开阅读全文