免费预览已结束,剩余34页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)题 目:图书管理系统系 别: 信息工程系专 业: 计算机应用技术班 级: 计算机应用学生姓名: 指导教师: 完成日期: 2014-3-10摘 要 图书馆管理信息系统是对学校图书进行全面信息管理的系统。该管理系统可以有效地管理学校图书资源,记录学校与读者之间的使用书籍情况。此外,根据读者的要求,实现书籍基本信息的输入,查询等几个方面的功能。本系统可以作为独立的系统使用,它包括借阅信息管理、书籍信息管理、读者信息管理、系统管理四个主要的功能模块。该管理系统力求给读者方便快捷的途径去及时了解书籍信息。针对各个模块不同的数据表实现添加记录、修改记录、删除记录、以及查询显示记录等功能,所有的操作方便而快捷,并全面实现了图书馆管理的各项功能。这篇论文主要讲述关于图书馆管理信息系统的信息,特别是讨论了关于设计该系统时的思想、方法和过程,以及在细节上分析函数和方法的实现思想。在本论文中讲述的图书馆管理信息系统拥有一个交互式的界面、逻辑的数据库结构。并且在设计数据库时还考虑到了实体完整性约束、参照完整性约束、及尽量减少数据的冗余,在数据库里有包括表、过程、函数、触发器等5个数据库对象。许多涉及到图书、读者的信息的功能在本系统中都有实现。例如,你可以将新书的信息插入到数据库的图书基本情况表里;还可以对已经插入的关于图书的信息进行修改;更重要的是,读者可以从图书馆里借阅书籍。经过多次的测试和运行,本系统能实现其在设计时的所有功能。关键字:图书 读者 管理系统 数据库目 录第一章 绪论1第二章 系统需求分析32.1 任务概述32.2 数据描述(数据流图+数据字典)32.3 功能需求72.4性能需求72.5需求规定8第三章 系统总体设计93.1 总体设计93.2运行环境103.3 数据结构113.4 输入输出设计11第四章 详细设计134.1 程序流程134.2.用户登录模块的设计与实现134.3 系统主界面的设计与实现154.4 系统模块的设计与实现16 4.5 详细管理模块的设计与实现21第五章 测试分析报告295.1 测试计划和要点295.1.1 主模块测试要点295.1.2 借阅模块测试要点295.1.3 学生查询模块测试要点295.1.4 图书查询模块测试要点295.1.5 图书归还模块测试要点305.2 测试用例305.2.1 主模块测试用例305.2.2 借阅模块测试用例305.2.3学生查询模块测试用例315.2.4 图书查询模块测试用例315.2.5图书归还模块测试用例315.3 测试结果及结论325.3.1 测试的结果325.3.2 缺陷分析及改进33结束语34参考文献3535第一章 绪论 图书作为一种信息资源,用户阅读的资料繁多,包含很多的信息数据的管理,现今,有很多的图书管理都是手工的,尚未使用计算机进行管理。根据调查得知,他们以前对图书管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书信息和卖出书情况(如书籍信息、会员信息、卖出的书的数量等)的统计和核实等往往采用对书号的人工检查进行,对会员的权限、以及总经费等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏规范的系统管理手段。尽管有的商店、企业有计算机,但是尚未用于管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统的开发的基本环境。由于图书管理在数据处理上是手工操作,工作量大,出错率高,出错后不易更改。图书管理采取手工方式对图书情况进行人工管理,由于信息比较多,图书信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书管理的工作人员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。为了适应现代社会人们高度强烈的时间观念,图书管理系统软件为图书办公室带来了极大的方便。该软件是以microsoft office access 2003数据库语言等为实现语言,其功能在系统内部有源代码直接完成。为了图书管理与计算机的联系更完善,为了对学生借阅图书的管理更方便,为了减轻图书管理工作人员的工作负担,我们设计了这个图书管理系统。开发此图书管理系统,以供图书馆理的工作人员及图书的进出货和售书退书操作者进行有效的管理,方便操作者随时添加、查询、修改等由于在装载总程序时,正常就运行,异常就不能运行;microsoft office access 2003数据库管理等系统出现错误,将会产生不可遇见的问题,整个终端程序就会再启动;程序出现错误,数据库是实现有组织地,动态地存储大量关联数据,方便多用户访问的计算机软硬自愿组成的系统;他与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。由于microsoft office access 2003数据库具有一些优异的特点,可以帮助我们更有效的管理数据。 第2章 系统需求与分析2.1 任务概述在图书馆运营中,总是面对大量的读者信息、书籍以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更、有利于提高管理效率。系统目标设计:通过一个图书馆管理系统,使图书馆的信息管理工作系统化、规范化、自动化,从而达到提高人事管理效率的目的。开发设计思想:系统应该符合图书馆信息管理的规定,满足图书馆日常管理的工作需要,并达到操作过程中的直观、方便、使用、安全等要求。系统采用模块化程序设计方法,即便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统具备数据库维护功能,即使根据用户需求进行数据的添加、删除、修改等操作。经过对我校详细调查,并多次与负责图书管理的老师进行研讨后,加深了对现行图书管理业务的深刻了解,与此同时,将整个图书管理的业务流程抽象描述如下:1.新的图书购进后,分门别类地进行归并并汇总,加以编号。2.新书编号后,上到书架以备学生借阅。3.如某学生需要借阅图书,则在其本人的借阅登记表上进行登记,记录相关借阅信息与借阅日期。4.学生借阅图书后,应及时归还图书,并在本人的借阅登记表上注明还书日期和时间。根据以上调查分析,可以给出其现行业务流程图如图2.1所示。图2.1现行图书管理业务流程图2.2 数据描述(数据流图+数据字典) 经过详细的调查,我们已经清楚了解了现行的业务流程,接下来给出系统的逻辑模型。构造系统逻辑模型的工具是数据流图和数据字典。根据现行图书管理的业务流程,首先把数据流图中的源点和终点都选定为学生,因此可以得到图书管理系统的基本系统模型,如图2.2所示。图2.2.图书管理系统的基本系统模型根据基本系统模型,对其逐步细化,得到描述逻辑系统细化后的数据流图,如图2.3所示。图2.3图书管理系统数据流图(顶层dfd图) 对顶层dfd图中的一个加工“学生管理”进行展开,如图2.4图2.4 细化后数据流图对顶层dfd图中的一个加工“图书管理”进行展开,如图2.5。图2.5“图书管理”展开对第1层dfd图中的加工进一步进行展开,如图2.6。(1)(2)图2.6进一步细化数据流图有了系统的数据流图后,还有相当多的数据信息如图书、借阅、归还等信息需要进一步描述,这就是需要定义数据字典,才能把现有的系统描述清楚。图2.7列出了系统的主要数据字典。编号基本数据项名称数据类型长度小数位数rs01读者编号字符型5rs02姓名字符型8rs03性别字符型2rs04年龄数值型30rs05部门字符型18rs06办证日期日期型8rs07图书编号字符型15rs08图书名称字符型30rs09作者字符型10rs10出版社字符型20rs11单价数值型72rs12总数数值型20rs13库存数数值型20rs14图书位置字符型14rs15类别字符型10rs16简介备注型4rs17借阅日期日期型8rs18还书日期日期型8rs19备注备注型4图2.7系统主要数据字典 2.3 功能需求经过以上详细的用户调查,在现行业务流程和数据分析的基础上,基本可以确定系统设计必须达到的目标。 以下是图书管理系统必须具备的功能:1.新进图书的登记功能:对于购进的新书,系统必须具备图书信息资料的录入功能。2.图书的查询修改功能:当图书资料发生变化,如图书丢失或有错误信息输入时,则应能够及时对数据进行修改和补充。3.借阅的登记,归还的登记功能:系统的主要功能之一,供本校学生借阅图书、归还图书,并进行登记。4.学生信息的增加、删除和修改功能:系统主要功能之一,建立学生信息,并对其进行维护。2.4性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求:1、系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求。2、系统的开放性和系统的可扩充性图书管理系统在开发过程中,应该充分考虑以后的可扩充性。例如用户查询的需求也会不断的更新和完善。3、系统的易用性和易维护性图书管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。4、系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。5、系统的先进性目前计算系统的技术发展相当快,做为图书管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。6、系统的响应速度图书管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。2.5需求规定 (1)对于新买进的书籍,一定要进行基本的信息录入。如:图书名称、作者姓名、出版社、类别等。 (2)对于新来的读者也一样要有基本的信息录入工作,如 :读者编号、读者姓名、性别、年龄、住址、电话。 (3)在系统的运行过程中,系统的日期输入格式为yyyy-mm-dd。 (4)在应用借书窗体时,各个书名的输入一定要和书库中的书名保持一致。 (5)用户修改密码时,只可以修改正在使用的用户名的密码,无法修改其他用户的个人使用密码。(6)在应用各种查询功能时,要确保输入的信息与书库当中或者与读者的信息完全一致,否则可能就会有查询不到的可能性。第3章 系统总体设计3.1 总体设计图3.1系统模块图(二) 系统模块设计(1)用户登录模块:已经在本程序中注册的用户进入系统,必须先进行登录,否则无法 进入。(2)系统维护模块:已经进入本系统的用户,可以在注册其他的用户,可以修改本用户的密码,也可以注销这个用户。退出本系统。(3)详细管理模块:用户可以在这里为读者办理借阅图书、归还图书。浏览所有的图书目录,为图书目录增加、删除,修改记录;也可以浏览所有读者的基本信息,对读者信息的增加、删除、修改等的一系列的操作。(4)相关查询模块:在借阅查询中,用户可以查询出任意一个读者的图书借阅情况;而在图书查询中,用户可以查询出书库当中的任意一本图书的借阅情况。(5)统计内容模块:在读者借阅情况统计中,用户可以统计出所有的读者的基本信息和他借阅图书的次数;而在图书借阅情况统计中,则可以统计出被读者借阅过的图书的借阅次数。(6)关于模块:次模块中是关于本系统的基本信息。3.2 运行环境(一) 开发环境硬件环境:奔腾,内存128m以上,800x600及以上分辨率的显示器。软件环境:windows 9x/2000/nt/xp,office 2000,visual basic 6.0。(二) 运行环境硬件环境:同开发环境。 软件环境:windows 9x/2000/nt3.3数据结构设计1图书信息表:包括图书编号、图书名称、作者姓名、出版社、出版日期、单价和类别等字段。表 3-1 图书信息表结构序号字段名类型大小说明1图书编号字符型6图书入库时自动生成2图书名称字符型203作者姓名字符型104出版社字符型205出版日期字符型106单价字符型10图书的价格7类别字符型20图书属于那一个种类2读者信息表:包括读者编号、读者姓名、性别、年龄、住址、电话、备注等字段。表 3-2 读者信息表序号字段名类型大小说明1读者编号字符型6读者注册时系统自动生成2读者姓名字符型10读者的真实姓名3性别字符型24年龄字符型25住址字符型20读者的家庭住址6电话字符型15能联系到读者的电话7备注字符型50关于读者的任何信息3 借阅信息表:包括编号、图书1、图书2、图书3、借阅时间、还书时间等。表 3-3 借阅信息表序号字段名类型大小说明1编号字符型6读者的借阅编号2图书1字符型16读者借阅的第一本图书3图书2字符型16读者借阅的第二本图书4图书3字符型16读者借阅的第三本图书5借阅时间字符型10读者借阅图书的时间6还书时间字符型10读者归还图书的时间4读者借阅信息表:包括读者编号和借阅次数两个字段。表 3-4 读者借阅信息表序号字段名类型大小说明1读者编号字符型2读者的借阅编号2借阅次数字符型4读者借阅一次此值加一5图书借阅信息表:包括图书编号和借阅次数两个字段。表 3-5 图书借阅信息表序号字段名类型大小说明1图书编号字符型2图书的借阅编号2借阅次数字符型4图书被借阅一次此值加一6图书借阅情况信息表:包括图书编号和借阅情况两个字段。表 3-6 图书借阅情况信息表序号字段名类型大小说明1图书编号字符型2图书的借阅编号2借阅情况字符型4表示图书是否被借出7用户表:包括用户名和密码两个字段。表 3-7 用户表序号字段名类型大小说明1用户名字符型10用户注册时的名2密码字符型10登录系统是的密码34输入输出设计 本系统中的图书入库数据是根据购书单来录入的,所以购书单即为现行系统的图书进货单。同表3-1。表3-1 图书购货单日期图书名称作者出版社单价类别总数11/23/05防雷技术林海电子出版社235电子技术8本系统报表输出格式设计成图3.2形式。图3.2 第四章 系统实现技术4.1、程序流程一个系统能够正常运行,则需要程序之间的调用。下面简单介绍一下程序的流程。主程序流程图如图4.1。图4.1 主程序流程图4.2.用户登录模块的设计与实现(一) 模块功能说明此登录模块是在进入系统之前必经之路,只有经过用户注册的用户才能通过用户名和密码正确的进入本系统,是整个系统的安全屏障。(2) 登录界面设计如图4.2图4.2登陆界面(3) 算法及实现登录窗体的load事件代码如下:private sub form_load() me.width = 5000 me.height = 3400 strsql = select * from 用户 data1.recordsource = strsql data1.refresh data1.recordset.movefirst while not data1.recordset.eof me.combo1.additem data1.recordset.fields(用户名).value data1.recordset.movenext wendend sub此代码功能是将mydb.mdb数据库中用户表的用户名添加到combo1控件当中,供用户选择进入系统。窗体的登录按扭(command1)的代码如下:private sub 登录_click() if me.combo1.text = then msgbox 请输入用户名。, vbokonly + 48, 错误提示 exit sub me.combo1.setfocus end if mm = text1.text yhm = me.combo1.text strsql = select * from 用户 where 用户名= & yhm & data1.recordsource = strsql data1.refresh if data1.recordset.fields(密码).value = mm then yongh = yhm unload me dengl2.show else msgbox 您输入的密码错误,请从新输入。, vbokonly + 48, 错误提示 text1.text = text1.setfocus end ifend sub其主要功能是当点击登录按扭(command1)时,系统会根据用户输入的用户名来查找数据库当中的用户表,校验用户输入的密码是否正确。正确则可以顺利的进入系统,否则就会弹出对话框,提示用户输入的密码有错误。代码中的yongh = yhm是将正确登录到系统的用户名付值给变量yongh,进入系统后则显示此用户名。4.3系统主界面的设计与实现(一)功能说明系统的主界面是整个系统的主题部分,所有的功能模块都由它来启动和调用。所以它是系统的一根主线。(二) 系统主界面设计如图4.3图4.3.系统主界面(三) 算法及实现主窗体的load时间当中的代码如下:private sub form_load() me.statusbar1.panels(2) = yonghend sub其主要的功能是将用户登录的用户名添加到状态栏当中,statusbar1.panels(2)就是 状态栏的参量,yongh为在登录界面里传递过来的公共变量-用户名。当用户选择要退出系统时,系统会询问用户确定要退出系统,代码见下。 private sub form_queryunload(cancel as integer, unloadmode as integer) cancel = 1 i= msgbox(您真的要退出本系统吗?退出请单击确定,1 + 32, 退出提示) if i = 1 then end cancel = 0 else exit sub end ifend sub,当当用户要退出时,会弹出对话框,当选择取消时,cancel的参量值为1,此时系统不会退出选择确定,cancel的参量值为0,此时会退出系统。 在窗体的resize()事件中代码如下 image1.width = me.scalewidth image1.height = me.scaleheight 让image1控件和控件中的图片来适合窗体的变化。4.4系统模块的设计与实现(一)功能说明该模块分为用户注册、修改密码、用户注销几个部分。其中用户注册部分是为了新用户来管理系统而注册用户名和密码的窗体;修改密码部分是为了修改本用户的密码而设置的窗体;用户注销部分是删除一个用户时才用到的窗体。(二)系统维护模块界面设计如图4.4 用户注册 修改密码 用户注销 图4.4.(三) 算法及实现用户注册窗体的代码实现,是通过确定按扭来控制的。private sub command1_click() if text1.text = then msgbox 输入的用户名不能为空。, vbokonly + 48, 错误提示 text1.setfocus exit sub end if if text2.text = then msgbox 输入的密码不能为空。, vbokonly + 48, 错误提示 text2.setfocus exit sub end if strsql = select * from 用户 where 用户名= & text1.text & data1.recordsource = strsql data1.refresh if not data1.recordset.eof then msgbox 此用户名已经存在,请重新输入。, vbokonly + 48,提示 text1.text = text2.text = text1.setfocus else data1.recordsource = 用户 data1.recordset.addnew data1.recordset.fields(用户名) = text1.text data1.recordset.fields(密码) = text2.text data1.recordset.update data1.refresh msgbox 用户注册成功!, vbokonly + 64, 注册成功 unload me end ifend sub当按下确定按扭时,系统会检查用户名文本框和密码文本框是不是为空,如果是空的话,会有提示让用户全部输入。然后系统会继续检查在数据库的用户表当中是否有和输入的用户名相同的,因为相同的用户名是不能注册的。如果这些都结束后,系统会对注册的用户在数据库表中添加记录,在对数据原刷新,记录添加成功后,系统会对用户给出提示用户注册成功!,到此用户注册工作结束。修改密码的具体功能实现如下:在修改密码的窗体的装载的事件(load)中有如下代码。private sub form_load()me.width = 5800me.height = 4000text1.text = yonghstrsql = select * from 用户 where 用户名= & yongh & data1.recordsource = strsqldata1.refreshend sub加载窗体时,让本窗体的宽是5800,高是4000,让文本框的内容是在用户登录时传递过来的变量内容-用户名。然后数据控件(data1)会在数据库的用户表当中去查找此用户的记录,在刷新数据原。修改密码的确定按纽中的代码是实现具体修改的,如下:private sub command1_click() if text2.text = then msgbox 输入的旧密码不能为空。, vbokonly + 48, 错误提示 text2.setfocus exit sub end if if text3.text = then msgbox 输入的新密码不能为空。, vbokonly + 48, 错误提示 text3.setfocus exit sub end if if data1.recordset.fields(密码) text2.text then msgbox 输入的旧密码错误,请重新输入。, vbokonly + 48, 错误提示 text2.text = text3.text = text2.setfocus else xg = msgbox(确定要修改密码吗?, vbokcancel + 32, 提示) if xg = 1 then data1.recordset.edit data1.recordset.update msgbox 您对密码的修改已经成功!, vbokonly + 64, 成功提示 data1.refresh text2.text = text3.text = else text2.text = text3.text = exit sub end if end ifend sub代码的主要功能是先检查旧密码和新密码的文本框(text)是不是为空的,如果是空的就不允许用户修改密码。当它们都不是空,系统会检查用户输入的旧密码和数据库中用户表中的密码是不是一致,即密码校验。如果密码一致系统就会为用户修改密码,并以对话框来提示用户的密码修改成功。否则系统将不允许修改。用户注销的窗体功能具体实现代码如下:private sub command1_click() if text1.text = then msgbox 输入的用户名不能为空。, vbokonly + 48, 错误提示 text1.setfocus exit sub end if if text2.text = then msgbox 输入的密码不能为空。, vbokonly + 48, 错误提示 text2.setfocus exit sub end if strsql = select * from 用户 where 用户名= & text1.text & strsql = strsql & and 密码= & text2.text & data1.recordsource = strsql data1.refresh if data1.recordset.eof then msgbox您输入的用户名或密码错误,请重新输入。,vbokonly+48, 提示 text1.text = text2.text = text1.setfocus else qr = msgbox(你确定要注销此用户吗?, vbokcancel + 32, 确认) end if select case qr case 1 data1.recordset.delete data1.refresh msgbox 注销用户成功, vbokonly + 64, 提示 text1.text = text2.text = case 2 text1.text = text2.text = exit sub end selectend sub在本窗体中,系统会判断用户名和密码两个文本框是否为空,这是必要的条件,只有用户名和密码不是空才能和数据库当中的数据保持一致。不是空的条件成立时,系统会通过数据绑定控件(data)来查找用户表中是否有用户名和密码和用户输入一致的那一条记录,不存在就提示用户输入的有错误,重新输入。存在就给出提示是否要真的删除此用户,是就删除,否则不执行删除操作。4.5详细管理模块的设计与实现(一)功能说明在详细管理的模块当中,有借书、还书、图书目录管理、读者名细管理等功能。借书窗体是为了让读者能够快速方便的借阅图书而设计的。还书窗体是读者归还图书时节省时间设计的。图书目录管理当中,可以对书库中的图书进行浏览、添加、删除、修改等操作。读者名细管理中是对读者的各种各种管理设计的,可以对读者进行浏览、添加、删除、修改等操作。(二) 详细管理模块设计与算法实现此模块中由于功能界面较多,所以只列举其中比较有代表性的为之叙述。1.图书借阅窗体设计如图4.5图4.5算法及实现:private sub command1_click()on error resume nextbh = text1.textxm = text2.text strsql = select * from 借阅信息 where 编号= & bh & data1.recordsource = strsql data1.refresh if not data1.recordset.eof then bnjs else if text3.text then strsql =select*from图书信息 where图书名称=& text3.text & data1.recordsource = strsql data1.refresh if data1.recordset.eof then msgbox 书库中没有此书。, vbokonly + 64, 提示 text3.text = text3.setfocus exit sub end if end if nj end if end if if text1.text and text2.text = then strsql = select * from 读者信息 where 读者编号= & bh & data1.recordsource = strsql data1.refresh if not data1.recordset.eof then text2.text = data1.recordset.fields(读者姓名) else msgbox 没有找到相关的记录!, vbokonly + 48, 提示 text1.setfocus exit sub end if strsql = select * from 借阅信息 where 编号= & bh & data1.recordsource = strsql data1.refresh if not data1.recordset.eof then bnjs else if text3.text then strsql=select*from图书信息where图书名称= & text3.text & data1.recordsource = strsql data1.refresh if data1.recordset.eof then msgbox 书库中没有此书。, vbokonly + 64, 提示 text3.text = text3.setfocus exit sub end if end if nj end if end if if text1.text = and text2.text then strsql = select * from 读者信息 where 读者姓名= & xm & data1.recordsource = strsql data1.refresh if not data1.recordset.eof then text1.text = data1.recordset.fields(读者编号) bh = text1.text else msgbox 没有找到相关的记录!, vbokonly + 48, 提示 text2.setfocus exit sub end if strsql = select * from 借阅信息 where 编号= & bh & data1.recordsource = strsql data1.refresh if not data1.recordset.eof then bnjs else if text3.text then strsql =select*from 图书信息where图书名称= & text3.text & data1.recordsource = strsql data1.refresh if data1.recordset.eof then msgbox 书库中没有此书。, vbokonly + 64, 提示 text3.text = text3.setfocus exit sub end if end if nj end if end ifend sub系统首先会判断读者编号和读者姓名输入的是否都为空,都是空就会给出提示。但是如果有不是空的话,这里要分三步来考虑。第一,都不为空,则系统就会查询数据库中的读者信息表,是否有和输入的读者信息符合的记录。第二,如果只输入读者编号,系统会查找读者信息表中和输入的编号一致的记录,在将找到的记录的读者姓名添加到界面的读者姓名中。第三,如果输入的是读者的姓名,则和第二条的理论是一样的,会查找读者姓名的记录,并将读者编号添加到界面读者编号中。当系统继续执行后,会查找此读者是否还有借出的图书未归还,是则此读者不能在借任何书籍,并将所借的书籍显示在窗体的图书框中,否则读者将会借到所要的书籍,并将其记录到数据库当中。在以上的代码中有一个模块中的过程nj ,它是一切检查过程都结束后最后的添加记录的代码实现,如下:public sub nj() with jcgl .data2.recordset.addnew .data2.recordset.fields(编号) = .text1.text .data2.recordset.fields(图书1) = .text3.text .data2.recordset.fields(图书2) = .text4.text .data2.recordset.fields(图书3) = .text5.text .data2.recordset.fields(借阅时间) = .text6.text .data2.recordset.fields(还书时间) = .text7.text .data2.recordset.update .data2.refresh strsql = select * from 读者借阅信息 where 读者编号= & .bh & .data3.recordsource = strsql .data3.refresh if .data3.recordset.eof then .data3.recordset.addnew .data3.recordset.fields(读者编号) = .bh .data3.recordset.fields(借阅次数) = .data3.recordset.fields(借阅次数).value + 1 .data3.recordset.update .data3.refresh else .data3.recordset.edit .data3.recordset.fields(借阅次数) = .data3.recordset.fields(借阅次数).value + 1 .data3.recordset.update .data3.refresh end if end with msgbox 书籍借阅成功!, vbokonly + 64, 提示end sub2.图书目录增加窗体设计如图4.6图4.6 算法及实现:在添加按扭中的代码是实现具体的内容追加记录的。private sub command2_click() if text2.text = then msgbox 输入的出版日期不能为空, vbokonly + 16, 提示 exit sub end if if text3.text = then msgbox 输入的图书名称不能为空, vbokonly + 16, 提示 exit sub end if if text4.text = t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《民生期货梁立恒》课件
- 2025年长治货运考试
- 2025年怒江如何考货运从业资格证
- 2025年白山货运资格证模拟考试题库下载
- 研究生考试考研历史学专业基础(313)试题及解答参考
- 汽车租赁车型协议
- 深圳市施工期限规范实施细则
- 鞋业公司医生招聘合同
- 宅基地赠与合同范本
- 电商运营兼职合作协议
- 《建筑电气工程预算》
- 2024年全国教育大会精神全文课件
- PowerSurfacing-威力曲面-中文教程
- 肺结节诊治中国专家共识(2024年版)解读
- 《人工智能导论》课程考试复习题库(含答案)
- 2024年山东省征信有限公司招聘笔试参考题库含答案解析
- 黑龙江省中高职衔接贯通培养试点专题方案
- 医疗器械质量工作记录管理制度
- 护理实习生带教计划工作表
- 架空输电线路杆塔位移计算
- 公司章程范本_公司章程独资
评论
0/150
提交评论