小型图书管理系统

摘要

随着各图书馆的图书数量不断增多和图书馆规模的不断扩大,管理这些庞大的体系非常困难的,因为图书的情况是随时改变的,因此必需对图书进行动态的管理,而这对于一个管理人员来说是一件比较复杂的事情。
针对各个模块不同的数据表实现添加记录、修改记录、删除记录、以及查询显示记录等功能,所有的操作方便而快捷,并全面实现了图书馆管理的各项功能。

系统采用Microsoft Access技术建立数据库,使用VB技术建立数据源的链接,并且生成图书管理的数据库应用程序从而实现数据库的管理功能。Access不仅是一个数据库,而且它具有强大的数据管理功能,它可以方便地利用各种数据源,生成窗体(表单),查询,报表和应用程序等。

本文介绍了在Visual Basic6.0环境下开发系统的详细过程,提出实现图书馆信息管理、资源共享的基本目标,从而推动迈向数字化图书馆的步伐,并阐述系统结构设计和功能设计,从图书的信息登记到查询浏览借阅,形成了一个整体自动化管理模式。

目 录

1引言 1
1.1图书管理的发展背景和意义 1
1.2图书管理的发展背景和意义 1
1.3 图书管理系统的特点 2
2 开发工具 3
2.1 Visual Basic语言 3
2.1.lVisual Basic开发的主要思想 3
2.1.2 Visual Basic应用程序的结构 4
2.1.3事件驱动应用程序的工作方式 4
2.2 Access 2000数据库的特点 5
2.2.1存储方式 5
2.2.2面向对象 5
2.2.3界面友好、易操作 5
2.2.4集成环境、处理多种数据信息 5
2.3 Access数据库安全技术 5
2.3.1加密数据库 6
2.3.2设置数据库密码 6
2.3.3用户级安全性 6
2.4 Visual Basic与Access二者的结合… 6
2.5 ADO数据控件技术 7
2.5.1 ADO数据控件介绍 7
2.5.2 ADO对象模型 8
2.5.3 ADO数据控件的功能 9
3 数据库的设计 10
3.1数据库简介 10
3.2 Access的功能 10
3.3 Access数据库中的七个对象 10
3.4数据库的设计 10
3.4.1数据库设计原则 11
3.4.2数据库表结构设计 11
4 图书信息管理系统设计 14
4.1系统设计的原则 14
4.2系统总体结构设计 14
4.3系统功能简介 15
4.4系统设计思想 16
4.5用户界面设计 16
4.5.1登陆界面的设计 16
4.5.2 主界面设计 17
4.6图书管理界面的设计 18
4.7 读者管理界面设计 19
4.8 图书借阅管理界面设计 20
4.9报表浏览及打印窗口设计 21
5 系统的编码设计与发布 23
5.1编码设计 23
5.1.1登录管理编码设计 23
5.1.2添加图书信息代码设计 24
5.1.3书籍查询代码设计 27
5.2系统的发布 29
5.2.1编译应用程序 29
5.2.2打包应用程序 30
5.2.3发布应用程序的步骤 31
结 论 32
参考文献 33
致 谢 34

1引言

1.1图书管理的发展背景和意义
目前社会上信息管理系统发展飞速,越来越多的企事业单位都引入了信息管理软件来管理自己日益增长的各种信息。各大高校也相继采用了图书管理系统来管理图书,取得了很大的成效,图书管理信息系统也在功能上不但完善和加强,为了使图书管理更加规范化,程序化,科学化,我们研发了这次的图书管理系统。
作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点。图书管理系统的开发是一个老生常谈的问题,以其作为数据库开发的示例是因为它的开放性,比较成熟。随着数据库技术、网络技术和科学管理方法的发展,计算机在管理上的应用日益广泛,管理信息系统逐渐成熟起来,并且给管理带来了新的革命。鉴于目前学校图书数目剧增,图书信息量也呈爆炸性增长的形势下,对图书管理系统功能的要求越来越高,图书管理系统也在此基础上有了很大的发展,但是各系统力求使其功能简洁明了,而且齐全、易于操作。
1.2图书管理的发展背景和意义
当今计算机及网络技术飞速发展,计算机应用在全球范围内日益普及,而社会也正快速向信息化社会前进,信息系统的作用也越来越大。现在我国的各中小城市的图书馆的图书管理和借阅管理还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被以计算机为基础的信息管理所取代,因此根据图书馆目前的实际情况来开发一套新的图书管理系统是十分必要的。图书管理信息化是信息发展的必然趋势。通过对管理系统模型的研究,提出一套构造图书信息管理系统模块的方法,并利用数据库、信息系统分析所学的知识,结合其它图书管理业务常识,建立相关数据模型,利用面向对象开发工具对其进行设计与开发。建立一套有效的图书信息管理系统,可以减少工作量,将管理工作科学化、规范化,提高图书馆管理的工作质量和工作效率。
目前我国的经济水平在整体上已有了迅猛发展。综合国力有了大幅度提高,人们的物质文明和精神文明也发生了翻天覆地的变化,人们的求知欲望特别强烈,在人们不断进步的过程中,深深地懂得只有学到更多的知识,才能创造和积累更多的财富。图书馆也就成为人们业余时间的去处,即能获得更多的知识,又能结识更多的书友,使他们能够共同学习,共同提高,越来越多的读者使图书馆的工作将越来越繁重,越来越需要一个系统的精确的管理系统来满足读者的需要,实现微机管理也就成为必然。
图书信息管理是管理员主要工作之一,手工进行图书管理工作,特别是面对大量的书籍,每天要花费管理人员大量的时间来进行借书分类,归户,统计等工作,有时还会出现错误,给下一环节的工作和读者带来不便。由于手工统计的时间限制,所需要的许多报表不能如期完成。随着计算机技术的发展和普及,利用计算机技术准确,快捷,方便的特点进行图书借阅管理,不仅能实现图书信息管理,还书和借书管理的计算机化,库存图书的分布查询,还能对借出图书进行统计,及时提供准确,详细的借阅数据,为采购部门提供可靠,具体的购书信息。
1.3图书管理系统的特点
管理信息系统的结构是指管理信息系统各个组成部分之间相互关系的总和,它是信息收集和加工的体系。管理信息系统的开发是一项应用软件工程。为了使开发工作顺利进行,使开发出来的系统达到实用可靠、高效先进的目的,系统开发一般应遵循如下原则:

  1. 实用性原则
    实用性是系统开发所要遵循的最重要的原则,系统必须满足用户管理上的要求,即保证系统功能的正确性又方便实用,需要友好的用户界面、灵活的功能调度和完善的系统维护措施。为此,系统的开发必须采用成熟的技术,认真细致地作好功能和数据的分析,并充分利用代码技术、菜单技术及人机交互技术,力求向用户提供良好的环境与信心保证。
  2. 系统的原则
    管理信息系统是组织实体内部进行综合信息管理的软件系统,有着鲜明的整体性、综合性、层次结构性和目的性。它的整体功能是由许多子功能的有序组合而成的,与管理活动和组织职能相互联系、相互协调。系统各子功能处理的数据既独立又相互关联,构成一个完整而又共享的数据体系。因此,在管理信息系统的开发过程中,必须十分注重其功能和数据上的整体性、系统性,这就是我们所强调的系统的原则。
  3. 符合软件工程规范的原则
    管理信息系统的开发是一项复杂的应用软件工程,应该按照软件工程的理论、方法和规范去组织和实施。无论采用的是那一种开发方法,都必须注重软件表现工具的运用、文档资料的整理、阶段性评审,以及重视项目管理。

2 开发工具

当Microsoft发布其获奖开发工具的第六版时,所有的职业开发人员中有超过50%的人正在使用Visual Basic语言。Visual Basic是用来创建高性能的企业应用及基于Web的应用程序的最有效工具。集成进来的可视化数据库工具和一个RAD(快速应用开发)环境能提高生产效率,而自然代码编译则能生成运行速度更快的应用程序。
2.1 Visual Basic语言
2.1.lVisual Basic开发的主要思想
使用Visual Basic开发应用程序的两个主要思想是可视设计和事件驱动编程。Visual Basic应用程序不同于其他浯言开发的单一性程序。使用Visual Basic编程时,必须首先确定应用程序如何与用户交互,如鼠标单击、键盘输入等,用户必须编写代码控制这些事件的响应方法。这就是所谓事件驱动式编程,因为应用程序并不决定程序流程,而是由用户确定的事件决定应用程序的流程。应用程序编写者要编制响应各种外部条件的应用程序.而用户的操作决定程序流程。
窗体和控件是任何Windows应用程序用户接口得基本元素。在Visual Basic中,这些元素称为对象。对象具有属性和方法,以响应外部事件。通常,属性在建立对象时设置。大多数控件属性是在对象生成时设置的,但以后可以赋予新值更改属性。用户可以在设计时通过属性窗口或运行时通过代码改变属性。
Visual Basic对于放置在窗体上的每个新控件赋予默认认属性。例如,默认的Name属性是控件名加一个序号(如Commandl、Conmmand2等).大多数控件的背景颜色为灰色或白色。用户可以在属性窗口检查新建控件的属性值。
有些属性在设计时提供,而有些属性则只能在运行时提供。例如,设计时不
能在列表框控件中指定工程,因为这时控件是空的,它要在应用程序启动时由
Visual Basic语句提供。因此,列表框控摔件的Text属性在设计时没有意义,而在运行时则是列表框控件的最重要的属性。反之,文本框控件的MultiLine属性只能在设计时设置,不能在运行时改变。
使用集成在Visual Basic里的可视化数据库工具和新的数据环境设计器,可视化地设计Oracle和Microsoft SQL Server数据库,创建可重用的数据查询语句、过程——这些都不必离开Visual Basic环境。
创建在任何一个装有Visual Basic 6.0 Web类库的平台上使用任何一个浏览器都可轻松地访问的服务器方Web应用程序。使用新的动态HTML页面设计器编制高交互性的Web页面象编制Visual Basic表格一样轻松。
VB是Visual Basic的缩写,它是一种基于Basic语言的可视化程序设计环境,一般也指在VB环境中所使用的程序设计语言机制。
VB中所使用的程序设计语言是由20世纪60年代的Basic语言发展而来的,他继承了Basic语言简单易学的优点,也作了许多改进。
2.1.2 Visual Basic应用程序的结构
一个应用程序实际上无非是指挥计算机完成任务的指令集。应用程序的结构是组织指令的方法,也就是指令存放的位置和指令为执行顺序。
对于只有一行的代码来说,组织结构并不十分重要。但应用程序越复杂,对
组织或结构的要求也就越明显。此时,除了对应用程序的执行进行控制外,如何
在应用程序中轻松查找特定指令,结构也起着很重要的作用。
由于Visual Basic应用程序是基于对象的,所以应用程序的代码结构就是该程序在屏幕上物理表示的模型。根据定义,对象包含数据和代码。在屏幕上看到的窗体代表属性,这些属性定义了窗体的外观和内在特性。应用程序中的每个窗体都有一个包含其代码的相关的窗体模块(文件扩展名为.FRM)。
每个窗体模块都包含事件过程,即代码部分,其中有为响应特定事件而执行的指令。在窗体模块中,对窗体上的每个控件都有一个对应的事件过程集。除了事件过程,窗体模块还可包含通用过程,它对来自任何事件过程的调用都做出响应。可将那些与特定窗体或控件无关的代码放入另一类型的模块:标准模块(文件扩展名为.BAS,也称为通用模块)中,一个过程可能用来响应几个不同对象中的事件,应该将这个过程放在标准模块中,而不应在每一个对象的事件过程中重复相同的代码。可用类模块(文件扩展名为.CIS)创建对象,这些对象可被应用程序内的过程调用。标准模块只包含代码,而类模块既包含代码又包含数据,它们可视为没有物理表示的控件。
2.1.3事件驱动应用程序的工作方式
事件是窗体或控件识别的行为和动作。在响应事件时,事件驱动应用程序会执行Basic代码。Visual Basic的每一个窗体和控件都有一个预定义的事件集。如果其中有一个事件发生,而且,在关联的事件过程中存在代码,则Visual Basic将调用该代码。尽管VisualBasic中的对象自动识别预定义的事件集,但要判定它们是否响应具体事件以及如何响应具体事件则是编程的责任了。代码部分(即事件过程)与每个事件对应。想让控件响应事件时,则可以把代码写入这个事件的事件过程之中。
对象所识别的事件类型多种多样,但多数类型为大多数控件所共有。例如,大多数对象都能识别click事件:如果单击窗体,则执行窗体的单击事件过程中的代码;如果单击命令按钮,则执行命令按钮的click事件过程中的代码。但是,每种情况中的实际代码几乎完全不一样。
本系统使用了VB6.O作为开发平台,在程序开发中使用了大量的窗体和控件,并对控件的部分事件编写了代码。例如登陆窗体的“确认”按钮,其单击事件代码见5.1.l。
2.2 Access 2000数据库的特点
Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
2.2.1存储方式
Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。
2.2.2面向对象
Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。
2.2.3界面友好、易操作
Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。
2.2.4集成环境、处理多种数据信息
Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询等可以方便有序地进行。
2.2.5 Access支持ODBC
Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。
2.3 Access数据库安全技术
如果需要保护敏感数据免受非法访问,最好的安全措施就是使用计算机操作系统提供的文件级安全性和文件共享安全性。文件级安全性涉及在数据文件上设置权限。文件共享安全性涉及限制对数据文件存储位置的访问。文件共享安全性的一个示例是在存储数据文件的文件夹(位于本地计算机或网络服务器上)上设置用户权限。为此,可以将数据拆分到多个文件中,在这些文件上设置用户权限,再将这些文件放置到受保护的文件共享空间中。然后可以从具有安全设置的Access数据库链接到这些文件。
下面是几种保护Access数据库的方法:
2.3.1加密数据库
最简单(也是安全性最低)的保护方法是对数据库进行加密。加密数据库就是将数据库文件压缩,从而使某些实用程序(如字处理器)小能解读这些文件。加密一个不具有安全设置的数据库并不能保证数据库的安全,因为任何人都可以打开数据库并完全访问数据库中的所有对象。加密可以避免在以电子方式传输数据库或者将其存储在软盘、磁带或光盘上时,其他用户偶然访问数据库中的信息。“加密/解密数据库”命令位于“工具”菜单的“安全”了菜单中。解密数据库是对加密过程的逆运算。
本系统使用该技术为数据库进行安全保护。
2.3.2设置数据库密码
您可以在数据库上设置密码,从而要求用户在访问数据和数据库对象时输入密码。使用密码保护数据库或其中的对象的安全性也称为共享级安全性。您不能使用此选项为用户或组分配权限,因此任何掌握密码的人都可以无限制地访问所有Access数据和数据库对象。“设置数据库密码”命令位于“工具”菜单的“安全”子菜单中。
2.3.3用户级安全性
除共享级安全性外,您还可以使用用户级安全性,它提供了最严格的访问限制,使您能够最大限度地控制数据库及其中包含的对象。
用户级安全性(在单独使用时)主要用于保护数据库中的代码和对象,以免用户不小心进行了修改或更改。如果不希望用户非法访问窗体、报表或模块中的代码,则必须将.mdb文件转换为MDE文件(本文后面将详细介绍)。要避免用户修改数据库中的查询、宏或数据访问页,唯一的方法就是将数据库文件放在一个受保护的文件共享区域中。此外,在Access中不可能既允许用户修改表中的数据,同时又禁止其修改表的设计或删除表。
2.4 Visual Basic与Access二者的结合
用Visual Basic做管理系统的时经常要加上数据库,以前对Visual Basic和数据库很不了解,所以做起来很困难,我的观点是:知识不能独享,就像黑客知识一样,如果只有一个人知道别人不知道,这个国家就会受到别人的入侵,只有大家都掌握了,才可以保护自己的家园。Visual Basic连接数据库的方法,我知道的有两种,因为我也是最近做了个管理系统才学会的。一种是在 adodc1的属性里设置数据库文件的路径,这种方法的优点是简单易操作,缺点是,当源文件换了地方后,要重新设置数据库的路径,否则连接不上数据库了。一种是用代码设置数据库的路径,这种方法的优点就是只要源文件和数据库在同一文件夹下,无论移动到哪里都能连接上。
如果没有建立好数据库的话,先建立一个数据库,然后建立一个表比如我们建的表,然后把里面的字段名称和数据类型都按自己的需要设置好,然后保存就可以了,打开Visual Basic6.0,在需要调用数据库的窗体上加入一个adodc控件,默认名称为Adodc1,默认的情况下工具栏里是没有这个控件的,可以打开工程—部件(快捷键CTRL+T),去掉只显示选定项的勾,然后勾上Microsoft ADO Data Control(OLEDB),然后确定,工具栏就会多了一个adodc的控件,设置adodc1的属以连接数据库,在adodc1控件上右键–Adodc属性–使用连接字符串–生成–Microsoft Jet 4.0 OLE DB Provider–下一步–选择或输入数据库名称—找到要连接的数据库后,确定,然后记录源设置属性,如果要把内容提交到数据库一般使用adCmdTable选择要连接的表。
2.5 ADO数据控件技术
2.5.l ADO数据控件介绍
在Visual Basic中,可用的数据访问接口有三种;Activex数据对象(ADO)、
远程数据对象(RDO)和数据访问对象(DAO)。数据访问接口是一个对象模型,它代表了访问数据的各个方面。使用Visual Basic,可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据。因为数据访问技术总是在不断进步,而这三种接口的每一种都分别代表了该技术的不同发展阶段。最新的是ADO,它是比RDO和DAO更加简单,然而更加灵活的对象模型。
ADO是为微软最新和最强大的数据访问范例0LE DB而设计的,是一个便于使用的应用程序层接口。OLE DB为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ADO在关键的INTERNET方案中使用最少的网络流量,并目在前端和数据源之间使用最少的层数.所有这些都是为了提供轻量、高性能的接口。同时AD0使用了与DAO和RDO相似的约定和特性,简化的语义使它更易于学习。
ADO具有以下特征:
·有一个简化的对象模型
·与其他Microsoft和非Microsoft技术更加紧密的集成。
·是一个本地和远程数据访问、远程和断开连接的记录集、用户可以访问的
数据绑定接口以及层次化的记录集的通用接口。
假如您需要的是一个简单、一致的应用程序编程接口(API),使应用程序能够访问和修改众多类型的数据源。数据源可能像文本文件一样简单,也可能像一堆异种数据库那样复杂,或者是尚未定型的某种数据。此外,API不应该预先设定出访问和操作数据源的方式。虽然提出了这些要求,典型的数据源依然需要支持开放式数据库连接性(ODBC)标准的关系型数据库,并可通过用结构化查询语言(SQL)编写的命令对它进行操作。微软对这个问题所提供的解决方案是OLE DB,即一组“组件对象模型”(COM)接口,以统一的方式访问存储在不同信息源中的数掘。但是, OLE DB应用程序编程接口的目的是为各种应用程序提供最佳的功能,它并不符合简单化的要求。
AD0定义编程模型即访问和更新数据源所必需的活动序列。编程模型概括了AD0的全部功能。编程模型带来对象模型即可以响应并执行编程模型的“对象”组。对象拥有能执行数据进厅操作的“方法”,以及表示数据的某些特性或控制某些对象方法行为的“属性”,与对象关联的是“事件”,用于通知某些操作已经发生或将要发生。
在AD02.O中包含了数据绑定、可视化设计工具以及OLE DB数据源书写模
板等新的内容。在Visual Basic6.0中,ADO的数据环境设计器(Data Environment
Designer)取代了Visual Basic 5.O中的RDO的用户连接设计器(user connection Designer)。User Connection对象必支持0DBC数据源,而Data Environment对象可以连接所有的OLE DB数据源。
2.5.2 ADO对象模型
ADO对象模型定义了一个可编程的分层的对象集合,它支持部件对象模型(COM)和OLE DB数据源。与其他的数据访问对象相比,包含在ADO的对象少得多,也更加容易使用。
AD0对象模型中包含了3个一般用途的对象:Connection、Command和Recordset。程序开发人员可以创建这些对象并且使用这些对象访问数据库。在ADO对象模型中还有其他几个对象,例如Field、Property、Error和Parameter,它们是作为前面3个对象的子对象进行访问的。ADO对象模型中的各个对象的具体描述如表2.1所示:
表2-1 ADO对象模型中的对象及描述
对 象 描述
Command 包含了一个命令的相关信息,例如,查询字符串、参数定义等。可以不定义一个命令对象而直接在查询语句中打开一个记录集对象。
Connection 包含了有关连接的信息,例如游标类型、连接字符串、查询超时、连接超时和默认数据库。
Recordset 查询得到的一组记录组成的记录集。
Fields 包含了记录集中某一个记录字段的信息。字段包含在一个字段集合中。字段的信息包括数据类型、精确度和数据范围等。
Property ADO对象的属性。AD0对象有两种类型的属性:内置属性和动态牛成的属性。内置属性是指包含存ADO对象里面的那些属性,任何AD0对象都有这些内置属性;动态属性由底层的数据源定义,并且每个ADO对象都有对应的属性集合。
Parameter 与命令对象相关的参数。命令对象的所有的阐述都包含在它的参数集合中,可以通过对数据库进行查询来自动地创建ADO参数对象。
Error 包含了由数据源产生的Errors集合中的扩展的错误信息。由于一个单独的语句会产生一个或多个错误,因此Errors集合可以同时包括一个或多个Errors。
2.5.3 ADO数据控件的功能
AD0 data控件使用Activex数据对象(ADO)来快速建立数据约束控件和数据提供者之间的连接,并快速创建记录集,然后将数据通过数据约束摔件提供给用户,其中数据约束控件可以是任何具有“数据源”属性的控件,而数据提供者可以是符合OLE DB规范的数据源。使用Ⅵsual Basic的类模块也可以很方便的创建子集的数据提供者。在Visual Basic6.0中,可以使用ADO数据控件实现下面一些功能:
(1)连接一个本地数据库或远程数据库。
(2)打开一个指定的数据库表,或定义一个基于结构化查洵语言(SQL)的查询,存储过程或者是该数据库中表的视图的记录集合。
(3)将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值。
(4)添加新的记录,或者根据对显示在绑定的控件中的数据的任何更改来更新一个数据库。

3 数据库的设计

数据库应用程序的开发仍然算得上是Visual Basic6.0编程中的难点,这是因为你不仅要熟悉Visual Basic6.0中关于数据库编程方面的知识还要了解数据库的知识。
3.1数据库简介
数据库指一个关于某一特定主题或目标的信息集合。利用数据库,人们可以为自己建立起诸如地址簿、收支表、电力分配等各种各样的信息集合并进行有效和切实的管理和安排。数据库需要借助于数据库管理系统(DBMS)才能发挥功能。
数据库管理系统是指对数据库信息进行存储、处理和管理的系统。如果在数据库管理系统中,根据用户定义的关系来存储、处理和管理数据库信息,这样的数据库管理系统称为关系型数据库管理系统。Access实际上是一个基于关系型数据库的数据库管理系统。
3.2 Access的功能

  1. 数据库中包含多个表,每个表可以分别表示和存储不同类型的信息。
  2. 通过建立各个表之间的关联,从而将存储在不同表中的相关数据有机地结合起来。
  3. 用户可以通过创建查询在一个表或多个数据表中检索、更新和删除记录,并且可以对数据库中的数据进行各种计算。
  4. 通过创建联机窗体,用户可以直接对数据库中的记录执行查看和编辑操作。
    3.3 Access数据库中的七个对象
  5. 表:表是用来保存和组织各种信息的,它是Access数据库的基本对象,其它的数据库对象都是以表为基础来创建的。每一个表都包含了体现同一主题的同类信息。表中信息分行、列存储。表中的每一列都包都包含特定主题下的某一实例的所有信息数据,称为“字段”;表中每一行所包含的是特定主题下的某一实例的所有信息数据,称为“记录”。
  6. 查询:用户通过查询可以在表中搜索符合指定条件的数据,并可以对目标记录修改、插入和更新等编辑动作。
  7. 窗体:用户可以通过创建窗体逐条显示记录,便于详细的查看和编辑,还可以对窗体进行编程。
  8. 报表:生成报表目的是进行计算、打印、分组和汇总数据。
  9. 页:功能上类似于典型的窗体和报表,但数据访问页是允许用户查看、编辑和汇报驻留在浏览器中的数据和HTML页。
  10. 宏:可以将数据中不同对象联在一起,从而形成一个数据管理系统。
  11. 模块:可以保存Visual Basic应用程序的声明和过程。
    3.4数据库的设计
    3.4.1数据库设计原则
    对数据的有效组织和管理,是实现管理信息系统的心环节。有效的数据组织取决于数据库的设计,而有效的数据管理则依赖于数据库管理系统(DBMS)的选择。在进行数据设计时要注意以下原则:
    ·数据库系统在逻辑上应有层次结构,数据自下而上逐层归纳、汇总。
    ·数据库结构必须规范化,必须保证数据的正确件和完整性。
    ·必须保证对数据的安全性,对故障应有预防能力、保护能力和恢复能力以及对数据的保密能力。
    3.4.2数据库表结构设计
  12. 创建数据库的两种方法:一种是使用“数据库向导”,用户可以在系统提供的数据类型中作出选择。另一种是创建一个空的数据库,由用户根据自己的需要添加相应的内容。
  13. 数据库表的建立:本系统主要建立了六个表为读者类别,读者信息,借阅信息,书籍信息,图书信息,用户表。
    (1)用户信息表:用来保存系统用户信息。表的设计如表3-1所示:
    表3-1 用户信息表
    序号 字段名 字段类型 字段大小 主键
    1 user_ID 文本 50 主键
    2 mima 文本 50
    (2)读者类别表:用来描述读者为何种身份,临时,VIP,金卡。表的设计如表3-2所示:
    表3-2 读者类别表
    序号 字段名 字段类型 字段大小 主键
    1 种类名称 文本 50 主键
    2 借书数量 数字 长整型
    3 借书期限 数字 长整型
    4 有效期限 数字 长整型
    (3)读者信息表:用来记录读者的性别,家庭住址,电话,工作单位等。表的设计如表3-3所示:

表3-3 读者信息表
序号 字段名 字段类型 字段大小 主键
1 读者姓名 文本 50
2 读者编号 文本 50 主键
3 性别 文本 2
4 读者类别 文本 50
5 工作单位 文本 50
6 家庭住址 文本 50
7 电话号码 文本 12
8 登记日期 日期/时间 -
9 已借书数量 数字 长整型
(4)借书信息表:主要记载读者借书的信息,书的名称,还书的时间等信息。 表的设计如表3-4所示:
表3-4 借书信息表
序号 字段名 字段类型 字段大小 主键
1 借阅编号 自动编号 长整型 主键
2 读者编号 文本 50
3 读者姓名 文本 50
4 书籍编号 文本 50
5 书籍名称 文本 50
6 出借时间 日期/时间 -
7 还书日期 日期/时间 -
(5)书籍信息表:主要记录书籍的书名,类别,作者,出版社,出版日期,登记日期等。表的设计如表3-5所示:
表3-5 书籍信息表
序号 字段名 字段类型 字段大小 主键
1 图书编号 文本 50 主键
2 书名 文本 50
3 类别 文本 50
4 作者 文本 50
5 出版社 文本 50
6 出版日期 日期/时间 -
7 登记日期 日期/时间 -
8 是否被借出 文本 2
(6)图书类别表:主要记录图书的类别名称,类别编号。结构如表3-6所示:
表3-6 图书类别表
序号 字段名 字段类型 字段大小 主键
1 类别名称 文本 50
2 类别编号 文本 50 主键
3. 添加数据表:将鼠标移到数据库窗口区域内,单击鼠标右键,在弹出的菜单中选择“新建表”命令,出现“表结构”对话框,利用对话框,可以建立数据表的结构,先确定表名,在“表名称”中输入表名,在单击“添加字段”命令按钮,打开“添加字段”对话框,从中确定字段的名称,类型,大小。
4. 连接数据库:在使用ADO数据控件前,应先通过“工程—部件”命令打开“部件”对话框,从中选择“Microsoft ado Data Control 6.0(OLE DB)”选项,将ADO数据控件添加到工具箱。ADO数据控件与VB工具箱中的DATA控件很相似,但ADO与数据的连接方式比较复杂,它通过使用ADO数据控件的基本属性来创建与数据库的连接。

4 图书信息管理系统设计

4.1系统设计的原则
图书信息管理系统在进行系统设计时,应该遵循以下原则:
1.可靠性原则
系统如果出现故障,必将影响企业员工培训管理的业务正常进行,同时可能影响与之相关的部门的工作。因此,高可靠性原则是本系统设计所遵循的一条重要原则。设计时采取如下措施以使系统可靠:
·采用高质量的设备;
·设计安装时,注意设备之间的接口及匹配,充分考虑空间距离和环境干扰
因素对信号传输的影响,在设备的搭配和介质的选用上采用一系列的冗余技术;
·充分考虑数据的安全性和完整性,数据存储采用两级备份,某一级出现故
障时不会导致数据丢失。
2.标准化原则
本系统的所有设计文档和设计方案遵循国际及国家现行的标准进行,以提高
系统的开放性,同时也利于系统扩充。软件设计严格按照国家软件设计规范实施。
3.可维护性原则
系统运行后,维护工作将是一个长期的工作。因此,本系统设计充分考虑维护工作的需求;设计采用面向对象、模块化的技术,提高软件的复用性、界面一致性、代码重用性,尽量降低维护工作量及困难。
4.经济性原则
在满足系统性能要求的前提下,硬件配置尽量考虑利用企业原有设备,以降低系统成本。
5.先进性原则
可扩充性和开放性。本系统要能进行产品更新换代以适应用户的需求,因此,系统软硬件均采用模块化结构,界面清楚,易于升级和扩充,并预留接口,以便将来增加管理终端。
4.2系统总体结构设计
系统功能图如图4-1所示。

在这里插入图片描述

图4-1 系统功能图
1、图书管理模块
该模块实现了图书类别管理和图书信息管理,图书类别管理包括添加图书类别和编辑图书类别,图书信息管理主要包括添加图书信息、编辑图书信息及查询图书信息。该模块主要实现了图书类别和图书信息的添加、删除及修改,还可以对图书信息进行查询。
2、读者管理模块
该模块实现了读者类别管理和读者信息管理,管理员可以通过该功能实现读者类别和读者信息的录入,删除及修改。
读者类别包括种类名称、借书数量、借书期限、有效期限的信息。
读者信息包括读者姓名、读者编号、性别、读者类别、工作单位、电话号码、家庭住址、登记日期、已借书数量等信息;
3、图书借阅管理模块
该模块实现了借书管理和还书管理。
4.3系统功能简介
本系统改善了人手操作的不足,提供可靠的查询、准确无误的统计、简单快捷的借书及还书手续。使繁琐复杂的图书管理工作变得轻松悠闲。
本程序用一个数据库里面包含了多个表,用ADODB控件来实现对数据库的访问。增加了登录框来访问数据库里面的管理员信息,杜绝了匿名访问,其中用了sql的字段访问功能来更好地查找数据库里面的字段。
本系统主要适用于中小型图书管理应用,图书管理系统是针对在图书管理中所遇到的问题,如书库管理、借书证管理、查询、统计等等。用人手处理以上工作,效率不高,工作量大,而且所得数据并不可靠。
图书信息管理系统通过前端客户端和后台数据库向用户展示信息,方便的实现了图书信息的维护和更新,使管理员更快,更好的了解信息。
4.4系统设计思想
该图书信息管理系统通过前端客户端(目前是单机版)和后台数据库向用户展示信息,方便的实现了图书信息的维护和更新,使管理员更快,更好的了解信息。以“图书查询管理”模块为例,管理员将所有新书数据存入数据库相应的表中,从数据库中查询出符合条件的书籍信息。客户端所显示的内容是随着后台管理数据库的变化而动态显示的,因此,客户端可以获得图书的书籍最新动态信息。
根据模拟的角色不同和实现的功能不同,原理上理应将整个系统做成两个既独立又相互联系的两个模板:前台和后台管理系统。但在实际开发过程中,将后台管理(如管理员信息的管理)集成到前台管理中,这是也该系统的一个特点。
4.5用户界面设计
用户界面是系统与用户之间的接口,是用户与计算机信息系统之间传递、交换信息的媒介,也是控制和选择信息输入输出的主要途径。用户界面的设计在管理信息系统的设计中占有非常重要的地位,一般来说,用户界面的设计应坚持如下原则;
·界面直观
·能够自行引导用户进行系统的操作
·操作简单,无需用户记忆太多复杂烦琐的命令或处理过程
·界面风格和操作方式一致。
4.5.1登陆界面的设计
登录界面如图4-2所示。登陆界面是用户运行该系统出现的第一个界面,用户需要在该界面选择自己的用户名,并输入登录口令。输入完成后,用鼠标单击“确认”按纽。如果口令正确,则可进入系统主界面。
在这里插入图片描述

图4-2 登陆界面设计图
4.5.2 主界面设计
主界面设计图如图4-3所示。用户登陆成功后,系统会进入主界面,在主界面有“图书管理”、“读者管理”、“图书借阅管理”、“关于”和“退出”五项主菜单。用鼠标单击这些出菜单,便会出现相应的下拉式菜单。
(1)图书管理模块:图书类别管理、图书信息管理
(2)读者管理模块:读者类别、读者管理
(3)图书借阅管理模块:借书管理、还书管理
(4)系统管理模块:关于、退出系统
在这里插入图片描述

图4-3主界面设计图
4.6图书管理界面的设计
添加图书类别界面如图4-4所示:
在这里插入图片描述

图4-4 添加图书类别
图书类别管理界面如图4-5所示:
在这里插入图片描述

图4-5 图书类别管理
窗口创建步骤如下:
(1)在窗体内添加一个“DataGrid1”控件,在添加一个“Frame”控件。
(2)在Frame控件上添加四个按钮,属性分别为修改类别,删除类别,更新,取消。
4.7 读者管理界面设计
添加读者类别界面如图4-6所示:

在这里插入图片描述

图4-6 添加读者类别
读者类别管理界面创建:
(1)在工具箱内找到Label控件,在读者类别管理窗体中放入七个Label控件,修改属性名称为读者种类,借书数量,借书期限,有限期限,本,天,年控件。
(2)在放入四个Text文本框,设置属性名称为空。
(3)最后添加两个按钮,名称设置为确定,取消。
读者类别界面如图4-7所示:
在这里插入图片描述

图4-7 读者类别
4.8 图书借阅管理界面设计
图书借阅管理主要是负责添加图书信息,查询图书信息,以及添加还书信息。
添加图书信息界面如图4-8所示:
在这里插入图片描述

          图4-8添加图书信息

查询图书信息界面如下:
在这里插入图片描述

图4-9 查询图书信息
4.9报表浏览及打印窗口设计
报表浏览及打印窗口设计图如图4-10所示。用户可以在该窗口浏览各类报表。在窗口的左上方有两个按钮。第一个按钮是“打印”按钮,用户可以单击此按钮实现对当前报表的打印:第二个按钮是“另存为”按钮,用户可以通过此按钮将当前报表另存为HTML文件或TXT文件。在按钮的右侧有一个下拉式缩放框,用户可以在此调整单前报表的浏览大小。
在这里插入图片描述

图4-10 报表浏览及打印窗口

5 系统的编码设计与发布

5.1编码设计
5.1.1登录管理编码设计
1)登陆流程如图17
在这里插入图片描述

图5-1 用户登陆流程图
2)代码如下:
//“确认”按纽单击事件:如果用户名口令正确,则调用MDImain.Show命令进入主菜单页面:如果不正确则显示“请重新输入密码”
Private Sub cmdOK_Click()
Dim sql As String
Dim rs_login As New ADODB.Recordset
Dim conn As New ADODB.Connection
conn.Open “provider=Microsoft.Jet.OLEDB.4.0; data source=” & App.Path & “\database.mdb”
If Trim(Text1.Text) = “” Then
MsgBox “用户名不能为空,请重新输入!”
Text1.SetFocus
Else
sql = “select * from 用户表 where user_ID='” & Trim(Text1.Text) & “'”
rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic
If rs_login.EOF = True Then
MsgBox “没有这个用户,请重输入!”, vbOKOnly + vbExclamation, “”
Text1.Text = “”
Text1.SetFocus
Else
username = Text1.Text
If Trim(rs_login.Fields(1)) = Trim(text2.Text) Then
Unload Me
frmMain.Show
Else
MsgBox “密码不正确,请重输入!”, vbOKOnly + vbExclamation, “”
text2.SetFocus
text2.Text = “”
End If
End If
End If
End Sub
//“取消”按纽单击事件:退出“登陆”窗体
Private Sub cmdCancle_Click()
Me.Hide
End Sub
5.1.2添加图书信息代码设计
1)添加图书信息流程图如下:
在这里插入图片描述

图5-2 添加图书信息流程图
2)代码如下:
Private Sub command1_Click()
Dim rs_addbook As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String

If Trim(Text1.Text) = “” Then
MsgBox “图书编号不能为空”, vbOKOnly + vbExclamation, “”
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = “” Then
MsgBox “书名不能为空”, vbOKOnly + vbExclamation, “”
Text2.SetFocus
Exit Sub
End If
If Trim(Combo1.Text) = “” Then
MsgBox “请选择图书种类”, vbOKOnly + vbExclamation, “”
Combo1.SetFocus
Exit Sub
End If
If Not IsDate(Text5.Text) Then
MsgBox “请按照yyyy-mm-dd格式输入日期”, vbOKOnly + vbExclamation, “”
Text5.SetFocus
Exit Sub
End If
If Not IsDate(Text6.Text) Then
MsgBox “请按照yyyy-mm-dd格式输入日期”, vbOKOnly + vbExclamation, “”
Text6.SetFocus
Exit Sub
End If

conn.Open “provider=Microsoft.Jet.OLEDB.4.0; data source=” & App.Path & “\database.mdb”
sql = “select * from 书籍信息 where 图书编号='” & Text1.Text & “'”
rs_addbook.Open sql, conn, adOpenKeyset, adLockPessimistic
If rs_addbook.EOF Then
rs_addbook.AddNew
rs_addbook.Fields(0) = Trim(Text1.Text)
rs_addbook.Fields(1) = Trim(Text2.Text)
rs_addbook.Fields(2) = Trim(Combo1.Text)
rs_addbook.Fields(3) = Trim(Text3.Text)
rs_addbook.Fields(4) = Trim(Text4.Text)
rs_addbook.Fields(5) = Trim(Text5.Text)
rs_addbook.Fields(6) = Trim(Text6.Text)
rs_addbook.Fields(7) = “否”
rs_addbook.Update
MsgBox “添加书籍信息成功!”, vbOKOnly, “”
rs_addbook.Close
Else
MsgBox “图书编号重复!”, vbOKOnly + vbExclamation, “”
Text1.SetFocus
rs_addbook.Close
Exit Sub
End If
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()
Dim rs_leibie As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
Provider = “Microsoft.Jet.OLEDB.3.5.1 ;Persist Security Info=false;data source=D:\图书管理系统\database.mdb”
conn.Open “provider=Microsoft.Jet.OLEDB.4.0; data source=” & App.Path & “\database.mdb”
sql = “select * from 图书类别”
rs_leibie.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_leibie.MoveFirst
Do While Not rs_leibie.EOF
Combo1.AddItem rs_leibie.Fields(0)
rs_leibie.MoveNext
Loop
rs_leibie.Close
End Sub
5.1.3书籍查询代码设计
1)查询流程图如下:
在这里插入图片描述

图5-3 查询图书信息流程图
2)代码如下:
Private Sub command1_Click()
Dim sql As String
Dim rs_find As New ADODB.Recordset
Dim conn As New ADODB.Connection
conn.Open “provider=Microsoft.Jet.OLEDB.4.0; data source=” & App.Path & “\database.mdb”
If Option1.Value = True Then
sql = “select * from 书籍信息 where 是否被借出=‘是’”
End If
If Option2.Value = True Then
sql = “select * from 书籍信息 where 是否被借出=‘否’”
End If
If Option3.Value = True And Text1.Text <> “” Then
sql = “select * from 借阅信息 where 读者姓名='” & Text1.Text & “'”
ElseIf Option3.Value = True And Text1.Text = “” Then
MsgBox “请输入读者姓名!”, vbOKOnly + vbExclamation
Text1.SetFocus
Exit Sub
End If

rs_find.CursorLocation = adUseClient
rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rs_find

End Sub

Private Sub Command2_Click()
Unload Me
End Sub
5.2系统的发布
在Visual Basic的集成开发环境中创建好企业订单管理系统后,并不意味着全部工作已完成,此时生成的应用程序只能在Visual Basic的集成环境中运行,要想使应用程序能够脱离Visual Basic的集成开发环境,首先要对企业订单管理系统程序进行编译并且生成.exe或其他类型的文件,然后调用打包和展开向导创建安装程序。
5.2.1编译应用程序
编译企业图书信息管理程序就是将创建的应用程序以及它的工程文件合并成一个可执行文件。在发布图书信息管理应用程序之前,首先应该使用测试和调试工具对改应用程序进行前面测试,在排除了所有可能的错误后,才可以开始对应用程序进行编泽。
编译应用程序的主要目的如下;
·使应用程序转入和运行更快。
·给发布应用程序做准备。
·使用应用程序更安全。
将应用程序进行编译后,Visual Basic将工程中的所有文件进行组织并将这些工程文件转化成一个可执行的文件.exe。
Visual Basic提供APP对象来存储应用程序的有关信息属性,例如版本以及其他相关信息。在设计中,可以通过这些属性来告诉用户一些重要的信息,在应用程序运行时用Visual Basic代码读出这些属性值,也可以在Windows资源管理器中观察应用程序对象的版本信息属性值。右击编译过的.exe文件,然后从快捷菜单中选择“属性”命令打开“属性”对话框的版本标签,就可以看到应用程序的版本信息。
当完成当前工程的APP对象的属性后,就可以编译代码了。VisualBasic6.O
支持两种编译格式:P代码和本地代码。选择P代码格式编译的应用程序生成的
可执行文件较小,选择本地代码编译的应用程序生成的可执行文件要大的多,但
是可执行文件的运行速度比较快。
因此,图书信息管理系统采用的是本地代码的编译格式。
5.2.2打包应用程序
创建Visual Basic应用程序后,可以将创建的图书信息管理应用程序通过磁盘,关盘,网络等途径自由发布,一般来说,发布应用程序必须经过下面的两个步骤:
1、打包
必须将应用程序文件打包为一个或多个可以部署到选定位置的.cab文件
(.cab文件是一种压缩文件),对于某些类型的软件包,还必须为其创建安装程
序。
2、部署
必须将打包的应用程序放置到适当的位置,以便用户来安装应用程序。可以使用两种工具来打包和发布应用程序。
·打包和展开向导(Package and Deployment)
·Visual Basic安装软件提供的安装工具包。
打包和展开向导通过提供有关如何配置.cab文件的选项,使发布应用程序所包含的许多步骤得以自动运行,这是用户一般所采用的方法。使用打包和展开向导进行打包的第一个步骤就是选择一个工程,然后单击打包按钮,开始创建一个可以发布的应用程序。第三步,如果没有编译工程,打包和展开向导会要求编译工程。工程编译完成后,向导询问想制作什么类型的包,我们这里使用向导制作安装程序。当向导完成制作安装包以后,它会自动生成一个带有很多重要信息的报告。
5.2.3发布应用程序的步骤
将图书信息管理系统打包后,制作安装程序的过程并没有结束,必须将打包后的应用程序发布到一个媒体上,比如软盘,光盘等,发布图书信息订单管理信息系统的主要步骤如下:选择“图书信息管理系统”这个包,然后指定把这个包发布到一个文件夹中,选择发布的媒体,就可以完成“图书信息管理系统”的发布工作了。
结 论
在对管理信息系统的开发过程有了基本了解后,本人使用Visual Basic开发了这个“图书信息管理系统”。系统基本实现了内部图书借阅管理的系统化、规范化和自动化。例如对图书进行登记,添加借阅人等。图书的借阅、归还。实现了简单的统计分析功能,可以展示出库存图书与借出图书的比例、馆藏图书种类的情况。并能对借阅规则进行设置。还能够对使用该管理系统的用户进行管理,按照不同的工作职能提供不同的功能授权。
通过对该系统的设计、开发和调试,一方面让我了解Visual Basic开发过程与方法另一方面,让我初步掌握了Visual Basic开发工具的使用方法,熟悉了窗口、菜单以及一些可视化控件的使用方法。通过使用还了解到窗口对象、数据窗口对象、各类控件的属性与方法。同时,在制作过程中遇到了不少问题和困难,通过查阅书籍及互连网得到了不小的帮助。

致 谢

首先,感谢学院对我的培养,给予自己宝贵的实践和提高的机会。通过这次的设计,自己从理论和实践方面都得到了很多锻炼。
同时要感谢老师对我传授的知识,并感谢老师对我的细心指导,我在做课题的时候遇到了一些问题,通过老师的指导和讲解让我明白了很多问题,并在理论与实践方面给予了我很多的启发,让我知道了在设计过程中的许多规范性问题,使我的课题能够顺利的、大工作量的完成。在此向他们致以最衷心的感谢。
同时感谢我的毕业设计指导老师,汪老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。她无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢她耐心的辅导;感谢所有跟我一块努力、帮助过我的同学。

参考文献

[1] 罗超理,李万红.管理信息系统原理与应用[M].北京:清华大学出版社.2002
[2] 王志勇,阮坚,王鹏.用PowerBuilder开发小型数据库[M].北京:人民邮电出版社.2002
[3] 萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社.2000
[4] 李晓喆,张晓辉.SQL Server 2000管理及应用系统开发[M].北京:人民邮电出版社.2002
[5] 王珍玲.实用软件工程教程[M].北京:高等教育出版社.2004
[6] 刘瑞新,崔淼.Visual Basic程序设计[M].北京:机械工业出版社.2003
[7] 谭小丹,刘国庆,李光明.Visual Basic6.0数据库编程思想与实践[M].北京:冶金工业出版社.2002
[8] 李玉东,李罡.Visual Basic6.0控件大全[M].北京:电子工业出版社.2000
[9] 赛奎春,李俊民.Visual Basic函数参考大全[M].北京:人民邮电出版社.2007
[10] 艾德才.计算机信息管理基础[M].北京:中国水利水电出版社.2001
[11] David Iserningger.The development of Machine language[M].美国:Microsoft Press.2004

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/218998.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ros2+UBUNTU读取STM32发送过来的数据(C++)

ATTENTION:一般ros2上位机访问STM32不是使用串口&#xff0c;即使树莓派有串口&#xff0c;我也不会用的&#xff0c;因为那还要去学习其他的语言&#xff0c;一般就是ros2---------ubs转串口-------STM32串口。 这个USB转串口&#xff0c;我们已经安装了CH340驱动了&#xff…

Qt篇——QChartView实现鼠标滚轮缩放、鼠标拖拽平移、鼠标双击重置缩放平移、曲线点击显示坐标

话不多说。 第一步&#xff1a;自定义QChartView&#xff0c;直接搬 FirtCurveChartView.h #ifndef FITCURVECHARTVIEW_H #define FITCURVECHARTVIEW_H #include <QtCharts>class FitCurveChartView : public QChartView {Q_OBJECTpublic:FitCurveChartView(QWidget *…

23、什么是卷积的 Feature Map?

这一节介绍一个概念&#xff0c;什么是卷积的 Feature Map&#xff1f; Feature Map, 中文称为特征图&#xff0c;卷积的 Feature Map 指的是在卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;通过卷积这一操作从输入图像中提取的特征图。 上一节用示意动图介绍了卷积算…

【开源】基于Vue和SpringBoot的开放实验室管理系统

项目编号&#xff1a; S 013 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S013&#xff0c;文末获取源码。} 项目编号&#xff1a;S013&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实…

3.镜像加速器

目录 1 阿里云 2 网易云 从网络上拉取镜像的时候使用默认的源可能会慢&#xff0c;用国内的源会快一些 1 阿里云 访问 阿里云-计算&#xff0c;为了无法计算的价值 然后登录&#xff0c;登录后搜索 容器镜像服务 点击容器镜像服务 点击管理控制台 点击 镜像工具->镜像…

Python的requests库实现HTTPS

嘿&#xff0c;Python程序员们&#xff01;今天我们要来点刺激的——使用Python的requests库实现HTTPS请求&#xff01;是的&#xff0c;你没有听错&#xff0c;我们要一起迈入HTTPS的神秘世界&#xff01; 首先&#xff0c;我们来了解一下HTTPS是什么。HTTPS是HTTP Secure的缩…

前端时间的失败总结复盘

分享失败经验&#xff0c;前段时间的总结复盘&#xff1a; 与伙伴合作面对异常决策要及时提出质疑&#xff0c;怼&#xff0c;别太客气&#xff0c;客气起来&#xff0c;小心翼翼在意他人情绪那么这个项目就会让人难受&#xff0c;不要因为因为伙伴身上有标签/光环/权威就觉得…

【C++】map和set的使用及注意事项

map和set的使用及注意事项 1.关联式容器2. 键值对3.set3.1接口介绍3.1.1构造3.1.2迭代器3.1.3容量3.1.4修改 3.2set使用及注意事项 4.multiset5.map6.multimap349. 两个数组的交集 1.关联式容器 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xf…

持续集成交付CICD:Sonarqube 扫描本地项目(关联Gitlab项目与Jenkins流水线)

目录 一、实验 1.Java项目扫描 2.视图徽章 3.版本管理 一、实验 1.Java项目扫描 &#xff08;1&#xff09;指定项目信息关联的首页为GitLab项目&#xff0c;持续集成为Jenkins流水线 &#xff08;2&#xff09;命令行 sonar-scanner -Dsonar.host.urlhttp://192.168.20…

RAG落地实践、AI游戏开发、上海·深圳·广州线下工坊启动!星河社区重磅周

飞桨星河社区在成立的5年以来&#xff0c;已汇集660万AI开发者&#xff0c;覆盖深度学习初学者、在职开发者、企业开发者、高校教师、创业者等&#xff0c;已成为AI领域最具影响力的社区之一&#xff0c;无论是AI爱好者还是AI开发者&#xff0c;都能在这里探索AI的无限可能。 飞…

字符指针变量数组指针变量

字符指针变量 在指针的类型中&#xff0c;我们知道有一种指针叫做字符指针 一般的使用情况如下&#xff1a; #include<stdio.h> int main() {char ch w;char* pa &ch;*pa h;printf("%c", *pa);return 0; } 还有一种使用方法如下&#xff1a; #incl…

计算机速成课Crash Course - 07. 中央处理器

今天开始计算机速成课Crash Course的系列讲解。 更多技术文章&#xff0c;全网首发公众号 “摸鱼IT” 锁定 -上午11点 - &#xff0c;感谢大家关注、转发、点赞&#xff01; 计算机速成课Crash Course - 07. 中央处理器 07. 中央处理器 提示下&#xff0c;这集可能是最难的一…

Python-图片去重

直接上代码 # 修改一下第34行文件夹路径以及13行图片后缀名即可使用 import os from hashlib import md5def remove_duplicate_images(folder_path):image_files []duplicate_images set()# 遍历文件夹&#xff0c;找到所有 JPG 图片文件for root, dirs, files in os.walk(f…

LeetCode | 110. 平衡二叉树

LeetCode | 110. 平衡二叉树 OJ链接 首先计算出二叉树的高度然后计算当前节点的左右子树的高度&#xff0c;然后判断当前节点的左右子树高度差是否超过 1&#xff0c;最后递归地检查左右子树是否也是平衡的。 //计算二叉树的高度 int height(struct TreeNode* root) {if(root…

SOLIDWORKS弯曲特征在泵阀行业中的应用

弯曲特征-折弯 此类弯曲特征以绕三重轴的折弯轴折弯一个或多个实体。 定位三重轴和剪裁基准面&#xff0c;控制折弯的角度、位置和界限。 此弯曲类型可用于多种应用&#xff0c;包括工业设计、机械设计、解决金属冲压中的回弹条件以及从复杂的曲面形状中删除底切等。 本篇文章…

【每日易题】Leetcode上Hard难度的动态规划题目——地下城游戏的实现

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;博主最近一直在钻研动态规划算法&#xff0c;最近在Leetcode上刷题的时候遇到一个Hard难度的动态规划题&#xff0c;今天就借此机会来给大家分享…

CopyOnWriteArrayList怎么用

什么是CopyOnWriteArrayListCopyOnWriteArrayList常用方法CopyOnWriteArrayList源码详解CopyOnWriteArrayList使用注意点CopyOnWriteArrayList存在的性能问题CopyOnWriteArrayList 使用实例基本应用实例并发应用实例 拓展写时复制 什么是CopyOnWriteArrayList CopyOnWriteArra…

Uber Go 语言编码规范

uber-go/guide 的中文翻译 English 文档链接 Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司&#xff0c;也是 Go 语言的早期 adopter。其开源了很多 golang 项目&#xff0c;诸如被 Gopher 圈熟知的 zap、jaeger 等。2018 年年末 Uber 将内部的 Go 风格规范 开源到 G…

每天一点python——day85

#每天一点Python——85 #python常见的异常类型&#xff1a; #如图&#xff1a; #①数学运算异常【由于会报错&#xff0c;我直接全部注释掉了】 print(10/0) 输出&#xff1a;ZeroDivisionError: division by zero#②索引错误list1[1,2,3,4] print(list1[5])#找索引为4的元素 输…

谈一谈内存池

文章目录 一&#xff0c;什么是内存池二&#xff0c;进程地址空间中是如何解决内存碎片问题的三&#xff0c;malloc的实现原理四&#xff0c;STL中空间配置器的实现原理五&#xff0c;高并发内存池该内存池的优势在哪里内存池的设计框架内存申请流程ThreadCache层CentreCache层…