还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
高校图书管理系统
一、需求分析
1.1系统背景分析及设计目标随着各图书馆的图书的数量不断增多和图书馆规模的不断扩大,管理这些庞大的体系非常困难的,因为图书的情况是随时改变的,因此必需对图书进行动态的管理,而这对于一个管理人员来说是一件比较复杂的事情,存储、查询、借阅是必不可少的业务为了能让___从繁重的工作中解脱出来,使___在使用一个软件以后能极其容易地对所有图书进行管理,并且准确无误,轻松自如因此__一个图书馆管理系统软件是当务之急.图书馆管理系统是一种典型的信息管理系统,使用者需要凭用户名和__才能进入图书馆管理系统;___可以对图书、用户等信息进入增加、修改、删除等操作;也可以进行借出操作和归还操作;用户可以实现多种不同方式查询本设计主要用于中小规模的图书管理,总任务是使图书管理工作规范化、系统化、程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况,大大提高图书馆图书流通率本软件的最终用户特点对系统的操作人员和管理人员的教育水平和技术专长要求不大,只要能够掌握基本的电脑知识,能够运用简单的操作,便可进行对图书及用户相关信息的处理
1.2目标用户群分析本系统的用户主要分为两方面,一方面针对学校的图书馆管理人员,使其通过图书管理系统来管理各类图书,使得图书馆的各项工作能够有序地进行,从而满足学生的需求;二是学生们能通过该系统来查询图书馆中的各类图书,来确定自已需要的书籍的借阅情况,为借阅做好准备我们分别通过对图书管理人员和学生进行__得出总的需求如下
1.借阅图书
1.1录入读者信息读者编号读者姓名读者类别
1.2录入书籍信息
1.
2.1书籍编号
1.
2.2书籍名称
1.
2.3书籍类别
1.3录入借阅信息
1.
3.1借阅信息编号
1.
3.2读者信息
1.
3.3书籍信息
2.归还图书
2.1录入读者信息
2.
1.1读者编号
2.
1.2读者姓名
2.
1.3读者类别
2.2录入书籍信息
2.
2.1书籍编号
2.
2.2书籍名称
2.
2.3书籍类别
2.3录入还书信息
2.
3.1还书信息编号
2.
3.2读者信息
2.
3.3书籍信息
1.3需求分析按照以上分析,汇总得到以下的详细需求
1.功能需求
(1)功能需求1:输入信息描述:系统应该保证能将读者与书籍的信息进行理由:以保证管理人员以后对读者及书籍的信息进行录入
(2)功能需求2:查询信息描述:系统应该对读者与书籍的信息进行访问查询理由:管理人员需要知道借书人的信息以及所借阅的图书
(3)功能需求3:修改信息描述:系统应该可以对读者的借阅资料及其所借书籍的数量名称等进行修改理由:管理人员必须要对读者与借阅的书籍变更的信息及时修改更新
(4)功能需求4:保存信息描述:系统应该能将读者与书籍的信息保存理由:以保证管理人员以后对信息进行查询
(5)功能需求5:删除读者信息描述:系统应该能够对归还书籍后的读者信息删除理由:读者归还信息后,必须对之前记录的借阅信息删除2.其他需求
(1)数据需求描述系统应该输出书籍信息、读者信息、借阅时间理由功能需求
1、功能需求
2、功能需求
3、功能需求
4、功能需求5描述系统能接受的输入用户关于哪本书的借阅、借阅日期理由功能需求
1、功能需求
2、功能需求
3、功能需求
4、功能需求5
(2)环境需求描述系统应该能够被在线访问理由在线系统应该能从网上被访问
(3)用户需求描述系统应该能够帮助用户学习如何使用该系统,包括如何从错误中恢复理由学校是一个大环境,而学生是一个大群体,管理人员是一个广泛定义的用户群,他们有可能不希望被“培训”如何使用该系统,因此,本系统应该能够让用户“边用边学”,而仅需一点外在的培训同时,新手将会觉得一系列关于如何使用系统的指导非常有用,当中间用户或者专家使用新信息的时候会觉得在线帮助比较有用
1.4数据流图
1.
4.1借阅图书读者借书过程数据流程如图1所示图1读者借书过程
1.
4.
2.归还图书读者还书过程数据流程如图2所示图2读者还书过程
1.5数据词典
(1)数据源点及汇点描述
①名称读者简要描述借书、还书、查询及登记注册有关数据流借书证;所借书本
②名称日历简要描述当日日期有关数据流年月日
(2).__逻辑词条描述
①__名借书检验__编号1简要描述检验读者身份、图书是否入库、读者还能借多少书以此判定读者是否能借书输入数据流借书证;所借书本,读者信息,图书信息,图书访问记录,日期输出数据流借书错误信息,借书信息__逻辑IF 借书证未登记入库 THEN 发出“借书错误” ELSE IF 图书未登记入库 THEN 发出“借书错误” ELSE IF 读者已借图书和现借图书多于限制数NTHEN 发出“借书错误” ELSE IF 读者已借图书中有超期 THEN 发出“借书错误” ELSE 发出“借书信息” ENDIF ENDIF ENDIF ENDIF1__名借书登记__编号2简要描述将“借书信息”登记到“图书访问记录库图书访问记录”中,完成后将书本递交读者输入数据流借书信息,日期输出数据流图书访问记录,图书__逻辑将借书信息及日期写入图书访问记录;2__名还书检验__编号3 简要描述检验图书是否图书室外借图书 输入数据流图书,图书访问记录输出数据流检验错误,还书信息 __逻辑IF 书号与数据库数据不符 THEN 发出“检验错误” ELSE 发出“还书信息” ENDIF3__名还书登记 __编号4 简要描述删除读者对该图书的借书信息如果超期给出警告及天数 输入数据流还书信息,日期 输出数据流图书访问纪录,还书成功 __逻辑IF 所还图书超期 THEN 统计超期天数生成含警告的返回信息 ELSE 删除图书访问记录库中相应的借书记录生成成功信息 ENDIF给出还书返回信息
(3).数据流名词条描述
①数据流名借书证说明用以携带读者的唯一识别标识数据流来源读者数据流去向借书检验数据流组成借书证=借书证号+姓名+__方法 借书证号=“000000001”..“999999999” 姓名=2{字母}24 __方法=4{字母}502数据流名图书说明记录图书的主要相关信息数据流来源读者数据流去向借书检验数据流组成图书=书号+书名+__+出版社 书号=“000000001”..“999999999” 书名=2{字母}24 __=2{字母}24 出版社=2{字母}243数据流名检验错误说明用于指示读者借书错误信息数据流来源借书检验数据流去向读者数据流组成检验错误=2{字母}404数据流名借书信息说明用于传递读者号和图书号数据流来源借书检验数据流去向借书登记数据流组成借书信息=借书证号+书号5数据流名日期说明提供当前日期信息数据流来源日历数据流去向借书检验,借书登记数据流组成日期=年+月+日 年=“0000”..“9999” 月=“01”..“12” 日=“01”..“31”6数据流名图书访问记录说明用于记录读者借书信息数据流来源图书访问记录库,借书登记数据流去向借书检验数据流组成图书访问记录=书号+借阅证号+借书日期 借书日期=日期7数据流名读者信息说明用于记录登记入库的读者信息数据流来源读者库数据流去向借书检验数据流组成读者信息=借书证号+姓名+__方法8数据流名图书信息说明用于记录登记入库的图书信息数据流来源图书库数据流去向借书检验数据流组成图书信息=书号+书名+__+出版社+__+摘要+状态9数据流名还书信息说明用于传递图书书号数据流来源还书检验数据流去向还书登记数据流组成还书信息=书号10数据流名还书成功说明用于通知还书成功数据流来源还书登记数据流去向读者数据流组成还书成功=2{字母}10数据文件词条描述(前面已描述)
(4).数据文件词条描述
①数据文件名读者库简述存放读者信息输入数据无输出数据读者信息数据文件组成读者库由“读者信息”组成2数据文件名图书库简述存放图书信息输入数据无输出数据图书信息数据文件组成图书库由“图书信息”组成3数据文件名图书访问记录库简述存放图书访问记录信息输入数据图书访问记录输出数据图书访问记录数据文件组成图书访问记录库由“图书访问记录”组成
二、概念结构设计
2.1系统功能分析系统__的总体任务是实现各种信息的系统化、规范化和自动化系统功能分析是在系统__的总体任务的基础上完成本设计中的图书馆管理信息系统需要完成功能主要有
1.有关读者种类标准的制定、种类信息的输入,包括种类编号、种类名称、借书数量、借书期限等
2.读者种类信息的修改、查询等
3.读者基本信息的输入,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、__号码、办证日期等
4.读者基本信息的查询、修改,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、__号码、办证日期等
5.书籍信息的输入,包括书籍编号、书籍名称、书籍类别、__姓名、出版社名称、出版日期、登记日期等
6.书籍信息的查询、修改,包括书籍编号、书籍名称、书籍类别、__姓名、出版社名称、出版日期、登记日期等
7.借书信息的输入,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等
8.借书信息的查询、修改,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等
9.还书信息的输入,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等
10.还书信息查询和修改,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等
2.2系统功能模块设计对上述各项功能进行集中、模块划分,按照结构化程序设计的要求,得到如图3所示的系统功能模块图图3系统功能模块图
2.3E-R图通过分析系统功能模块图,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系本实例根据上面的设计规划出的实体有读者类别信息实体、读者信息实体、书籍类别信息实体、书籍信息实体、借阅信息实体各个实体具体的描述E-R图如下读者类别信息实体E-R图如图4所示�读者类别信息实体�种类编号种类名称借书期限借书数量图4读者类别信息实体E-R图读者信息实体E-R图如图5所示�读者信息实体�读者姓名�读者编号�读者类别�办证日期�图5读者信息实体E-R图书籍类别信息实体E-R图如图6所示�书籍类别信息实体�类别姓名�类别编号�关键词备注信息图6书籍类别信息实体E-R图书籍信息实体E-R图如图7所示�图书信息实体�图书编号图书类别作者出版社图书名称�图7书籍信息实体E-R图___信息实体E-R图如图8所示�管理员信息实体�姓名编号密码图8___信息实体E-R借阅信息实体E-R图如图9所示�借阅信息实体�借阅信息编号读者信息图书信息借书日期图9借阅信息实体E-R实体之间相互关系的E-R图如图10所示��读者�管理员�图书借还借出�管理�读者编号读者姓名读者类别办证日期图书编号图书类别书名出版社账号作者读者信息管理员姓名密码借阅日期借阅信息编号图书信息图10关系E-R图
三、逻辑结构设计
3.1设计表
1.图书信息表属性名数据类型长度允许空备注图书编号Char20N唯一书名Char50N__Char30N__MoneyY出版社Char50Y出版日期Char10Y是否借出Char5N流水号Char10N2.读者信息表属性名数据类型长度允许空备注读者编号Char10N唯一姓名Char50N办证日期DatetimeN__方式int11N流水号Char10N
2.___信息表属性名数据类型长度允许空备注姓名Char30N唯一__Char10N备注Char100Y
3.借阅图书信息表属性名数据类型长度允许空备注学号Char10N唯一书名Char50N借书日期DatetimeN应还日期DatetimeN归还标记Char5N流水号Char10N
3.2转换步骤
1.由关系E-R图可以得到___与读者是1n的关系,通过对关系的描述,可以得到读者的属性包括:读者姓名、读者编号、读者类别、办证日期,___的属性包括:___姓名、账号、__
2.由关系E-R图可以得到___与图书是1n的关系,通过对关系的描述,可以得到图书的属性包括:书名、图书编号、图书类别、__、出版社,___的属性包括:___姓名、账号、__
3.由关系E-R图可以得到读者与图书是m n的关系,通过对关系的描述,可以得到读者的属性包括:读者姓名、读者编号、读者类别、办证日期,图书的属性包括:书名、图书编号、图书类别、__、出版社
3.3理论依据
1.一个1:1__可以转换为一个__的关系模式,也可以与任意一端对应的关系模式合并如果转换为一个__的关系模式,则与该关系相连的各实体的码以及__本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和__本身的属性
2.一个1n的__可以转换为一个__的关系模式,也可以与n端对应实体的关系模式合并如果转换为一个__的关系模式,则与该__相连的各实体的码以及__本身的属性均转换为关系的属性,而关系的码为n端实体的码
3.一个m:n的__转换为一个关系模式与该__相连的各实体的码以及__本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分
3.4关系模型
1.读者(读者编号、读者姓名、读者类别、办证日期)
2.图书(图书编号、书名、图书类别、__、出版社)
3.借还(借阅信息编号、读者编号、图书编号、借阅日期)
4.___(___姓名、账号、__)
四、数据库实施
4.1程序部分编码
4.
1.1连接数据库该系统是通过PowerDesigner和SQLserver2008共同制作完成的由SQLserver设计完数据库book后,将book添加到ODBC数据源中在PowerDesigne中database中的ODBC中新建book_profile,连接数据源book,即完成了PowerDesigner和数据库的连接并通过以下代码实现数据源的连接SQLCA.DBMS=ODBCSQLCA.AutoCommit=FalseSQLCA.DBParm=ConnectString=DSN=book;UID=zhuzi;PWD=123connectusingsqlca;ifsqlca.sqlcode0thenmessagebox错误数据库连接错误,请检查后重试!stopsign!returnendifopenw_splash
4.
1.2___登录界面___登陆后可以实现书库管理,读者管理,与系统管理,界面如下完成代码如下stringidgetnamefftimed_dated_date=nowff=stringd_dateid=trimsle_no.textgetname=trimsle_name.textifid=orid=thenMessageBox系统提示请输入读者证号!returnendif//__不能为空ifgetname=orgetname=thenMessageBox系统提示请输入姓名!returnendif//读者登陆selectname_noname_nameinto:ls_no:ls_namefromreadnamewherename_no=:id;ifsqlca.sqlcode0thenmessagebox系统提示无此读者!sle_no.text=sle_name.text=sle_no.setfocusreturnendififgetnametrimls_namethenmessagebox警告姓名错误!sle_name.text=sle_name.setfocusreturnendifmessageboxWelcome!欢迎你的到来,+ls_name+!+现在是:+ffw___in.title=图书馆管理系统---当前读者+ls_namename=ls_nameclosew_ptlogin
4.
1.3主程序界面系统主界面包括如下功能
(1)系统处理系统初始化,读者登录,___登陆,退出
(2)借还图书借阅图书,当前借阅,还书处理
(3)书库操作书库管理,书库列表,查找图书
(4)读者操作读者管理,读者列表,读者查询
(5)用户管理系统用户管理,系统设置
(6)帮助关于,帮助文件系统初始化后,相当于当前登录到系统中的用户既不是___也不是读者,所以只能实现查看图书以及查询读者的功能初始化通过以下代码实现w___in.title=图书馆管理系统name=0messagebox提示系统初始化成功!其它功能以下详细介绍
4.
1.4借阅图书上图为借阅图书截图,该模块可以实现以下功能首先在输入栏中输入想要借的书籍,__查询即可获得,然后__“借出”即可借阅一个读者最多可借五本书其中,查询书籍的代码是通过书名查询的,实现代码如下stringlookforconditionlookforcondition=book_name+=++sle_
1.text+dw_
1.setfilterlookforconditionfilterdw_1ifdw_
1.retrieve=0thenmessagebox提示图书馆没有此书!借书功能通过以下代码实现stringaa1a2a3a4a5intb=0integerc=0a=trimsle_
1.text//a为要借的书selectbook1book2book3book4book5into:a1:a2:a3:a4:a5fromnamebookwherename=:name;//a1a2a3a4a5为已经借的书ifa1thenc=c+1ifa2thenc=c+1ifa3thenc=c+1ifa4thenc=c+1ifa5thenc=c+1ifc=5thenmessagebox您所借的书不能超过五本!b=1gotoaaelseifa=a1ora=a2ora=a3ora=a4ora=a5thenmessagebox您已经借了这本书!b=1gotoaaendifchoosecaseccase0updatenamebooksetbook1=:awherename=:name;updatebooksetbook_jname=:namewherebook_name=:a;updatebooksetflag=已借出wherebook_name=:a;case1updatenamebooksetbook2=:awherename=:name;updatebooksetbook_jname=:namewherebook_name=:a;updatebooksetflag=已借出wherebook_name=:a;case2updatenamebooksetbook3=:awherename=:name;updatebooksetbook_jname=:namewherebook_name=:a;updatebooksetflag=已借出wherebook_name=:a;case3updatenamebooksetbook4=:awherename=:name;updatebooksetbook_jname=:namewherebook_name=:a;updatebooksetflag=已借出wherebook_name=:a;case4updatenamebooksetbook5=:awherename=:name;updatebooksetbook_jname=:namewherebook_name=:a;updatebooksetflag=已借出wherebook_name=:a;endchooseaa:ifb=0thenmessagebox成功借书成功!dw_
1.retrievereturn
4.
1.
5.归还处理勾选想要归还的书名,__确认还这些书即可完成归还功能stringaifcbx_
1.checked=truethena=dw_
1.getitemstringdw_
1.getrowbook1updatenamebooksetbook1=nullwherename=:ls_name;updatebooksetbook_jname=nullwherebook_name=:a;updatebooksetflag=未借出wherebook_name=:a;endififcbx_
2.checked=truethena=dw_
1.getitemstringdw_
1.getrowbook2updatenamebooksetbook2=nullwherename=:ls_name;updatebooksetbook_jname=nullwherebook_name=:a;updatebooksetflag=未借出wherebook_name=:a;endififcbx_
3.checked=truethena=dw_
1.getitemstringdw_
1.getrowbook3updatenamebooksetbook3=nullwherename=:ls_name;updatebooksetbook_jname=nullwherebook_name=:a;updatebooksetflag=未借出wherebook_name=:a;endififcbx_
4.checked=truethena=dw_
1.getitemstringdw_
1.getrowbook4updatenamebooksetbook4=nullwherename=:ls_name;updatebooksetbook_jname=nullwherebook_name=:a;updatebooksetflag=未借出wherebook_name=:a;endififcbx_
5.checked=truethena=dw_
1.getitemstringdw_
1.getrowbook5updatenamebooksetbook5=nullwherename=:ls_name;updatebooksetbook_jname=nullwherebook_name=:a;updatebooksetflag=未借出wherebook_name=:a;endififcbx_
1.checked=trueorcbx_
2.checked=trueorcbx_
3.checked=trueorcbx_
4.checked=trueorcbx_
5.checked=truethenmessagebox提示成功!elsemessagebox提示您还没有还书!endifcloseparent
4.2程序测试
1.根据用户的要求和实现功能检测是否实现了所需的功能
2.按照功能分成模块,分成模块从“小规模”开始向“大规模”测试
3.对程序的通用性进行提高,提高软件的通用性,尽可能的设置全局变量,对字符长度的规定经可能的考虑长远
4.带入边缘数据进行大量的运行程序,找出矛盾,避免用户在使用时出现过多的错误
5.模块间的接口处尽可能的降低耦合度,对照参数数目、次序、属性或单位系统与边缘是否一致等
4.3程序调试
1.调试过程中如果出现错误,找到问题原因并把问题改正或排除掉;
2.如果找不到原因,猜想原因宁设计测试用例来验证猜想,重复,找到原因并改正
4.4安全性估计平均无故障时间,根据结果重复测试、调试,使得出错率降到最低
五、总结完成整个系统的设计,在数据库设计上利用了SQL的便利性和实用性通过本次设计,使得我对数据库以及SQL的使用上了解了很多,对语句的使用也有了一定的掌握,增强了自己数据库方面的知识本系统是一个面向小型图书管理系统,具有一定实用性的数据库信息管理系统它主要完成对图书馆的一系列管理,包括进入新书、借阅、信息查询管理本系统采用当前流行的面向对象的__工具—SQL来__数据库本系统具有相当的实用功能在查询方面,系统实现了多条件任意字段的模糊查询,同时在分类查询上实现了动态生成在管理方面,系统较好地实现了___注册和__修改等各项功能系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全是由个人设计的,许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解VC和SQL的强大功能,而且还存在着许多不足之处如
1.系统的部分借阅信息管理还不完善,没有将删除的信息进行库存管理,不便于日后的查询应该对删除了的信息进行一段时间的保留备份,以备日后查用2.没有为该系统的管理权限设置多个不同的角色,使每个角色都有其特有的功能范围,超越权限不可能操作所以,可以根据各个角色的分工不同,为其设置相应的权限以及登录方式,使得各个___之间的操作互不影响,分工更加明确,工作更加高效
3.系统的数据库内容应该更多一点,这样可以增强系统的重用性及普遍性4.系统应该能够自动进行更新自检,对借阅书本即将过期的用户进行提醒,提供更加人性化的服务这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善有很多不__的地方,有许多功能没有实现,借阅信息管理还不完善,没有将删除的信息进行库存管理,不便于日后的查询,并且没有为该系统的管理权限设置多个不同的角色,使每个角色都有其特有的功能范围,超越权限不可能操作数据库内容不多而且无法实现网络操作,细节之处不够完善由于时间仓促,一些好的设计思想还没有实现,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习只要学习就会有更多的问题,有更多的难点,但也会有更多的收获日历读者1借书检验2借书登记选定图书读者库图书库图书是否被借出图书信息检验日历读者3还书检验4还书登记图书还书返回信息还书信息图书访问记录检验错误图书馆管理信息系统借阅信息管理书籍信息管理读者信息管理用户管理__管理设置读者种类设置读者信息设置书籍种类设置书籍信息借书信息管理还书信息管理读者种类添加读者信息查询书籍类别修改读者信息修改读者信息添加书籍信息修改借书信息添加书籍信息添加书籍类别添加借书信息查询还书信息修改书籍信息查询读者种类修改借书信息修改还书信息添加还书信息查询系统管理。