还剩30页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
目录第一章绪论
1.1__背景---------------------------------------
31.2__工具的选用及介绍---------------------------
31.3本文主要内容-----------------------------------4第二章需求分析
2.1系统总体功能需求分析---------------------------
52.2总体功能结构图---------------------------------
52.3各模块分析-------------------------------------7第三章概要设计
3.1概念结构设计----------------------------------
73.2逻辑结构设计----------------------------------
113.3物理结构设计----------------------------------12第四章各模块详细设计
4.1登录模块设计----------------------------------
154.2用户管理模块设计-------------------------------
174.3读者管理模块设计-------------------------------21第五章编码
5.1编码的重要性-----------------------------------
255.2部分模块的代码----------------------------------25第六章系统的测试--------------------------------29设计总结-------------------------------------29学习心得-------------------------------------30____-------------------------------------30第一章绪论
1.1__背景书是人们的良师益友,在课余时间,读一本好书,给我们很大的精神享受,但需要一个良好的学习环境图书馆不仅藏书丰富的,而且拥有安静的阅读氛围,可以在很大程度上满足读者的需求,是我们借书,读书的好地方,所以我们在畅游书的海洋,吸收营养,获得更大的精神上的满足随着信息时代的来临,竞争日趋激烈的职场的数量不断增加,越来越多的人更注重知识和能力的积累随着各行各业信息存储量增加,书籍储存的增加,规模数量比以往任何时候都更大,个人或部门都需要使用图书馆管理系统简单而有效的方式来管理他们的书图书管理系统是典型的信息管理系统提出实现图书管信息管理,资源共享的管理目标,从而推动迈向数字化图书馆的脚步书籍的管理会浪费大量的人力物力,即使工作人员尽心尽力的工作,有时也没有很明显的效果所以往往投入了大量的人力和财力,但缺乏有效的管理效率为了缩短查询时间,减少工作人员的工作量,将工作更加科学化,规范化,达到高效,智能化管理的质量和水平,以提高信息化管理图书借阅目的的效率,应建立有效的图书馆管理系统,使图书管理规范化,制度化,程序化图书管理系统要求提高信息处理的及时性,准确性,达到高效的查询速度,减少工作人员的工作量因此图书管理系统是一件必须__的工作软件
1.2__工具的选用及介绍
1.
2.1__工具的选用本系统选用的是SQLSever2000及VisualC++
6.
01.
2.2__工具的介绍1SQLServer2000简介SQLServer是微软公司__的数据库产品,SQLServer2000被广泛使用,很多电子商务__、企业内部信息化平台等都是基于SQLServer产品上今天的商业环境要求不同类型的数据库解决方案性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键除这些核心企业品质外,SQLServer2000还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,SQLServer2000为快速__新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门SQLServer2000带有交互式调节和调试查询、从任何数据源快速__和转化数据、以及按Transact-SQL方式定义和使用函数等功能您可以从任意VisualStudio工具以可视化方式设计和编写数据库应用2Visualc++
6.0简介VisualC++
6.0由Microsoft__,它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成__环境(integrateddevelopmentenviro__entIDE)VisualC++
6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等__工具这些组件通过一个名为DeveloperStudio的组件集成为和谐__环境VisualC++
6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称界面简单,占用资源少,操作方便Visualc++
6.0,简称VC或者VC
6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序VisualC++
6.0是一个功能强大的可视化软件__工具自1993年Microsoft公司推出VisualC++
1.0后,随着其新版本的不断问世,VisualC++.ENTVisualC++
7.0),但它的应用有很大的局限性,只适用于部分系统,所以实际运用中,更多的是以VisualC++
6.0为平台
1.3本文主要内容在本文中,通过SQLSEVER2000和VisualC++
6.0进行链接,实现用户管理,图书管理系统读者管理,图书借阅等操作本文从对系统设计的需求分析开始,画出了系统之后到概念结构以及逻辑结构设计功能结构图,并对每个模块进行功能分析接下来是第2章数据库设计的需求分析,概念结构设计,逻辑结构设计及物理结构设计和第3章的详细设计之后第45章就是编码以及编码在环境中的实现及测试第二章需求分析
2.1系统的主要功能需求分析该系统将在计算机上实现图书馆的管理功能具体的实现书籍信息管理、读者信息管理、系统用户信息管理及图书借阅管理等功能对于一个图书管理系统,作为一个读者来说只要拿着自己的借阅卡就可在图书管借到自己所想的书籍作为一个___,只要读者说出他的借阅证号和所借图书编号,就能将借阅信息存入数据库中,而不需要做其他的复杂工作所以处理好图书、___、读者间的关系是最重要的图书馆最基本的功能是为读者提供数量庞大的藏书,并且通过图书馆与读者之间的借阅——归还——借阅完成图书在读者与图书馆间的流通显然,对图书借阅信息和馆藏图书信息的管理也构成了图书借阅管理系统最主要的功能图书管理系统按照实际业务需要,主要包括用户管理、读者管理、图书管理和借还书管理四个方面图书管理系统程序运行界面分为登陆界面,功能选择系统主菜单界面两个主要界面使用时应先知道___账号和__,登陆进入系统主菜单界面,里面包括用户信息管理,读者信息管理,图书信息管理,借书还书信息管理,系统简介等五个菜单选项然后可以根据操作需要__相应的模块即可实现相应的功能
2.2系统功能结构图根据分析的功能,可以画出整体的功能结构图,该结构图为以后编写软件的菜单是一个基础,以后的数据库设计就是围绕这个结构功能图做的,只要实现了系统功能结构里的所有功能,该系统可以说是做好了图2-1图书管理系统功能结构
2.3模块功能分析1.用户管理模块主要是为用户设计,一般是用户管理者的操作主要有添加用户,删除用户,修改__,查询用户,退出系统五个子功能在实际中,当有新的用户来管理该图书管理系统时则必须将其信息写入数据库,否则该用户可能无法进入该系统同理当有用户退出管理该系统时,___必须将其信息删除以减少数据内存用户的__修改在实际上也是很必须的,因为一旦用户的__丢失和泄露可能危及该数据库的安全,所以随时为用户提供修改__是很必须的查询用户功能是对各个用户进行随时的管理,对用户信息查询查看其权限也是很必须的2.读者管理模块是数据库管理系统中不能少的一部分图书馆的最终目的还是为读者服务的,所以需求分析中对读者管理设计是很重要的在实际中一个图书馆的读者是很庞大的,要管理好他们不能靠人力,当然由系统完成同对用户的管理一样,对读者的管理包括添加读者,删除读者,修改__,查询读者3.图书管理模块是图书管理系统中不可缺少的一部分添加图书后要对图书进行入库信息输入,如果不明确这些信息,很可能造成日后清查的困难,难以管理所以,以后__的或是通过其他渠道得到的图书都可以通过该模块进行录入另外对图书进行删除,修改等操作已达到规范性和灵活性的结合4.图书借阅、归还管理是本系统的核心部分,可完成图书的借与还,ixu做好这一功能的操作,以保证图书馆系统的有效运行第3章概要设计
3.1概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更__于机器、更抽象,从而更加稳定,它是整个数据库设计的关键概念结构的特点是
(1)能真实、充分地反映现实世界,包括事物和事物之间的__,能满足用户对数据处理要求,是现实世界的一个真实模型
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与式数据库设计成功的关键
(3)易于更改,当应用环境和应用要求该变时,容易对概念模型修改和扩充
(4)易于向关系、网状、层次等各种数据模型转换��1�管理员�管理图书�读者�图书�借书�n�m�n�n�1�管理读者借书日期应归还日期罚款金额最长借书日期图3-1图书管理系统总体E-R图图3-2图书及其属性图��图3-3用户管理E-R图图3-4读者管理E-R图
3.2逻辑结构设计概念结构是__任何一种数据结构的信息结构逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为基本关系模式用户(用户姓名,用户__,权限)读者(借书证号,学号,读者姓名,班级,性别,班级,读者__,到期日期)图书(图书编号,图书名,出版社,__,__,数量,条形码,类别)管理读者(用户姓名,借书证号,权限,用户__)借书信息表(借书证号,图书编号,借书日期,还书日期)还书信息表(借书证号,图书编号,应还日期,最__限,罚款金额)
3.3物理结构设计数据库在物理设备上的存储结构域存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统为一个给定的逻辑数据模型选取一个合适应用要求的物理结构的过程,就是数据库的物理结构设计数据库的物理结构,在关系数据库中主要指存取方法和存储结构;对物理结构进行评价,评价的重点是时间和空间效率如果评价结果满足原设计要求,则可进入到物理实施阶段,否则就需要重新设计或修改物理结构又时甚至要返回逻辑设计阶段修改数据模型对于不同的数据库产品所提供的物理环境、存取方法和存储结构有很大差别,能提供设计人员使用的设计变量、参数范围也很不相同,因此没有通用的物理设计方法可遵循,只能给出一般的设计内容和原则希望设计优化的物理数据库结构,使得在数据库运行的各种事物响应时间小、存储空间利用率高、事物吞吐率为此,首先对要运行的事物进行详细分析,或得选择物理数据库设计所需要的参数其次,要充分了解所用RDBMS的内部特征,特别是系统提供的存储方法和存储物理结构物理设计可分五步完成,前三步涉及到物理结构设计,后两步涉及到约束和具体的程序设计
(1)存储记录结构设计包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射
(2)确定数据存放位置可以把经常同时被访问的数据组合在一起,“记录聚簇(cluster)”技术能满足这个要求
(3)存取方法的设计存取路径分为主存取路径及辅存取路径,前者用于主键检索,后者用于辅助键检索
(4)完整性和安全性考虑设计者应在完整性、安全性、有效性和效率方面进行分析,作出权衡
(5)程序设计在逻辑数据库结构确定后,应用程序设计就应当随之开始物理数据__性的目的是消除由于物理结构的改变而引起对应用程序的修改当物理__性未得到保证时,可能会引发对程序的修改数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法表3-1用户信息表字段名数据类型长度是否为空用户名(users)Char40否用户__(password)Char20是权限PowerChar40是表3-2读者信息表字段名数据类型长度是否为空借书证号(reader_code)Char40否姓名(name)Char20是性别(___)Char10是学号(sno)Char20是班级(dept)Char20是__(passwd)Char40是到期日期(limite)Datetime8是表3-3借书信息表字段名数据类型长度是否为空借书证号(reader_code)Char40否图书编号(book_code)Char40否借书日期(borrow_date)Datetime8是应还日期(return_date)Datetime8是字段名数据类型长度是否为空图书编号(book_code)Char40否书名(book_name)Char40是__(writer)Char20是出版社(press)Char40是定价pri__Double20是条形码i__nChar40是数量numInt4是类别名typeChar20是表3-5还书信息表字段名数据类型长度是否为空借书证号(reader_code)Char40否图书编号(book_code)Char40否罚款金额(punish)Double4是应还日期(return_date)Datetime8是第四章详细设计4.1登录模块设计登录模块主要是为___设计的,是___进入系统的验证之口!因此需要___进行姓名与__的验证!当用户名与__同时正确时才能进入系统,否则提示用户名不存在或__错误!图4-1用户图将表中的users用户名及__输入即可登录图4-2登陆界面表4-1登录界面控件列表控件类型ID属性LableIDC_STATIC登录信息LableIDC_STATIC保存用户名LableIDC_STATIC保存__LableIDC_STATIC用户名LableIDC_STATIC__EDITIDC_EDIT1无EDITIDC_EDIT2无BUTTONIDOK登录BUTTONIDCAN__L退出进入系统后的主界面,在这个界面可以进行具体操作,如对系统,读者,图书,借书,还书等进行操作图4-3系统主界面接下来是退出系统的提示界面,当想退出系统时,__系统管理的“退出系统”,这样系统就会弹出如下对话框,提示是否确定退出若想退出,__“确定”,否者关闭该对话框即可图4-4退出系统界面
4.2系统用户管理模块该模块主要包括修改__,删除用户,添加用户,查询用户,退出系统,这五个功能一个很庞大的图书管理系统一般管理人员也很多,所以对这些用户进行很好的管理也是管理好图书的一部分
1、添加用户功能当有新的用户要加入时,需将其信息存入用户信息表中主要记录用户的姓名,__,和其权限该功能设计较好的地方是,当用户在设置自己的__时,为了不让用户的__记错,会有第二次确认__的输入如果两次__输入不一致,这会提醒请重新输入,并添加失败图4-5添加用户界面图4-6添加用户失败界面表4-2添加用户界面的控件列表控件类型ID属性LableIDC_STATIC用户名LableIDC_STATIC__LableIDC_STATIC确认__LableIDC_STATIC权限EDITIDC_EDIT1无EDITIDC_EDIT2无EDITIDC_EDIT3无EDITIDC_EDIT4无BUTTONIDADDUSERS确定BUTTONIDCAN__L取消、2删除用户功能如果某个用户不管理该图书管理系统了,需要将其信息从用户信息表中删除,只要输入该用户的名即可将其删除但如果用户表中不存在,系统则会提醒无此用户请重新输入图4-7删除用户界面表4-3删除用户界面的控件列表控件类型ID属性LableIDC_STATIC用户名EDITIDC_EDIT1无BUTTONIDDELUSER删除BUTTONIDCAN__L取消3修改__当用户__丢失或被盗时,必须对__进行修改,该功能更好的保护了该系统的安全修改__时需要用户知道以前的__,并且用户在修改新__时会要两次输入,两次的输入一样时才会提醒修改成功图4-8修改用户__界面表4-4修改__界面的控件列表控件类型ID属性LableIDC_STATIC用户名LableIDC_STATIC原__LableIDC_STATIC新__LableIDC_STATIC确认__EDITIDC_EDIT1无EDITIDC_EDIT2无EDITIDC_EDIT3无EDITIDC_EDIT4无BUTTONID_MODPASSWD确定BUTTONIDCAN__L返回
4、查询用户功能如果想了解某个用户的对该图书管理系统的权限,比如想了解某个___是普通的___,还是有超级权限的,可通过次功能查询图4-9查询用户界面表4-5查询用户信息界面的控件列表控件类型ID属性LableIDC_STATIC用户名LableIDC_STATIC权限EDITIDC_EDIT1无EDITIDC_EDIT2无BUTTONIDCHECKUSERS查询BUTTONIDCAN__L返回
4.3读者管理模块主要包括添加读者,删除读者,修改读者,查询读者四个功能读者管理模块也是图书管理系统的一个重要模块,因为图书馆就是为读者免费提供书籍的场所所以管理好读者,也就是管理好图书管理系统的一部分
1、添加读者功能模块设计当有新的读者要在图书馆借书时,就要将该读者的信息存入数据库中,可通过该模块的功能进行操作添加的读者信息有为读者办的借书证号,读者的姓名,性别,学号,班级和__当信息添加成功后,系统这会提示“添加成功”图4-10添加读者界面表4-6添加读者信息界面控件列表控件类型ID属性LableIDC_STATIC借书证号LableIDC_STATIC姓名LableIDC_STATIC班级LableIDC_STATIC学号LableIDC_STATIC性别LableIDC_STATIC__EDITIDC_EDIT1无EDITIDC_EDIT2无EDITIDC_EDIT3无EDITIDC_EDIT4无EDITIDC_EDIT5无EDITIDC_EDIT6无BUTTONIDADDREADER添加BUTTONIDCAN__L返回2删除读者功能模块设计当读者毕业离开学校,或有特殊情况需将其信息删除时,可通过该功能模块执行由于在图书管理系统中,读者信息中借书证号就是其主码,则只要将借书证号删除时,该读者的信息就会被删除但如果输入的借书证号不存在,系统则会提醒“无此读者,请重新输入图4-11删除读者界面表4-7删除读者界面控件列表控件类型ID属性LableIDC_STATIC借书证号EDITIDC_EDIT1无BUTTONIDDELREADER删除BUTTONIDCAN__L取消
3、修改读者功能设计这个是现实中很实际的一个问题,当读者的个人信息发生改变时,___也必须将其信息在数据库中修改过来,否则信息不吻合可能无法借书图4-12修改读者界面表4-8修改读者信息界面控件列表控件类型ID属性LableIDC_STATIC借书证号LableIDC_STATIC借书证号LableIDC_STATIC姓名LableIDC_STATIC性别LableIDC_STATIC学号LableIDC_STATIC班级LableIDC_STATIC__EDITIDC_EDIT1无EDITIDC_EDIT2无EDITIDC_EDIT3无EDITIDC_EDIT4无EDITIDC_EDIT5无EDITIDC_EDIT6无EDITIDC_EDIT7无BUTTONIDMODREADER修改BUTTONIDCAN__L取消
4、查询读者信息功能模块设计该功能设计是为___可以随时了解读者信息,查看该借书证的到期时间,这样可以很好的对借书证进行管理为了方便___的操作,则只要输入借书证号__查询即可图4-13查询读者界面表4-9查询读者信息控件列表控件类型ID属性LableIDC_STATIC借书证号LableIDC_STATIC到期日期LableIDC_STATIC姓名LableIDC_STATIC性别LableIDC_STATIC学号LableIDC_STATIC班级LableIDC_STATIC__EDITIDC_EDIT1无EDITIDC_EDIT2无EDITIDC_EDIT3无EDITIDC_EDIT4无EDITIDC_EDIT5无EDITIDC_EDIT6无EDITIDC_EDIT7无BUTTONIDCHEREADERS查询BUTTONIDCAN__L取消以上就是各个分功能的界面设计以及每个界面的控件列表第五章编码
5.1编码的重要性编写代码是系统实现的基础,写代码一般也是一向很重要的任务,他要求程序员要很好的熟悉高级语言的编程这项工作是最枯燥无味的,一般需要很好的耐心和毅力一般一个系统__后都需要很长的时间维护,这样为了以后的___能更好的了解该数据的程序,所以程序编写者一定要有很好的编程习惯,对一些重要而难理解的语句加以标志在理想情况下,一个新的项目是这样创建的它将已有的可重新利用的组件进行组合,并将新的__难度降低到最小如果要编写商业代码,应该尽量限制结构中所用到的代码行数一个最常使用的方法就是重新使用已有的代码,而不是为一个新任务编写一个和原来代码只有微小区别的新代码更少的代码意味着更低的成本修改已有的代码可能会比编写新代码更加困难系统的外部接口应该是一致的,其中包括用户接口和系统的外部接口只要原来的代码是模块化的而且编写良好,那么重复使用代码还会节省许多工作所以不能看编写代码是个很简单的工作,其实要做好它也不是很容易,尤其是在一些大的工程中,所以一定要注重代码的重要
5.2部分模块代码1//用户__修改时的算法voidCModpsDlg::O__odpasswd{//TODO:AddyourcontrolnotificationhandlercodehereCStringstr1str2str3str4;intsuc;ifm_uset.IsOpen{m_uset.Close;}else{m_uset.Open;}if!m_uset.CanUpdate{AfxMessageBox_T无法修改__!;}else{GetDlgItemTextIDC_EDIT1str1;GetDlgItemTextIDC_EDIT2str2;m_uset.MoveFirst;while!m_uset.IsEOF{m_uset.m_users.Repla__;m_uset.m_passwd.Repla__;ifm_uset.m_users==str1m_uset.m_passwd==str2//判断__与名称是否正确{suc=1;break;}else{m_uset.MoveNext;}}ifsuc==1{GetDlgItemTextIDC_EDIT3str3;GetDlgItemTextIDC_EDIT4str4;ifstr3==str4{m_uset.Edit;m_uset.m_passwd=str3;m_uset.Update;MessageBox修改成功!;}else{MessageBox两次输入的新__不一致请重新输入!;}}else{MessageBox用户名或__错误,请重新输入!;}}m_uset.Close;m_puset-Invalidate;}2//删除读者算法voidCDelredDlg::OnDelreader{//TODO:AddyourcontrolnotificationhandlercodehereCStringedit1;intsuc=0;ifm_delredet.IsOpenm_delredet.Close;m_delredet.Open;if!m_delredet.CanUpdate{AfxMessageBox_T无法完成删除功能!;}m_delredet.MoveFirst;GetDlgItemTextIDC_EDIT1edit1;while!m_delredet.IsEOF{m_delredet.m_reader_code.Repla__;ifm_delredet.m_reader_code==edit1{suc=1;break;}elsem_delredet.MoveNext;}ifsuc==1{m_delredet.Delete;MessageBox删除成功!;}else{MessageBox无此读者,请重新输入!;}m_delredet.Close;m_pdelredet-Invalidate;}第六章系统的测试1.启动计算机2.进入图书馆管理系统源程序部分,__可执行文件图标3.屏幕上出现登录画面,输入正确的用户名和__即可进入,随后可对其各项功能进行测试设计总结本系统的设计只能用于一些简单的小型图书管理系统该系统可以实现___的增加,___的删除,_____的修改,___信息查询___可以实现对读者借书证的注销,为新读者__借阅证,为读者提供修改信息和查询信息可以实现对图书的管理,如新书入库,删除图书,修改图书信息,查询图书信息还可以实现借还书,续借,查询借阅信息功能该系统不是一个完善的图书管理系统,还需要很多改进的地方首先,该系统只有___才可以登陆,读者是无法进入的作为一个图书管理系统,读者应该可以通过这个系统来借还图书等另外,这个系统针对图书的管理也有一个很大的缺陷,因为通过该系统查询图书时是通过索引号查询的,但是在一个比较大的图书馆中那么多书的索引号光靠人工记忆是无法实现的,所以如果可以通过书名,条形码等来查阅图书是最好的,而且这一个图书管理系统的美化做的不够好,有待改进学习体会我们组在两周的时间一起克服了种种困难之后完成了这个图书管理系统,虽然说比较简单,但是对于我们只是掌握了书上的知识的学生来说还是不容易的,我们在之后的学习中还是要把自己的实践能力放在第一位,在这个设计中,我明显感到自己的动手能力还是不够,以前自己在图书馆借书的时候就思考过这个系统是如何记录借书和还书的,感觉好神奇的样子,但是在自己学了数据库之后感觉还是能够实现的,我们在图书馆借书时各种学生的信息和借书的信息必须保存在图书管理系统中而在保存时必须要对对输入数据进行校验,防止一些非法数据保存到数据库中,导致以后的统计,查询出现错误我们设计的系统还是不够稳定和强大,所以我们还有很多的知识要学习,我们在学校的图书馆借了几本书,然后在课后的课余时间好好的参考了一下,看了书上面的实例然后在我们的努力下,遇到困难时就请教老师和上网查询最终经历了诸多失败,坚持和毅力最终还是打败了失败,我们努力的结果终于有了回报,当然我们也是设计出了这么个小系统,虽然简单但是还是能够满足我们的需求的在此我们感谢各位老师的指导,我在以后的学习中会更加的努力学习的____
[1].王珊萨师煊•《数据库系统概论》•北京高等教育出版社•2005
[2].郑秋生•《C/C++程序设计教程》•电子工业出版社•2010,2
[3].__温•《C语言程序设计案例教程》•清华大学出版社•2010,8
[4].马炎.图书管理系统设计[J].科技资讯2007211:255-255
[5].齐治昌谭庆平宁洪编著.《软件工程》高等教育出版社2002
[6].李艳华.谈软件测试中的bug[J].电脑知识与技术
2006261. 图书管理系统图书管理读者管理用户管理借书还书管理添加图书修改图书添加读者删除读者添加用户修改__查询用户退出系统借书操作还书操作续借操作逾期罚金查询读者删除图书查询图书修改__删除用户查询操作。