资源目录
压缩包内文档预览:(预览前20页/共66页)
编号:149911233
类型:共享资源
大小:1.13MB
格式:RAR
上传时间:2021-10-10
上传人:好资料QQ****51605
认证信息
个人认证
孙**(实名认证)
江苏
IP属地:江苏
20
积分
- 关 键 词:
-
vb
图书馆
管理
系统
源代码
论文
- 资源描述:
-
vb图书馆管理系统(源代码+论文),vb,图书馆,管理,系统,源代码,论文
- 内容简介:
-
哈尔滨理工大学学士学位论文图书馆管理系统摘 要随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要,我国图书馆计算机等信息技术的应用起步于20世纪70年代末期,随着改革开放的步伐得迅速发展,特别是90年代以后,我国图书馆信息网络建设取得了较大发展图书馆信息化建设迈向了一个新台阶。图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。因此本人结合开入式图书馆的要求,对SQL Server数据库、SQL语言原理、Visual B应用程序设计,数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、操做员(user)、图书馆工作人员(osa)和高级管理员(admini)三方面的需要。关键词 SQL语言;数据库组件;图书管理;窗体library management systemAbstractAlong with the technical advance in modern science, mankind society head for gradually the information turns, the library owns the abundant cultural heritage information resources, using the importance of the social system to constitute the part, in information society the function is more and more important, our country technical and applied start in information in etc. in calculator in library in 20 centuries 70s last phase, is liberal to develop quickly along with the step that reform, especially 90s hereafter, our country library information network developments obtained the big development library information turns developments headed into a new step.The book management system is a typical information management system (MIS), its development mainly includes the application procedure of establishment and maintenance and head of backstage database to develop two aspects. Start to build up the data consistency and the integrity to the former request strong, the data safety good database .But then request applying procedure function is complete to the latter, easy usage etc. characteristics. So oneself combine to open into the request of type library, apply program design to the SQL server databaseVisual Bdatabase technique carried on more thorough study and application, mainly completing the need to manage the system to book analysis, function mold piece divide the line, database mode analysis, and designed database structure from here and applied procedure. he system circulates a result certificate, the book designed by this text management the system can satisfy to borrow to read, hold to do a member(user), library of staff member(osa) and deluxe managing person(admini)s three aspects.Keywords SQLlanguage; databasemodule ;bookmanagement; windowbody目 录摘要IAbstractII第1章 绪论11.1 课题背景11.2 图书馆信息化管理11.2.1 中国图书馆分类法11.2.2 马克著录21.2.3 Z39.50标准21.2.4 读者管理31.2.5 文献流通管理3第2章 开发工具简介42.1 VB简介42.2 VB发展4第3章 图书馆管理系统需求分析53.1 可行性分析53.1.1 技术可行性53.1.2 经济可行性53.1.3 管理可行性53.1.4 开发环境可行性53.2 系统目标63.2.1 合理的设计数据库63.2.2 设计出友好的界面63.2.3 实现基本功能和一些特殊功能的操作63.3 基础信息维护73.4 读者管理83.5 图书管理83.6 期刊管理93.7 图书流通管理103.8 期刊流通管理113.9 统计分析管理11第4章 图书馆管理系统数据库分析124.1 数据库124.1.1 用户数据124.1.2 元数据124.1.3 索引124.1.4 应用元数据124.2 数据库管理系统124.3 创建数据库134.4 图书管理系统134.5 图书馆管理系统E-R144.6 图书馆管理系统数据表清单14第5章 实例制作介绍165.1 实例功能图书馆165.2 系统流程图16第6章 图书馆管理系统数据库设计186.1 创建数据库186.2 创建读者信息数据表186.3 创建图书信息数据表196.4 创建图书借阅数据表196.5 创建其他关键数据表206.6 创建主键及外键等表的约束206.7 创建存储过程22第7章 程序开发257.1 程序运行结果257.2 创建工程317.3 创建系统主窗体327.4完成的读者类别设置功能327.5 完成读者档案管理功能347.6 完成图书类别功能357.7 完成图书档案管理功能357.8 完成图书征订功能367.9 完成图书借阅功能377.10 完成图书归还功能387.11 完成图书罚款功能387.12 编译并运行系统39结论40致谢41参考文献42附录A43附录B50附录C54IV- -第1章 绪论1.1 课题背景随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要,我国图书馆计算机等信息技术的应用起步于20世纪70年代末期,随着改革开放的步伐得迅速发展,特别是90年代以后,我国图书馆信息网络建设取得了较大发展图书馆信息化建设迈向了一个新台阶。1.2 图书馆信息化管理图书馆的信息化从最初的对图书馆业务管理实行信息化发展到对图书馆各个业务流程进行系统和网络话化管理,并建立大规模以个体文献目录联机查询为主的资源共享系统。进入21世纪,充分利用计算机网络和信息技术,逐步实现不同载体的实体文献的信息化管理和多方位的联机查询。图书馆的计算机信息化管理,就是将传统图书馆业务的手工操作转变成由计算机管理,既图书馆的图书期刊、音像资料等各种载体文献的采编、典藏、流通、检索及常规业务管理等工作,利用计算机技术,进行高效、准确的信息化管理。其根本目的是实现区域内及地区、国家、国家间的资源共享。要达到资源共享的目的,必须制定一定的标准,只有各个系统都遵循这些标准,不同的系统间才可以实现联机查询、资源共享的效果。1.3 中国图书馆分类法中国图书馆图书分类法简称中国法,是目前我国各类图书馆普遍使用的一部图书分类法(图书分类法是按照一定的思想观点,以科学分类为基础,结合图书资料的内容和特点,分门别类组成的分类表),图书馆计算机信息化管理系统建立后,第1件事就是将馆藏的个体文献按国家标准中国图书馆图书分类法进行科学分类, 并以此在书目数据中建立分类主题词,以便于文献的分类存放摆架和从不同角度的检索。中图法分类表的结构组成是:基本部类、大类、简类、详表。其中基本部类有五大类,分别是马列主义、毛泽东思想、哲学、社会学、自然科学综合性图书。基本部类下分为22大类,它们以字母标识符来表示,例如A表示“马克思主义、列宁主义、毛泽东思想”类,B表示“哲学”类,C表示“社会科学总论“类,G表示”文化、科学、体育、教育“类等。22个大类下细分构成简表,简表细分又构成详表。例如G大类分为G0(文化理论)、G1世界各国文化体育事业现状)、G2(信息与知识传播)、G3(科学、科学研究)、G4(教育)、G8(体育)。每一类下还有细分,如G4(教育)下又分为G40(教育学)、G41(思想政治教育、德育)等等。中图法采用汉语拼音字母与阿拉伯数字相结合的混合制编码。例如高中英语教学参考书分类号为G633.41,internet短期培训教程TP393.4。在图书馆的实际工作中,为了便于排架(把图书按分类规则或其他顺序摆放在书架上,以方便管理和查找,一般还需要依据书名或作者或其他(如流水号)另增加一个号码,通常采用作者的四角号码,形成“分类号/四角号码“的形式,通常作为图书馆排架管理和读者检索图书的途径。1.3.1 马克著录“马克“是机读目录Machine Readable Catalogue的简称MARC的音译,中国的机读目录是在MARC前加上国家号的英文简写”CN“CNMARC”就成了中国机读目录英文简写。所谓马克著录,就是在文献编目时,将文献的主要内容和特征以及馆藏信息,以代码的形式和特定的结构,记录在计算机的存储介质(如磁盘、硬盘、光盘)上,可以让计算机来识别和阅读的目录。马克著录主要为了满足资源共享而制定的标准,中国机读目录格式使用手册对图书馆的图书期刊、测绘资料、图谱以及声像等纸质和非纸质型文献资料的机读目录著录格式,做出了明确的说明。1.3.2 Z39.50标准Z39.50是一种用于TCP/IP环境下,即Internet 网上客户机与服务器进行信息检索的通信协议标准,并以此规定了检索格式和信息处理的过程。用标准的Z39.50客户机和服务器可以将所有的计算机前端检索系统与后台的数据库系统结合起来,实现网上资源的透明互访。随着协议的不断完善和Internet的迅速普及,图书馆管理系统的各个模块功能也会随之增加。图书馆管理系统软件中根据Z39.50标准构成的文献检索系统,可以通过因特网检索文本图象和其他的多媒体信息资源,还可以使用图书馆的客户机对因特网上多个不同的数据库系统进行检索。一般来说,不同的图书馆管理软件的数据库结构都各不相同,在计算机专业用语中叫做异构软件。两个异构软件中只要一个不采用Z39.05标准做数据口接口,那么这两个异构软件间就不能共享书目数据极其他文献和多媒体信息。不同的软件,只要各自的数据接口遵循 Z39,50网络通讯协议,就可以用自己的Z39,50的client端(客户端)到一个或多个有Z39.50的server端服务器的编目中心,免费或有偿抽调编目数据,关于Z39.50标准的内容这里不详细介绍。1.3.3 读者管理一般把读者分类管理,例如老师、研究生、本科生等。读者证号的组成由代码拼音字母阿拉伯数字组成。不同类型读者所具有的借阅权限是不一样的,例如老师一次最多可借10本书,研究生则是7本;老师借期为8周,研究生为6周等。1.3.4 文献流通管理图书馆计算机自动化管理给图书馆带来的最明显的效益就是分编录入和流通速度的大大提高。快捷、方便、记录准确的流通管理,有力地促进了图书馆图书流通率和为读者服务水平的提高。文献流通管理主要有文献订购、入库、借还、续借、预约、催还、注销等环节,其中又涉及文献的当前馆藏数量、位置、超期罚款管理等。需要注意的是文献包括传统纸质文献如图书、期刊和非纸质文献即非书资料如音像光盘等现代新型文献。第2章 开发工具简介2.1 VB简介Basic是指BASIC(Beginner All-purpose Symbolic Instruction Code初学者通用符号指令代码),具有面向普通使用者,易学易用的优点。它作为一个古老的程序设计语言对计算机的普及、推广起到了不可估量的作用。目前Basic语言可能拥有用户最多的计算机语言。Visual的英文原意是“可视的”“视觉的”。在这里指开发图形用户界面的方法,既“可视化程序设计”。这种方法不需要编写大量代码去描述界面的外观和位置,而只要把预先建立的控件,像使用的“画图”之类的绘图程序那样“画”到屏幕即可。2.2 VB发展Visual Basic 是 Microsoft公司与1991年推出的Windows 应用程序开发工具。Visual Basic 与传统的语言不同,它使用可视化、交互式的方法来开发Windows 下的应用程序,由于Visual Basic 的交互特性,因此可以一边运行着应用程序,一边进行界面的调整和程序代码的调试。通过这种方式,代码运行的效果可以在开发时进行测试,而不必等到编译完成以后。自从 Visual Basic 5.0版之后,Microsoft 公司将OCX技术和其他的一些关键技术组合到了一起,制定出了新的技术规范,并且称之为ActiveX(TM)技术。ActiveX(TM)技术仍然遵从OLE2.0的规范,故而继续可以像原来的OLE应用那样使用其它应用程序提供的功能,例如Microsoft Word字处理器,Microsoft Excel电子数据表及其它Windows应用程序。甚至可直接使用VBP或VBE创建的应用程序和对象。Visual Basic 具有强大的数据库访问能力,在Visual Basic内部具有内嵌的DAO对象,在进行远程访问的时候,还可以使用RDO对象。Visual Basic在进行数据库对象编程时,是将数据库系统作为一个特殊的对象来进行处理的。利用ODBC,Visual Basic的数据库对象可以非常方便地访问无论是本地的还是远程的数据库。对于具有安全性设置的数据库系统,Visual Basic可以充分利用其安全机制,对于有事务和日志的大型数据库系统,Visual Basic可以方便地实现分布式的数据库处理,例如数据访问的并发问题、批量数据的更新的恢复等问题。第3章 图书馆管理系统需求分析3.1 可行性分析 3.1.1 技术可行性随着国内软件开发的日益发展壮大,各种中小企事业单位已具备独立开发各种类型的软件的能力,能够满足不同行业的特别的需求。现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:Microsoft公司的Visual BasicMicrosoft公司的Visual CBorland公司的Delphi Powersoft公司的PowerBuliderJava等等,这些大大提高了数据库应用软件开发的效率。3.1.2 经济可行性对于整个系统而言,在系统未运行之前,初期投资比较大,花费相对而言比较多。各部门必须配置电脑、服务器、打印机、传真机及相关的网络设备,但是在整个系统投入运行之后,将会给该企业带来前所未有的方便和快捷,减少不必要的中间环节以及不必要的开支,而且可以给其带来更大的利润。总之,这个系统的经济效益远远大于开发成本,而同时又减少了数据的流通环节,不必要花费那么多的时间,也就是说最重要的是就是提高了效率,而又保证了各项数据的准确性,也避免了工作人员的流动造成的收据丢失等问题,适应了当前的发展形式。3.1.3 管理可行性随着时代的发展,人员素质己逐步提高,不论是对于电脑系统的基本操作还是对于系统的维护都有了一定的基础。同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑故障问题。3.1.4 开发环境可行性采用Visual Basic开发工具。它首先是一个开放的协作式系统之外,可以和多种PC产品集成,并可以通过专用接口或ODBC接口连接许多比较常用的数据库。其次它具有可视化的开发环境,使代码的编写更为直观,并且在可视化环境下的调试和维护也相对容易。再次它随身携带的Sybase SQL Anywhere本身就是个功能强大的DBMS,对小型应用来说,直接使用这个数据库就是个质优价廉的选择。而为方便用户界面的开发,Visual Basic提供了大量控件,这既丰富了应用程序的表达能力,也加快了项目的开发速度。同时,它拥有多平台的开发环境,如果要把一个平台上开发的代码移植到另外一个平台上,只要重新编译就可以了。3.2 系统目标我们一般设计系统都要完成以下的几个要求,以便于用户进行操作,这样才能使系统易学易用。3.2.1 合理的设计数据库尽量合理地减少数据库数据的冗余,使重复的数据保持在最小限度,这样将不必要的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。3.2.2 设计出友好的界面界面的友好与否是用户评价一个软件优劣的重要方面之一,使用户有一个良好的心情。另外窗口界面要多用按钮和快捷键,少用菜单,窗口的各个控件布局要合理,美观。要充分的利用Visual Basic提供的强大的功能,多用窗口和控件,充分体现窗口的多元化格局。3.2.3 实现基本功能和一些特殊功能的操作该系统要求除了能实现信息的录入,删除,插入,更新,打印等基本功能之外,还要求能够根据用户的需要进行操作。一般通用的图书馆管理系统包括系统管理、读者管理、编目、图书流通、统计、查询等功能。比较先进的能够在一个界面下实现图书、音像、期刊的管理,设置假期、设置暂离锁(提高安全性)、暂停某些读者的借阅权、导入导出读者、交换MARC数据、升级辅助编目库等。此外 Internet应用的发展,一个完善的系统还应提供无缝接入Internet的功能,通过IE浏览器让读者使用借阅资料查询、更换密码、预约、资料、检索等功能。有些系统还能提供读者自助服务,可以开放一些客户机让读者自行管理密码、查询自己的借阅史、预约资料、检索资料等。下面我们介绍图书馆管理系统所必备的功能,如图3-1所示,其中每个功能都由若干相关的子功能模块组成。除此之外系统还应包括信息系统必须具备的通用功能,例如权限设置、数据备份与恢复、这些功能的实现可以参考。基础信息维护图书馆管理系统读者管理图书管理期刊管理图书流通管理期刊流通管理统计分析管理系统管理图3-1 图书馆管理系统应包括的基本功能模块3.3 基础信息维护“基础信息维护”用于对图书馆信息、书籍信息、常用词库等项目进行初始化设置,这些设置一般不轻易改动,包含的功能模块如图3-2所示。“图书馆信息”用于设置本图书馆的基础信息,包括图书馆名称、馆长、负责人、电话、说明等。“系统参数设置”用于设置系统运行所需的参数,包括办证费用、证件有效期、图书超期罚款金额、期刊超期罚款金额等。基础信息维护图书馆信息系统参数设置书架设置管理员设置图书期刊词库图3-2 基础信息维护功能模块“书架设置”用于设置书架的基础信息,内容包括书架编号、书架名称等。“管理员设置”用于设置使用的人员及权限。“图书期刊词库设置”用于设置系统常用的词库,内容包括供应商、分级、附件、尺寸、语系、印刷等信息的预先设定数值。3.4 读者管理“读者管理“用于管理读者相关的信息,包括的功能模块如图3-3所示。读者管理读者类型设置读者档案设置借书证挂失与恢复过期续证管理读者档案词库设置图3-3 读者管理功能模块“读者类型设置”用于设置读者的类型及相关的信息,内容包括类型、图书册数、期刊册数、续借次数、限制图书、限制期刊等。“读者档案管理”用于设置读者相关的信息,内容包括编号、条形码、姓名、性别、类型、出生日期、有效证件、证件号码、联系方式、登记日期、有效期至、操作员、备注、图书借阅次数、期刊借阅次数、是否挂失等。“借书证挂失与恢复”用于挂失和恢复读者的借书证,挂失后该编号的读者不能在借书。“过期续证管理”用于延续已过期的借书证。“读者档案词库设置”用于设置读者档案常用的词库。3.5 图书管理“图书管理”用于管理图书相关的信息,包含的功能模块入图3-4所示。“图书类型设置”用于设置图书的类型及相关的信息,内容包括类型名称,可借天数等。“出版社管理”用于设置图书所属出版社的基础信息,内容包括出版社编号,ISBN、出版社名称等。图书管理图书类型设置出版社管理图书档案管理图书注销图书征订图书验收图书盘点图3-4 图书管理功能模块“图书档案管理”用于设置图书相关的信息,内容包括编号、条形码、书名、类型、作者、译者、ISBN、出版社、价格、页码、书架名称、现存量、库存总量、入库时间、操作员、简介、借出次数、是否注销等。“图书注销”用于注销、报废图书,将图书档案的“是否注销”字段设置为1,被注销的图书不可以再借出。“图书征订”用于订购新书,内容包括征订编号、书名、类型、ISBN、出版社、作者、译者、订购者、订购者联系方式、订购数量、订购单价、订购日期、是否验收、实际数量、实际金额、验收日期、操作员等。“图书验收”用于征订的图书到货后验收,增加图书的库存。“图书盘点”打印图书的在库清单供盘点使用。3.6 期刊管理“期刊管理”用于管理期刊相关的信息,包含的功能模块如图3-5期刊管理“和图书管理”的功能是一致的,只是期刊的档案内容和流通管理方式和图书有所区别。期刊档案的内容包括编号、条形码、期刊名、类型、统一刊号、邮发代号、编辑部、出版周期、所属年度、期号、总期号、价格、书架名称、现存量、库存总量、入库时间、操作员、简介、借出次数、是否注销等。期刊管理期刊类型设置期刊档案管理期刊注销期刊征订期刊验收期刊盘点图3-5 期刊管理功能模块3.7 图书流通管理图书流通管理用于管理图书流通环节相关的操作,包含如图3-6所示的功能模块。图书流通管理图书借阅图书归还图书续借图书预约图书丢失图书罚款图3-6 图书流通管理功能模块图书借阅用于登记读者借阅图书的记录并减少图书在库的库存,登记内容包括借阅编号、图书编号、读者编号、押金、借阅时间、应还时间、操作员等。图书归还用于登记读者到期图书的续借记录。图书预约用于登记读者的图书预约记录。图书丢失用于报失图书,内容包括丢失编号、图书编号、读者编号、赔偿金额、操作时间、操作员等。图书罚款用于对图书超期、丢失等情况的罚款管理,内容包括罚款编号、图书编号、读者编号、罚款日期、应罚金额、实收金额、是否交款、备注等。3.8 期刊流通管理期刊流通管理实际的功能和图书流通管理是一致的,只是管理的对象是期刊,包含的功能模块如图3-7所示。期刊流通管理期刊借阅期刊归还期刊续借期刊预约期刊丢失期刊罚款图3-7 期刊流通管理功能模块3.9 统计分析管理统计分析管理为图书馆管理人员的分析决策提供依据,包含的功能模块如图3-8所示。统计分析管理图书借阅查询图书归还查询图书超期查询图书注销查询图书订购查询图书借阅排行读者档案查询其他查询图3-8 统计分析功能模块第4章 图书馆管理系统数据库分析4.1 数据库数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。4.1.1 用户数据目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。第二章描述了一个用以产生良好结构关系的过程,称作规范化。4.1.2 元数据数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描述称作元数据。因为DBMS产品是用来存储和操纵表的,以大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指出每一个表中有多少列,那一列是主关键字,每一列的数据类型的描述也存储索引、关键字、规则和数据库结构的其他部分。在表中存储元数据不仅对DBMS是有效的,对用户也是方便的,因为他们可以使用与查询用户数据同样的查询工具来查询元数据。4.1.3 索引第三种类型的数据改进了数据库的性能和可访问性,这种数据经常称作开销数据,尽管有时也采用其他类型的数据结构,如链表,但它主要还是索引。索引可以用来排序和快速访问数据。4.1.4 应用元数据存储在数据库中的第四种数据是应用元数据,它用来存储用户窗体、报表、查询和其他形式的查询组件。并非所有的DBMS都支持应用组件,支持组件的DBMS也不一定把全部组件的结构作为应用元数据存储在数据库中。然而,大多数现代的DBMS产品存储这种数据作为数据库的一部分。一般来说,数据库开发人员和用户都不直接访问应用元数据,想反,他们通过DBMS中的工具来处理这些数据。4.2 数据库管理系统数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等4.3 创建数据库数据库模式定义了数据库的结构、表、关系、域和业务规则。数据库模式是一种设计,数据库和应用正是建立在此基础上的。域是一列可能拥有的值的集合。必须为每一个表的每一列确定域。除了数据的物理格式外,还需要确定是否有些域对表来说是唯一的。数据库模式的最后一个要素是业务规则,它是对需要反映在数据库和数据库应用程序中的业务活动的约束。业务规则是模式的一个重要部分,因为他们指定了无论什么数据变化到达DBMS引擎,允许的数据值必须满足的约束。不管无效的数据变化请求是来自窗体的用户、查询/修改请求还是应用程序DBMS都应该拒绝。遗憾的是,不同的DBMS产品用不同的方法实施业务规则。在某些情况下,DBMS产品不具备实施必要业务规则的能力,必须以代码形式把它们编入应用程序。4.4 图书管理系统当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。4.5 图书馆管理系统E-R 因为整个系统涉及的实体和属性较多,限于篇幅不能也没有必要一一列举。图4-1为图书馆管理系统关键实体的E-R 图。其他实体与基本信息表间的对应关系都是类似的。图4-1 系统E-R图4.6 图书馆管理系统数据表清单 下面我们仅列出一些重要表的名称及其用途供参考。如表4-1所示。其中每张表所包含的字段读者可以自己查看建库脚本和前面的需求分析。表4-1 图书馆管理系统数据表清单数据表名称数据表用途出版社保存图书对应出版社的基础信息读者类型保存读者类型及相关信息读者信息保存读者的各种信息供应商保存图书供应商信息管理员保存用户信息期刊丢失保存期刊丢失记录期刊罚款保存期刊罚款记录期刊归还保存期刊归还记录期刊借阅保存期刊借阅记录期刊类型保存期刊类型及相关信息期刊信息保存期刊信息期刊征订保存期刊征订入库记录期刊注销保存期刊注销记录书架保存馆内数据的基础信息图书丢失保存图书丢失记录图书罚款保存图书罚款记录图书馆保存图书馆的基础信息图书归还保存图书归还记录图书借阅保存图书借阅记录图书类型保存图书类型及相关信息图书信息保存图书信息图书征订保存图书征订入库记录图书注销保存图书注销记录文献尺寸保存文献(包括图书和期刊)的尺寸基础信息文献等级保存文献(包括图书和期刊)的等级基础信息文献附件保存文献(包括图书和期刊)的附件基础信息文献印刷保存文献(包括图书和期刊)的印刷基础信息文献语系保存文献(包括图书和期刊)的语系基础信息第5章 实例制作介绍基于以上需求分析和数据分析,对于一个标准的图书馆管理系统应该有了一个全面的认识。下面我们将实例说明如何利用Microsoft VisualB完成系统的开发。5.1 实例功能图书馆需要强调的是,由于用户登录和权限管理的功能各个系统实现的方法是一致的,详细介绍的功能模块如图5-1所示。 图书馆管理系统读者管理图书管理图书流通管理读者类别设置读者档案管理图书类别设置图书档案管理图书征订图书借阅图书归还逾期清单图书罚款图5-1 详细介绍的功能模块5.2 系统流程图 系统流程图如图5-2所示。读者管理管理员图书管理读者信息流通管理图书信息图书借阅图书归还图书征订预约读借罚款管理图5-2 系统流程图第6章 图书馆管理系统数据库设计读者信息和图书信息是系统关键的表,其他各表均通过“编号“字段与之相对应进行多对一的关联。系统共需要8张表,用途分别如表6-1所示。表6-1 数据库表及其用途数据表名称数据表用途读者类型保存读者类型及其相关信息读者信息保存读者的各种信息图书类型保存图书类型及其相关信息图书信息保存图书信息书架保存图书馆内数据的基础信息出版社保存图书对应出版社的基础信息图书罚款保存图书罚款记录图书归还保存图书归还记录图书借阅保存图书借阅记录图书征订保存图书征订入库记录6.1 创建数据库打开SQL server企业管理器,新建一个数据库,名称为libbook。完成数据库的设计。6.2 创建读者信息数据表创建读者信息数据表的 sql脚本如下:CREATE TABLE dbo.读者信息 (条形码 varchar (40) NULL ,编号 varchar (20) NOT NULL ,姓名 varchar (20) NULL ,性别 varchar (8) NULL ,类型 varchar (20) NOT NULL ,出生日期 smalldatetime NULL ,有效证件 varchar (60) NULL ,证件号码 varchar (60) NULL ,联系方式 varchar (100) NULL ,登记日期 smalldatetime NULL ,有限期至 smalldatetime NULL ,操作员 varchar (20) NULL ,备注 varchar (100) NULL ,图书借阅次数 int NULL ,期刊借阅次数 int NULL ,是否挂失 bit NULL ) ON PRIMARYGO6.3 创建图书信息数据表创建图书信息数据表的SQL脚本如下:CREATE TABLE dbo.图书信息 (条形码 varchar (40) NULL ,编号 varchar (50) NOT NULL ,书名 varchar (200) NULL ,类型 varchar (100) NULL ,作者 varchar (100) NULL ,译者 varchar (100) NULL ,ISBN varchar (40) NULL ,出版社 varchar (100) NULL ,价格 money NULL ,页码 int NULL ,书架名称 varchar (200) NULL ,现存量 int NULL ,库存总量 int NULL ,入库时间 smalldatetime NULL ,操作员 varchar (20) NULL ,简介 varchar (100) NULL ,借出次数 int NULL ,是否注销 bit NOT NULL ) ON PRIMARYGO6.4 创建图书借阅数据表创建“图书借阅数据表的SQL脚本如下:CREATE TABLE dbo.图书借阅 (借阅编号 int IDENTITY (1, 1) NOT NULL ,图书编号 varchar (50) NULL ,读者编号 varchar (40) NULL ,借阅时间 smalldatetime NULL ,应还时间 smalldatetime NULL ,续借次数 int NULL ,操作员 varchar (20) NULL ,状态 varchar (10) NULL ) ON PRIMARYGO6.5 创建其他关键数据表以下是其他数据表的创建脚本:CREATE TABLE dbo.图书归还 (归还编号 int IDENTITY (1, 1) NOT NULL ,图书编号 varchar (50) NULL ,读者编号 varchar (40) NULL ,退还押金 money NULL ,归还时间 smalldatetime NULL ,操作员 varchar (20) NULL ,确定归还 bit NULL ) ON PRIMARYGOCREATE TABLE dbo.图书征订 (征订编号 varchar (50) NOT NULL ,图书编号 varchar (50) NOT NULL ,订购者 varchar (100) NULL ,订购者联系方式 varchar (100) NULL ,订购数量 int NULL ,订购单价 money NULL ,订购日期 smalldatetime NULL ,是否验收 bit NULL ,验收日期 smalldatetime NULL ,操作员 varchar (20) NULL ) ON PRIMARYGO6.6 创建主键及外键等表的约束在查询分析器中通过如下代码创建数据表的主键及外键等约束。ALTER TABLE dbo.图书信息 WITH NOCHECK ADD CONSTRAINT PK_图书信息 PRIMARY KEY CLUSTERED (编号) ON PRIMARY GOALTER TABLE dbo.图书借阅 WITH NOCHECK ADD CONSTRAINT PK_图书借阅 PRIMARY KEY CLUSTERED (借阅编号) ON PRIMARY GOALTER TABLE dbo.图书归还 WITH NOCHECK ADD CONSTRAINT PK_图书归还 PRIMARY KEY CLUSTERED (归还编号) ON PRIMARY GOALTER TABLE dbo.图书征订 WITH NOCHECK ADD CONSTRAINT PK_图书征订 PRIMARY KEY CLUSTERED (征订编号) ON PRIMARY GOALTER TABLE dbo.图书注销 WITH NOCHECK ADD CONSTRAINT PK_图书注销 PRIMARY KEY CLUSTERED (注销编号) ON PRIMARY GOALTER TABLE dbo.图书类型 WITH NOCHECK ADD CONSTRAINT PK_图书类型 PRIMARY KEY CLUSTERED (类型编号) ON PRIMARY GOALTER TABLE dbo.图书罚款 WITH NOCHECK ADD CONSTRAINT PK_图书罚款 PRIMARY KEY CLUSTERED (罚款编号) ON PRIMARY GOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO6.7 创建存储过程系统使用了“sl_图书征订”,“sf_图书借阅”,“sf_图书归还”三个存储过程,实现的功能分别为征订图书入库、借阅图书出库和归还图书入库,产生罚款信息等功能。具体计算方法在下面的脚本中有详细的注释。create proc sf_图书借阅asbegin tran-借书出库,减少图书库存量update 图书信息 set 现存量 = isnull(现存量,0) - 1from 图书信息 as a, 图书借阅 as bwhere a.编号=b.图书编号 and b.状态=新借-设置借阅状态update 图书借阅 set 续借次数=0,状态=未还where 状态=新借commitGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOcreate proc sf_图书归还 借阅编号 int, 罚款金额 moneyasbegin tran-借书出库,减少图书库存量update 图书信息 set 现存量 = isnull(现存量,0) + 1from 图书信息 as a, 图书借阅 as bwhere a.编号=b.图书编号 and b.借阅编号=借阅编号- 如果罚金不是0, 在 图书罚款 中产生记录if 罚款金额 0insert into 图书罚款(图书编号,读者编号,罚款日期,应罚金额,是否交款)select 图书编号,读者编号,getdate(), 罚款金额, 0from 图书借阅 where 借阅编号=借阅编号- 插入图书归还表insert into 图书归还(图书编号,读者编号,归还时间)select 图书编号,读者编号,getdate()from 图书借阅 where 借阅编号=借阅编号-设置借阅状态update 图书借阅 set 状态=已还 where 借阅编号=借阅编号commitGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOcreate proc sf_图书征订asbegin tran-验收入库,增加图书库存量update 图书信息 set 库存总量 = isnull(库存总量,0) + b.订购数量, 现存量 = isnull(现存量,0) + b.订购数量, 入库时间 = b.验收日期图书信息 as a, 图书征订 as bwhere a.编号=b.图书编号 and b.是否验收=0-设置图书征订记录的标志,标志为已验收update 图书征订 set 验收日期=getdate(), 是否验收=1where 是否验收=0commitGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO第7章 程序开发程序结构仍然为MDI 模式,这种开发模式结构清楚简单,容易理解,每一个功能对应一个窗体7.1 程序运行结果本程序运行后的效果如图7-1所示。选择主窗体上的菜单中的读者管理菜单选项可以进入读者类别设置和读者档案管理功能窗体,选择图书管理菜单选项可以进入图书类别设置和图书档案管理功能窗体,而选择流通管理菜单选项可以进入图书征订,图书借阅和图书归还等子窗体。图7-1 实例运行效果1.选择读者管理读者类别设置菜单命令,进入读者类别设置功能窗体,在其中管理读者的类别信息,如图7-2所示。该表中显示的是读者的各个类别的类别名称,可以借阅的图书册数和期刊册数,续借次数,以及是否有借阅限制的图书与期刊。这和我们在实际中遇到的图书馆的管理制度是非常类似的。需要添加新的读者类别或者是修改原有读者的信息只须单击工具栏上的新增按钮或修改按钮即可。单击删除按钮并选确定按钮,即可删除某条记录。在插入新信息或修改原有记录时,选中限制期刊复选框表示允许读者拥有对限制期刊的使用权,选中限制图书复选框表示允许该类别读者拥有对限制图书的使用权。图7-2 读者类型设置功能窗体2.在完成对读者类别的设置后,选择读者管理读者档案管理菜单命令,即可进入读者档案管理子窗体,该窗体主要完成对各个读者基本信息的设定,如下图7-3所示。图7-3 读者档案管理功能窗体该模块可以根据条形码,编号和姓名对读者的基本信息进行查询,并可以对读者的信息进行修改,添加等操作。在编辑状态下,可以从窗体下方的面板中修改读者的饿一些信息。3.单击类型下拉列表框,可以从中更改读者的类别,这些类别信息都是在窗体显示时从数据库中动态查询并添加到列表中的。在单击工具栏中的新增按钮后,软件会根据当前数据中的读者的编号情况自动生成一个4位的新编号,以免编号重复,此时即可编辑要新增的读者的信息,需要注意的是,该编号并不显示在窗体中,而是自动保存在数据表中,该功能和SQL server数据表的自动增量选项有关。4.在设置好读者的信息之后,就可以开始对图书的类别和信息进行管理。选择图书管理图书类别设置菜单命令,就可以进入图书类别设置功能窗体,该窗体的基本功能和读者类别设置窗体类似,只不过设置的是图书的类别信息。如下图7.4所示。图7-4 图书类别设置功能窗体5.选择图书管理图书信息管理菜单命令,则可以进入图书信息的设置和管理窗口,见图7-5,在这个窗口中,可以对图书馆所藏有的所有图书的信息进行管理。如下图所示,在对图书信息进行修改时,在类型,出版社和书架名称三个下拉列表中个选项都是动态从数据库中查询生成的,如果使用过程中其他窗体对数据库中的数据,例如图书类型进行了修改,那么在单击类型下拉列表框,就会从选项中看到数据已经有所不同了。图7-5 图书信息管理功能6.完成了读者信息的管理和图书信息的管理之后,就可以实际进行图书的借阅,归还罚款等一系列了。选择流通管理图书征订菜单命令,就进入图书征订功能窗口,可以在这里进行图书的征订工作。单击工具栏中的新增按钮,系统将自动计算新的征订编号以免新增加的图书增订编号与原有的征订图书定单重复,在单击窗体下部选区中的有放大镜标志的按钮,即可弹出一个新的窗体,在其中选择要征订的图书名,双击字段即可将该图书的编号和书名添加到图书征订窗体下部选区的编辑框中。从图中可以看到,新增的的征订图书的是否验收字段都是False,这表示图书尚未完成征订工作,此时,需要调用我们预先在数据库中设置好的存储过程完成图书的征订工作,单击提交征订验收按钮,执行存储过程,先将图书验收入库,增加图书库存量,然后设置图书征订记录的标志,标志为已验收。整个过程如下图7-6和图7-7所示。图7-6 图书征订功能窗体图7-7 图书征订过程中选择图书窗体7.完成图书的征订工作后,可以选择流通管理图书借阅菜单命令,进入我们平时使用图书馆时接触最多的图书借阅共能,在实际的图书馆使用中,一般都使用扫描仪或者电子枪将读者借阅证上的条纹码扫描输入到系统中,或者是用读卡器从读者的 IC卡中直接读入读者编号。我们在程序使用中使用从文本框中手工输入读者条纹码或者编号并回车的方法来模拟上述的过程,如图7-8所示。图7-8 图书借阅功能窗体在窗体上部的文本框中输入读者的编号或条纹码并回车,如果输入正确,则会在右边显示读者的基本信息并在下面的表格中显示读者已经借出的图书,此时光标将直接跳到借阅图书信息栏的文本框中,在其中输入读者要借阅的图书编号或者条形码并回车,如果输入正确,则该图书的信息将被自动添加到读者已借出出的图书列表的下方,并在左方的一栏中用“新借”来表示这是新借的图书,借书时间为当前系统时间,而应还时间则由图书类型中的可借天数来自动计算确定。窗体下方则将显示读者已借出的数量和本次借书数量,如果两者相加大于读者所能允许借书的数量,软件将提示已达到借书极限并拒绝将新书的记录添加到表中,如果读者试图借一本他已经借出的书,软件同样也将作出提示。如果确定借书,则单击窗体上方工具栏中的确定借书按钮,此时将会调用数据库中的图书借阅存储过程,将借书出库,减少图书库存量并将图书的借阅信息保存到数据库中的图书借阅数据表中。8.选择流通管理图书归还菜单命令,将显示如图7-9所示,完成归还图书的功能。在窗体,单击归还选中图书按钮先判断所选择的记录是否已经过期,如果过期则提示输入罚款金额,罚款金额默认为根据其过期时间计算得到的一个值,然后调用存储过程,完成图书归还的功能。图7-9 图书归还功能窗体9.选择流通管理逾期清单菜单命令,将显示所有逾期未还的图书清单。如图7-10所示。实际图书馆工作中,可以通过查询逾期图书信息通知借阅这些图书的读者归还图书。图7-10图书逾期清单功能窗体10.选择流通管理图书罚款菜单命令,将显示所有被罚款的读者的清单和他们被罚款的过期图书的信息。单击窗体下方的收回罚款按钮,将收取读者的罚金并将实付金额放入数据库中,并将罚款的是否交滞纳状态设置已经加纳。如图7-11所示图7-11 图书罚款功能窗体7.2 创建工程启动Microsoft VisualB2003,在主菜单中选择文件|新建|项目命令,弹出新建项目对话框,在项目类型列表框中选择Visual.Basic项目选项,然后在模板列表框中选择Window应用程序。在名称文本框中输入一个合适的方案文件名,选择要存放的位置,然后单击确定按钮完成新项目的开启。 7.3 创建系统主窗体利用系统默认生成的窗体作为主窗体,并为其添加一个主菜单(MainMenu)控件和一个状态栏(StatusBar)控件,各个控件的布局如图7-12窗体。图7-12 系统主窗体7.4 完成的读者类别设置功能这里将完成读者类别设置功能。在该子窗体中,可以实现对图书馆管理系统中读者类别数据的插入,编辑,删除,浏览和查询等各项操作。1.在解决方案资源管理器中,右键单击图书馆管理系统项,在弹出的快捷菜单中选择添加添加windows窗体菜单命令,在弹出的对话框中的模版栏内选中“windows 窗体”,并将名称文本框中的名称改为readerClassify.cs,这将新建一个窗体,在其上放置如图7-13所示控件。图7-13 读者类别设置窗体2.放置一个sqlDataAdapter控件,并命名为da1,在数据适配器选项的第一步选择libbook,然后在其设置的第四步生成SQL 语句窗口中的编辑框中分别输入如下带码。数据适配器da1的SQL语句:Select * from 读者类型 where(类型like?)然后选择da1,在右边的属性窗口中单击生成数据集选项,将生成的数据集生成到DataSet1中,此后在托盘中将出现dataset1的图标。3.在解决方案资源管理器中,双击dataset1,xsd ,在一个新窗口中将显示数据集中各个数据表的架构,选中读者类型表中的限制图书和限制期刊两个字段,在右边的属性栏中的default属性栏中添入false,这样做的目的是为这两个数据库中的bool字段在新增数据时添加默认值,以便在程序中使用与数据集连接的CurrencyManager实现新增数据时自动聚焦到新增的数据条目之上。如图7-14所示。图7-14 设置数据集中bool字段默认值7.5 完成读者档案管理功能在该子窗体中,可实现对财务管理系统中会计科目表中的数据插入、编辑、删除和浏览、查询等各项操作。在解决方案资源管理器中,添加一个新的窗体,并将名称改为readerinfo.cs,在其上放置如图7-15所示控件。图7-15 读者信息设置窗体7.6 完成图书类别功能这里将完成图书类别设置功能。在解决方案资源管理器中,添加一个新的窗体,并将名称改为bookclassify.cs,在其上放置控件如图7-16所示图7-16 图书类别设置窗体7.7 完成图书档案管理功能图书信息管理功能与读者信息管理功能非常相似。1.在解决方案资源管理器中,添加一个新的窗体,并将名称改为”bookinfo.cs”在其上放置控件7-17所示。图7-17 图书档案管理窗体2.放置一个sqldataadapter控件ad1,在其设置的第四步生成sql语句窗口中的编辑框中输入如下代码,并生成数据集dataset11。数据适配器da1的sql语句:Select * from 图书信息where (条形码like?)and (编号like?)and(书名like?)3.在解决方案资源管理器中,双击dataset1.xsd,在数据集窗口中选中“图书信息”表中的“是否注销”字段,并在右边的属性栏中的defualt属性栏中填写false .7.8 完成图书征订功能1.在解决方案资源管理器中,添加一个新的窗体,并将名称改为booksubscrbie.cs,在其上放置控件如图7-18所示图7-18 图书征订窗体2.放置一个sqldataadapter控件da1,在其设置的第四步生成sql语句窗口中的编辑框中输入如下代码,并生成数据集dataset11。数据适配器da1的sql语句:Select * where (是否验收=0) and (征订编号like?) and (图书编号?)3.在解决方案管理器中,双击dataset1.xsd,在数据集窗口中中图书征订表中的是否验收字段,并在右边的属性栏中的defualt属性栏中添入4.在解决方案资源管理器中,添加一个新的窗体,并将名称改为selectbook.cs,在其上放置控件如图7-19所示。5.在这个窗体上放置一个sqldataadapter控件da1,在其设置的第四步生成sql语句窗口中的编辑框中输入如下代码,并在高级选项中取消选中生成更新插入删除语句。配置完成数据适配器后,生成数据集。图7-19 双击选择征订图书窗体7.9 完成图书借阅功能在解决方案资源管理器中,添加一个新的窗体,并将名称改为bookborrow.cs,在其上放置控件如图7-20所示图7-20 图书借阅窗体7.10 完成图书归还功能1.再解决方案资源管理器中,添加一个新的窗体,并将名称改为bookreturn,cs在其上放置控件如图7-21所示。图7-21 图书归还窗体2.放置一个sqldataadapter控件da1,在其设置的第四步 生成sql语句窗口中的编辑框中输入如下代码,并在高级选项中取消选择生成新增,删除,更新语句,然后生成到新数据集dataset2中,托盘中显示为dataset21.7.11 完成图书罚款功能1.在解决方案资源管理器中,添加一个新的窗体,并将名称改为bookpenalty.cs在其上放置控件如图7-22所示。图7-22 图书罚款窗体2.放置一个sqldataadapter控件da1,在其设置的第四步生成sql语句窗口中的编辑框中输入如下代码,并在高级选项中取消选择生成新增,删除,更新语句,然后生成到新数据集dataset2中,托盘中显示为dataset21.7.12 编译并运行系统至此我们完成了整个系统的制作,选择run/run菜单命令或直接按F9键编译并运行程序,可以看到前面“程序运行结果”小节中介绍的程序。结论本系统是一个面向小型图书管理系统,具有一定实用性的数据库信息管理系统。它主要完成对图书馆的一系列管理,包括进入新书、借阅、信息查询管理。本系统采用当前流行的面向对象的开发工具VB来完成整个系统的设计,在数据库的设计上利用了SQL的便利性和实用性。本系统具有相当的实用功能。在查询方面,系统实现了多条件任意字段的模糊查询,同时在分类查询上实现了动态生成。在管理方面,系统较好地实现了管理员注册和密码修改等各项功能。系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,有关VB许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解VB和SQL的强大功能,而且还存在着许多不足之处。由于时间关系,系统功能实现不够完善,使用不是很方便。这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善,有很多不完美的地方,有许多功能没有实现,借阅信息管理还不完善,没有将删除的信息进行库存管理,不便于日后的查询,并且没有为该系统的管理权限设置多个不同的角色,使每个角色都有其特有的功能范围,超越权限不可能操作。数据库内容不多。而且无法实现网络操作,细节之处不够完善。由于时间仓促,一些好的设计思想还没有实现,我将进一步完善本系统功能。本系统还有待需要进一步改正的地方,请提出宝贵意见。通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。致谢在本次毕业设计中,我从指导老师身上学到了很多东西。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢老师耐心的辅导。 另外,在系统开发过程中还有同班的同学同样给与我不少帮助,帮助解决了不少的难点,使得系统能及时开发完成,这里一并表示感谢。参考文献1 何斌,王运坚,冯峰等VisualBasic.NET 应用指南人民邮电出版社,1998:12-202 张海藩软件工程导论第3版清华大学出版社,1998::50-873 CurtiS Smith Michael Amundsen Visual Basic 6.0数据库编程清华大学出版社,2000:77-924 高智勇中文版 Visual Basic 6.0 实例教程航空工业出版社,2000:12-345 丁卫群数据库系统概论科学出版社,2001:63-796 邱彦博,林浩生Visual Basic 6.0彻底研究中国科学出版社,2001:67-707 Mark SpenikSQL Server 2000数据库管理员机械工业出版社,2002:30-888 骆娟,何旭洪 Visual Basic 6.0 数据库系统开发实例导航人民邮电出版社,2002::25-459 牛又奇,孙建国新编Visual Basic 6.0程序设计教程苏州大学出版社,2002:110-13510 潘锦平,施小姚,姚天昉软件系统开发技术西安电子科技大学出版社,2003:123-15011 萨师煊,王珊数据库系统概论高等教育出版社,2003:40-6712 李绍原数据库原理及应用科学出版社,2003::22-4913 王晖面向对象软件分析设计与测试科学出版社,2004:21-3814 段 兴Visual Basic 6.0 数据库实用程序设计100例人民邮电出版社,2004:34-6615 Chen, PThe Entity Relationship Mode-Toward a Unified View of DataTODS,1976:102-13016 Chin, FPrinciples of Data Security Plenum Press,1982:90-12017 Robert A SchultheisMary SummerManagement Information System(Fourth Edition),McGraw-Hill Inc 2003:55-8118 Kenneth C.laudonJane Price LaudonManagement Information Systems,Prenti-ce-Hall 2000:86-103附录Athe control principle of the label,button and text frameIts time to get serious about controls! This lesson dives deeply into the three most common controls and explains how you can use them and manage them in your applications. By the time you complete this lesson, you will have mastered labels, command buttons, and text boxes. In addition, you will learn more about how to properly set up a form.Youll place labels on forms to display information. Command buttons give the user pushbutton control within applications. Text boxes get information from the user and process that information inside the program.Control FocusNew Term: The currently active control at runtime has the focus.Before looking at this lessons three controls, you need to master the concept of focus. Focus is a runtime concept. At runtime, only one window, form (which appears as a window), or control can have the focus. The window or form currently in focus is the form whose title bar is highlighted (typically colored blue). The control with the current focus has an outlined border or caption. WARNING: Dont confuse focus with a selected control. At design time you select controls by g them to display their sizing handles. At runtime, one control always has the focus, and users can change the focus by pressing Tab or Shift+Tab. Focus is important because the focus determines what the next keystroke or Enter keypress will activate. For example, consider the screen shown. The figure shows a VB session with several windows, including two windows from the executing program. The center window is the window with the focus, and you know so because of the highlighted title bar. Therefore, the center window is the window that receives keystrokes if and when the user presses a key。Only one control on the active window can have the focus. The check box labeled AutoSize has the current focus. Notice th outline around the control. In other words, despite the other windows on the screen at the time, if the user presses Enter under Figure 4.1s circumstances, the check box receives that Enter keystroke. If you understand the way check boxes work, you know that a check box is either checked or unchecked, meaning that the control determines one of two states. If the user presses Enter, the AutoSize check box will turn to unchecked.NOTE: Of course the user can click the AutoSize check box to uncheck the control. In addition, the user can click any control in any window on the screen and that control would receive the click. Focus refers to a windows and controls capability to receive keystrokes. Figure 4.1. Learning to spot windows and controls with the focus. Different controls display the focus in different ways. Only one of Figure 4.2s seven command buttons can have the focus at any one time. Can you spot the command button that has the focus? The extra dotted outline around the Images command button lets you know that the Images command button has the focus and that command button will receive an Enter keypress if the user presses Enter.The Mouse and Hotkeys Need No FocusAs stated earlier, a mouse click does not have to worry about focus. Wherever the user clicks, the mouse gets the mouse click no matter which window and control had the focus before the click. In addition, within the active window, the user can select any control by pressing that controls hotkey. For example, the user could press Alt+X to select the command button labeled Text Box even though the command button labeled Images has the focus. An Enter keypress has no inherent location. Without focus, Windows would have no way to determine where or what the Enter keypress is to activate. With a hotkey, Windows keeps the hotkey possibility within the window with the focus. In other words, if two windows appear on your screen and both contain controls with Alt+S keystrokes, only the active window with the current focus would receive and respond to Alt+S.The mouse is inherently directional as well as functional. When you click the mouse button over any windows control on the screen, Windows knows for certain that you wanted to click over that control. No ambiguity can exist as could happen with the Enter key. Therefore, focus does not apply to the mouse. Related PropertiesA command buttons Cancel property relates somewhat to focus. Whereas the focus determines which control gets the Enter key press, a command buttons Cancel property determines which command button gets a simulated Click event when the user presses the Esc key. TIP: Often, a command button used to exit an application or close a dialog box has its Cancel property set to True. Therefore, you can close such applications or dialog boxes by clicking the command button or by pressing Esc.A command buttons Default property also relates somewhat to focus. When a form first appears, the command button with the Default property of True receives the Click event when the user presses Enter. Another control might have the focus at that time, but if a command button has a Default property value of True, that button receives a Click event if the user presses Enter unless the user moves the focus to another command button before pressing Enter. Only one command button can have a Default value of True at any one time. As soon as you assign a command buttons Default value True, either at design time or at runtime, any other command button on the form with a True Default value immediately changes to False. Therefore, Visual Basic protects a forms integrity by ensuring that only one command button can have a True Default value at any one time. Tab OrderThe user can move the focus from control to control by pressing Tab (or Shift+Tab to move the focus backward). If you place eight controls on an applications form, what focus order will result? In other words, as the user presses Tab, will the controls get the focus from a left-to-right or from a top-to-bottom order?VB sets the default focus order in the order you place controls on the form. Therefore, if you place the top control first and the bottom control second, and then insert a third control in the middle of the form, the focus order will not move down the form in the order the user probably expects. You do not always place controls on a form in the same order in which you want to set the focus. Therefore, controls that can receive the focus support a property called the TabIndex property. The first control in the focus order has a Tab Index property of 0, the second control in the focus order has a Tab Index of 1, and so on. If you place controls on the form and then later want to modify the focus order, you need to change the controls Tab Index property values. TIP: Not all controls can actually accept the focus. For example, a label cannot receive keystrokes, so a label never gets the focus. The Label control does include the Tab Index property, however. By setting the labels Tab Index value to one more than a text box next to the label, you can add a hotkey to the labels Caption property, and the user then has a way to hotkey to the text box. Text boxes do not support hotkey keystrokes by themselves. Command ButtonsCommand buttons appear in almost every window of every Windows application. Command buttons determine when the user wants to do something, such as exit the application or begin printing. In almost every case, you will perform these tasks to add a command button to an application: 1. Locate and size the command button on the form.2. Change the command buttons Name and Caption properties. (The Caption property holds the text that appears on the command button.)3. Add code to the command buttons Click event procedure. Although the command button control supports 36 properties, youll only set the Name and Caption properties in most cases. In addition, although command button controls support 15 events, youll only write code for the Click event in most cases. After all, a command button resides on most forms just so the user can click the button to trigger some event that the user is ready to start.NOTE: By the way, you can set some properties only at design time (such as a controls Name property), you can set some properties both at design time and at runtime inside event procedures and other module code (such as a caption), and you can set some properties only at runtime from within the program (such as a list boxs entries). All of a controls properties that appear in the Properties window are settable at design time, and some of those you can set at runtime as well. As you learn more about Visual Basic, you will become familiar with the properties you can set only at runtime. Hough youll set the command buttons Name and Caption properties most of the time, setting the Caption property often requires that you change the font to increase or decrease the text size and style on the caption. Of course, you might want to center the caption text or, perhaps, left-justify or right-justify the text, so you also might need to change the Alignment property. In reality, youll also set the Left, Height, Top, and Width properties when you size and locate the command button because, as you learned in Hour 3, Controls and Properties, these properties update automatically when you place and size controls. As you can see, although you only seem to set a couple properties for most controls, the other properties really do play important roles, and youll almost always end up setting several properties to finalize your application. Table 4.1 lists some of the most common command button properties that youll set.New Term: An icon is a small graphical image, stored in a file with the .ICO filename extension, that often appears on toolbar buttons.LabelsLabels hold the primary text that appears on a form. Often, programmers use labels to place titles around the form and to label text boxes so users know what to type into the text box. Visual Basic supports several other ways to put text on forms, but when you use the Label control, your code can subsequently, at runtime, change the labels text so that different messages can appear when needed. Shows a Form window that contains a label used for the applications title.When you place labels on a form, youll almost always set the Label controls Name property and type a new Caption value. In addition, youll want to change the Font property and possibly the labels color and style. You will rarely write event procedure code for labels, so a labels overhead is fairly small and the programming effort required to manipulate labels is minimal. the most common Label control properties that youll set as you work with the Label control. Labels can present problems if they receive text that is too large for the label boundaries. Putting captions in labels seems easy until you think about the effects that can occur if the label is too large or too small to hold the text. By using certain property combinations, you can add automatically adjusting labels for whatever text the labels need to hold.Suppose that you design a label that contains this long caption: This labels caption is extremely long-winded, just like the author. A label is rarely wide enough or tall enough to hold a caption this long. If you attempt to type text into a labels Caption property that is longer than what fits within the labels size properties (Left, Height, Top, and Width), one of the following things can take place, depending on how you have set up the label: The text might not fit inside the label, and Visual Basic truncates the text. Set the Auto Size property to False if you want the label to remain the same size and not resize automatically to fit the Caption property value. If the code assigns long text, the label might not hold the entire caption, but the label will not expand and get in the way of other controls. The label automatically expands downward to hold the entire caption in a multilane label. To expand the label downward when needed to hold the caption, set both the Auto Size and Word Wrap properties to True. Subsequently, if the code changes the caption to hold a long line of text, the label will expand to display the entire message. NOTE: Obviously, if you dont plan to change a label during a programs execution, you can size the label to fit the Caption property value at design time, and you dont have to worry about the Auto Size and Word Wrap properties. You only need to concern yourself with these properties if event procedures or other code might possibly change the labels caption. WARNING: Set WordWrap to True before you set the Auto Size property to True. If you set Auto Size first, the label expands horizontally before you have a chance to set the Word-Wrap property. The label automatically expands horizontally across the screen to hold the entire caption in a long label control. A long label like this is not necessarily a bad label. Depending on the length of the text that you assign to the label during the programs execution, there might be plenty of screen space to display long labels. To automatically expand the label horizontally, set the Auto Size property to True but leave Word-Wrap set to False. Text BoxesText boxes accept user input. Although several other controls accept user input, text boxes are perhaps the easiest to set up and respond to. In addition, a text box is simple for your users to use, and they see text boxes on Windows forms all the time. 附录B标签、按钮和文本框控件原理这课深入探讨了三个最常用的控制而且解释如何能在应用中使用并管理这些控件。当你完成这课的时候,你将会掌握标签, 指令按钮 , 和文本框。 除此之外,你将会学习该如何适当地建立一种框架。你将会在框架中放标签来显示数据。常用指令按钮在应用中给使用者按钮控制。文本框可以从用户得到信息并且在程序内部处理这些信息。控制焦点新的术语: 当前击活的控制在运行期间有焦点。在看这本书的前三个控制之前,你必须理解焦点的概念。 焦点是一项运行时的概念。在运行期间只有窗口,窗体 ( 以窗口形式出现) 或控制能有焦点。窗口或窗体现在被选中是标题栏被加亮的形式。( 典型的是蓝色) 。现在的控制被选中也会有一个边缘框或说明。警告:把焦点和选择控制弄混。 在设计时你挑选出来的控制通过按他们显示他们的位置句柄。在运行期间,控制总是有焦点,而且使用者能通过按下Tab键或Shift+Tab键。焦点很重要,因为焦点决定next键或Enter键的下一步该走哪个键。 举例来说,考虑在被显示的荧屏. 图片通过会话显示很多不同的窗口, 包括运行时的两个窗口。 中心的窗口是有焦点的窗口,而且你知道是因为被加亮的标题栏。 因此,如果用有按键的话,中心窗口是接受按键的窗口。只有一在击破活窗口中的控制能有焦点。Check box 标明的自动大小有当前焦点。 注意一下在控制的周围边框。换句话说,在那时不管在屏幕上是否有其它窗口,如果用户在图中环境下按下Enter键, 在检查框中接收到这个Enter击键。如果你知道检查框的工作方式, 你就会知道这个检查框是或检查过或未被检查的, 意谓着控制决定一到两个状态。 如果使用者键入Enter键,自动的检查醛将会转到未被检查的状态。注意: 当然使用者能按自动检查框可以不检查控制。 除此之外,使用者能按在荧屏上的任何窗口的任何控制,而且那控制会接受点击。 焦点涉及窗口的和控制的接受按键的能力。 学习用焦点监视窗口和控制。 不同的控制以不同的方式显示焦点。 在七个命令控件中一次只能有一个控件获得焦点。你能监控你的指令按钮获得这个焦点吗? 在图像指令按钮周围的有点的边框是让你知道这个图像命令按钮当前有焦点而且这个指令按钮在有用户按下回车时可以接收回车键。 鼠标和而热键不需要有焦点。正如前面所讲的,鼠标点击不须为焦点担忧。无论使用者在何处按,鼠标都可以在点击处得到窗口和控制有了在点击前的焦点。 除此之外,在活跃的窗口里面,使用者能通过按下那控制的热键来选择任何的控制。举例来说,使用者可以按中Alt+X来选择命令按钮标识的文本框尽管当前命令按钮标识的图像有焦点。回车键没有固有的位置。没有焦点,窗口也没有办法决定哪里或什么将被回车键击活。 通过热键 ,窗口在和有焦点的窗口里面保证热键的可能性。换句话说,如果二个窗口在你的屏幕上出现而且两者都含有Alt+S键,只有和现在有焦点的窗口会接收而且回应Alt+S。鼠标固有方向和功能。 当你在屏幕上任何窗口控制中按鼠标键。不会存在像按回车键那样不明确的情况发生。 因此,焦点不适用于鼠标。 相关的属性指令按钮的取消特性多少与焦点有联系。不管哪个焦点决定哪个控制获得回车键的按键, 指令按钮的取消特性决定当用户按下回车键时哪一指令同时获得点击事件。提示: 通常,一个指令按钮在通过点击指令按钮或按退出键时退出一个应用或关闭一个对话框。指令按钮的默认值属性也多少有关焦点。 当一个窗体最初出现的时候, 当用户点击回车键,具有真值默认属性的指令按钮接收点击事件。另外的控件那时可能有焦点,但是如果一个指令按钮在同时有默认的真的真值,只要你只定一个命令按钮的默认值为真,不管在设计时还是运行时,任何窗体中其它指令按钮有真的属性也会立即变成假值。因此,Visual Basic保护窗体的完整性,是通过保证只有一个命令按钮在一次只能有一个真的默认值。定位键次序使用者通过按Tab键控制 ( 或Shift+Tab来移动焦点向后) 能移动来自控制的焦点。如果你放八个控制键在一个应用窗体上,将会产生什么焦点次序? 换句话说,如果使用者按ab键,控制将会由左边到右边得到焦点还是从由上到下次序得到焦点?VB 设定默认焦点顺序是按照你放控件在形式上的次序。 因此,如果你最先放置顶端控件和第二个放置底部的控件, 然后在窗体中间插入第三个控件, 焦点次序将会像用户想像的那样按从上到下的顺序移动。你不会总是能将放置控件的顺序和你要设置焦点的顺序一样。 因此, 控件能接受称作TabIndex的焦点支持属性。在焦点次序的第一个控件的TabIndex属性为0,焦点次序的第二控件的TabIndex属性为 1,依次往下排列。如果你在窗体上放控件稍后想修改焦点次序,你只需改变控件的 TabIndex 属性值。提示:不是所有的控件都能实际上接受焦点。举例来说,标签不能够接受按键,因此,标签得不到焦点。标签控件确实包括 TabIndex 特性,然而, 通过设定标签的TabIndex属性值到临近标签的一个或多个文本框中,你可以添加一个热键到标签名称属性中,这样用户就有办法从热键到文本框了,因为文本框本身并不支持热键的按键。命令按钮指令按钮在几乎在每个Windows应用的窗口中出现。 指令按钮决定使用者何时做什么事情, 比如退出应用或开始打印。几乎在每个情形中,你会执行这些任务来添加一个指令按钮到一个应用中: 1. 找出并且按规定尺寸制作在窗体上的指令按钮。2. 改变指令按钮的名字和说明特性。 ( 说明属包含在控件中显示的本文)。3. 把代码加入指令按钮的点击事件程序中。 虽然指令按钮控件支持 36种属性,但是你在大部份的情形下只能设定名字和说明属性。除此之外,虽然指令按钮控件支持 15个事件,但是你只将会为点击事件在大部份的情形下写代码。毕竟,一个指令按钮仅仅在最大多数的窗体上,如此使用者能使按钮引起一些事件准备好开始。注意: 顺便一提,你只在设计能设定一些属性, 你能设定在设计和在运行时间在事件程序和其他的组件代码 ( 比如在一个说明) 之内 , 和你都只能在来自计划之内的运行期间设定一些特性。 ( 比如列表框的进入) 所有的控件在特定窗口中出现的特性在设计时间是 settable, 还有一些你也能在运行时间设定。 当你学习更多有关 Visual Basic 的时候,你将会熟悉你只能在运行时间设定的属性。虽然你将会设定指令按钮的名字和说明时间的特性大部分, 但是时常设定说明特性需要你改变字型或在说明上增加或减少文本的大小而设计。 当然,你可以集中说明文本,也许,靠右对齐或靠左对齐文本,因此你也可以改变对准特性。 事实上,你也将会设定左边对齐, 高度,顶端和宽度特性,你按规定尺寸制作并且找出指令按钮的时候。因为,如同你学习3 小时一样,“控件和属性,”当你放置并且按规定尺寸制作控制的时候,这些属性将会自动地更新。正如你所看到的那样,虽然你只为最大多数的控件设定属性,但是其他属性真的扮演很重要的角色,而且你将会几乎总是结束设定一些属性来结束你的应用。 你将会设定的一些最常用的指令按钮属性。新的术语: 一个图标是一个小的图形式的图像,,储存在一个文件中以.ICO 为扩展名,它时常在工具栏按钮上出现。标签标签拥有出现在窗体中主要的文本。通常,程序员使用标签在窗体的周围放置名称和分类本文框,因此使用者决定该进入文本框之内打什么。Visual Basic 支持一些其他的方法把文本放在表格,但是当你使用标签控件的时候, 你的代码能按顺序,在运行时间,改变标签的文本以便不同的信息能在需要时出现。 当你放标签在一个窗体上的时候,你将会总是设定标签控件的名字属性,并且键入新的说明值。 除此之外,你将会改变字体特性和可能地标签的颜色和风格。 你将会无法为标签写事件程序密码,因此,标签的通常开支非常小,编程努力必需的操纵标签是最小的。当你与标签控制合作的时候,你将会设定的最通常的标签控制特性。标签能现在的问题如果他们接受对标签边界是太大的文本。 如果标签太大,放标签的说明容易到你想效果以能发生或太小而无法支撑本文。通过使用某属性组合,你为标签支持无论什么文本能自动地调整标签。假如你设计包含这个长的说明标签。这标签的说明极端长,就像作家。标签要足够宽的或够高的来支持一个说明长度。 如果你尝试键入文本进标签的比较长的说明属性之内,应比较什么适宜在标签的大小特性 (左边,高度,顶端和宽度) 里面,下列各项事物之一能发生, 根据你如何组织在标签上面: 本文在标签之内不可能适合,而且 Visual Basic 能适当的转变文本。设定 AutoSize 属性为假,如果你标签保持相同的大小并且不自动地再按规定尺寸制作适当的说明属性值。 如果代码分配长的文本,标签不可能支撑整个的说明,但是标签将不扩长而且到达妨碍其他的控件标签自动地向下扩张的支持标签的整个说明。把标签向下的当支持说明 ,放置两者的 AutoSize 和 WordWrap 属性扩张到真值的。 随后,如果代码改变说明支持加长的文本, 标签将会扩大为显示整个的信息。 注意:显然,如果你在执行期间不计划改变标签, 你能按规定尺寸制作标签。在设计期间适当说明属性价值,而且你不须为 AutoSize 和 WordWrap 属性担忧。 你只用这些属性与你自己有关事件程序或其他的代码可能改变标签的说明。 警告:设定 WordWrap 的属性为真,在你设定 AutoSize 属性为真之前的。如果你首先设定 AutoSize,标签有机会水平地扩张来设定 WordWrap 属性。标签沿着屏幕水平自动地扩张,支持长标签控件的整个说明。长的标签并不必然地是坏的标签。 根据你在实行期间分配到标签的文本长度,可能有许多屏幕布空间显示长的标签。自动地把标签水平地设定 AutoSize 特性扩张到真值,但是 WordWrap 的属性设定为假值文本框文本框接受使用者输入。 虽然一些其他的控制接受使用者输入,但是文本框也许是最容易建立而且回应到。 除此之外,一个文本框很简单让使用者使用,和他们文本始终在窗口表格上输入文本框中。附录C图书馆借书登录模块程序代码如下:Public Class frmBorrow Inherits System.Windows.Forms.Form Private dtData As DataTable#Region Windows 窗体设计器生成的代码 Public Sub New() MyBase.New() 该调用是 Windows 窗体设计器所必需的。 InitializeComponent() 在 InitializeComponent() 调用之后添加任何初始化 End Sub 窗体重写 dispose 以清理组件列表。 Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose (disposing) End Sub Windows 窗体设计器所必需的 Private components As System.ComponentModel.IContainer 注意: 以下过程是 Windows 窗体设计器所必需的 可以使用 Windows 窗体设计器修改此过程。 不要使用代码编辑器修改它。 Me.dgdList.Anchor = CType(System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.dgdList.CaptionVisible = False Me.dgdList.DataMember = Me.dgdList.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.dgdList.Location = New System.Drawing.Point(8, 80) Me.dgdList.Name = dgdList Me.dgdList.Size = New System.Drawing.Size(680, 72) Me.dgdList.TabIndex = 9 Label6 Me.Label6.Location = New System.Drawing.Point(280, 36) Me.Label6.Text = 说明:借阅数量不可超过可借数量,借阅日期取当前日期,应还日期根究借阅日期和图书类型中的可借天数自动计算。 Label5 Me.Label5.Location = New System.Drawing.Point(192, 44) Me.Label5.Name = Label5 Me.Label5.Size = New System.Drawing.Size(80, 16) Me.Label5.TabIndex = 7 Me.Label5.Text = 回车确认输入 txbBook Me.txbBook.Location = New System.Drawing.Point(88, 40) Me.txbBook.Name = txbBook Me.txbBook.TabIndex = 6 Me.txbBook.Text = rbnCode Me.rbnCode.Location = New System.Drawing.Point(16, 52) Me.rbnCode.Name = rbnCode Me.rbnCode.Size = New System.Drawing.Size(64, 24) Me.rbnCode.TabIndex = 5 Me.rbnCode.Text = 条形码 rbnBookNumber Me.rbnBookNumber.Checked = True Me.rbnBookNumber.Location = New System.Drawing.Point(16, 24) Me.rbnBookNumber.Name = rbnBookNumber Me.rbnBookNumber.Size = New System.Drawing.Size(64, 24) Me.rbnBookNumber.TabIndex = 4 Me.rbnBookNumber.TabStop = True Me.rbnBookNumber.Text = 编号 txbReader Me.txbReader.Location = New System.Drawing.Point(88, 32) Me.txbReader.Name = txbReader Me.txbReader.TabIndex = 2 Me.txbReader.Text = frmBorrow Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14) Me.ClientSize = New System.Drawing.Size(688, 273) Me.Controls.Add (Me.GroupBox2) Me.Controls.Add (Me.GroupBox1) Me.Controls.Add (Me.ToolBar1) Me.Icon = CType(Resources.GetObject($this.Icon), System.Drawing.Icon) Me.Name = frmBorrow Me.Text = 图书借阅 Me.GroupBox1.ResumeLayout (False) Me.GroupBox2.ResumeLayout (False) CType(Me.dgdList, System.ComponentModel.ISu
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。