1、计算机工程学院数据库原理及应用课程设计报告课题名称: 图书管理系统的设计与实现 专业: 信息管理与信息系统 班级: 信管1121 姓名: 杨* 学号: 1121807131 指导老师: 周泓、 金春霞 2013 年 12 月 14 日课程设计任务及进度表课题名称图书管理系统的设计与实现设计目的通过对图书管理系统的设计和开发,了解了数据库的设计与开发的全过程,达到巩固数据库理论知识、锻炼实践能力和构建合理知识结构的目的。实验环境操作系统:Windows 7;编程环境:vfp任务要求1. 搜集图书管理问题方面的资料,进行需求分析;2。 完成概念设计、逻辑设计等各阶段的设计;3。 编写程序代码,系统
2、调试;4. 撰写课程设计报告;5。 参加答辩。工作进度计划序号起止日期工 作 内 容12013.11。172013。11.23查询资料、确定课题22013。11.242013.11。30需求分析、系统总体设计32013。12。12013。12.14系统详细设计、编写程序代码、调试程序42013.12。82013。12.14撰写课程设计报告,答辩指导教师(签章): 年 月 日 课程设计评语学生姓名:杨 班级、学号:信管11211121807131 题 目:图书管理系统的设计与实现 综合成绩: 教师评语:教师(签字): 年月日 中文摘要 图书管理系统是典型的信息管理系统(MIS),其开发主要包括后
3、台数据库的建立和维护以及前端应用程序的开发两个方面,一方面要求建立起数据一致性和完整性强、数据安全性好的库另一方面则要求应用程序功能完备易使用等特点。因此我结合学校图书借阅的要求,对Visual FoxPro数据库管理系统、SQL语言进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。VFP图书管理系统是一个教育单位不可缺少的部分它的内容对于学校的决策者和图书管理者来说都至关重要所以图书管理系统应该能够为教师和学生提供充足的图书信息和快捷的查询手段.关键词 信息管理,VFP,图书管理,数据库外文摘要Title Librar
4、y management system design and Implementation AbstractLibrary management system is a typical management information system (MIS), its development mainly includes two aspects: the background of the establishment and maintenance of database and frontend application development, A request to establish
5、data consistency and integrity, and data security of a good library on the other hand, then requires the application program function complete easy to use etc. The main is the combination of school library borrowing requirements, and have a thorough on Visual FoxPro database management system and SQ
6、L language. The completion of the main library management system requirements analysis, functional module division, database model analysis, and thus designed the database structure and the application procedure。 VFP library management system is an education unit essential part, its content for the
7、policy makers and school library managers are crucial so library management system should provide the ample information and fast query tool for teachers and students.Keywords Information management, VFP, library management, database数据库原理及应用课程设计报告 目 录1引言1 1.1选题背景 11.2系统环境 1 2 系统总体分析22。1需求分析 22.1。1 功能
8、需求22.1.2 性能需求32.1。3 环境需求32。2 可行性分析 32.2.1 经济可行性32.2。2 技术可行性32.2.3 管理可行性42.2。4 用户可行性43 系统总体设计 43。1 软件模块结果设计 43。1.1 系统方案确定43.1.2 软件结构设计43。2系统模块功能图 43。3 数据库设计 53。4 概念结构设计 63。4。1实体功能图63。4.2 ER图 83.5 逻辑结构设计 84 系统实现与测试104。1 连接数据库的实现104。2 模块功能实现105 备份和还原数据库165.1 规划数据库的还原和备份165.2 数据库的备份165。3 还原数据库18结论20致谢21
9、参考文献 22数据库原理及应用课程设计报告1引言1.1选题背景现代人的生活离不开图书,不论在家还是在公司,读书已经成为了一种生活惯.然而现在的图书种类繁多,数量庞大,出版速度快,要对这些书籍进行管理,传统的纯人工管理方法已经不能适用。为了更好,更快的管理这些图书,我们必须提出一种行之有效的方法。为此我们需要一个高效率的系统来进行管理。计算机的发展在很大程度上帮助我们解决了这个问题。首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全等。现在我国的很多学校图书馆,公司,企业都是用了计算机管理书资料,
10、这种管理机制节省了很多人力和物力,在信息时代这种管理方法必然被广泛应用。12 系统环境Visual FoxPro 6。0及其中文版,是可运行于Windows 95和Windows NT平台的32位数据库开发系统,它不仅可以简化数据库管理,而且能使应用程序的开发流程更为合理1。Visual FoxPro 6。0使组织数据、定义数据库规则和建立应用程序等工作变得简单易行.利用可视化的设计工具和向导,用户可以快速创建表单、查询和打印报表2。 Visual FoxPro 6.0还提供了一个集成化的系统开发环境,它不仅支持过程式编程技术,而且在语言方面作了强大的扩充,支持面向对象可视化编程技术,并拥有功
11、能强大的可视化程序设计工具3.目前,Visual FoxPro 6.0是用户收集信息、查询数据、创建集成数据库系统、进行实用系统开发较为理想的工具软件。本系统是基于VFP数据库技术的管理信息系统,包含查询、添加、修改等管理数据库的功能4。 2 系统总体分析2. 1 需求分析2。1.1 功能需求在图书管理系统中,不外乎三个:读者、图书、管理人员.图书管理、借书、还书等是系统的基础业务。而图书馆网络管理系统可向读者提供图书查询和电子图书的服务等,用户则对图书的查询、借阅,电子图书网上阅读功能操作;管理员可对系统用户任意分配权限,控制图书的流通,它能使图书馆工作人员从繁重的工作中解脱出来,大大减轻了
12、工作量,减少人为的工作失误,全面提高图书馆的管理效率及服务质量,从而使图书管理水平和业务跃上一个新的台阶5。图书管理系统应具备以下两个特点:系统应用和系统管理相结合在系统中,用户可以对图书进行查询、查阅、借和还等操作理员可以对用户和图书进行分配权限,控制图书的流通.图书的管理和阅读相结合6.2。1。2 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求:系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求7.系统的开放
13、性和系统的可扩充性图书管理系统在开发过程中,应该充分考虑以后的可扩充性.例如用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件8。通过软件的修补、替换完成系统的升级和更新换代。系统的易用性和易维护性图书管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提
14、供足够的在线帮助,缩短用户对系统熟悉的过程。系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件.所有这些都要符合主流国际、国家和行业标准。系统的先进性目前计算系统的技术发展相当快,做为图书管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后.这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成.另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品9。系统的响应速度图书管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟
15、级原则是保证操作人员不会因为速度问题而影响工作效率。2。1.3 环境需求综合开发此软件的功能需求和性能需求,此软件所需要的开发环境相当自由,可以在众多版本的操作系统上开发和运行;如:windows XP2。2 可行性分析2.2。1 经济可行性实验室里有开发所需的各种资源,无需经济投入.2.2。2 技术可行性此次课程设计是大学专业知识的一次综合应用与提高,通过上网,图书馆,我查到了一定量的资料,满足这次课程设计的要求。2.2.3 管理可行性主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。规章制度和管理方法为书城的建设提供了制度保障。2.2。4 用户使用
16、可行性本系统界面美观,操作简单方便,不熟悉计算机的用户亦能自如的操作,按所需可对各类信息进行查询与状态显示.综上所述,此系统开发目标已明确,在技术,经济,操作等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的10.3 系统总体设计3.1 软件模块结构设计3.1。1 系统方案确定。通过调研和分析,系统主要应完成的功能包括:书库信息管理、读者档案管理、借阅管理、还书管理、图书检索和系统维护。3.1。2 软件结构设计。图书馆管理系统包含图书采编、读者管理、流通和查询等功能.该系统执行时,先输入数据,然后根据输入的数据选择执行路径。购入图书时,要调用图书采编功能进行登记、编目,并可执行借、还
17、书以及查询功能。3.2 系统模块功能图依据需求分析阶段得到的数据流图,采用软件工程中软件设计的概念和原理,与用户成分协商后,在保证系统基本功能要求的前提下,结合系统新的业务流程确定系统必须具备的所有功能,由此给出图书管理系统的系统功能模块图如图所示。图书管理系统罚单信息借书信息图书信息借阅卡信息管理员信息管理员信息管理图书信息管理图书信息查询借书信息管理借书信息查询罚单信息管理罚单信息查询借阅卡信息管理借阅卡信息查询图3。1图书管理系统模块功能图3。3 数据库设计数据库,是按照数据结构来组织、存储和管理数据的仓库,也是用于查询大量数据的存储区域。使用数据库可以减少了数据的冗余度,从而大大地节省
18、数据的存储空间,实现数据资源的充分共享等。此外,数据库技术还为用户提供了非常简便的,易于编写的应用程序。近年来推出的计算机关系数据库管理系统,操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力强。数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性.对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来满足用户在各方面提出的功能要求。3。
19、4 概念结构设计在系统的数据库设计中,先要对数据字典中存储的数据进行分析,找出各数据之间的关系,得出系统的关系模式.可以采用功能图的方法来进行数据结构分析。3.4。1 实体功能图借阅卡信息学生姓名学生性别电话号码身份证号出生日期地址现借书量卡号图3.2借阅卡信息实体功能管理员基本信息管理员姓名管理员性别电话号码身份证号成员id密码图3.3管理员信息实体功能图书信息书名书籍id单价出版社现存量总量入库时间作者图3。4图书信息实体功能罚单信息还书日期罚单id借书日期罚金书籍id卡号图3。5罚单信息实体功能罚单信息借书id借书日期卡号书籍id图3.6借书信息实体功能3.4。2 E-R图罚单id书籍i
20、d 还书日期卡号借书日期借书日期借书id书籍id罚金借书信息罚金信息卡号管理管理 m m 姓名 性别密码管理员 n n电话号码身份证号现存量成员id管理管理地址 n n书名卡号 现借书量出版社作者借阅卡出生日期 m m借阅图书书籍id 1 n归还性别总量单价姓名 1 n身份证号电话号码现借书量图3.7ER图3.5逻辑模型设计表31 系统用户表字段名类型长度NULL说明管理员姓名字符型10否管理员姓名密码字符型10否密码表32 借书信息表字段名类型长度NULL说明借书id字符型12否借书id卡号字符型50否卡号借书日期日期型8否借书日期书籍id字符型50否书籍id表33 管理员信息表字段名类型类
21、型NULL说明成员id字符型50否成员id密码字符型24否密码管理员姓名字符型10否管理员姓名身份证号字符型78否身份证号管理员性别字符型34否管理员性别电话号码字符型22否电话号码表34 借阅卡信息表字段名类型长度NULL说明卡号字符型15否卡号学生姓名字符型12否学生姓名学生性别字符型4否学生性别出生日期日期型8否出生日期地址字符型35否地址身份证号字符型22否身份证号电话号码字符型15否电话号码现借书量字符型6否现借书量表35 罚单信息表字段名类型长度NULL说明卡号字符型50否卡号书籍id字符型50否书籍id借书日期日期型8否借书日期还书日期日期型8否还书日期罚金字符型8否罚金罚单id
22、字符型13否罚单id表36 图书信息表字段名类型长度NULL说明书籍id字符型23否书籍id书名字符型20否书名作者字符型16否作者出版社字符型20否出版社单价字符型8否单价总量字符型4否总量现存量字符型4否现存量入库时间日期型8否入库时间4 系统实现与测试4.1 连接数据库的实现图4。1数据库4。2 模块功能实现登录源代码如下:SET EXACT ONSELECT 系统用户表LOCATE FOR 管理员姓名=ALLTRIM(thisform.text1.Value)IF FOUND() AND ALLTRIM(密码)=ALLTRIM(thisform。text2.Value) thisfor
23、m。Release DO FORM 主界面 ELSE MESSAGEBOX(账号或密码错误,48,系统警告) thisform。text1.Value= thisform.text2.Value= thisform。text1。SetFocus()ENDIFSET EXACT OFF取消源代码如下:thisform。release添加源代码如下:append blankgo bottom thisform.txt成员id。setfocusthisform.refresh修改源代码如下:replace 成员id with ALLTRIM(thisform.txt成员id.value)MESSAG
24、EBOX(”信息修改成功”,64,系统提示)退出源代码如下:thisform.releasedo form 主界面查询源代码如下:select 借书信息表 locate for 借书id=alltrim(thisform。txt借书id2。value)thisform。refresh图4.2登陆界面图4。3主界面图4。4主界面菜单设计图4.5管理员基本信息表单图4.6借书信息表单图4。7借书信息查询表单图4。8借阅卡信息表单图4。9借阅卡信息查询表单图4.10图书信息查询表单图4。11图书信息查询表单图4。12罚单表单图4.12罚单查询表单5 备份和还原数据库备份和还原数据库可以保证数据的安全
25、性,也可以保证数据的不丢失,保证系统的稳定性.备份和还原数据库是所有数据库应用系统必备的功能。备份和还原是数据库管理员维护数据库安全性和完整性的重要操作。备份是还原受损数据库最容易,把意外损失降到最小的保障方法。没有备份,所有的数据都可能丢失。备份可以防止因表或数据库遭受破坏、介质失效或用户错误而造成的数据灾难。还原数据库是在意外发生后,利用备份来还原数据库的造作。5.1 规划数据库的备份和还原在规划数据库的备份和还原时,必须结合两者一起考虑。一般说来,用户设计的操作方案将受到数据库运行的实际情况和可利用的数据库备份资源的限制.但是,无论如何数据库的价值将是放在第一位考虑的因素,根据数据的价值
26、,用户可以预测自己所能承受的数据损失,从而选择合适的还原方案,并根据还原方案设计出合理的备份方案。一般说来,规划数据库备份应该按照先面的步骤进行:(1) 预测自己的数据库系统所可能遇到的数据库意外事故。(2) 针对不同的意外事故一一设计对应的还原方案。(3) 支队所有的还原方案设计可行的备份方案.(4) 在一定备份资源和时间限制内对设计的方案进行测试。5.2 数据库的备份5。2。1 备份概述备份就是制作数据库结构和数据的拷贝,这是保障数据库系统安全的基础性工作。用户使用数据库是因为要利用数据库来管理和操作数据,数据对于用户来说是非常宝贵的资产。数据是存放在计算机上的,但是即使是最可靠的硬件或软
27、件,也会出现系统故障和产品故障。所以,应该在意外发生之前做好充分的准备工作,以便在意外发生之后有相应的措施能快速地还原数据库的运行,并使丢失的数据量减到最小.可能造成数据损失的因素很多,如:误执行了删除造作、破坏性病毒、自然灾害、硬件系统或软件系统故障、盗窃等。5。2.2 数据库备份设备类型数据库备份设备类型包括磁盘备份设备、磁带本分设备、命令管道设备备份10。磁盘备份设备磁盘备份设备一般是硬盘或其他磁盘类存储介质上的文件,一般按照普通的操作系统文件进行管理。磁盘备份设备可以定义在数据库服务器的本地磁盘上,也可以定义在通过网络连接的远程磁盘上。磁带设备备份磁带设备与磁盘设备的使用方式一样,但有
28、两点区别:磁带设备必须直接物理连接在运行SQL Server服务器的计算机上;磁带设备不支持远程设备备份。命名管道设备命名管道设备为使用第三方的备份软件和设备提供了一个灵活、强大的通道。当用户使用命名管道设备进行备份和还原的操作时,需要在BACKUP或RESTORE语句中给出客户端应用程序中使用的命名管道的名字。5.2。3 数据库的备份有的系统要求用户使用SQL Server 2000的工具进行数据的备份和还原,这就要求用户熟悉SQL Server 2000数据库的基本使用方法11。本系统利用另一种方法,在应用系统中实现数据的备份和还原。在程序中备份数据库,要使用BACKUP DATABASE
29、命令,格式如下:BACKUP DATABASE数据库名TO disk=备份文件名在类CADOConn中添加一个函数Backup(),代码如下:void ADOConn:Backup()/连接数据库OnInitADOConn();_bstr_t vSQL;vSQL = backup database Stock to disk= C:BackUpStock。bak;ExecuteSQL(vSQL);/关闭数据库ExitConnect();在主界面中单击菜单项“备份数据库,将执行OnBackup()函数,代码如下:void CStockDlg::OnBackup() / TODO: Add you
30、r command handler code hereADOConn m_AdoConn;m_AdoConn.Backup();MessageBox(备份完成);如果备份成功,系统将提示用户备份成功。5。3 还原数据库当系统数据库出现数据事故时,就需要还原数据库中的数据,把损失降到最小。这对企业和用户来说非常重要.还原数据库可以最大限度的减少用户的经济损失和数据损失.在程序中还原数据库,需要使用RESTORE DATABASE命令,格式如下:RESTORE DATABASE数据库名FROM disk=备份文件名在类CADOConn中添加一个函数Restore(),代码如下:void ADOCo
31、nn::Restore()/ 创建到Master数据库的连接 try/ 创建Connection对象m_pConnection。CreateInstance(”ADODB。Connection”);/ 设置连接字符串,必须是BSTR型或者_bstr_t类型_bstr_t strConnect = ”Provider=SQLOLEDB; Server=ntserver;Database=master; uid=sa; pwd=sa;m_pConnection-Open(strConnect,”,”,adModeUnknown);/ 捕捉异常catch(_com_error e)/ 显示错误信息A
32、fxMessageBox(e。Description();_bstr_t vSQL;vSQL = ”restore database Stock from disk= C:BackUpStock.bak”;m_pConnection-Execute(vSQL,NULL,adCmdText);在主界面中单击菜单项“还原数据库,将执行OnBackup()函数,代码如下:void CStockDlg::OnRestore() / TODO: Add your command handler code hereADOConn m_AdoConn;m_AdoConn。Restore();MessageB
33、ox(还原完成”);如果用户还原完成,系统将自动弹出对话框提示用户还原完成。结 论通过这次课程设计让我对前面学过的许多课程有了更为深刻的理解,也是我对这几年所学的东西的一个综合体现。然而这次设计让我感受颇深,让我真正体会到了在整个过程给我带来的无奈与快乐。综合起来,主要体现在以下几个方面:首先,急于求成的心情给我带来了很大的困难。以前我注重是编码过程,以为只要能把最后的功能实现了就可以了,所以一开始我就稍微理了一下思绪就动起手来编码,我原以为很快就能完成此次任务,可万万没想到,编了二三天,自已就陷入了泥潭,进退两难,但后来面临的问题只有重来,这真是给了我很大的打击,这样的反复让我进行了几次.后
34、来我终于沉住气,吸取前几次的教训,严格的按照“管理信息系统”“软件开发工具”所提到开发管理信息系统所用的方法中都把系统规划和系统分析放在极为重要的位置。认真细致地对开发过程进行了规划和分析,才逐渐弄清了整个系统的流程,把握整体布局,明确了系统的基本功能,做好业务流程图、数据流图的情况下,在设计好系统各主要部分,将一些细节问题考虑周全后才开始动手进行开发,使得后来的工作才得以顺利进行。其次,在编程语言的熟悉程度也让我对整个开发过程受到了一定的阻碍.因为以前只独立编制过一些微型程序,而那些程序涉及面比较窄,实现的功能相当有限,从而要求对语言的熟悉程序不高,然而这次很多都不同,这次设计,不但难度大,
35、而且还要求对一些算法比较熟悉,否则将延迟工作速度,必须停下来再去学习,后因时间问题,本系统还有一些不尽如意之处。总的来说,这次的课程设计为我提供了一次锻炼的舞台,经过开发这个系统,这不仅仅是一次课程设计,不仅仅是学会了一门开发语言,更重要的是在学习的过程中,所有的问题要自已去面对,有问题也只有靠自已去解决,这们,在学习和解决这些困难的过程中提高了我学习的能力、解决问题的能力和实际工作的能力,学到了许多书本以外的知识.致 谢本设计的完成是在我们的导师周宏老师和金春霞的细心指导下进行的。在每次设计遇到问题时老师不辞辛苦的讲解才使得我的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的整个
36、过程中,花费了老师们很多的宝贵时间和精力,在此向导师表示衷心地感谢!导师严谨的治学态度,开拓进取的精神和高度的责任心都将使学生受益终生!感谢学校,给我们提供了必要的实验器材,提供了很大的方便。感谢我的室友,在我遇到困难时都能给与及时的帮助。并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地完成此次设计,在此表示深深的谢意。参 考 文 献1 胡明.Visual Foxpro中表单之间的参数传递J。 电脑学习, 2009,(01)2 张景莉.关于Visual FoxPro教学的思考J。 引进与咨询, 2004,(02)3 陈潇。Visual FoxPr
37、o获取数据库中数据的几种方法J。科技信息(学术研究), 2008, 30 4 Jay K。 Harness. Total thyroidectomy: Complications and technique。 J.World Journal of Surgery,1986,10(5)5 王珊,陈红数据库系统原理教程M北京:清华大学出版社.2002(7) 6任小康,苟平章Visual FoxPro程序设计。M北京: 科学出版社, 2008,2927 曾庆森,王宇Visual FoxPro程序设计基础。M北京: 北京邮电学院出版社, 2008,2928 何振林,张选芳Visual FoxPro程序计实验指导教程。M北京: 高等教育出版社, 2008,1849 史济民FoxPro及其应用系统开发M北京:清华大学出版社1998,338 10 Janice L. Pasieka. The incidence of bilateral well-differentiated thyroid cancer found at completion thyroidectomy。 J.World Journal of Surgery,1992,16(4)第 16 页