经济管理学院(信息管理与信息系统)专业MIS课程设计(2015—2016学年)设计名称:图书馆管理系统────────────班级:信息管理与信息系统11402────────────姓名:──────────────────────────────────指导教师:信管教研室─────────成绩:─────────序号:─────────2015年6月29日目录摘要 (4)1 概述 (4)1.1 选题背景 (4)1.2 需求分析 (4)1.3 功能分析 (5)2 系统分析 (6)2.1 系统目标 (6)2.2 开发的可行性分析 (6)2.2.1 技术上的可行性 (6)2.2.2 经济上的可行性 (6)2.2.3 运行上的可行性 (6)2.3 业务流程分析 (6)2.4系统组织结构与功能结构分析 (7)2.5 数据流程分析 (7)2.6 数据字典 (8)3 系统设计 (9)3.1 系统分析功能分析 (9)3.2 平台设计 (10)3.3 代码设计 (10)3.4 数据库设计 (14)3.5 系统安全设计 (14)4 系统实施 (16)4.1 创建项目 (16)4.2 图书馆管理系统各页面 (16)5 系统总结 (18)参考文献 (18)图书馆管理系统摘要图书馆管理系统是采用powerbuilder作为开发工具,然后与pb自带的数据库相连接,本系统提供4个功能模块,分别是图书类别管理模块、图书借还模块、个人中心模块以及系统帮助模块。
这4个模块里又有许多子模块,例如个人中心模块中又有借书证申请与借书证销毁等子模块,通过这些模块之间的相互连接与配合,完成操作员发出的各种指令。
关键词:图书馆管理系统,anywhere数据库,powerbuilder1 概述1.1 选题背景随着学校的规模不断扩大,图书数量急剧增加,有关图书的各种信息量也成倍增长。
面对庞大的信息量,就需要建立图书管理系统来提高图书管理员工作的效率。
目的:通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量。
意义:能够充分利用现代科技来提高图书管理的效率,在原有的办公系统基础上进行扩展,将一些可以用计算机来管理的都进行计算机化,使得图书馆管理人员工作更加方便,工作效率也更加的高1.2 需求分析图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能进行整合,从而达到显示检索信息,提高工作效率,降低管理成本等目的。
一个典型的图书馆管理系统应该能够管理所有的图书种类,图书信息以及读者信息,还需要提供各种图书信息的检索查询功能。
该系统还需要能够对图书的借阅,归还进行管理。
通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人员的工作任务,从而降低管理开销和成本。
一个完整的图书馆管理系统包括前台和后台,前台主要是显示在计算机屏幕上的显示界面,有各种指令按钮,操作框以及文本框,后台主要是为前台的一些操作提供一些必要的数据,也就是一个相对于系统比较完整的数据库,操作员以及各类图书的信息,借书者的信息等等。
1.3 功能分析根据以上需求分析,我们所设计的图书馆管理系统有4个功能模块,分别是图书类别管理模块、图书借还模块、借书证管理模块以及系统帮助模块。
其中各功能模块的具体说明如下:(1)书籍等信息的输入,包括图书的名称、出版社。
(2)图书信息的查询,包括图书基本信息(3)读者管理(新增读者,删除读者,挂失,续费)(4)图书的管理(查询.图书入库.借出,还回图书管理.图书遗失注销管理)(5)图书查询读者类别类别编号、类别名称、借书数量、借书期限)读者(读者编号、读者姓名、读者类别、性别、电话号码、办证日期、读者状态)。
图书类别信息(类别编号、类别名称)图书(图书编号、图书名称、图书类别、作者姓名、出版社编号、价格、ISBN、登记日期)出版社(出版社编号、出版社名称、出版社地址、邮政编码、联系电话)借还(读者编号、图书编号、借书日期、还书日期)图书库存(购书信息)(出版社编号、图书编号、数量)2 系统分析2.1 系统目标(1)设计界面美观大方,系统操作简单方便(2)图书信息的分类管理,查询等功能强大(3)系统有强大的查询功能,查询条件多种简约(4)实现对图书的借阅、归还信息跟踪。
(5)提供个人借书证注册功能及借书证的销毁暂停功能。
2.2 开发的可行性分析2.2.1 技术上的可行性由于该系统全部由powerbuild开发完成,在软件硬件条件下完全可行。
2.2.2 经济上的可行性本系统建立在powerbuilder9.0开发的基础上。
需要一台能够运行windows系统的计算机即可,无需另外的成本。
2.2.3 运行上的可行性系统采用完全的图形化界面,易于管理,方便管理者查询设备信息,能够满足使用者的要求。
该系统应该提供简单的操作界面,能够快速的实现查书、借书、还书功能。
2.3 业务流程分析业务流程图如下1.1 用户登陆时使用正确用户名及密码即可进入图书管理系统。
密码或者用户名输入错误,系统便会自动提示出现错误,并关闭登录界面。
在用户进入系统后,会有主菜单显示。
用户可以实现图书管理,查阅,借还书信息操作,借书证申请等等操作。
图1.12.4系统组织结构与功能结构分析图1.22.5 数据流程分析图书管理数据流程如图1.3所示。
图书管理系统 图书管理 读者管理 借阅管理 图书信息管理 图书类别管理 出版社信息管理 图书注销管理 读者信息管理 读者类别管理 借书管理 还书管理 续借管理查询图1.3图书借还数据流程如图1.4所示。
图1.4图书检索数据流程如图1.5所示。
图1.5 2.6 数据字典数据流编号:D01 数据流名称:图书采编信息简述:图书采编信息数据流来源:从批发市场购得图书后,由系统信息采集员将书籍信息录入电脑数据流去向:采编管理模块。
图书采编信息将采编数据存入数据库(图书表)数据流组成:图书编码,图书类别,书名,作者,出版社,出版日期,单价,购买数量数据流量:100本/日高峰流量:600本/日数据流编号:D02 数据流名称:借书借阅简述:借书证数据流来源:用户将借书证交给借书员,借书员经过审查后将相关信息输入计算机数据流去向:P2_11 检查读者身份数据流组成:借阅日期,书名,读者账号,读者姓名,借阅数量等数据流量:500个/日高峰流量:2000个/日数据流编号:D04 数据流名称:图书检索要求简述:读者要求求得图书检索信息数据流来源:读者输入的检索要求数据流去向:图书库以及检索处理系统数据流组成:图书名,图书编号等3 系统设计3.1 系统分析功能分析系统开发的总体任务是实现图书信息管理的系统化、规范化和自动化。
系统功能分析是在系统开发的总体任务的基础上完成的。
图书馆管理系统需要完成的功能主要有:(1)有关借还书等信息的输入,包括输入借书编号、图书编号、读者编号、借书时间和还书时间等。
(2)借还书信息的查询,包括借书编号、图书编号、读者编号、借书时间和还书时间等。
(3)图书管理信息的添加、修改、查询。
(4)系统用户信息的添加、修改、查询。
3.2 平台设计具,经过认真分析其优缺点,结合数据库管理系统的需要和目前的硬件环境针对目前世界上流行的大量软件和开发工具,我们选用windows平台下的powerbuilder9.0作为软件开发工具。
3.3 代码设计(1)与pb自带的anywhere数据库连接,datebase数据来自PTSQLCA.DBMS="ODBC"SQLCA.dbparm="Connectstring='dsn=PT;UID=dba;PWD=sql'"connect;(2)图书借阅窗口图书租借:tring cert_id,bookidint Flag,i,j,m,ni=2j=2datetime ld_loandates,ld_returndatesld_loandates=datetime(today(),now())ld_returndates=datetime(relativedate(today(),30)) cert_id=trim(sle_certid.text)bookid=trim(sle_bookid.text)Flag=1if sle_certid.text="" thenmessagebox("缺少数据","请输入借书证号") sle_certid.setfocus()returnelseif sle_bookid.text="" thenmessagebox("缺少数据","请输入图书编号") sle_bookid.setfocus()returnend ifselect "flag"into :ifrom "CertificateInfo"where "Cert_id"=:cert_id;if i=1 thenmessagebox("警告","该借书证已经挂失,暂时无法使用!") returnelseif i=2 thenmessagebox("无效","没有该借书证信息!")returnend ifselect "flag"into :jfrom "bookinfo"where "BookID"=:bookid;if j=1 thenmessagebox("警告","该书已经被借出!")returnelseif j=2 thenmessagebox("无效","没有该图书编号信息!")returnend ifselect count(BookID)into :mfrom "Loan"where "Cert_id"=:cert_id and "flag"=1;. insert into "Loan" ("BookID","Cert_id","Loandates", "Returndates","flag")values(:bookid,:cert_id,:ld_loandates,:ld_returndates,:Flag);update "BookInfo"set "flag"=1where "BookID"=:bookid;sle_certid.text=""sle_bookid.text=""dw_jieshu.retrieve(cert_id) messagebox("警告","借书成功") update "Loan"set "flag"=1where "BookID"=:bookid;证件办理:string ID,depart,name,Cname,Cvalue,Ctype,flagint iID=trim(sle_cert_id.text)select Cert_idinto : ifrom certificateinfowhere Cert_id=: ID;if i<>0 thenmessagebox("重复","借书证ID重复,请重新输入!") sle_cert_id.text=""sle_cert_id.setfocus()returnend ifif sle_cert_id.text=""thenmessagebox("缺少数据","请输入借书证ID")sle_cert_id.setfocus()returnelseif sle_name.text=""thenmessagebox("缺少数据","请输入姓名")sle_name.setfocus()returnend ifif sle_cert_value.text="" thenmessagebox("缺少数据","请输入证件号")returnelseif sle_depart.text="" thenmessagebox("缺少数据","请输入系别或部门") returnend ifif ddlb_cert_type.text="" thenmessagebox("缺少数据","请选择借书证类型") returnelseif ddlb_cert_name.text=""thenmessagebox("缺少数据","请输入证件名称")returnend ifname=trim(sle_name.text)Cvalue=trim(sle_cert_value.text)Cname=trim(ddlb_cert_name.text)depart=trim(sle_depart.text)Ctype=trim(ddlb_cert_type.text)flag="0";insert into "certificateinfo"("Cert_id","Name","Cert_name","Cert_value","Depart","flag")values(:ID,:name,:Cname,:Cvalue,:depart,:flag);MessageBox("成功注册","你已经成功注册") sle_cert_id.text=""sle_name.text=""ddlb_cert_name.text=""sle_cert_value.text=""sle_depart.text=""ddlb_cert_type.text=""sle_cert_id.setfocus()(3)图书检索窗口按图书编号查询:string lookforconditionlookforcondition='bookid'+'='+"'"+sle_1.text+"'"dw_1.setfilter(lookforcondition)filter(dw_1)if dw_1.retrieve()=0 then messagebox('提示','图书馆没有此书!')按作者姓名查询:string Is_authorIs_author=trim(sle_author.text)if not sle_author.text="" thendw_author.retrieve(Is_author)elsemessageBox("数据不全","请输入作者姓名") end ifsle_author.setfocus()(4)借书证管理证件信息查询string cert_id,bookidint Flag,i,j,m,ni=2j=2datetime ld_loandates,ld_returndatesld_loandates=datetime(today(),now())ld_returndates=datetime(relativedate(today(),30)) cert_id=trim(sle_certid.text)bookid=trim(sle_bookid.text)Flag=1if sle_certid.text="" thenmessagebox("缺少数据","请输入借书证号") sle_certid.setfocus()returnelseif sle_bookid.text="" thenmessagebox("缺少数据","请输入图书编号") sle_bookid.setfocus()returnend ifselect "flag"into :ifrom "CertificateInfo"where "Cert_id"=:cert_id;if i=1 thenmessagebox("警告","该借书证已经挂失,暂时无法使用!") returnelseif i=2 thenmessagebox("无效","没有该借书证信息!")returnend ifselect "flag"into :jfrom "bookinfo"where "BookID"=:bookid;if j=1 thenmessagebox("警告","该书已经被借出!")returnelseif j=2 thenmessagebox("无效","没有该图书编号信息!")returnend ifselect count(BookID)into :mfrom "Loan"where "Cert_id"=:cert_id and "flag"=1; insert into "Loan" ("BookID","Cert_id","Loandates", "Returndates","flag")values(:bookid,:cert_id,:ld_loandates,:ld_returndates,:Flag);update "BookInfo"set "flag"=1where "BookID"=:bookid;sle_certid.text=""sle_bookid.text=""dw_jieshu.retrieve(cert_id)messagebox("警告","借书成功")update "Loan"set "flag"=1where "BookID"=:bookid;3.4 数据库设计数据库:是数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序共享。