![论计算机在图书馆的应用_第1页](http://file4.renrendoc.com/view/2d7826f5bc4dae1a5f81b49eeec0a50b/2d7826f5bc4dae1a5f81b49eeec0a50b1.gif)
![论计算机在图书馆的应用_第2页](http://file4.renrendoc.com/view/2d7826f5bc4dae1a5f81b49eeec0a50b/2d7826f5bc4dae1a5f81b49eeec0a50b2.gif)
![论计算机在图书馆的应用_第3页](http://file4.renrendoc.com/view/2d7826f5bc4dae1a5f81b49eeec0a50b/2d7826f5bc4dae1a5f81b49eeec0a50b3.gif)
![论计算机在图书馆的应用_第4页](http://file4.renrendoc.com/view/2d7826f5bc4dae1a5f81b49eeec0a50b/2d7826f5bc4dae1a5f81b49eeec0a50b4.gif)
![论计算机在图书馆的应用_第5页](http://file4.renrendoc.com/view/2d7826f5bc4dae1a5f81b49eeec0a50b/2d7826f5bc4dae1a5f81b49eeec0a50b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE论计算机在图书馆的应用【关键字】图书、计算机、应用、图书管理、程序设计、visualBasic、mvc、设计模式。【摘要】图书管理系统是现代图书馆不可缺少的组成部分,是典型的信息管理系统,它的开发主要包括数据库的开发和前端应用程序开发两个方面。对于数据库要求建立数据一致性和完整性强、数据安全性好的库。对于应用程序不仅要功能完备,而且要易于使用。因此本人结合图书馆的要求,使用vb语言,采用Access数据库,开发了一个功能完备,可移植性强的C/S系统。可用于高校,以及企事业单位的图书馆和资料室的现代化综合管理。【Keyword】book、computer、application、library、program、visualBasic、mvc、Designparttern。【Abstract】Librarymanagementsystemisindispensabletothemodernlibrarycomponentisatypicalinformationmanagementsystem,whichincludesthedevelopmentoffront-enddatabasedevelopmentandapplicationdevelopmentaspects.Thedatabaserequirestheestablishmentofstrongdataintegrityandconsistencyofdatawithgoodsecurity.Forapplicationsnotonlyfunctional,butalsoeasytouse.Socombinetherequirementsoflibraries,usingvblanguage,usingAccessdatabase,developedafullyfunctional,portableandstrongC/Ssystem.Canbeusedinuniversities,andenterprisesoftheLibraryandInformationManagementofamodernintegrated.目录绪论····························································5前言···························································5研究背景·······················································5系统概述及工具介绍··············································6系统概述·······················································6数据库技术·····················································6visualBasic·····················································6控件介绍·······················································7ADO.net技术···················································8需求分析·······················································10需求分析······················································10系统框架图····················································10系统设计数据库设计····················································11程序设计······················································13登录模块··············································13系统主界面············································15图书管理··············································17读者管理··············································20借阅管理··············································22系统管理··············································25使用说明·························································28结束语参考文献·······················································28第一章绪论【前言】进入21世纪,数字化、网络化的信息革命从根本上推动了图书馆的发展进程,计算机日益成为图书馆的主要设备,图书馆采用了各种自动化集成系统建立自己的内部网络环境,呈现出网络化、信息化、智能化和社会化的特征。现代信息技术是影响图书馆发展最深刻的环境因素。高密度的信息储存技术,高速度的信息传递技术,高效率、高质量的信息查询技术,在变革了人们生产、收集、组织、传递和使用知识信息的方式的同时,也使信息服务的机制、结构以及服务手段发生了巨大的变化。如何将一些先进的信息技术结合运用到图书馆的管理和服务中,用这些技术来促进日常工作,改变图书馆的传统模式,致力于营造以知识导航为服务观念的发展环境,将成为现代图书馆的工作重点。【开发背景】随着社会的发展,人们对知识的需求也不断地增长。在这种形势下,书就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就成不可少了,图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。随着社会的日益发展,尤其是科技的迅猛发展,使得我国各项事业得到了前所未有的突破,不仅提高了工作效率,而且也降低了劳动强度,美化了工作环境。随着计算机广泛地应用在科学技术领域的各个方面,并逐渐进入家庭,成为人们生活中必不可少的一部分。为了适应读者对图书的需求,同时又大大减轻图书馆工作人员的工作量,全面提高图书馆的管理效率及服务质量,我以VisualBasic为环境,开发了此应用软件,本系统适用于各类小型图书馆,以及各类大中专院校、中小学校、企事业单位的图书馆和资料室的现代化综合管理系统概述及工具介绍【系统概述】这是一个小型的图书管理系统,提供了图书馆工作人员日程可能遇到的各种操作。如:图书管理、读者管理管理、图书借阅管理、系统管理等。【数据库技术】 数据库引擎是用于存储、处理和保护数据的核心服务。数据库引擎提供了受控访问和快速事务处理,以满足企业内最苛刻的数据消费应用程序的要求。数据库引擎还提供了大量的支持以保持高可用性。Access是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS,即RelationalDatabaseManagementSystem),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。其主要优点如下:(1)完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。(2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。(3)可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。(4)作为Office套件的一部分,可以与Office集成,实现无缝连接。(5)能够利用Web检索和发布数据,实现与Internet的连接。Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。其缺点:ACCESS是小型数据库,既然是小型就有他根本的局限性,以下几种情况下数据库基本上会吃不消:1.数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降.2.网站访问频繁,经常达到100人左右的在线。3.记录数过多,一般记录数达到10万条左右的时候性能就会急剧下降.【VisualBasic】 MicrosoftVisualStudio6.0:这是微软公司提供的一款集成IDE开发工具,主要使用对象为.net程序员,即使用.net框架下的语言进行开发的程序员。该工具为c/s架构下的GUI开发和B/S架构下的网站开发都提供了强大的工具支持,如工程建立、代码联想、代码着色、控件化开发、调试、测试等。而且该工具不只适合与vb程序员,C++、vf等程序员也可以使用该工具提供的功能。工具的最新版本是vs2010,增加了对C#程序员、基于ajax的网站开发、linq、silverlight富客户端开发等的支持。功能更加强大。VB访问数据库的方法很多,一般情况下分成两大类,而每一类又有很多方法。数据访问接口功能及含义:(1)ADC:高级数据连接器(AdvancedDataConnector):提供绑定ADO数据源到窗体的数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLEDB对象的一种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上的浏览器为基础的应用程序而设计的。(2)ADO:Active数据对象(ActiveDataObjects):ADO实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。可以使用任何一种ODBC数据源,即不止适合于SQLServer、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。(3)DAO:数据访问对象(DataAccessObjects):是一种面向对象的界面接口。通过DAO/Jet功能可以访问ISAM数据库,使用DAO/ODBCDirect功能可以实现远程RDO功能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似。(4)DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。(5)JET:数据连接性引擎技术(JointEngineTechnology):是一种基于工作站通过DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处理功能,并可对同种或异种数据源作查询处理。(6)ODBC:开放式的数据库连接(OpenDatabaseConnectivity):是一种公认的关系数据源的接口界面。它快而轻并且提供统一接口的界面,ODBC对任何数据源都未作优化。(7)ODBCDirect:是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。使用在有DAO代码存在的场合,可用来访问远程数据源。(8)OLEDB:是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO技术的应用程序或用于C++的开发者开发定制的数据库组件。OLEDB不能被VB直接调用。(9)RDC:远程数据访问控件(RemoteDataControl):是一种对RDO数据绑定的控件。可以输出特定的结果集到数据源控件。(10)RDO:远程数据对象(RemoteDataObjects):远程数据对象和集合为使用代码来创建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。对象和集合都具有描述数据库的各个部件特征的属性以及用来操作这些部件的方法。可以在对象和集合之间建立起关系,这些关系就代表了数据库系统的逻辑结构。RDO是ODBCAPI的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。(11)VBSQL:是VisualBasic结构化查询语言。是一种基于API的接口方法,几乎与C的DB-LibraryAPI相同。VBSQL只支持微软的SQLServer。VBSQL快而且轻但不支持对象界面。【控件介绍】VisualBasic的控件有三种广义分类:
1.内部控件,例如CommandButton和Frame控件。这些控件都在VisualBasic的.exe文件中。内部控件总是出现在工具箱中,不象ActiveX控件和可插入对象那样可以添加到工具箱中,或从工具箱中删除。
2.ActiveX控件,是扩展名为.ocx的独立文件,其中包括各种版本VisualBasic提供的控件(DataCombo,DataList控件等等)和仅在专业版和企业版中提供的控件(例如Listview、Toolbar、Animation和TabbedDialog),另外还有许多第三方提供的ActiveX控件。
注意具有文件扩展名.vbx的控件使用了老的技术,在VisualBasic的早期版本编写的应用程序中可以找到这些控件。当VisualBasic打开包含.vbx控件的工程时,在缺省情况下用.ocx控件取代.vbx控件,当然,这只有在控件的.ocx版本存在时才可以。关于将控件更新为.ocx格式的信息。
3.可插入的对象,例如一个包含公司所有雇员的列表的MicrosoftExcel工作表对象,或者一个包含某工程计划信息的MicrosoftProject日历对象。因为这些对象能添加到工具箱中,所以可把它们当作控件使用。其中一些对象还支持自动化(正式的名称为OLE自动化),使用这种控件就可在VisualBasic应用程序中编程控制另一个应用程序的对象。下面是一些常用控件的介绍:(1)Windows窗体:Windows窗体控件是可重用的组件,它们封装了用户界面功能,可以在基于Windows的客户端应用程序中使用。“Windows窗体”不仅提供了许多现成控件,还提供了自行开发控件的基础结构。可以组合现有控件、扩展现有控件或创作自己的自定义控件。(2)DataGrid控件:Windows窗体DataGrid控件可为ADO.NET数据集提供用户界面,以显示表格数据并允许对数据源进行更新。当DataGrid控件设置为有效的数据源时,该控件将被自动填充,同时根据数据的形状创建列和行。DataGrid控件可以用于显示单个表或显示一组表之间的分层关系。(3)DataGridVIew控件:新版的.net框架中,该控件替换了DataGrid,DataGridView控件提供一种强大而灵活的以表格形式显示数据的方式。可以使用DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图。可以用很多方式扩展DataGridView控件,以便将自定义行为内置在应用程序中。例如,可以采用编程方式指定自己的排序算法,以及创建自己的单元格类型。通过选择一些属性,可以轻松地自定义DataGridView控件的外观。可以将许多类型的数据存储区用作数据源,也可以在没有绑定数据源的情况下操作DataGridView控件。(4)ListView控件:Windows窗体ListView控件显示了带图标的项的列表。可使用列表视图创建类似于Windows资源管理器右窗格的用户界面。该控件具有四种视图模式:“LargeIcon”、“SmallIcon”、“List”和“Details”。ListView控件的主要属性是Items,该属性包含该控件显示的项。SelectedItems属性包含控件中当前选定项的集合。如果将MultiSelect属性设置为true,则用户可选择多项,例如,同时将若干项拖放到另一个控件中。如果将CheckBoxes属性设置为true,ListView控件可以显示这些项旁的复选框。Activation属性可以确定用户激活列表中的某项时必须执行的操作类型:选项有Standard、OneClick和TwoClick。执行OneClick激活时,需要通过一次单击激活该项。执行TwoClick激活时,要求用户通过双击激活该项;一次单击可以更改该项的文本颜色。执行Standard激活时,要求用户通过双击激活某项,但是该项的外观不会发生更改。(5)imageList控件: 在VisualBasic6.0中,Picture、DownPicture和DisabledPicture属性用于根据CheckBox、CommandButton或OptionButton控件的状态显示不同的图片。例如,如果选中CheckBox控件,则显示DownPicture图像;如果禁用该控件,则显示DisabledPicture图像。在VisualBasic2005中,使用ImageList控件可以获得同样的效果,例如:在运行时显示DisabledPicture图像IfCheckBox1.Enabled=FalseThen'Assignthethirdimage(DisabledPicture)totheImageproperty.CheckBox1.Image=ImageList1.Images(2)ElseIfCheckBox1.Checked=TrueThen'Assignthesecondimage(DownPicture)totheImagepropertyCheckBox1.Image=ImageList1.Images(1)Else'Assignthefirstimage(Picture)totheImagepropertyCheckBox1.Image=ImageList1.Images(0)EndIf(6)Frame控件:Frame(框架)控件可以用来对其他控件进行分组,以便于用户识别。使用框架控件可以将一个窗体中的各种功能进一步进行分类,例如,将各种选项按钮控件分隔开。在大多数的情况下,框架控件的用法是比较“消极的”,我们用它对控件进行分组,但是通常没有必要响应它的事件。不过,它的Name、Caption和Font属性是经常被修改的。以上介绍的控件在本应用中都进行了使用。(7)Timer控件控件:通过引发Timer事件,Timer控件可以有规律地隔一段时间执行一次代码。Timer控件的Enabled属性决定该控件是否对时间的推移做响应。将Enabled设置为False会关闭Timer控件,设置为True则打开它。当Timer控件置为有效时,倒计时总是从其Interval属性的设置值开始。例如下面代码用户定时改变窗体背景的颜色:PrivateSubForm_Load()Timer1.Interval=900'设置时间间隔。HScroll1.Min=100'设置最小值。HScroll1.Max=900'设置最大值。EndSubPrivateSubHScroll1_Change()'根据滚动条的数值设置时间间隔。Timer1.Interval=1000-HScroll1.ValueEndSubPrivateSubTimer1_Timer()'在红色和蓝色之间切换背景色。IfPicture1.BackColor=RGB(255,0,0)ThenPicture1.BackColor=RGB(0,0,255)ElsePicture1.BackColor=RGB(255,0,0)EndIfEndSub(8)DateTimePicker控件:DateTimePicker控件使您可以提供格式化的日期字段,使得进行日期选择很容易。另外,用户还可以从类似于MonthView控件的下拉式日历界面中选择日期。DateTimePicker控件,有两种操作模式:1.下拉式日历模式(缺省):允许用户显示一种能够用来选择日期的下拉式日历。2.时间格式模式:允许用户在日期显示中选择一个字段(例如:月、日、年等等),按下控件右边的上下箭头来设置它的值。可以自定义控件的下拉式日历的外观。使用各种颜色属性,例如CalendarBackColor、CalendarForeColor、CalendarTitleBackColor、CalendarTitleForeColor和CalendarTrailingForeColor,允许创建属于您自己的颜色方案。DateTimePicker控件是ActiveX控件组的一部分,包含在MSCOMCT2.OCX文件中。要在应用程序中使用DateTimePicker控件,必须将MSCOMCT2.OCX文件加入到工程之中。(9)ListBox控件:ListBox(列表框)也是日常经常使用和遇到的组件,在VisualBasic.Net中使用的ListBox其实是从.NetFrameWorkSDK中的ListBox类经过实例化产生的。.NetFrameWorkSDK中的ListBox类所创建的ListBox是最典型的,要想使自己的ListBox与众不同就必须编写相应的代码,好在.NetFrameWorkSDK中的ListBox类为实现个性化的ListBox提供丰富的、可操作“工具”,这些“工具”就是绘制ListBox的所需要的事件、相关的属性以及丰富的绘制方法。在本文中将介绍在ListBox中各个元素的绘制方法,其中包括绘制各种字体、颜色以及在各项上加上边框和为各项加入图片等。在下面这个例子中用从windows资源管理器拖来的文件来操作ListBox控件。向窗体中添加一个VB.NETListBox控件,并设置其AllowDrop属性为True,并添加如下代码:Private
Sub
ListBox1_DragEnter(ByVal
sender
As
Object,
ByVal
e
As
_
System.Windows.Forms.DragEventArgs)
Handles
ListBox1.DragEnter
If
e.Data.GetDataPresent(DataFormats.FileDrop)
Then
e.Effect
=
DragDropEffects.All
End
If
End
Sub
Private
Sub
ListBox1_DragDrop(ByVal
sender
As
Object,
ByVal
e
As
_
System.Windows.Forms.DragEventArgs)
Handles
ListBox1.DragDrop
If
e.Data.GetDataPresent(DataFormats.FileDrop)
Then
Dim
MyFiles()
As
String
Dim
i
As
Integer
'
Assign
the
files
to
an
array.
MyFiles
=
e.Data.GetData(DataFormats.FileDrop)
'
Loop
through
the
array
and
add
the
files
to
the
list.
For
i
=
0
To
MyFiles.Length
-
1
ListBox1.Items.Add(MyFiles(i))
Next
End
If
End
Sub
以上控件在系统中已经部分使用到。【ADO.net技术】ADO.NET是Microsoft为解决Web和分布式应用程序问题而设计的。作为一种数据库访问框架,ADO.NET能处理当今N层的Web应用程序所要求的非连接数据体系结构,因而在访问SQLSERVER数据库时,性能优越,得到了广泛应用。ADO.NET对象可大体分成两大类:一类是与数据库直接连接的联机对象(称为.NETDataProvider),其中包含了Command对象、DataReader对象以及DataAdapter对象等,通过这些类对象,可以在应用程序里完成连接数据源以及数据维护等相关操作。另一类则是与数据源无关的断线对象,例如,DataSet对象,以及DataRelation对象等。其中的DataSet对象是ADO.NET的核心对象。可以把DataSet想成内存中的数据库,它就象是离线的数据一样。正是由于DataSet,才使得程序员在编写程序时可以屏蔽数据库之间的差异获得一致的编程模型。它提供了一致的程序设计模型,而不管其来自何处。DataSet由一组表、列、行、约束和关系组成。这个用于DataSet的对象模型如下所示:ADO.NET的设计原理意于提供分布式应用程序一种合适的解决方案,用户可以利用连接对象取得数据源里所需的原始数据,并且利用断线对象,一次返回给前端用户,前端用户在处理变动数据的过程中,并不需要保持与数据库的连接,当对所有数据完成变动操作之后,则再一次通过连接对象将数据返回更新到数据库,因为不需要时时保持与数据库的连接,所以能够大大的降低所消耗的系统资源。ADO.NET在.NET中为存取任何类型的数据提供了一个统一的框架,它适用于WinForms应用程序、ASP.NET应用程序和WebServers。例如下面的一个应用:读取数据库连接信息:DimstrTmpAsString,strT()AsStringOpenApp.Path&"\sql.inf"ForInputAs#1IfEOF(1)=FalseThenLineInput#1,strTmpClose#1strTmp=Trim(strTmp)IfstrTmp<>""ThenstrT=Split(strTmp,"||")Fori=0To3strT(i)=strT(i)Nextstrserver=strT(0)struser=strT(1)strpwd=strT(2)strdb=strT(3)EndIf执行一个查询操作:DimsqlAsStringDimrsAsNewADODB.Recordsetsql="select*frommaintainwheremtnnum='"&Trim(Me.Combo2.Text)&"'"rs.Opensql,cnIfrs.EOF=FalseThenMe.DTPicker1(0).Value=Trim(rs.Fields("rpttime").Value)&""Me.Text2.Text=Trim(rs.Fields("consumer").Value)&""Me.Text3.Text=Trim(rs.Fields("csmphoto").Value)&""Me.Text4.Text=Trim(rs.Fields("csmaddress").Value)&""Me.Text5.Text=Trim(rs.Fields("rtpcontent").Value)&""idflag=Trim(rs.Fields("mtnid").Value)ElseMsgBox"没有找到该记录!",vbOKOnly+vbExclamation,"信息提示!"EndIfEndSub要编写安全的ADO.NET应用程序,所涉及的问题不仅仅是要避免常见的编码缺陷。访问数据的应用程序包含许多潜在的故障点,攻击者可以利用这些故障点来检索、操纵或破坏敏感的数据。一定要了解安全的各个方面,从应用程序设计阶段建立威胁模型的过程,到应用程序的最终部署,到对应用程序的不断的实时维护,都要考虑到。第三章需求分析【需求分析】需求分析是软件设计当中最重要的步骤之一,它也是决定一个软件产品好坏的重要因素。通过需求分析可以得知该系统的可行性程度,开发难度,并决定应该使用的技术和开发工具。这是一个基于C/S架构的数据库应用程序,主要功能模块如下:功能序号功能名称功能说明1图书管理包含图书类别、信息管理、查询图书信息等2读者管理包含读者类别、读者信息、查询读者信息等3图书借阅管理包含借书管理、还书管理等4系统管理系统退出、添加管理员、修改密码 图1功能模块图系统使用工具简介:(1)VisualBasic6.0:VisualBasic6.0是VisualBasic语言的进化版本,设计用于高效构建类型安全和面向对象的应用程序。VisualBasic让开发人员可以针对Windows、Web及移动设备进行开发。(2)Visio:MicrosoftOfficeVisio2007是微软公司出品的一款的软件,它有助于IT和商务专业人员轻松地可视化、分析和交流复杂信息。它能够将难以理解的复杂文本和表格转换为一目了然的Visio图表。该软件通过创建与数据相关的Visio图表(而不使用静态图片)来显示数据,这些图表易于刷新,并能够显著提高生产率。使用OfficeVisio2007中的各种图表可了解、操作和共享企业内组织系统、资源和流程的有关信息。(3)PowerDesigner:PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB等相配合使用来缩短开发时间和使系统设计更优化。PowerDesigner系列产品提供了一个完整的建模解决方案,业务或系统分析人员,设计人员,数据库管理员DBA和开发人员可以对其裁剪以满足他们的特定的需要;而其模块化的结构为购买和扩展提供了极大的灵活性,从而使开发单位可以根据其项目的规模和范围来使用他们所需要的工具。PowerDesigner灵活的分析和设计特性允许使用一种结构化的方法有效地创建数据库或数据仓库,而不要求严格遵循一个特定的方法学。PowerDesigner提供了直观的符号表示使数据库的创建更加容易,并使项目组内的交流和通讯标准化,同时能更加简单地向非技术人员展示数据库和应用的设计。第四章系统设计数据库设计:数据库设计分为详细设计和物理设计。根据系统的需求分析得出,该系统的数据流向和数据可能有以下内容:读者类别、读者信息、借阅信息、书籍信息、图书类别、系统用户等,以下是根据需求分析之后得出的系统的数据结构字典:【数据库逻辑设计】读者表…读者表…读者信息读者类别…user用户ID…user用户ID…图书管理图书管理图书类别…图书借阅借书还书图书借阅借书还书…Book图书信息…查询图书查询图书图书编号…图4.数据库逻辑结构图【数据库物理设计】汇总表:视图/表名类型说明读者类别基本表读者类别信息读者信息基本表读者信息借阅信息基本表借阅信息书籍信息基本表书籍信息图书类别基本表图书类别信息系统管理基本表系统中用户信息各表设计详解:[说明]:空缺位置表示无要求,主键在约束栏注明。基本表:[读者类别]字段类型长度格式约束种类名称文本50主键借书数量数字长整型借书期限数字长整型有限期限备注基本表:[读者信息]字段类型长度格式约束读者姓名文本50主键读者编号文本50主键性别文本2读者类别文本50工作单位文本50家庭住址文本50电话号码文本12登记日期日期/时间已借书数量数字长整型基本表:[借阅信息]字段类型长度格式约束借阅编号自动编号长整型主键读者编号文本50读者姓名文本50书籍编号文本50书籍名称文本50出借日期日期/时间还书日期日期/时间基本表:[图书信息]字段类型长度格式约束图书编号文本50主键书名文本50类别文本50作者文本250出版社文本出版日期日期/时间登记日期日期/时间是否被借出文本2基本表:[图书类别]字段类型长度格式约束类别名称文本50主键类别编号文本50基本表:[系统管理]字段类型长度格式约束用户名文本50主键密码文本50权限文本20【物理设计】 即根据ER图或根据详细设计部分得出的数据字典,在数据库设计器中进行数据库模型、表结构的具体建立。数据库设计器是一种可视化工具,它允许您对所连接的数据库进行设计和可视化处理。设计数据库时,可以使用数据库设计器创建、编辑或删除表、列、键、索引、关系和约束。为使数据库可视化,可创建一个或更多的关系图,以显示数据库中的部分或全部表、列、键和关系。 除了通过设计器进行建立,还可以通过编写sql脚本来建立数据库和表结构。脚本实例:usemastergoifexists(select*fromsysdatabaseswherename=''book'')dropdatabasebookgocreatedatabase"book"ONPRIMARY (NAME=book_db,FILENAME='d:\hr_db.mdf',SIZE=3MB,MAXSIZE=UNLIMITED,FILEGROWTH=256KB)LOGON (NAME=book_log,FILENAME='d:\hr_log.ldf',SIZE=1MB,MAXSIZE=UNLIMITED,FILEGROWTH=256KB)go以上脚本可以完成数据库的建立。use"book"go*/createtable"users"( "u_id"intidentitynotnull, "u_name"varchar(60)notnull, "u_true_name"varchar(60)notnull, "u_password"varchar(60)notnull, roleIdint)以上脚本可以完成在数据库book中建立一个用户表。程序设计:程序设计即编码阶段。本系统采用vb语言进行实现,下面是主要功能的实现思路和代码逻辑:A、登录模块: 图2登录窗口【实现思路】该窗口在系统开始运行前首先显示,通过验证输入的用户名和密码来让操作员进入系统。登录成功后将进入系统主界面:【流程图】开始开始登录窗体退出终止YN系统主界面验证登录YN图3登录流程图【实现代码】代码段1:验证输入的用户名称是否为空:PrivateSubCommand1_Click()DimsqlAsStringDimrs_loginAsNewADODB.RecordsetIfTrim(txtuser.Text)=""Then'判断输入的用户名是否为空MsgBox"没有这个用户",vbOKOnly+vbExclamation,""txtuser.SetFocusElsesql="select*from系统管理where用户名='"&txtuser.Text&"'"rs_login.Opensql,conn,adOpenKeyset,adLockPessimisticIfrs_login.EOF=TrueThenMsgBox"没有这个用户",vbOKOnly+vbExclamation,""txtuser.SetFocusElse'检验密码是否正确IfTrim(rs_login.Fields(1))=Trim(txtpwd.Text)ThenuserID=txtuser.Textuserpow=rs_login.Fields(2)rs_login.CloseUnloadMeForm1.ShowElseMsgBox"密码不正确",vbOKOnly+vbExclamation,""txtpwd.SetFocusEndIfEndIfEndIfcnt=cnt+1Ifcnt=3ThenUnloadMeEndIfExitSub这里采用了一种安全机制,以防有人进行恶意的密码破解,每次程序程序用户只有三次输入密码的机会,如果三次密码都不正确,则退出系统。B、系统主界面:图4系统主界面【实现思路】该界面应该包含用户常用的功能菜单、工具条等,点击相应的按钮或下拉菜单即可运行相应的模块:如图所示。【流程图】登录成功登录成功系统主界面图书管理读者管理图书借阅管理系统管理结束退出系统图5系统主界面流程图【代码实现】该界面的代码实现只包含相应的子窗体调用代码,例如:BeginVB.FormForm1Caption="图书管理系统"ClientHeight=8760ClientLeft=60ClientTop=420ClientWidth=11460LinkTopic="Form1"MaxButton=0'FalseScaleHeight=8760ScaleWidth=11460StartUpPosition=2'屏幕中心WindowState=2'MaximizedBeginVB.PictureBoxPicture1Height=8775Left=0Picture="form1.frx":0000ScaleHeight=8715ScaleWidth=11475TabIndex=0Top=0Width=11535BeginVB.LabelLabel1BackColor=&H000080FF&Caption="图书管理系统"BeginPropertyFontName="宋体"Size=26.25Charset=134Weight=700Underline=0'FalseItalic=0'FalseStrikethrough=0'FalseEndPropertyHeight=735Left=2040TabIndex=1Top=3240Width=6735EndEndBeginVB.Menubook_manageCaption="图书管理"BeginVB.Menubook_style_manageCaption="图书类别管理"BeginVB.Menuadd_book_styleCaption="添加图书类别"EndBeginVB.Menumodify_book_styleCaption="修改图书类别"EndBeginVB.Menudel_book_styleCaption="删除图书类别"EndEndBeginVB.Menubook_info_manageCaption="图书信息管理"BeginVB.Menuadd_book_infoCaption="添加图书信息"EndBeginVB.Menumodify_book_infoCaption="修改图书信息"EndBeginVB.Menudel_book_infoCaption="删除图书信息"EndBeginVB.Menufind_book_infoCaption="查询图书信息"EndEndEndBeginVB.Menureader_manageCaption="读者管理"BeginVB.Menureader_style_manageCaption="读者类别管理"BeginVB.Menuadd_reader_styleCaption="添加读者类别"EndBeginVB.Menumodify_reader_styleCaption="修改读者类别"EndBeginVB.Menudel_reader_styleCaption="删除读者类别"EndEndBeginVB.Menureader_info_manageCaption="读者信息管理"BeginVB.Menuadd_reader_infoCaption="添加读者信息"EndBeginVB.Menumodify_reader_infoCaption="修改读者信息"EndBeginVB.Menudel_reader_infoCaption="删除读者信息"EndBeginVB.Menufind_reader_infoCaption="查询读者信息"EndEndEndBeginVB.Menubook_lendCaption="图书借阅管理"BeginVB.Menulend_book_manageCaption="借书管理"BeginVB.Menuadd_lend_bookCaption="添加借书信息"EndBeginVB.Menufind_lend_bookCaption="查询借书信息"EndEndBeginVB.Menuback_book_manageCaption="还书管理"BeginVB.Menuadd_back_bookCaption="添加还书信息"EndEndEndBeginVB.Menusys_manageCaption="系统管理"BeginVB.Menuadd_adminCaption="添加管理员"EndBeginVB.Menuchange_pwdCaption="修改密码"EndBeginVB.Menuexit_sysCaption="退出系统"EndEndEndAttributeVB_Name="Form1"AttributeVB_GlobalNameSpace=FalseAttributeVB_Creatable=FalseAttributeVB_PredeclaredId=TrueAttributeVB_Exposed=FalsePrivateSubadd_admin_Click()frmadduser.ShowEndSubPrivateSubadd_back_book_Click()frmbackbookinfo.ShowEndSubPrivateSubadd_book_info_Click()frmaddbookinfo.ShowEndSubPrivateSubadd_book_style_Click()frmaddbookstyle.ShowEndSubPrivateSubadd_lend_book_Click()frmfindbook.ShowEndSubPrivateSubadd_reader_info_Click()frmaddreaderinfo.ShowEndSubPrivateSubadd_reader_style_Click()frmaddreaderstyle.ShowEndSubPrivateSubchange_pwd_Click()frmchangepwd.ShowEndSubPrivateSubdel_book_info_Click()frmmodifybookinfo.ShowEndSubPrivateSubdel_book_style_Click()frmmodifybookstyle.ShowEndSubPrivateSubdel_reader_info_Click()frmreaderinfo.ShowEndSubPrivateSubdel_reader_style_Click()frmmodifyreaderstyle.ShowEndSubPrivateSubexit_sys_Click()EndEndSubPrivateSubfind_book_info_Click()frmfindbook.ShowEndSubPrivateSubfind_lend_book_Click()frmfindborrowinfo.ShowEndSubPrivateSubfind_reader_info_Click()frmfindreader.ShowEndSubPrivateSubmodify_book_info_Click()frmmodifybookinfo.ShowEndSubPrivateSubmodify_book_style_Click()frmmodifybookstyle.ShowEndSubPrivateSubmodify_reader_info_Click()frmreaderinfo.ShowEndSubPrivateSubmodify_reader_style_Click()frmmodifyreaderstyle.ShowEndSub(2)点击重新登录的时候要退出系统,并显示登录界面PrivateSubMenurelogin_Click()login.ShowUnloadMDIForm1EndSubC、图书管理模块:添加类别:添加图书:图6和7图书管理界面【实现思路】当用户点击图书(类别)管理按钮时应显示该界面,然后操作员输入相应的信息,点击增加即可完成图书及类别的添加,新添加的影片将显示在下面的列表中。当用户在ListView控件中点击某一部影片的时候应在上半部分显示出该图书的详细信息。并将增加按钮禁用,启用修改和删除按钮,点击取消的时候关闭该窗口。【流程图】开始开始图书(类别)管理退出N结束返回主界面输入内容增加YN点击修改修改N图7添加图书(类别)的流程图【代码实现】主要部分代码:增加图书(类别)功能代码:(1)点击添加按钮将执行下面的代码,代码中从文本框中获取用户的输入,并拼接到插入的sql语句中,最后执行插入Dimrs_addbookAsNewADODB.RecordsetDimsqlAsStringIfTrim(Combo1.Text)=""ThenMsgBox"请选择图书种类",vbOKOnly+vbExclamation,""Combo1.SetFocusExitSubEndIfIfTrim(Text1.Text)=""ThenMsgBox"图书编号不能为空",vbOKOnly+vbExclamation,""Text1.SetFocusExitSubEndIfIfTrim(Text2.Text)=""ThenMsgBox"书名不能为空",vbOKOnly+vbExclamation,""Text2.SetFocusExitSubEndIfIfNotIsDate(Text5.Text)ThenMsgBox"请按照yyyy-mm-dd格式输入日期",vbOKOnly+vbExclamation,""Text5.SetFocusExitSubEndIfIfNotIsDate(Text6.Text)ThenMsgBox"请按照yyyy-mm-dd格式输入日期",vbOKOnly+vbExclamation,""Text6.SetFocusExitSubEndIfsql="select*from书籍信息where书籍编号='"&Text1.Text&"'"rs_addbook.Opensql,conn,adOpenKeyset,adLockPessimisticIfrs_addbook.EOFThenrs_addbook.AddNewrs_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.UpdateMsgBox"添加书籍信息成功!",vbOKOnly,""rs_addbook.CloseElseMsgBox"图书编号重复!",vbOKOnly+vbExclamation,""Text1.SetFocusText1.Text=""rs_addbook.CloseExitSubEndIfEndSubPrivateSubCommand1_Click()Dimrs_bookstyleAsNewADODB.RecordsetDimsqlAsStringIfTrim(Text1.Text)=""ThenMsgBox"图书种类不能为空",vbOKOnly+vbExclamation,""Text1.SetFocusExitSubEndIfIfTrim(Text2.Text)=""ThenMsgBox"种类编号不能为空",vbOKOnly+vbExclamation,""Text2.SetFocusExitSubEndIfsql="select*from图书类别where类别名称='"&Text1.Text&"'"rs_bookstyle.Opensql,conn,adOpenKeyset,adLockPessimisticIfrs_bookstyle.EOFThenrs_bookstyle.AddNewrs_bookstyle.Fields(0)=Trim(Text1.Text)rs_bookstyle.Fields(1)=Trim(Text2.Text)rs_bookstyle.UpdateMsgBox"添加图书类别成功!",vbOKOnly,""rs_bookstyle.CloseElseMsgBox"读者类别重复!",vbOKOnly+vbExclamation,""Text1.SetFocusText1.Text=""rs_bookstyle.CloseExitSubEndIfEndSub(2)修改功能的代码PrivateSubcmdupdate_Click()IfNotIsNull(DataGrid1.Bookmark)Thenrs_book.UpdateEndIfcmdmodify.Enabled=Truecmddel.Enabled=Truecmdcancel.Enabled=Falsecmdupdate.Enabled=FalseDataGrid1.AllowUpdate=FalseMsgBox"修改成功!",vbOKOnly+vbExclamation,""EndSub(3)删除按钮功能PrivateSubcmddel_Click()DimanswerAsStringOnErrorGoTodelerroranswer=MsgBox("确定要删除吗?",vbYesNo,"")Ifanswer=vbYesThenDataGrid1.AllowDelete=Truers_book.Deleters_book.UpdateDataGrid1.RefreshMsgBox"成功删除!",vbOKOnly+vbExclamation,""DataGrid1.AllowDelete=FalseElseExitSubEndIfdelerror:IfErr.Number<>0ThenMsgBoxErr.DescriptionEndIfEndSub(4)点击ListView中一项,将在上面显示该项目的详细信息,并让修改按钮可以使用,增加按钮不能使用PrivateSubListView1_ItemClick(ByValItemAsMSComctlLib.ListItem)Me.Text1.Text=ListView1.SelectedItem.TextMe.Combo1.Text=ListView1.SelectedItem.ListSubItems(1).TextMe.Text2.Text=ListView1.SelectedItem.ListSubItems(2).TextMe.Text3.Text=ListView1.SelectedItem.ListSubItems(3).TextMe.DTPicker1.Value=ListView1.SelectedItem.ListSubItems(4).TextMe.Text5.Text=ListView1.SelectedItem.ListSubItems(5).Textid=ListView1.SelectedItem.ListSubItems(6).TextMe.Command1.Enabled=FalseMe.Command2.Enabled=TrueMe.Command3.Enabled=TrueEndSub(5)添加或修改完毕后,刷新ListView信息的显示PrivateSublstrefresh()DimrsAsNewADODB.Recordset'Setrs=TransactSQL(SQL)Ifrs.State=1Thenrs.Closers.Open"select*fromtransactor",cnMe.ListView1.ListItems.ClearIfrs.EOF=FalseThenWhilers.EOF<>TrueSetlb=ListView1.ListItems.Add(,,Trim(rs.Fields("tstname").Value))lb.SubItems(1)=Trim(rs.Fields("tstxb").Value)&""lb.SubItems(2)=Trim(rs.Fields("tstdepartment").Value)&""lb.SubItems(3)=Trim(rs.Fields("tstnl").Value)&""lb.SubItems(4)=Trim(rs.Fields("tstphone").Value)&""lb.SubItems(5)=Trim(rs.Fields("tstzc").Value)&""lb.SubItems(6)=Trim(rs.Fields("tstid").Value)rs.MoveNextWendrs.CloseEndIfEndSubD、读者管理模块:图8读者管理【实现思路】该模块的实现与图书管理模块类似,只是字段多一些。【流程图】【实现代码】(1)实现了窗体加载时应该进行的操作。PrivateSubForm_Load()Combo2.AddItem"男"Combo2.AddItem"女"Dimrs_leibieAsNewADODB.RecordsetDimsqlAsStringsql="select*from读者类别"rs_leibie.Opensql,conn,adOpenKeyset,adLockPessimisticrs_leibie.MoveFirstDoWhileNotrs_leibie.EOFCombo1.AddItemrs_leibie.Fields(0)rs_leibie.MoveNextLooprs_leibie.CloseEndSub(2)增加读者DimsqlAsStringIfTrim(Combo1.Text)=""ThenMsgBox"请选择读者种类",vbOKOnly+vbExclamation,""Combo1.SetFocusExitSubEndIfIfTrim(Text1.Text)=""ThenMsgBox"读者姓名不能为空",vbOKOnly+vbExclamation,""Text1.SetFocusExitSubEndIfIfTrim(Text2.Text)=""ThenMsgBox"读者编号不能为空",vbOKOnly+vbExclamation,""Text2.SetFocusExitSubEndIfsql="se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门诊输液室护士工作总结
- 幼教行业助理工作总结
- 电影行业技巧提升总结
- 国家课程:《机械制造装备设计》第一章
- 2025-2030全球管式炉行业调研及趋势分析报告
- 2025-2030全球工业应用移动机器人行业调研及趋势分析报告
- 2025年全球及中国电动低升降托盘车行业头部企业市场占有率及排名调研报告
- 2025年全球及中国塑料3D打印长丝行业头部企业市场占有率及排名调研报告
- 2025-2030全球工业胶囊填充机行业调研及趋势分析报告
- 2025年全球及中国微米级氧化锆行业头部企业市场占有率及排名调研报告
- 2024年北京东城社区工作者招聘笔试真题
- 《敏捷项目管理》课件
- 统编版(2024新版)七年级上学期道德与法治期末综合测试卷(含答案)
- 黑龙江省哈尔滨市2024届中考数学试卷(含答案)
- 前程无忧测评题库及答案
- 高三日语一轮复习助词「と」的用法课件
- 物业管理服务房屋及公用设施维修养护方案
- 五年级上册小数递等式计算200道及答案
- 带拼音生字本模板(可A4打印)
- 超高大截面框架柱成型质量控制
- 森林法讲解课件
评论
0/150
提交评论