




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要在当今的信息时代,随时掌握有效的信息对人们的成败气到了关键的作用,另一方面人类对知识的需求也飞速增长。虽然现代的网络技术可以使人们方便快捷的获得知识,但书本阅读起来却更加方便,所以,在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就理所当然的在人们的生活中占据了一定的位置,如何科学合理的管理图书馆不但关系到读者求知的方便程度,也关系到图书管的发展,因此,开发一套完善的图书管理系统,是必不可少的了。本文主要是介绍图书管理系统的环境、功能作用、所用到的语言、设计的方案等各方面的内容。主要是让使用者了解此系统,使他们能更好的运用本系统,使此系统发挥出应有的作用。关键字 图书管理系统 delphi 7.0 sql server 2000数据库目 录第一章 绪论41.1绪论41.2 软件设计开发与开发平台41.2.1 数据库应用系统开发41.2.2 数据库51.2.3 数据库管理系统5第二章 系统需求分析62.1 可行性分析62.2 需求分析62.3 功能需求62.3.1功能划分62.3.2功能描述72.4 安全性需求72.5 系统数据流程分析72.6 功能模块图8第三章 系统数据库设计103.1 读者实体103.2 图书实体103.3 借书实体e-r图113.4 系统实体e-r图113.5 数据库设计11第四章 系统实现134.1 系统数据库模型需分析134.2 各子系统功能分析与程序代码设计134.2.1 系统主界面134.2.2 管理员登录界面154.2.3 系统管理界面164.2.4 修改图书类型194.2.5 图书借阅和归还214.2.6 新书入库284.2.7 添加读者304.2.8 系统密码修改334.2.9 修改读者信息354.2.10 读者服务374.2.11 书目检索界面39结束语41参考文献42第一章 绪论1.1绪论随着学校规模的不断扩大,图书数量的急剧增加,有关图书的信息量也在不断成倍增长。面对庞大的信息量,就需要有图书管理系统来提高图书管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。传统手工的图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了图书管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。随着科技的飞跃进步,对信息的管理也是越来越规范,越来越精确。不仅让信息合理规范的管理,同时也方便管理者方便的快速查询,提高了管理的效率。对图书信息进行图书入库、借阅登记、借阅查询、过期提示等这些日常业务的需要。高效性的通过系统的实用,能够改变旧的图书管理模式,使对图书的管理、借阅、查询更加方便有效。1.2 软件设计开发与开发平台1.2.1 数据库应用系统开发数据库应用系统是针对某个特定目标,建立再数据库管理系统之上的计算机应用系统. 组成数据库应用系统的要素:数据库,数据库管理系统(dbms),应用程序和用户. 数据库:强调数据;数据库管理系统:强调系统软件;数据库应用系统:强调数据库的整个运行系统,是以,某个特定数据库为基础的计算机应用系统,其作用就是使用户不能直接干预数据库而又方便访问数据库中的资料. 数据库应用系统是系统开发员通过调用dbms提供的编程接口开发出来的.应用程序要使用数据库也必须通过此接口 。 在数据库应用系统开发之前,对开发数据库的基本概念应当先做下了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。这样,有利于开发出一个长期适应于用户的软件产品。数据库应用系统开发的一般过程:需求分析;系统设计;系统实现;系统测试与维护。总的来说就是理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。1.2.2 数据库 数据库由dbms(数据库管理系统)处理,dbms则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。本系统采用的数据库是sql server 2000.下面即是sql server2000介绍:sql server2000是microsoft公司最新开发的大型关系数据库管理系统,具有强大的关系数据库创建、开发、设计及管理功能。1.2.3 数据库管理系统 数据库管理系统(dbms):强调系统软件,指数据库系统中管理数据的软件系统。dbms是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过dbms进行的。dbms总是基于某种数据模型,可以把dbms看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,dbms可以分成层次型、网状型、关系型、面向对象型等。其中sql server2000就是一种关系型数据库管理系统。 数据库管理系统(database management system)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。dbms从其他两个组件接受请求,并把它们翻译成对操作系统的命令,以便读写物理介质上的数据。dbms还涉及事务管理、锁、备份和恢复。 第二章 系统需求分析2.1 可行性分析 随着学校与广大企事业单位内部网络的广泛建立,在通用信息平台上构筑高效实用的协同工作和自动化办公应用系统,有效实现内部知识管理,已成为众多用户的共同需求。 图书管理系统,为学校与广大企事业单位自动化办公提供了一个较好的解决方案。在开发过程中,采用了sql server 2000网络数据库,使得本系统可以方便的和其他子系统进行数据交换。同时,注意从软件的图形应用界面上优化软件质量,使得本系统具有较强的可操作性。2.2 需求分析 随着学校规模的不断扩大,图书数量的急剧增加,有关图书的信息量也在不断成倍增长。面对庞大的信息量,就需要有图书管理系统来提高图书管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。 传统手工的图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了图书管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。2.3 功能需求2.3.1功能划分图书管理系统主要实现以下5方面的功能:a.图书入库 b.查询 c.修改信息 d.图书借还e.系统管理2.3.2功能描述1书籍管理功能:包括书籍类别管理和书籍信息管理两部分。2读者管理部分:这一部分包括对读者信息进行管理的功能。3借阅管理部分:这一部分包括借书信息管理和还书信息管理两部分。4系统管理:包括修改系统用户密码、增加新用户以及退出系统等。2.4 安全性需求 每位用户根据自己的身份不同,进入不同的用户界面。管理员有权力行使所有的管理功能,普通用户只能进行一般的查询。2.5 系统数据流程分析图书管理系统数据流程图如图2-1所示。读者基本信息录入录入图书基本信息录入录入读者信息管理图书信息管理借阅信息录入图书借阅管理读者信息库图书信息库图2-1 系统数据流程图2.6 功能模块图本系统包括的模块主要有如下几个部分:图书管理模块、借阅管理模块、读者管理模块、系统管理模块、信息查询模块、用户管理模块 具体的功能描述如下: 图书管理:其功能是管理书库中图书的记录信息,对入库图书信息进行管理,并进行查询。借阅管理:其功能是对读者借阅信息进行查询。读者管理:其功能是对读者一般信息进行查询以及维护。系统管理:其功能是为系统的使用者进行帐户和密码管理以及基础数据维护。其子系统描述:1.图书管理包括图书入库功能,主要整理图书的数量、类别和各种相关的信息等。2.图书借阅,进行借书操作(此操作由管理员完成);当用户要查询自己的借阅情况时,可进行借阅查询。3.读者管理包括读者登记,读者信息管理,添加读者借书和还书信息。可以记录新加入的读者的信息,并且可以对已经存在于数据库中的读者的信息进行修改,同时可以进行读者借、还书的管理。4.用户管理包括修改密码、新增用户、删除用户可执行的系统操作等。5.信息查询包括图书查询、读者查询和用户查询等功能。通过这些功能,可以通过不同的关键字来对书库中的图书进行查询,同时也可以查询读者的借阅信息。6.系统管理是用来完成本系统的基本操作,如修改密码、登录系统、退出登录,还有系统简介等功能。 其功能模块图如下所示图书管理系统读者管理功能系统管理功能图书管理功能借阅管理功能新书入库功能图书类别功能读者信息功能读者查询功能增加用户密码修改借书管理功能还书管理功能图2-2 功能模块图第三章 系统数据库设计e-r模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:n,m:n,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。根据上面的设计可以规划出的实体有:读者实体、图书实体和借书信息实体。3.1 读者实体读者实体学号姓名系别借书证号证号性别联系电话图3-1读者实体3.2 图书实体图书实体出版日期数据库配置文件已经安装到 d:oracleproduct10.2.0,同时其他选定的安装组件也已经安装到 d:oracleproduct10.2.0db_1。isql*plus url 为:47:5560/isqlplusisql*plus dba url 为:47:5560/isqlplus/dba证号出版日期数据库配置文件已经安装到 d:oracleproduct10.2.0,同时其他选定的安装组件也已经安装到 d:oracleproduct10.2.0db_1。isql*plus url 为:47:5560/isqlplusisql*plus dba url 为:47:5560/isqlplus/dba证号图书编号出版日期数据库配置文件已经安装到 d:oracleproduct10.2.0,同时其他选定的安装组件也已经安装到 d:oracleproduct10.2.0db_1。isql*plus url 为:47:5560/isqlplusisql*plus dba url 为:47:5560/isqlplus/dba证号出版日期数据库配置文件已经安装到 d:oracleproduct10.2.0,同时其他选定的安装组件也已经安装到 d:oracleproduct10.2.0db_1。isql*plus url 为:47:5560/isqlplusisql*plus dba url 为:47:5560/isqlplus/dba证号作者图书名称类别编号图3-2 图书实体3.3 借书实体e-r图借书信息实体图书编号借书证号借出日期还书日期借出状态图3-3借书实体3.4 系统实体e-r图读者图书借阅图3-4实体e-r图3.5 数据库设计由数据模型利用sqlsever2000进行数据库的详细设计,本系统设计的数据库名为shop,其基本表的设计如下:(1) 学生信息表字段名称数据类型大小学号varchar50姓名varchar20性别varchar4系别varchar5联系电话varchar50借书证号varchar50密码varchar15(2)图书明细表字段名称数据类型大小图书编号int50图书名称varchar20作者varchar4出版社varchar5出版日期varchar50定价varchar50类别编号varchar15状态char6(3)图书类别字段名称数据类型大小类别编号smallint2图书类别nvarchar20(4)用户字段名称数据类型大小姓名varchar20性别varchar4类型varchar50联系电话varchar15密码varchar50(5)借出信息字段名称数据类型大小借出编号int4图书编号int 4借书证号varchar50借出日期smalldatetime4借出状态bit4第四章 系统实现4.1 系统数据库模型需分析关系图 图4-1关系图4.2 各子系统功能分析与程序代码设计4.2.1 系统主界面程序运行程序以后,就可以看到如图4-2的程序的主界面,从这个界面中用户可以根据不同的身份进行不同的操作。图4-2 系统主界面程序实现相关代码:procedure tfrmmain.speedbutton1click(sender: tobject);begin frmadm.show;end;procedure tfrmmain.speedbutton2click(sender: tobject);begin frmreaderser.show;end;procedure tfrmmain.speedbutton3click(sender: tobject);begin frmlookbook.show;end;procedure tfrmmain.speedbutton4click(sender: tobject);var str: string;begin str := 图书管理系统 + #13; str := str + 作者:李丽丽(l3) + #13; str := str + 这是我的第一次编程,请大家多多指教!; showmessage(str);end;procedure tfrmmain.speedbutton5click(sender: tobject);begin if messagedlg(确定要退出本系统吗?, mtinformation, mbyes, mbno, 0) = mryes then begin showmessage(谢谢你的使用); / form1.destroywnd; frmmain.close; end;end;procedure tfrmmain.timer1timer(sender: tobject);begin statusbar1.panels2.text := 日期: + datetostr(date); statusbar1.panels3.text := 时间: + timetostr(time);end;procedure tfrmmain.skindata1formskin(sender: tobject; aname: string; var doskin: boolean);beginskindata1.active:=true;end;end.4.2.2 管理员登录界面主程序运行后,点击管理员登录,跳出管理员登录界面,输入用户名和密码即可进入系统管理的后台界面。功能:本模块的主要功能是对操作用户身份的验证,只有系统的合法用户才能进入系统。在进行系统登录过程中,登录模块将调用数据库里的用户表,并对用户名和密码进行验证,只有输入了正确的用户名和密码后,系统登录才会成功。否则退出登录模块。并在输入了错误的或者是不存在的用户名和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或错误操作,以便用户进行正确的登录。其窗体如图4-3所示:管理员登录窗体:图4-3 管理员登录界面登录按钮代码:procedure tfrmadm.button1click(sender: tobject);begin with dm.adoquery1 do begin close; sql.clear; sql.add(select * from 用户 where 姓名=:username and 密码=:pass and 类型=:gly); parameters.parambyname(username).value := edit1.text; parameters.parambyname(pass).value := edit2.text; parameters.parambyname(gly).value := 管理员; open; if recordcount 0 then showmessage(该书注销成功!) else showmessage(该书注销失败!); end;end;procedure tfrmadmin.button11click(sender: tobject);begin frmbooktype.show;end;end.4.2.4 修改图书类型在系统管理界面中点击修改图书类型可进入如图4-5的编辑图书类别的界面,本模块主要实现管理员对图书类别进行删除和添加的管理功能。图4-5 修改图书类型界面确定按钮代码:procedure tfrmbooktype.btnsureclick(sender: tobject);begin if edttypeid.text = then begin showmessage(类别编号不能为空!); edttypeid.setfocus; exit; end; if edtbooktype.text = then begin showmessage(类别名称不能为空!); edtbooktype.setfocus; exit; end; dm.querybooktype.close; dm.querybooktype.sql.clear; dm.querybooktype.sql.text := insert into 图书类别(类别编号,图书类别) + values(:id,:name); dm.querybooktype.parameters.parambyname(id).value:=trim(edttypeid.text); dm.querybooktype.parameters.parambyname(name).value:=trim(edtbooktype.text);dm.querybooktype.sql.text:=update 图书类别 set (类别编号,图书类别)+values(:id,:name);dm.querybooktype.parameters.parambyname(id).value:=trim(edttypeid.text);dm.querybooktype.parameters.parambyname(name).value:=trim(edtbooktype.text); dm.querybooktype.execsql; dm.querybooktype.close; dm.querybooktype.sql.clear; dm.querybooktype.sql.text :=select * from 图书类别; dm.querybooktype.execsql; dm.querybooktype.open;end;删除按钮代码:procedure tfrmbooktype.btndeleteclick(sender: tobject);begin if application.messagebox(是否删除记录?, 确定, mb_okcancel) = idok then dm.datasourcebooktype.dataset.delete;end;4.2.5 图书借阅和归还本模块主要实现的功能是读者对图书的借阅和归还:(1)图书借阅模块 输入图书编号按回车图书信息会自动显示,再输入借书证号按回车会显示已借书数,如图4-6所示:图4-6 借阅图书界面借阅按钮代码:procedure tfrmlendbook.button1click(sender: tobject);var strbookid: string;begin if editreaderid.text = then begin showmessage(借书证号不能为空!); editreaderid.setfocus; exit; end; if editbookid.text = then begin showmessage(图书编号不能为空!); editbookid.setfocus; exit; end; if getbookcount(editbookid.text) 0 then begin showmessage(此书已经被借出!); exit; end else begin strbookid := trim(editbookid.text); dm.queryborrow.close; dm.queryborrow.sql.clear; dm.queryborrow.sql.text := update 借出信息 set 借出状态=1 where 图书编号= + strbookid; dm.queryborrow.close; dm.queryborrow.sql.clear; dm.queryborrow.sql.text := insert into 借出信息(图书编号,借书证号,借出日期,借出状态)values(:bookid, + :readerid,:time,1);dm.queryborrow.parameters.parambyname(bookid).value:=trim(editbookid.text); dm.queryborrow.parameters.parambyname(readerid).value:=trim(editreaderid.text); dm.queryborrow.parameters.parambyname(time).value:=datetimepicker1.time; dm.queryborrow.execsql; dm.queryborrow.close; /更新图书信息表在库标志 dm.queryreader.close; dm.queryreader.sql.clear; strsql := update 图书明细表 set 状态=借出 where 图书编号= + strbookid; dm.queryreader.sql.text := strsql; dm.queryreader.execsql; dm.queryreader.close; end; if messagedlg(借阅成功,还有要借的书籍吗?, mtconfirmation, mbyes, mbno, 0) = mryes then begin editbookid.text := ; editreaderid.text := ; editmax.text := ; dbedit3.text := ; dbedit4.text := ; dbedit5.text := ; dbedit6.text := ; dbedit7.text := ; editbookid.setfocus; end;end;其他相关实现代码:procedure tfrmlendbook.editbookidkeypress(sender: tobject; var key: char);begin if key = #13 then begin if viewbook(editbookid.text) = false then begin showmessage(没有此书, 请重新选择!); exit; end; dm.querybook.filtered := false; dm.querybook.filter := 图书编号= + editbookid.text + ; dm.querybook.filtered := true; end;end;function tfrmlendbook.viewbook(bookid: string): boolean;var query: tadoquery;begin query := tadoquery.create(self); query.connection := dm.adoconnection1; query.sql.add(select * from 图书明细表 where 图书编号=:id); query.parameters.parambyname(id).value := bookid; query.open; if query.recordcount = 0 then begin result := false; ; exit; end else result := true;end;function tfrmlendbook.viewuser(user: string): boolean;var query1: tadoquery;begin query1 := tadoquery.create(self); query1.connection := dm.adoconnection1; query1.sql.add(select * from 学生信息表 where 借书证号=:id); query1.parameters.parambyname(id).value := user; query1.open; if query1.recordcount = 0 then begin result := false; exit; end else result := true;end;procedure tfrmlendbook.editreaderidkeypress(sender: tobject; var key: char);begin if key = #13 then begin editmax.text := inttostr(getowncount(editreaderid.text); if viewuser(editreaderid.text) = false then begin showmessage(没有此用户, 请重新选择!); exit; end; end;end;function tfrmlendbook.getowncount(userid: string): integer;var query2: tadoquery;begin try query2 := tadoquery.create(self); query2.connection := dm.adoconnection1; query2.sql.add(select count(借书证号) from 借出信息 where 借书证号=:id ); query2.parameters.parambyname(id).value := userid; query2.open; result := query2.fields0.value; query2.close; query2.free; except result := 0; end;end;function tfrmlendbook.getbookcount(bookid: string): integer;var query2: tadoquery;begin try query2 := tadoquery.create(self); query2.connection := dm.adoconnection1; query2.sql.add(select count(图书编号) from 借出信息 where 图书编号=:id and 借出状态=1); query2.parameters.parambyname(id).value := bookid; query2.open; result := query2.fields0.value; query2.close; query2.free; except result := 0; end;end;(2)图书归还模块输入图书编号按回车图书信息会自动显示,再输入借书证号按回车会显示已借出日期和还书日期以及是否超期的信息提示,如图4-7所示:图4-7 图书归还界面归还按钮代码 :procedure tfrmreturnbook.button2click(sender: tobject);var borrowbookid: string; bookid: string; strsql: string; strbookid: string; strdate:string;begin strdate:=trim(edttoday.text); if editreaderid.text = then begin showmessage(借书证号不能为空!); editreaderid.setfocus; exit; end; if editbookid.text = then begin showmessage(图书编号不能为空!); editbookid.setfocus; exit; end; borrowbookid := trim(editreaderid.text); bookid := trim(editbookid.text); if (borrowbookid ) and (bookid ) then begin querydelete.close; querydelete.sql.clear; strsql := update 借出信息 set 借出状态=0 ,还书日期= + strdate + where 图书编号 = + bookid + and 借书证号= + borrowbookid + and 借出状态=1 ; querydelete.sql.add(strsql); querydelete.execsql; if querydelete.rowsaffected 0 then begin showmessage(还书成功!); /更新图书信息表在库标志 strbookid := trim(editbookid.text); dm.queryreader.close; dm.queryreader.sql.clear; strsql := update 图书明细表 set 状态=在库 where 图书编号= + strbookid; dm.queryreader.sql.text := strsql; dm.queryreader.execsql; dm.queryreader.close; end else showmessage(此书已还过!); end;end;其它相关实现代码:procedure tfrmreturnbook.editbookidkeypress(sender: tobject; var key: char);begin if key = #13 then begin if viewbook(editbookid.text) = false then begin showmessage(没有此书, 请重新选择!); exit; end; dm.querybook.filtered := false; dm.querybook.filter := 图书编号= + editbookid.text + ; dm.querybook.filter
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农村建筑预算员招聘考试题库
- 2025年宁夏安全员考试核心法规题库答案
- 2025年雕塑家面试题集锦
- 2025年村级保洁员笔试模拟题及答案
- 商业保密协议文本
- 外国投资企业协议格式
- 2025年美食顾问专业技能考核试题及答案解析
- 2025年酒店管理师专业资格考试试题及答案解析
- 2025年建筑工程施工员国家职业资格考试试题及答案解析
- 2025年会计职称资格考试试题及答案解析
- 延迟焦化操作工考试题及答案
- 园林技术-大学专业介绍
- 学校食堂员工安全培训
- 静脉采血安全管理
- 18项核心医疗制度
- 智研咨询发布-2025年中国数控折弯机行业产业链全景分析及发展趋势预测报告
- 旅游发展公务员聘用合同范例
- 康复数字化管理系统需求说明
- 肾内科护理病历
- 谵妄的观察及护理
- 遂川县草林自来水厂标准化管理运行管理手册
评论
0/150
提交评论