版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高校图书管理系统一、需求分析1.1系统背景分析及设计目标随着各图书馆的图书的数量不断增多和图书馆规模的不断扩大,管理这些庞大的体系非常困难的,因为图书的情况是随时改变的,因此必需对图书进行动态的管理,而这对于一个管理人员来说是一件比较复杂的事情,存储、查询、借阅是必不可少的业务。为了能让管理员从繁重的工作中解脱出来,使管理员在使用一个软件以后能极其容易地对所有图书进行管理,并且准确无误,轻松自如。因此开发一个图书馆管理系统软件是当务之急.图书馆管理系统是一种典型的信息管理系统,使用者需要凭用户名和密码才能进入图书馆管理系统;管理员可以对图书、用户等信息进入增加、修改、删除等操作;也可以进行借出
2、操作和归还操作;用户可以实现多种不同方式查询。本设计主要用于中小规模的图书管理,总任务是使图书管理工作规范化、系统化、程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况,大大提高图书馆图书流通率。本软件的最终用户特点:对系统的操作人员和管理人员的教育水平和技术专长要求不大,只要能够掌握基本的电脑知识,能够运用简单的操作,便可进行对图书及用户相关信息的处理。1.2 目标用户群分析本系统的用户主要分为两方面,一方面针对学校的图书馆管理人员,使其通过图书管理系统来管理各类图书,使得图书馆的各项工作能够有序地进行,从而满足学生的需求;二是学生们能通过该系
3、统来查询图书馆中的各类图书,来确定自已需要的书籍的借阅情况,为借阅做好准备。我们分别通过对图书管理人员和学生进行咨询得出总的需求如下:1. 借阅图书1.1录入读者信息1.1.1 读者编号1.1.2 读者姓名1.1.3 读者类别1.1.4 办证日期1.2录入书籍信息1.2.1 书籍编号1.2.2 书籍名称1.2.3 书籍类别1.2.4 出版社 1.3录入借阅信息1.3.1 借阅信息编号1.3.2 读者信息1.3.3 书籍信息1.3.4 借阅日期2. 归还图书2.1录入读者信息2.1.1 读者编号2.1.2 读者姓名2.1.3 读者类别2.1.4 办证日期2.2录入书籍信息2.2.1 书籍编号2.
4、2.2 书籍名称2.2.3 书籍类别2.2.4 出版社 2.3录入还书信息2.3.1 还书信息编号2.3.2 读者信息2.3.3 书籍信息2.3.4 归还日期1.3 需求分析按照以上分析,汇总得到以下的详细需求。1. 功能需求(1)功能需求 1: 输入信息描述:系统应该保证能将读者与书籍的信息进行。理由:以保证管理人员以后对读者及书籍的信息进行录入。(2)功能需求 2: 查询信息描述:系统应该对读者与书籍的信息进行访问查询。理由:管理人员需要知道借书人的信息以及所借阅的图书。(3)功能需求 3: 修改信息描述:系统应该可以对读者的借阅资料及其所借书籍的数量名称等进行修改。理由:管理人员必须要对
5、读者与借阅的书籍变更的信息及时修改更新。(4)功能需求 4: 保存信息描述:系统应该能将读者与书籍的信息保存。理由:以保证管理人员以后对信息进行查询。(5)功能需求 5: 删除读者信息描述:系统应该能够对归还书籍后的读者信息删除。理由:读者归还信息后,必须对之前记录的借阅信息删除。2其他需求(1)数据需求描述:系统应该输出:书籍信息、读者信息、借阅时间。 理由:功能需求1、功能需求2、功能需求3、功能需求4、功能需求5。描述:系统能接受的输入:用户关于哪本书的借阅、借阅日期。理由:功能需求1、功能需求2、功能需求3、功能需求4、功能需求5。(2)环境需求描述:系统应该能够被在线访问。理由:在线
6、系统应该能从网上被访问。(3)用户需求描述:系统应该能够帮助用户学习如何使用该系统,包括如何从错误中恢复。理由:学校是一个大环境,而学生是一个大群体,管理人员是一个广泛定义的用户群,他们有可能不希望被“培训”如何使用该系统,因此,本系统应该能够让用户“边用边学”,而仅需一点外在的培训。同时,新手将会觉得一系列关于如何使用系统的指导非常有用,当中间用户或者专家使用新信息的时候会觉得在线帮助比较有用。1.4 数据流图1.4.1借阅图书 读者借书过程数据流程如图1所示。日历读者1借书检验2借书登记选定图书读者库图书库图书是否被借出图书信息检验图1 读者借书过程1.4.2. 归还图书读者还书过程数据流
7、程如图2所示。日历读者3还书检验4还书登记图书还书返回信息还书信息图书访问记录检验错误图2 读者还书过程1.5数据词典(1)数据源点及汇点描述: 名称:读者简要描述:借书、还书、查询及登记注册有关数据流:借书证;所借书本 名称:日历简要描述:当日日期有关数据流:年月日(2).加工逻辑词条描述:加工名:借书检验加工编号:1简要描述:检验读者身份、图书是否入库、读者还能借多少书以此判定读者是否能借书输入数据流:借书证;所借书本,读者信息,图书信息,图书访问记录,日期输出数据流:借书错误信息,借书信息加工逻辑:IF借书证未登记入库THEN发出“借书错误”ELSEIF图书未登记入库THEN发出“借书错
8、误”ELSEIF读者已借图书和现借图书多于限制数 THEN 发出“借书错误” ELSEIF读者已借图书中有超期THEN发出“借书错误”ELSE发出“借书信息”ENDIFENDIFENDIFENDIF 加工名:借书登记加工编号:2简要描述:将“借书信息”登记到“图书访问记录库图书访问记录”中,完成后将书本递交读者输入数据流:借书信息,日期输出数据流:图书访问记录,图书加工逻辑:将借书信息及日期写入图书访问记录; 加工名:还书检验加工编号:3 简要描述:检验图书是否图书室外借图书 输入数据流:图书,图书访问记录输出数据流:检验错误,还书信息 加工逻辑:IF书号与数据库数据不符THEN 发出“检验错
9、误” ELSE发出“还书信息”ENDIF 加工名:还书登记 加工编号:4 简要描述:删除读者对该图书的借书信息,如果超期给出警告及天数 输入数据流:还书信息,日期 输出数据流:图书访问纪录,还书成功 加工逻辑:IF所还图书超期THEN 统计超期天数 生成含警告的返回信息 ELSE删除图书访问记录库中相应的借书记录 生成成功信息ENDIF 给出还书返回信息(3).数据流名词条描述:数据流名:借书证说明:用以携带读者的唯一识别标识数据流来源:读者数据流去向:借书检验数据流组成:借书证借书证号姓名联系方法 借书证号“000000001”.“999999999” 姓名2字母24 联系方法4字母50 数
10、据流名:图书说明:记录图书的主要相关信息数据流来源:读者数据流去向:借书检验数据流组成:图书书号书名作者出版社 书号“000000001”.“999999999” 书名2字母24 作者2字母24 出版社2字母24 数据流名:检验错误说明:用于指示读者借书错误信息数据流来源:借书检验数据流去向:读者数据流组成:检验错误2字母40 数据流名:借书信息说明:用于传递读者号和图书号数据流来源:借书检验数据流去向:借书登记数据流组成:借书信息借书证号书号 数据流名:日期说明:提供当前日期信息数据流来源:日历数据流去向:借书检验,借书登记数据流组成:日期年月日年“0000”.“9999”月“01”.“12
11、”日“01”.“31” 数据流名:图书访问记录说明:用于记录读者借书信息数据流来源:图书访问记录库,借书登记数据流去向:借书检验数据流组成:图书访问记录书号借阅证号借书日期 借书日期日期 数据流名:读者信息说明:用于记录登记入库的读者信息数据流来源:读者库数据流去向:借书检验数据流组成:读者信息借书证号姓名联系方法 数据流名:图书信息说明:用于记录登记入库的图书信息数据流来源:图书库数据流去向:借书检验数据流组成:图书信息书号书名作者出版社价格摘要状态 数据流名:还书信息说明:用于传递图书书号数据流来源:还书检验数据流去向:还书登记数据流组成:还书信息书号 数据流名:还书成功说明:用于通知还书
12、成功数据流来源:还书登记数据流去向:读者数据流组成:还书成功2字母10数据文件词条描述:(前面已描述)(4).数据文件词条描述: 数据文件名:读者库简述:存放读者信息输入数据:无输出数据:读者信息数据文件组成:读者库由“读者信息”组成 数据文件名:图书库简述:存放图书信息输入数据:无输出数据:图书信息数据文件组成:图书库由“图书信息”组成 数据文件名:图书访问记录库简述:存放图书访问记录信息输入数据:图书访问记录输出数据:图书访问记录数据文件组成:图书访问记录库由“图书访问记录”组成。二、概念结构设计2.1系统功能分析系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系
13、统开发的总体任务的基础上完成。本设计中的图书馆管理信息系统需要完成功能主要有:1.有关读者种类标准的制定、种类信息的输入,包括种类编号、种类名称、借书数量、借书期限等。2.读者种类信息的修改、查询等。3.读者基本信息的输入,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、办证日期等。4.读者基本信息的查询、修改,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、办证日期等。5.书籍信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期等。6.书籍信息的查询、修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社
14、名称、出版日期、登记日期等。7.借书信息的输入,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。8.借书信息的查询、修改,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。9.还书信息的输入,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。10.还书信息查询和修改,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。 2.2 系统功能模块设计对上述各项功能进行集中、模块划分,按照结构化程序设计的要求,得到如图3所示的系统功能模块图。图书馆管理信息系统借阅信息管理书籍信息管理读者信息管理用户管理
15、密码管理设置读者种类设置读者信息设置书籍种类设置书籍信息借书信息管理还书信息管理读者种类添加读者信息查询书籍类别修改读者信息修改读者信息添加书籍信息修改借书信息添加书籍信息添加书籍类别添加借书信息查询还书信息修改书籍信息查询读者种类修改借书信息修改还书信息添加还书信息查询系统管理图3 系统功能模块图2.3 E-R图通过分析系统功能模块图,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系。本实例根据上面的设计规划出的实体有:读者类别信息实体、读者信息实体、书籍类别信息实体、书籍信息实体、借阅信息实体。各个实体具体的描述E-R图如下。读者类别信息实体E-R图如图4所示。图4 读者类别信息
16、实体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流水号Char1
17、0N2读者信息表属性名数据类型长度允许空备注读者编号Char10N唯一姓名Char50N办证日期DatetimeN联系方式int11N流水号Char10N2.管理员信息表属性名数据类型长度允许空备注姓名Char30N唯一密码Char10N备注Char100Y3.借阅图书信息表属性名数据类型长度允许空备注学号Char10N唯一书名Char50N借书日期DatetimeN应还日期DatetimeN归还标记Char5N流水号Char10N3.2 转换步骤1.由关系E-R图可以得到管理员与读者是1:n的关系,通过对关系的描述,可以得到读者的属性包括:读者姓名、读者编号、读者类别、办证日期,管理员的属性
18、包括:管理员姓名、账号、密码。2.由关系E-R图可以得到管理员与图书是1:n的关系,通过对关系的描述,可以得到图书的属性包括:书名、图书编号、图书类别、作者、出版社,管理员的属性包括:管理员姓名、账号、密码。3.由关系E-R图可以得到读者与图书是m:n的关系,通过对关系的描述,可以得到读者的属性包括:读者姓名、读者编号、读者类别、办证日期,图书的属性包括:书名、图书编号、图书类别、作者、出版社。3.3 理论依据1.一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该关系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体
19、的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。2.一个1:n的联系可以转换为一个独立的关系模式,也可以与n端对应实体的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。3.一个m:n的联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。3.4 关系模型1. 读者(读者编号、读者姓名、读者类别、办证日期)2. 图书(图书编号、书名、图书类别、作者、出版社)3.
20、借还(借阅信息编号、读者编号、图书编号、借阅日期)4. 管理员(管理员姓名、账号、密码)四、数据库实施4.1 程序部分编码4.1.1连接数据库 该系统是通过PowerDesigner和SQL server2008共同制作完成的。由SQLserver设计完数据库book后,将book添加到ODBC数据源中。在PowerDesigne中database中的ODBC中新建book_profile,连接数据源book,即完成了PowerDesigner和数据库的连接。并通过以下代码实现数据源的连接:SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = Fals
21、eSQLCA.DBParm = "ConnectString='DSN=book;UID=zhuzi;PWD=123'"connect using sqlca;if sqlca.sqlcode<>0 thenmessagebox("错误","数据库连接错误,请检查后重试!",stopsign!)returnend ifopen(w_splash)4.1.2 管理员登录界面管理员登陆后可以实现书库管理,读者管理,与系统管理,界面如下:完成代码如下: string id,getname,fftime d_dat
22、e d_date=now()ff=string(d_date)id=trim(sle_no.text)getname=trim(sle_name.text)if id="" or id='' thenMessageBox("系统提示","请输入读者证号!")returnend if/密码不能为空if getname="" or getname='' thenMessageBox("系统提示","请输入姓名!")returnend if/读者登陆
23、select name_no,name_nameinto :ls_no,:ls_namefrom readnamewhere name_no=:id;if sqlca.sqlcode<>0 then messagebox("系统提示","无此读者!")sle_no.text=""sle_name.text=""sle_no.setfocus()returnend ifif getname<>trim(ls_name) thenmessagebox("警告","姓
24、名错误!")sle_name.text=""sle_name.setfocus()returnend ifmessagebox('Welcome!','欢迎你的到来,'+ls_name+'!'+'现在是:'+ff) m_main.m_1.m_2.enabled=truem_main.m_1.m_还书处理.enabled=truem_main.m_1.m_当前借阅.enabled=truem_main.m_书库操作.m_书库管理.enabled=false m_main.m_读者操作.m_读者管理.en
25、abled=false m_main.m_用户管理.m_系统用户管理.enabled=false w_main.title='图书馆管理系统-当前读者: '+ls_namename=ls_nameclose(w_ptlogin)4.1.3主程序界面系统主界面包括如下功能:(1) 系统处理:系统初始化,读者登录,管理员登陆,退出。(2) 借还图书:借阅图书,当前借阅,还书处理。(3) 书库操作:书库管理,书库列表,查找图书。(4) 读者操作:读者管理,读者列表,读者查询。(5) 用户管理:系统用户管理,系统设置。(6) 帮助:关于,帮助文件。系统初始化后,相当于当前登录到系统中的
26、用户既不是管理员也不是读者,所以只能实现查看图书以及查询读者的功能。初始化通过以下代码实现:m_main.m_书库操作.m_书库管理.enabled=falsem_main.m_读者操作.m_读者管理.enabled=falsem_main.m_用户管理.m_系统用户管理.enabled=falsem_main.m_1.m_2.enabled=falsem_main.m_1.m_当前借阅.enabled=falsem_main.m_1.m_还书处理.enabled=falsew_main.title='图书馆管理系统'name='0'messagebox(
27、9;提示','系统初始化成功!')。其它功能以下详细介绍。4.1.4 借阅图书上图为借阅图书截图,该模块可以实现以下功能:首先在输入栏中输入想要借的书籍,点击查询即可获得,然后点击“借出”即可借阅。一个读者最多可借五本书。其中,查询书籍的代码是通过书名查询的,实现代码如下:string lookforconditionlookforcondition='book_name'+'='+"'"+sle_1.text+"'"dw_1.setfilter(lookforcondition)f
28、ilter(dw_1)if dw_1.retrieve()=0 then messagebox('提示','图书馆没有此书!')。借书功能通过以下代码实现:string a,a1,a2,a3,a4,a5int b=0integer c=0a=trim(sle_1.text) /a为要借的书select book1,book2,book3,book4,book5into :a1,:a2,:a3,:a4,:a5from namebookwhere name=:name; /a1,a2,a3,a4,a5为已经借的书if a1<>'' the
29、n c=c+1if a2<>'' then c=c+1if a3<>'' then c=c+1if a4<>'' then c=c+1if a5<>'' then c=c+1if c=5 thenmessagebox('','您所借的书不能超过五本!')b=1goto aaelseif a=a1 or a=a2 or a=a3 or a=a4 or a=a5 thenmessagebox('','您已经借了这本书!')b
30、=1 goto aaend ifchoose case ccase 0 update namebook set book1=:a where name=:name; update book set book_jname=:name where book_name=:a; update book set flag='已借出' where book_name=:a;case 1 update namebook set book2=:a where name=:name; update book set book_jname=:name where book_name=:a; upd
31、ate book set flag='已借出' where book_name=:a;case 2 update namebook set book3=:a where name=:name; update book set book_jname=:name where book_name=:a; update book set flag='已借出' where book_name=:a;case 3 update namebook set book4=:a where name=:name; update book set book_jname=:name w
32、here book_name=:a; update book set flag='已借出' where book_name=:a;case 4 update namebook set book5=:a where name=:name; update book set book_jname=:name where book_name=:a; update book set flag='已借出' where book_name=:a;end chooseaa:if b=0 then messagebox('成功','借书成功!')d
33、w_1.retrieve()return4.1.5 .归还处理勾选想要归还的书名,点击确认还这些书即可完成归还功能:string aif cbx_1.checked=true then a=dw_1.getitemstring(dw_1.getrow(),'book1') update namebook set book1=null where name=:ls_name; update book set book_jname=null where book_name=:a; update book set flag='未借出' where book_name=
34、:a;end ifif cbx_2.checked=true then a=dw_1.getitemstring(dw_1.getrow(),'book2') update namebook set book2=null where name=:ls_name; update book set book_jname=null where book_name=:a; update book set flag='未借出' where book_name=:a;end ifif cbx_3.checked=true then a=dw_1.getitemstring(
35、dw_1.getrow(),'book3') update namebook set book3=null where name=:ls_name; update book set book_jname=null where book_name=:a; update book set flag='未借出' where book_name=:a;end ifif cbx_4.checked=true then a=dw_1.getitemstring(dw_1.getrow(),'book4') update namebook set book4=
36、null where name=:ls_name; update book set book_jname=null where book_name=:a; update book set flag='未借出' where book_name=:a;end ifif cbx_5.checked=true then a=dw_1.getitemstring(dw_1.getrow(),'book5') update namebook set book5=null where name=:ls_name; update book set book_jname=null where book_name=:a; update book set flag='未借出' where book_name=:a;end ifif cbx_1.checked=true or cbx_2.checked=true or cbx_3.checked=true or cbx_4.checked=true or cbx_5.checked=true then messagebox('提示','成功!')else messagebox('提示','您还没有还书!')end ifclose(pare
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司员工团建活动总结5篇
- 2023六年级数学下册 第4单元 比例 1比例的意义和基本性质第2课时 比例的基本性质教学实录 新人教版
- 保安队长工作计划
- 2024年九年级语文上册 第六单元 第22课《出师表》教学实录 北京课改版
- 二年级语文下册 课文3 11 我是一只小虫子第1课时教学实录 新人教版
- 社会实习报告范文锦集9篇
- 细胞免疫过程
- 第3讲市场风险敏感性因子
- 2024年水电站土建安装工程承揽合同3篇
- 思想品德课程目标
- 2023-2024学年四川省成都市锦江区七年级(上)期末数学试卷(含解析)
- 消防内务条令全文文档
- 中传文史哲2023初试真题及答案
- DB4201T622-2020燃气管道设施安全保护规程
- 广东省中山市2023-2024学年九年级上学期期末考试历史试卷
- 中医诊疗设备种类目录
- 统编语文八上文言文过关小测验-《愚公移山》
- 中原文化介绍
- 分离工程课件
- 珠宝店应急预案范本
- 有限空间作业安全管理协议
评论
0/150
提交评论