设计报告-高校图书管理系统.doc

上传人:jian****018 文档编号:9096471 上传时间:2020-04-03 格式:DOC 页数:20 大小:411.50KB
返回 下载 相关 举报
设计报告-高校图书管理系统.doc_第1页
第1页 / 共20页
设计报告-高校图书管理系统.doc_第2页
第2页 / 共20页
设计报告-高校图书管理系统.doc_第3页
第3页 / 共20页
点击查看更多>>
资源描述
高校图书管理系统一、需求分析1.1系统背景分析及设计目标随着各图书馆的图书的数量不断增多和图书馆规模的不断扩大,管理这些庞大的体系非常困难的,因为图书的情况是随时改变的,因此必需对图书进行动态的管理,而这对于一个管理人员来说是一件比较复杂的事情,存储、查询、借阅是必不可少的业务。为了能让管理员从繁重的工作中解脱出来,使管理员在使用一个软件以后能极其容易地对所有图书进行管理,并且准确无误,轻松自如。因此开发一个图书馆管理系统软件是当务之急.图书馆管理系统是一种典型的信息管理系统,使用者需要凭用户名和密码才能进入图书馆管理系统;管理员可以对图书、用户等信息进入增加、修改、删除等操作;也可以进行借出操作和归还操作;用户可以实现多种不同方式查询。本设计主要用于中小规模的图书管理,总任务是使图书管理工作规范化、系统化、程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况,大大提高图书馆图书流通率。本软件的最终用户特点:对系统的操作人员和管理人员的教育水平和技术专长要求不大,只要能够掌握基本的电脑知识,能够运用简单的操作,便可进行对图书及用户相关信息的处理。1.2 目标用户群分析本系统的用户主要分为两方面,一方面针对学校的图书馆管理人员,使其通过图书管理系统来管理各类图书,使得图书馆的各项工作能够有序地进行,从而满足学生的需求;二是学生们能通过该系统来查询图书馆中的各类图书,来确定自已需要的书籍的借阅情况,为借阅做好准备。我们分别通过对图书管理人员和学生进行咨询得出总的需求如下: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.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: 修改信息描述:系统应该可以对读者的借阅资料及其所借书籍的数量名称等进行修改。理由:管理人员必须要对读者与借阅的书籍变更的信息及时修改更新。(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借书检验2借书登记选定图书读者库图书库图书是否被借出图书信息检验图1 读者借书过程1.4.2. 归还图书读者还书过程数据流程如图2所示。日历读者3还书检验4还书登记图书还书返回信息还书信息图书访问记录检验错误图2 读者还书过程1.5数据词典(1)数据源点及汇点描述: 名称:读者简要描述:借书、还书、查询及登记注册有关数据流:借书证;所借书本 名称:日历简要描述:当日日期有关数据流:年月日(2).加工逻辑词条描述:加工名:借书检验加工编号:1简要描述:检验读者身份、图书是否入库、读者还能借多少书以此判定读者是否能借书输入数据流:借书证;所借书本,读者信息,图书信息,图书访问记录,日期输出数据流:借书错误信息,借书信息加工逻辑:IF借书证未登记入库THEN发出“借书错误”ELSEIF图书未登记入库THEN发出“借书错误”ELSEIF读者已借图书和现借图书多于限制数 THEN 发出“借书错误” ELSEIF读者已借图书中有超期THEN发出“借书错误”ELSE发出“借书信息”ENDIFENDIFENDIFENDIF 加工名:借书登记加工编号:2简要描述:将“借书信息”登记到“图书访问记录库图书访问记录”中,完成后将书本递交读者输入数据流:借书信息,日期输出数据流:图书访问记录,图书加工逻辑:将借书信息及日期写入图书访问记录; 加工名:还书检验加工编号:3 简要描述:检验图书是否图书室外借图书 输入数据流:图书,图书访问记录输出数据流:检验错误,还书信息 加工逻辑:IF书号与数据库数据不符THEN 发出“检验错误” ELSE发出“还书信息”ENDIF 加工名:还书登记 加工编号:4 简要描述:删除读者对该图书的借书信息,如果超期给出警告及天数 输入数据流:还书信息,日期 输出数据流:图书访问纪录,还书成功 加工逻辑:IF所还图书超期THEN 统计超期天数 生成含警告的返回信息 ELSE删除图书访问记录库中相应的借书记录 生成成功信息ENDIF 给出还书返回信息(3).数据流名词条描述:数据流名:借书证说明:用以携带读者的唯一识别标识数据流来源:读者数据流去向:借书检验数据流组成:借书证借书证号姓名联系方法 借书证号“000000001”.“999999999” 姓名2字母24 联系方法4字母50 数据流名:图书说明:记录图书的主要相关信息数据流来源:读者数据流去向:借书检验数据流组成:图书书号书名作者出版社 书号“000000001”.“999999999” 书名2字母24 作者2字母24 出版社2字母24 数据流名:检验错误说明:用于指示读者借书错误信息数据流来源:借书检验数据流去向:读者数据流组成:检验错误2字母40 数据流名:借书信息说明:用于传递读者号和图书号数据流来源:借书检验数据流去向:借书登记数据流组成:借书信息借书证号书号 数据流名:日期说明:提供当前日期信息数据流来源:日历数据流去向:借书检验,借书登记数据流组成:日期年月日年“0000”.“9999”月“01”.“12”日“01”.“31” 数据流名:图书访问记录说明:用于记录读者借书信息数据流来源:图书访问记录库,借书登记数据流去向:借书检验数据流组成:图书访问记录书号借阅证号借书日期 借书日期日期 数据流名:读者信息说明:用于记录登记入库的读者信息数据流来源:读者库数据流去向:借书检验数据流组成:读者信息借书证号姓名联系方法 数据流名:图书信息说明:用于记录登记入库的图书信息数据流来源:图书库数据流去向:借书检验数据流组成:图书信息书号书名作者出版社价格摘要状态 数据流名:还书信息说明:用于传递图书书号数据流来源:还书检验数据流去向:还书登记数据流组成:还书信息书号 数据流名:还书成功说明:用于通知还书成功数据流来源:还书登记数据流去向:读者数据流组成:还书成功2字母10数据文件词条描述:(前面已描述)(4).数据文件词条描述: 数据文件名:读者库简述:存放读者信息输入数据:无输出数据:读者信息数据文件组成:读者库由“读者信息”组成 数据文件名:图书库简述:存放图书信息输入数据:无输出数据:图书信息数据文件组成:图书库由“图书信息”组成 数据文件名:图书访问记录库简述:存放图书访问记录信息输入数据:图书访问记录输出数据:图书访问记录数据文件组成:图书访问记录库由“图书访问记录”组成。二、概念结构设计2.1系统功能分析系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本设计中的图书馆管理信息系统需要完成功能主要有:1.有关读者种类标准的制定、种类信息的输入,包括种类编号、种类名称、借书数量、借书期限等。2.读者种类信息的修改、查询等。3.读者基本信息的输入,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、办证日期等。4.读者基本信息的查询、修改,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、办证日期等。5.书籍信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期等。6.书籍信息的查询、修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期等。7.借书信息的输入,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。8.借书信息的查询、修改,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。9.还书信息的输入,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。10.还书信息查询和修改,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。 2.2 系统功能模块设计对上述各项功能进行集中、模块划分,按照结构化程序设计的要求,得到如图3所示的系统功能模块图。图书馆管理信息系统借阅信息管理书籍信息管理读者信息管理用户管理密码管理设置读者种类设置读者信息设置书籍种类设置书籍信息借书信息管理还书信息管理读者种类添加读者信息查询书籍类别修改读者信息修改读者信息添加书籍信息修改借书信息添加书籍信息添加书籍类别添加借书信息查询还书信息修改书籍信息查询读者种类修改借书信息修改还书信息添加还书信息查询系统管理图3 系统功能模块图2.3 E-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流水号Char10N2.管理员信息表属性名数据类型长度允许空备注姓名Char30N唯一密码Char10N备注Char100Y3.借阅图书信息表属性名数据类型长度允许空备注学号Char10N唯一书名Char50N借书日期DatetimeN应还日期DatetimeN归还标记Char5N流水号Char10N3.2 转换步骤1.由关系E-R图可以得到管理员与读者是1:n的关系,通过对关系的描述,可以得到读者的属性包括:读者姓名、读者编号、读者类别、办证日期,管理员的属性包括:管理员姓名、账号、密码。2.由关系E-R图可以得到管理员与图书是1:n的关系,通过对关系的描述,可以得到图书的属性包括:书名、图书编号、图书类别、作者、出版社,管理员的属性包括:管理员姓名、账号、密码。3.由关系E-R图可以得到读者与图书是m:n的关系,通过对关系的描述,可以得到读者的属性包括:读者姓名、读者编号、读者类别、办证日期,图书的属性包括:书名、图书编号、图书类别、作者、出版社。3.3 理论依据1.一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该关系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。2.一个1:n的联系可以转换为一个独立的关系模式,也可以与n端对应实体的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。3.一个m:n的联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。3.4 关系模型1. 读者(读者编号、读者姓名、读者类别、办证日期)2. 图书(图书编号、书名、图书类别、作者、出版社)3. 借还(借阅信息编号、读者编号、图书编号、借阅日期)4. 管理员(管理员姓名、账号、密码)四、数据库实施4.1 程序部分编码4.1.1连接数据库 该系统是通过PowerDesigner和SQL server2008共同制作完成的。由SQLserver设计完数据库book后,将book添加到ODBC数据源中。在PowerDesigne中database中的ODBC中新建book_profile,连接数据源book,即完成了PowerDesigner和数据库的连接。并通过以下代码实现数据源的连接:SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = ConnectString=DSN=book;UID=zhuzi;PWD=123connect using sqlca;if sqlca.sqlcode0 thenmessagebox(错误,数据库连接错误,请检查后重试!,stopsign!)returnend ifopen(w_splash)4.1.2 管理员登录界面管理员登陆后可以实现书库管理,读者管理,与系统管理,界面如下:完成代码如下: string id,getname,fftime d_date 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/读者登陆select name_no,name_nameinto :ls_no,:ls_namefrom readnamewhere name_no=:id;if sqlca.sqlcode0 then messagebox(系统提示,无此读者!)sle_no.text=sle_name.text=sle_no.setfocus()returnend ifif getnametrim(ls_name) thenmessagebox(警告,姓名错误!)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_读者管理.enabled=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) 帮助:关于,帮助文件。系统初始化后,相当于当前登录到系统中的用户既不是管理员也不是读者,所以只能实现查看图书以及查询读者的功能。初始化通过以下代码实现: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=0messagebox(提示,系统初始化成功!)。其它功能以下详细介绍。4.1.4 借阅图书上图为借阅图书截图,该模块可以实现以下功能:首先在输入栏中输入想要借的书籍,点击查询即可获得,然后点击“借出”即可借阅。一个读者最多可借五本书。其中,查询书籍的代码是通过书名查询的,实现代码如下:string lookforconditionlookforcondition=book_name+=+sle_1.text+dw_1.setfilter(lookforcondition)filter(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 then 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=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; update 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 where 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(成功,借书成功!)dw_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=: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(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=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(parent)4.2 程序测试1.根据用户的要求和实现功能检测是否实现了所需的功能。2.按照功能分成模块,分成模块从“小规模”开始向“大规模”测试。3.对程序的通用性进行提高,提高软件的通用性,尽可能的设置全局变量,对字符长度的规定经可能的考虑长远。4.带入边缘数据进行大量的运行程序,找出矛盾,避免用户在使用时出现过多的错误。5.模块间的接口处尽可能的降低耦合度,对照参数数目、次序、属性或单位系统与边缘是否一致等。4.3 程序调试1.调试过程中如果出现错误,找到问题原因并把问题改正或排除掉;2.如果找不到原因,猜想原因宁设计测试用例来验证猜想,重复,找到原因并改正。4.4安全性估计平均无故障时间,根据结果重复测试、调试,使得出错率降到最低。五、总结完成整个系统的设计,在数据库设计上利用了SQL的便利性和实用性。通过本次设计,使得我对数据库以及SQL的使用上了解了很多,对语句的使用也有了一定的掌握,增强了自己数据库方面的知识。本系统是一个面向小型图书管理系统,具有一定实用性的数据库信息管理系统。它主要完成对图书馆的一系列管理,包括进入新书、借阅、信息查询管理。本系统采用当前流行的面向对象的开发工具SQL来开发数据库。本系统具有相当的实用功能。在查询方面,系统实现了多条件任意字段的模糊查询,同时在分类查询上实现了动态生成。在管理方面,系统较好地实现了管理员注册和密码修改等各项功能。系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全是由个人设计的,许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解VC和SQL的强大功能,而且还存在着许多不足之处。如:1. 系统的部分借阅信息管理还不完善,没有将删除的信息进行库存管理,不便于日后的查询。应该对删除了的信息进行一段时间的保留备份,以备日后查用。2没有为该系统的管理权限设置多个不同的角色,使每个角色都有其特有的功能范围,超越权限不可能操作。所以,可以根据各个角色的分工不同,为其设置相应的权限以及登录方式,使得各个管理员之间的操作互不影响,分工更加明确,工作更加高效。3. 系统的数据库内容应该更多一点,这样可以增强系统的重用性及普遍性。4系统应该能够自动进行更新自检,对借阅书本即将过期的用户进行提醒,提供更加人性化的服务。这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善,有很多不完美的地方,有许多功能没有实现,借阅信息管理还不完善,没有将删除的信息进行库存管理,不便于日后的查询,并且没有为该系统的管理权限设置多个不同的角色,使每个角色都有其特有的功能范围,超越权限不可能操作。数据库内容不多。而且无法实现网络操作,细节之处不够完善。由于时间仓促,一些好的设计思想还没有实现,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!