已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
社区图书管理系统的设计与开发中文摘要:社区图书馆丰富了社区居民的日常生活,也弥补了各大型图书馆在覆盖范围和交通状况等的不足。日渐成为人们社区生活的重要组成部分,但目前绝大多数的社区图书管理工作还停留在手工管理阶段,工作效率低,而且不可避免的会造成数据的遗漏等,这严重影响了社区图书的进一步发展。因此,引入新的管理方式或方法成为了必要。关键词:社区图书,管理系统,系统设计,系统开发Abstract:Community libraries increasingly become an important part of community life, enriching the daily lives of community residents, but also to make up for the shortcomings of the large library in coverage and traffic conditions and the like. But the vast majority of the community library management still remain in the stage of manual management, lowefficiency, and inevitably result in missing data, such as ash, which seriously affected the further development of community books. Therefore, the introduction of a new management method or a method becomes necessary.Key Words:Community Book,Management Systems,System Design,System Development1绪论1.1 研究背景社会文化水平高低与否,在很大程度上决定了未来社会经济的发展快慢程度,而图书管理是社会文化水平的重要组成部分,它的管理水平高低与否将很大程度上影响到社会文化的进步进而影响到社会经济的发展快慢。而社区图书管理作为未来图书管理的重要组成,它的管理水平的高低与否将影响到图书管理水平的进步。在经济高速发展的今天,很多社区图书管理的进行还停留在手工管理的阶段,这严重影响了图书管理水平的进步。1.2 社区图书管理系统和学校图书管理系统的区别(1) 借书者更加的多样化、小型,不在仅仅局限于教师与学生。(2) 图书的分类与需求相比学校图书管理系统更加简明。(3) 对图书管理员的要求比较低。(4) 由于管理人员的数量不同,社区图书管理系统对计算机的硬件要求更低。(5) 为避免图书资源的浪费,图书书目应当适应具体的社区需求。1.3 研究意义社区图书管理系统是一种具有人性化设计的系统,可以在不同情况下满足用户的不同需求,在这种强大的功能下不仅可以减少社区图书管理人员操作管理所耗费的精力,还可以避免管理人员出现操作的盲目性或错误,提高图书管理服务质量。社区图书管理系统的应用可以将管理人员从繁杂的工作中脱离出来,使其更重视系统的维护工作,以保证整个系统在最佳的状态下发挥最大的效用,为用户提供更为丰富的服务。将会大幅度的提高社区图书管理的水平,进而不会让社区图书管理成为影响图书管理水平高低的短板。2系统需求分析现代化的图书管理是一个较为复杂的过程,涉及到大量的图书信息管理与读者信息管理,以及借书信息的管理、还书信息的管理、图书的分类管理等。面对以万计、十万计、乃至百万计的图书与读者而产生的不断变化着的借书信息、图书信息,传统的图书管理方法已经完全不能适应现代化的图书管理需要。因此,开发一个系统化、信息化的图书管理系统是十分必要的,它将大大的减轻图书管理的劳动强度,提高现代化的图书管理水平。通过对社区图书管理工作的调查,一个社区图书馆里系统应当具备以下功能:(1) 能够输入、更新、查询、与图书管理有关的信息。(2) 能够打印图书信息借阅信息等。2.1 数据的需求通过调查总结出社区图书管理系统对数据的需求有:(1) 图书信息图书的ISBN、书名、作者、出版社、单价、类别、借阅次数等信息。(2) 读者信息读者编号、姓名、性别、出生日期、联系电话、照片等信息。(3) 借阅信息读者编号、读者姓名、ISBN、借书日期、还书日期等信息。(4) 用户信息读者编号、用户名、密码等信息。2.2 功能的需求(1) 基础数据的录入对图书信息、读者信息、借阅信息、用户信息的录入和修改等。(2) 查询需求能够对图书信息、读者信息、借阅信息进行查询和修改等。(3) 借阅登记能够对图书的借阅提供登记等。(4) 报表的打印输出能够打印图书清单和借阅情况等信息。图2-1 E-R图图2-2 数据流图3.系统设计3.1 系统功能设计图3-1系统功能结构图3.2 数据库的逻辑设计与物理设计数据库的设计是整个系统设计最基本的一步,关键在于设计表的基本机构,建立索引和表与表之间的关系等。(1) 图书表包含的字段有:ISBN(C,15)、书名(C,20)、作者(C,20)、出版社(C,20)、单价(N,10,0)、类别(C,15)、借阅次数(N,10,0)。其中,以ISBN建立主索引。表3-1 books.dbf字段名数据类型说明ISBNC(15)图书的ISBN编号书名C(20)图书的名称作者C(20)图书的作者出版社C(20)图书的出版社单价N(10,0)每本图书的价格类别C(15)图书的类别借阅次数N(10,0)图书的总借阅次数(2) 读者表包含的字段有:读者编号(C,15)、姓名(C,15)、性别(C,10)、出生日期(D,8)、联系电话(C,15)、照片(G,4)。其中以“读者编号”建立主索引。表3-2 reader.dbf字段名数据类型说明读者编号C(15)读者的借阅编号姓名C(15)读者的姓名性别C(10)读者的性别出生日期D(8)读者的出生日期联系电话C(15)读者的联系电话照片G(4)读者的近照(3) 借阅表ISBN(C,15)、读者编号(C,15)、读者姓名(C,15)、借书日期(D,8)、还书日期(D,8)。其中为ISBN、读者编号字段创建普通索引,通过“ISBN”和图书表关联;通过“读者编号”与读者表建立关联。表3-3 checkout.dbf字段名数据类型说明ISBNC(15)图书的ISBN编号读者编号C(15)读者的借阅编号读者姓名C(15)读者的姓名借书日期D(8)读者借书的日期还书日期D(8)读者还书的日期(4) 用户表包含的字段有:读者编号(C,15)、用户名(C,15)、密码(C,15)。表3-4 admin.dbf字段名数据类型说明读者编号C(15)读者的编号用户名C(15)管理员的用户名密码C(15)管理员的密码当整个数据库、数据库内的表及表的索引建立好以后,就可以得到如下图的数据库设计器的结构。图3-2Database4.软件实现41创建项目Vfp推荐我们在项目管理器中进行应用程序的开发,因为在项目管理器中进行程序的开发会对我们的开发工作带来很多的便利。启动Vfp,选择【文件】菜单中的【新建】,在弹出的对话框中,选择【项目】单击鼠标左键,然后单击【新建文件】按钮,在打开的“创建”对话框中输入你要创建的项目名称,并选择其保存路径,单击【保存】按钮,即可启动项目管理器。4.2 界面设计4.2.1 创建启动菜单在项目管理其中选中【文档】选项,在表单选项上单击鼠标右键,选中【新建】按钮,在打开的“新建表单”对话框中选中【新建表单】按钮,这时候将弹出一个表单设计器及表单form1。在表单设计器工具栏中分别选择“标签”和“命令”按钮,分别在表单form1中添加一个标签控件和两个命令按钮控件。图4-1 社区图书管理系统下面在分别设置表单及控件的属性,如下表所示。表4-1社区图书管理系统表单属性表对象名称属性名称属性值Form1AutoCenter.T.BorderStyle2 - 固定对话框Caption欢迎使用社区图书管理系统Label1Caption社区图书管理系统Fontname造字工坊悦圆FontSize48ForeColor0,128,0Command1Caption登录Fontname造字工坊Fontsize18Forecolor255,0,0Command2Caption退出Fontname造字工坊Fontsize18Forecolor255,0,0Command3Caption注册Fontname造字工坊Fontsize18Forecolor255,0,0设置Command1的click事件代码为:Thisform.release&释放当前表单Do form 身份认证&打开身份认证表单设置Command2的click事件代码:Thisform.release&释放当前表单Clear.event&清理任务处理设置Command3的chick时间代码:Thisform.release&释放当前表单Do form 管理员注册&打开管理员注册表单4.2.2创建身份认证表单在项目管理其中,创建“身份认证”表单,步骤依照上一步的步骤。首先,通过表单控件工具栏在表单上添加3个标签控件;一个组合框控件,一个文本框控件以及两个命令按钮控件。然后在表单上单击鼠标右键,选择数据环境选项,在打开的【添加表或试图】对话框中添加【admin】表到数据环境设计器中。图4-2身份认证表4-2身份认证表单各属性值对象名称属性名称属性值Form1AutoCenter.T.BorderStyle2 - 固定对话框Caption身份认证Label1Caption身份认证Fontname造字工坊悦圆FontSize28ForeColor255,0,0Label2Caption用户名:Fontname造字工坊悦圆Fontsize14Forecolor0,128,0Label3Caption密码:Fontname造字工坊悦圆Fontsize14Forecolor0,128,0Combol1RowSourceAdmin.用户名RowSourceType6 字段Text1PasswordChar*Command1Caption登录FontName造字工坊悦圆FontSize12Forecolor0,128,0Command2Caption取消FontName造字工坊悦圆FontSize12Forecolor0,128,0Command1的chick代码为:Locate for 用户名 = Thisform.Combo1.valueIf alltrim(thisform.Text1.value) != alltrim(密码)messagebox(密码错误!, 0, 提示:)elsethisform.releaseDo form 主页面EndifCommand2的chick代码为:Thisform.release&释放当前页Clear event4.2.3创建管理员注册表单打开项目管理器中的【文档】新建【表单】,在表单中添加4个label控件、3个text控件、2个命令按钮控件,并将其排列好,如下图:图4-3管理员注册表单中各控件的主要属性如下表:表4-3管理员注册表单各属性值对象名称属性名称属性值Form1AutoCenter.T.BorderStyle2 - 固定对话框Caption管理员注册Label1Caption管理员注册Fontname造字工坊悦圆FontSize28ForeColor0,128,0Label2Caption用户名:Fontname造字工坊悦圆Fontsize16Forecolor0,128,0Label3Caption密码:Fontname造字工坊悦圆Fontsize16Forecolor0,128,0Label4Caption确认密码:FontName造字工坊悦圆Fontsize16FontColor0,128,0Text2PasswordChar*Text3Passwordchar*Command1Caption确认FontName造字工坊悦圆FontSize12Forecolor255,0,0Command2Caption关闭FontName造字工坊悦圆FontSize12Forecolor255,0,0Command1的chick代码为:Select 8&选择8号工作区为当前工作区Use admin&打开admin表Locate for alltrim(thisform.Text1.Value) = alltrim(用户名)If found()&找到有重名的用户名,给出提示Messagebox(注册失败,此用户已存在!, 0+64, 提示:)Else&如果没有重名的用户名,就判断两次输入的密码是否相同If alltrim(thisform.Text2.Value) != alltrim(thisform.Text3.Value)Messagebox(你输入的密码不一致,请重新输入!, 0+64, 提示:)thisform.text3.value = &将文本框text3的内容清空thisform.text3.setfocus&文本框text3获得焦点else&注册成功,给出提示并将用户注册的信息加入到admin表中Messagebox(恭喜!注册成功!, 0+64, 提示:)Insert into admin(用户名,密码) Value(alltrim(thisform.Text1.Value),alltrim(thisform.Text2.Value)thisform.refresh&释放当前表单endifendifUse&关闭打开的表Command2的chick代码:thisform.release&释放当前表单do form 社区图书管理系统&还回社区图书管理系统表单4.2.4 创建主页面表单当用户身份认证成功时,将进入主页面表单如图7所示,主页面表单要加入6个label控件和1个timer控件,其主要属性值如表4-4所示。图4-4主页面表4-4主页面各控件主要属性值对象名称属性名称属性值Form1AutoCenter.T.BorderStyle2 - 固定对话框Caption社区图书管理系统ShowWindow2 作为顶层表单Label1Caption社区图书管理系统BackStyle0 透明Fontname造字工坊悦圆FontSize48ForeColor0,128,0Label2Caption欢迎您的使用BackStyle0 透明Fontname造字工坊悦圆Fontsize18Forecolor0,128,0Label3Caption版本号:1.0.1Backstyle0 透明Fontname造字工坊悦圆Fontsize16Forecolor0,0,0Label4CaptionLabel4Backstyle0 透明FontName造字工坊悦圆Fontsize12FontColor255,0,0Label5CaptionLabel5Backstyle0 透明FontName造字工坊悦圆Fontsize12Forecolor255,0,0Label6CaptionLabel6Backstyle0 透明Fontsize12Forecolor0,0,255Timer1Interval500Form1的过程activate代码 :Thisform.Label1.left = (Thisform.width - Thisform.Label1.width)/2&设置label控件在表单中的位置,一下都是Thisform.Label2.left = (Thisform.width - Thisform.Label2.width)/2Thisform.Label3.left = (Thisform.width - Thisform.Label3.width)/2Thisform.Label1.top = Thisform.height/6Thisform.label2.top = Thisform.height*2/6Thisform.label3.top = Thisform.height*3/6Thisform.Refresh&刷新当前表单Form1的过程Init的代码:Do 主菜单.mpr with this, menux&将主菜单加入到主页面thisform.Label4.caption = time()&获取当前时间thisform.label5.caption = alltrim(alltrim(当前时间:)+alltrim(str(month(date()+月+alltrim(str(day(date()+日)&获取系统的动态时间thisform.label6.caption = 你的登录时间为:+dtoc(date()+space(2)+time()&获取打开表单时的时间Form1的过程Destroy代码:Release menu menux extendedForm1的resize代码:Thisform.Label1.left = (Thisform.width - Thisform.Label1.width)/2Thisform.Label2.left = (Thisform.width - Thisform.Label2.width)/2Thisform.Label3.left = (Thisform.width - Thisform.Label3.width)/2Thisform.Label1.top = Thisform.height/6Thisform.label2.top = Thisform.height*2/6Thisform.label3.top = Thisform.height*3/6Thisform.RefreshTimer1的过程Timer代码:thisform.label4.caption = time()4.2.5创建主菜单图4-5主菜单设计图打开项目管理器的【其它】选项,选中【菜单】项,单击鼠标左键,选中新建,在弹出的“新建菜单”窗口中选择【菜单】,在菜单设计器中按照图8的结构来进行设计,设计好后将其保存并打开主窗口中的【菜单】选中【生成】,在打开的对话窗口中选择【生成】。如图4-6、图4-7所示:图4-6主菜单图4-7生成菜单4.2.6主程序的创建在项目管理器中打开【代码】选项,在【程序】选项中单击鼠标右键选择【新建】,在打开的窗口中输入以下代码:clear all&清除所有已定义的变量set talk off&非输出性的结果不在屏幕显示set default to f:project&设置默认路径Do form 社区图书管理系统&打开社区图书管理系统表单modify windows screen title 社区图书管理系统read event&读取事件quit&退出将其保存为“主程序.prg”文件,并将其设置为主文件。然后选中“主程序.prg”并在主窗口中单击【运行】按钮,即可得到如图4-8的效果图。图4-8主页面运行图4.2.7“图书登记”表单“图书登记”表单主要功能有数据的输入、更新、删除、查看图书的信息等,首先要创建图书登记表单,然后在其数据环境中添加“books.dbf”表,并将表中的字段逐个拖动到表单中,并排好序列,再将【命令按钮组】控件添加到表单中,并设置好相关的属性,如表4.7所示。图4-9图书登记表单表4-5图书登记表单各控件主要属性值对象名称属性名称属性值Form1AutoCenter.T.BorderStyle2 固定对话框Caption图书登记Commandgroup1ButtonCount7Form1的init代为:go bottom&打开表单时将记录指针移动到表的结束位置mand5.setfocus()&将焦点指向命令组按钮的添加按钮thisform.refreshCommandgroup1的chick event代码:DO CASECASE This.Value = 1&如果vl值为1,显示第一条记录go topCASE This.Value = 2&如果vl值为2,且记录指针未指向第一条记录,则显示上一条记录If not bof()skip -1endifCASE This.Value = 3&如果vl值为3,就显示下一条记录skipIf eof()&如果记录指针指向表尾,则向上移动一下记录指针skip -1endifCASE This.Value = 4&如果vl值为4,就显示最后一条记录go bottomCASE This.Value = 5&如果vl的值为5,就添加一条记录sure = Messagebox(确定要添加一条记录吗?, 4+32+256, 确认)If sure = 6append blankendifCASE This.Value = 6&如果vl的值为6,就删除当前记录sure = Messagebox(确定要删除当前的信息吗?, 4+32+256, 确认)If sure = 6DeletePackendifCASE This.Value = 7&如果vl值为7,释放当前表单Thisform.releaseENDCASEThisform.Refresh关闭代码编辑窗口,保存表单为“图书登记”,点击运行按钮,可以得到如图4-10所示的效果。图4-10 图书登记页面对于“读者登记”登记表单可以仿照“图书登记”表单建立,这里我就跳过了。4.2.8“借书登记”表单“借书登记”登记表单主要用于读者借阅书籍时的登记造册的管理,需要用到的表有“借阅表(checkout.dbf)”、“图书表(books.dbf)”,在“借阅登记”的数据环境中加入checkout.dbf和books.dbf表,并以借阅表为主建立两者之间的关系,如图4-11所示。图4-11“借书登记”表单的数据环境将“checkout.dbf”中的所有字段逐个拖入到表单中,并调整好其相应的格式,加入两个命令按钮,如图4-12所示。表单和控件的主要属性值见表4-6。其中,将“txtisbn”的readonly属性值设置为“.T.”,其中的值应该直接从图书表的“isbn”字段获得。图4-12 借书登记表单布局情况表4-6“借书登记”表单及各控件的主要属性值对象名称属性名称属性值Form1AutoCenter.T.BorderStyle2 固定对话框Caption借书登记Command1Caption添加纪录Fontname造字工坊悦圆Fontsize11Forecolor255,0,0Command2Caption关闭Fontname造字工坊悦圆Fontsize11Forecolor255,0,0Form1的init的代码为:go bottomskip&锁定表单thisform.refresh&刷新当前表单Command1的Click事件代码为:go top&将记录指针移到表头ok = messagebox(确认要添加借书信息吗?, 4+32+256, 确认)&提示是否确定添加信息if ok = 6append blank&追加信息endifthisform.refresh&刷新当前表单Command2的Chick事件代码为:Thisform.release&释放当前表单Textisbn的lostfocus事件代码为:Select booksLocate for alltrim(isbn) = alltrim(Thisform.txtisbn.text)If Found()Thisform.txtisbn.refreshelsemessagebox(无此图书,请检查后重新输入!, 256, 确认)Thisform.txtisbn.setfocusendifThisform.refresh至于“还书登记”表单与此类似,这里我就不做说明了。4.2.9“图书信息”表单“图书信息”表单主要对入库的图书进行后期的信息整理与维护的工作,在表中可以对各条信息直接加以修改、删除、增加等。在新建的表单中打开其“数据环境”,将“图书表(books.dbf)”加入到其内,选择表中的全部字段,将其拖动到表单的左上角,然后添加一个“命令按钮组”。布局图如图4-13。表单及其控件的主要属性值见表4-7图4-13“图书信息”表单布局表4-7图书信息表单及其控件主要属性值对象名称属性名称属性值Form1AutoCenter.T.BorderStyle2 固定对话框Caption图书信息Command1Caption添加Fontname造字工坊悦圆Fontsize11Forecolor0,128,0Command2Caption删除Fontname造字工坊悦圆Fontsize11Forecolor0,128,0Command3Caption关闭Fontname造字工坊悦圆Fontsize11Forecolor0,128,0Commandgroup1的Click事件代码为:DO CASECASE This.Value = 1ok = messagebox(确定添加读者信息吗?, 4+32+256, 确认)if ok = 6append blankendifCASE This.Value = 2ok = messagebox(确定要删除这条读者信息吗?, 4+32+256, 确认)if ok = 6deletepackendifCASE This.Value = 3Thisform.releaseENDCASEThisform.grdBooks.refreshThisform.refresh运行效果如图4-14所示。图4-14“图书信息”表单运行效果图至于“读者信息”与“借书信息”我这里就不做了,这与“图书信息”表单的制作一样。4.2.10“按读者编号查询”表单“按读者编号查询”可以将该读者的所有借阅信息筛选出来,首先,将“借阅信息表(checkout.dbf)”加入到表单的“数据环境”中,并在表单上添加1个标签控件、1个组合框控件、1个命令按钮控件、1个表格控件。布局情况见图4-15所示,表单及其控件的只要属性值见表4-8所示。图4-15 按读者编号查询表单布局表4-8 按读者编号查询表单及其控件各主要属性值对象名称属性名称属性值Form1AutoCenter.T.BorderStyle2 固定对话框Caption按读者编号查询Label1Caption读者编号Fontname造字工坊悦圆Fontsize14Forecolor0,128,0Combo1RowsourceCheckout.读者编号RowsourceType6 字段Command1Caption查找Fontname造字工坊悦圆Fontsize11Forecolor255,0,0Command2Caption关闭Fontname造字工坊悦圆Fontsize11Forecolor255,0,0Grid1Readonly.T.Command1的click事件代码为:t = alltrim(thisform.Combo1.Value)select * from checkout where alltrim(读者编号) = t into cursor tempthisform.Grid1.RecordSource = tempCommand2的click事件代码为:thisform.release运行效果如图4-16所示。至于“按ISBN查询图书”与“按类别查询图书”我这里就不做了,这与“按读者编号查询图书”相似。图4-16“按读者编号查询图书”效果4.2.11报表的设计在项目管理器中选择【文档】中的【报表】,鼠标右键点击新建,在弹出的对话框中选中【新建报表】,在打开的“报表设计器”中的页注脚栏单击鼠标右键选择【数据环境】,在打开的“数据环境”对话框中单击鼠标右键选择【添加】在打开的“添加表或试图”中选择【books】表,点击添加再点击关闭。在添加进入数据环境中的“books.dbf”表中选中全部字段,将其拖入报表设计器中的细节栏,并安排好布局。完成后,点击报表控件的线条控件(如图4-17),在“页标头”和“细节”栏绘制表格,并在页标头加入“标题”,布局图如图4-18。“借阅信息”报表与此相似,我这里就不做了。图4-17线条控件图4-18 已入库图书清单表5.测试与调试以上的工作都做完以后,就可以进行软件的测试与调试了。运行Microsoft Visual FoxPro 6.0,打
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年护士执业资格《癫痫病人的护理》习题库及答案
- 2026年二级注册建筑师考试题库有答案分析
- 2026事业单位工勤技能-河北-河北理疗技术员三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-河北-河北广播电视天线工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-江西-江西热力运行工五级(初级工)历年参考题库含答案详解
- 2026年可再生能源技术职称考试题及答案
- 2026年中级导游等级考试(英语)复习题及答案(陕西)
- 2026年急诊科危重病人救治技能测试卷及答案解析
- 跨境物流运输成本核算技巧2026年专项训练卷及答案
- 2026年注册验船师资格考试(C级船舶检验专业能力)全真冲刺试题及答案一
- 军品生产现场管理制度
- 2026年辽宁铁道单招测试题附答案
- 汽车吊装作业风险识别与管控
- 中国急性缺血性脑卒中诊疗指南(2025年)
- 离退休老干部专题党课筑思想防线葆党员本色
- 读后续写题型讲解课件-高中英语人教版第一册
- 铁路防断培训课件
- 反对本本主义解读课件
- 公司融资风险管理制度
- 麻醉睡眠治疗
- 《步辇图》美术鉴赏课件
评论
0/150
提交评论