ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:455.76KB ,
资源ID:11328920      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11328920.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(vf图书管理系统.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

vf图书管理系统.docx

1、vf图书管理系统陕西理工学院管理系数据库管理系统课程设计报告书学号: 1020014060 班级: 电子商务102班 姓名: 王海斌 指导教师: 周作涛 时间: 2011-2012-1 附件二 课程设计评阅书数据库管理系统课程设计评阅书题目小型图书室管理程序设计设计目的(1)综合运用所学的数据库知识编制一个具有一定功能的图书室管理程序。(2)学会运用合适的工具进行系统分析与设计工作,并独立完成程序的编制,培养独立工作与研究的能力。(3)学习课程设计报告书的撰写方法,使学生受到基本的科研素质训练。设计要求(1)对系统进行业务流程分析的数据流程分析,确定系统功能,划分功能模块,要求功能完整、准确。

2、(2)程序实现要求编程简练,可用,功能全面。应包含图书登记入库、图书查询、图书借还、统计汇总除等基本功能。(3)要求按照科技文格式撰写不少于3000字的课程设计说明书,并按时上交。正文应包括以下几个方面的内容:需求分析、概要设计、详细设计、测试分析报告、用户使用说明、测试结果、参考文献。(4)设计结果包括报告书1份(打印),其中附源程序(打印)。教师评语及成绩教师签名: 年 月 日图书管理系统程序设计作者:王海斌摘 要 利用一周时间,用Visual Foxpro 6.0作为开发工具,结合所学的数据库理论知识,编制了一个简单的图书管理系统程序。程序具有图书登记入库、图书查询、图书借还、统计汇总等

3、基本功能。关键词visual foxpro:;图书管理;程序1 设计任务根据所学的数据库知识,运用Visual Foxpro 6.0(以下简称VFP)作为开发工具,设计与实现一个简单的图书管理程序。本次任务要求的程序尽管业务过程较简单,但功能要求全面,报告书格式要求严格,时间紧迫,因此工作量是充分的,难度也很大。2 设计目的 本次设计有两个目的:一是加深对所学VFP知识的理解与掌握,提高熟练运用计算机的能力;二是掌握问题分析与解决方法,加强工程素质训练。 3 需求分析3.1 系统功能分析图书管理系统的主要任务是对图书馆管理员登陆,图书信息、读者信息、图书借阅归还信息的查询、统计并且能按一定要求

4、输出报表。3.2 数据描述三个实体:图书基本信息与读者基本信息,管理员信息。其中图书基本信息(图书编号,书名,出版社,库存量、借阅状态),读者基本信息(读者学号,班级,姓名,性别)。由于读者信息限定,因此,可将图书数据与读者数据合为一个借书表。该借书表的数据项包括:借书表:=读者学号,图书编号,书名 由于图书与读者两个实体之间存在多对多关系,因此,从关系规范化理论角度看,两个实体之间需要通过一个表(即借书表)产生联系。而不能将图书基本信息与读者基本信息放在一个表中,否则存在大量数据冗余。所以,上面的设计,只是针对读者基本信息限定这一条件所做的简化处理。3.3 功能说明3.3.1 登陆系统 管理

5、员登陆系统的唯一入口,便于系统的安全管理3.3.2 登记入库能够让即将入库的图书及时登记在图书基本信息3.3.3 图书查询 可以根据图书书名,作者,出版社,库存量,图书编号查找图书馆是否有自己需要找的图书3.3.4 借还书记录 记录借出的和还的书进行图书登记3.3.5 读者信息查询 查询已借出去的书的读者的基本信息3.3.6 图书汇总 通过报表显示图书的基本信息、读者的基本信息、借书的基本信息4 设计与实现4.1 数据库设计创建数据库是设计系统的第一步,其关键问题在于确定所需的表结构并为之建立索引。为了使系统设计精练实用,体现关系型数据库的特点,本系统还为各相关表建立关系。4.1.1 数据项设

6、计通过需求分析,可确定系统的数据项和数据结构如下:a图书的基本信息(图书编号、书名、作者、出版社、库存量、借阅状态)b.借书表信息(图书编号、书名、读者学号、借书日期)c.读者的基本信息(读者学号、班级、姓名、性别)d.管理员信息(用户名、密码)4.1.2 概念结构设计本系统在需求分析的基础上设计出能够满足用户需求的各种实体。根据上面的分析所得的实体有:图书的基本信息实体(图书基本信息表)、所借图书的读者与图书信息实体(借书表)、读者的基本信息实体(读者基本信息表)。各实体间的关系如图:4.1.3 逻辑结构设计图书的基本信息表(图书基本信息表.dbf)列名数据类型可否为空图书编号字符型(10)

7、否书名字符型(50)否作者字符型(10)否出版社数值型(50)否库存量数值型(3)否借书状态逻辑性(1)否所借图书的读者与图书信息表(借书表.dbf)列名数据类型可否为空图书编号字符型(10)否书名字符型(50)否读者学号字符型(10)否借书日期字符型(10)否 读者的基本信息表(读者基本信息.dbf)列名数据类型可否为空读者学号字符型(10)否班级字符型(6)否姓名字符型(10)否性别字符型(6)否管理员信息表(user1.dbf)列名数据类型可否为空用户名字符型(10)否密码字符型(10)否4.2 界面设计与功能代码具体说明如下:4.2.1功能:图书管理员登陆界面 表单名:表单1 数据环境

8、:管理员信息表.dbf图1程序界面command1的click event 代码:sele 管理员信息表 locate for allt(thisform.text1.value)=allt(用户名) if found() if allt(thisform.text2.value)=allt(密码) messagebox(登陆成功) do form 表单2 thisform.release else message(密码错误请重新输入) thisform.text2.value= thisform.text2.setfocus endif else message(用户名输入不正确) Endi

9、fcommand1的click event 代码:thisform.release4.2.2功能:图书管理系统界面 表单名:表单2 图2程序界面command1的click event代码:do form 表单3command2的click event代码:do form 表单4command3的click event代码:do form 表单5command3的click event代码:do form 表单6Command4的click event代码:Do form 表单7Command5的click event代码:thisform.release4.2.3功能:图书登记入库界面 表单

10、名:表单3 数据环境:图书基本信息表表.dbf 登记入库后: 图3程序界面Command1的click event代码:a=allt(thisform.Text1.value)b=allt(thisform.text2.value)c=allt(thisform.Text3.value)d=allt(thisform.text4.value)f=val(thisform.text5.value) if select(图书基本信息表)=0 messagebox(数据表图书基本信息表不存在,请检查后再试) elselocate for allt(thisform.Text1.value)=allt

11、(图书编号) if found() messagebox(操作失败,此用户名已经存在!,0+64,错误) else messagebox(操作成功) insert into 图书基本信息表(图书编号,书名,作者,出版社,库存量) value( a,b,c,d,f) thisform.refresh thisform.init endif EndifCommand2的click event代码:Thisform.release4.2.4功能:读者借还书界面 表单名:表单4 数据环境:图书基本信息表.dbf、读者基本信息表.dbf、借书表.dbf 图5程序界面Form1的init代码:thisfo

12、rm.pageframe1.page1.Combo2.rowsourceType=0sele 图书基本信息表go topdo while .not. eof() if 借阅状态=.F. t4=allt(图书编号) thisform.pageframe1.page1.Combo2.additem(t4) endif skip enddothisform.pageframe1.page2.Combo2.rowsourceType=0sele 图书基本信息表go top do while .not. eof() if 借阅状态=.T. t3=allt(图书编号) thisform.pageframe

13、1.page2.Combo2.additem(t3) endif skip enddoCommand1的click event代码:t1=allt(thisform.pageframe1.page1.Combo1.value)t2=allt(thisform.pageframe1.page1.Combo2.value)s1=.T.sele 图书基本信息表locate for t2=allt(图书编号)if found()s2=allt(书名)endifsele 借书表locate for allt(书名)=s2if found()aa=1elseaa=2endif Command2的click

14、 event代码:thisform.releaseCombo2的Lostfocus event代码:sele 图书基本信息表locate for allt(thisform.pageframe1.page1.Combo2.value)=allt(isbn)if found()thisform.pageframe1.page1.text3.value=书名elsethisform.pageframe1.page1.text3.value=未找到endifthisform.pageframe1.page1.text3.setfocusCombo1的lostfocus event代码:thisfor

15、m.refreshthisform.initCommand1的click event代码:x1=allt(thisform.pageframe1.page2.Combo1.value)x2=allt(thisform.pageframe1.page2.Combo2.value)y1=.F.sele 图书基本信息表 locate for x2=allt(图书编号) if found() t4=allt(书名) endif if allt(thisform.pageframe1.page2.text3.value)=未找到 Messagebox(未找到此书,0,提示) thisform.pagef

16、rame1.page2.Combo2.setfocus else sele 借书表 go top locate for allt(read编号)=x1 and allt(书名)=t4 if found() messagebox(归还成功,0+48,提示) dele pack sele 图书基本信息表 replace 借阅状态 with y1 for x2=allt(isbn)else messagebox(此人未借此书,0+48,提示)endifendif Command2的click event代码:thisform.releaseCombo1的lostfocus event代码:thisf

17、orm.refreshthisform.initCombo2的lostfocus event代码:sele 图书基本信息表locate for allt(thisform.pageframe1.page2.Combo2.value)=allt(图书编号)if found()thisform.pageframe1.page2.text3.value=书名elsethisform.pageframe1.page2.text3.value=未找到endifthisform.pageframe1.page2.text3.setfocus4.2.5功能:读者信息查询界面 表单名:表单5 数据环境:读者基

18、本信息表.dbf、借书表.dbf 图6程序界面Command1的click event代码:if select(读者基本信息表)=0 messagebox(数据表图书基本信息表不存在)else selec 借书表go top q2=do while .not.eof() if allt(读者学号)=allt(thisform.Combo1.value)q2=q2+allt(书名) endif skipenddo go top select 读者基本信息表 locate for allt(thisform.Combo1.value)=allt(读者学号) if found() thisform.

19、Text1.value=班级 thisform.Text2.value=姓名 thisform.text3.value=q2 endif endif skipif eof()thisform.Command4.enabled=.F.thisform.Command3.enabled=.T.elseskip -2 if bof() thisform.Command3.enabled=.F.thisform.Command4.enabled=.T.else thisform.Command4.enabled=.T. thisform.Command3.enabled=.T. endif Endif

20、Command2的click event代码:thisform.release4.2.6功能:图书查询界面 表单名:表单6 数据环境:图书基本信息表.dbf 查询结果: 图7程序界面Command1的click event代码:if thisform.Combo1.value=图书编号if thisform.Text1.value= messagebox(你没有选择要查找的内容,0+16,提示) else locate for allt(thisform.text1.value)=allt(图书编号) if found() messagebox(查找成功,0+48,提示) go top sel

21、e * from 图书基本信息表 where allt(thisform.Text1.value)=allt(图书编号) into cursor temp thisform.refresh thisform.init else messagebox(对不起,没有相关内容,0+48,提示) endif endif endifif thisform.Combo1.value=allt(书名)if thisform.Text1.value= messagebox(你没有选择要查找的内容,0+16,提示) else locate for allt(thisform.text1.value)=allt(

22、书名) if found() messagebox(查找成功,0+48,提示) go top sele * from 图书基本信息表 where allt(thisform.Text1.value)=allt(书名) into cursor tempthisform.refresh thisform.init elsemessagebox(对不起,没有相关内容,0+48,提示) endif endif endifif thisform.Combo1.value=作者if thisform.Text1.value=messagebox(你没有选择要查找的内容,0+16,提示)else locat

23、e for allt(thisform.text1.value)=allt(作者)if found()messagebox(查找成功,0+48,提示) go top sele * from 图书基本信息表 where allt(thisform.Text1.value)=allt(作者) into cursor tempthisform.refreshthisform.initelsemessagebox(对不起,没有相关内容,0+48,提示) endif endif endif if thisform.Combo1.value=allt(出版社) if thisform.Text1.valu

24、e=messagebox(你没有选择要查找的内容)else locate for allt(thisform.text1.value)=allt(出版社)if found() messagebox(查找成功) go top sele * from 图书基本信息表 where allt(thisform.Text1.value)=allt(出版社) into cursor tempThisform.refreshthisform.initElsemessagebox(对不起,没有相关内容) endif endif endif if thisform.Combo1.value=借阅状态locate

25、 for thisform.text1.value=借阅状态if found()messagebox(查找成功,0+48,提示) go top sele * from books where thisform.Text1.value=借阅状态 into cursor tempthisform.refreshthisform.initElsemessagebox(对不起,没有相关内容,0+48,提示) endif EndifCommand2的click event代码:thisform.release4.2.7功能:报表显示关于表的的所有信息 表单名:表单7 数据环境:图书基本信息表.dbf、读

26、者基本信息表.dbf、借书表.dbf,全部信息显示.dbf 图7程序界面运行结果;Command1的click event代码:report form 图书基本信息表Command2的click event代码:report form 读者基本信息表Command3的click event代码:report form 借书表Command4的click event代码:report form 全部信息5 难点 1.实体的建立 2.借书还书程序的设计6 总结经过一周的设计和开发,图书管理系统基本开发完毕。其功能基本符合用户需求,能够完成图书资料管理、学生资料管理和借还书操作,同时也考虑到了单位编

27、码以减少冗余的问题,对于数据的一致性的问题也通过程序进行了有效的解决。可是在运用和进一步了解VFP的同时遇到的困难是开始时没有想象到的,从中我学到的宝贵知识是对VFP的了解和运用都有了很大的提高。当时遇到的困难和解决后的喜悦现在回想起来还是那么的有滋味,这对我今后的学习和工作都有着很大的帮助。但在完成后发现许多功能还不足,比如还书期限,库存量的统计,对教师的权限都没有涉及到等等不足,在以后对此还需完善。参考文献 1 visual foxpro及其应用系统开发(第二版)史济民主编 清华大学出版社 2萨师煊、王珊.数据库系统概论.北京:高等教育出版社 3史济民主编Visual FoxP及其应用系统开发,北京清华大学出版社 4王浩等.精通VisualFoxPro6.0中文版,上海:上海科学技术出版社,1998

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1