案例4 图书管理系统设计.doc_第1页
案例4 图书管理系统设计.doc_第2页
案例4 图书管理系统设计.doc_第3页
案例4 图书管理系统设计.doc_第4页
案例4 图书管理系统设计.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计示例基于C/S结构的图书馆管理系统的设计与实现本章利用Delphi 7和SQL Server 2000设计开发一个简单的图书馆管理系统。尽管本章的示例与实际的图书管理系统差距甚大,数据库及系统功能都不完善,但该示例使大家对数据库应用系统开发有一个整体了解,通过学习和灵活运用相关的知识,读者就可以开发出功能强大的数据库应用系统。5.1 系统分析与系统设计数据库应用系统开发的第一步是系统分析。这期间,要对用户进行反复的调查、分析和汇总,将结果用数据流程图和数据字典表示,得出系统对数据和功能的需求。数据库应用系统开发的第二步是系统设计,其主要任务是确定系统的实现方法和工作环境,确定系统功能及结构,进行数据库的设计。5.1.1 用户需求分析1. 用户调查通过对现行图书管的业务进行调查,明确了图书管工作由对图书管理、对读者管理、借书服务和还书服务四部分组成。用户对现有系统的描述如下。(1)图书管理1)对馆内的所有图书按类别统一编码;对各类图书要建图书登记卡,卡上登记着图书的主要信息。2)新购的书要编码和建卡,对遗失的书要销毁其图书登记卡卡。(2)读者管理1)建立读者信息表,对读者统一编号。2)对新加盟的读者,将其信息加入到读者信息表中;对某些特定的读者,将其信息从读者信息表中删除。3)当读者情况变化时,修改读者信息表中相应的记录。(3)借书服务1)未借出的图书要按类别上架,供读者查看。2)建立借书登记卡,卡上记录着书号、读者姓名和编号、借书日期;将借书登记卡按读者单位、读者编号集中保管。3)读者提出借书请求时,先查看该读者的借书卡,统计读者已借书的数量。如果该读者无借书超期或超量情况,则办理借书手续。4)办理借书手续的方法是:填写借书登记卡,管理管核实后可将图书带走。(4)还书服务1)读者提出还书要求时,先对照相应的借书卡,确认书号和书名无误后可办理还书手续。2)办理还书手续方法是:在借书卡上填写还书时间,管理员签名;将已还的借书卡集中保管;收回图书。3)将收回的图书上架,供读者查看和借阅。2. 系统数据流程图经过详细的调查,我们弄清了系统现行的业务流程。在此基础上,构造出系统的逻辑模型,并通过数据流程图表示。图5-1是图书馆管理系统的顶层数据流程图。图书情况 图书信息 读者情况 借还书要求 读者信息 用户身份 用户身份管理员情况图书读者管理员D1 图书记录D2 读者记录D3 借书记录D4 用户记录P1内部管理P2借书管理P3安全管理读者图书图5-1 图书馆管理系统顶层数据流程图在图书馆管理系统顶层数据流程图中,“内部管理”和“借书管理”两个处理框所表示的功能都太复杂,对它们进一步细化后得出第二层数据流程图。如图5-2是对“内部管理”细化的流程图。读者图书D1 图书记录D2 读者记录P1.1图书管理P1.2读者管理图书情况 读者情况图5-2 “内部管理”的细化数据流程图图5-2中,将内部管理分为图书管理和读者管理两个子处理框。实际上还可以将它们继续细分,图书管理分为新书处理和图书记录维护两个下级处理框,而读者管理也可以分为新读者入户和读者记录维护两个下级处理框。“借书管理”处理框中包括“借书处理”、“还书处理”和“查看书目”三个子处理框,其细化流程图如图5-3所示。P2.1查看书目P2.2借书处理P2.3还书处理D1 图书记录D3 借书记录D2 读者记录读者读者图书借书 图书请求 信息还书 请求图书情况图5-3 “借书管理”的细化数据流程图经过整理后得出细化后的系统数据流程图,如图5-4所示。P3安全管理管理员P2.1查看书目P2.2借书处理P2.3还书处理D3 借书记录D2 读者记录读者读者图书D1 图书记录借书 图书请求 信息还书 请求图书情况读者图书D1 图书记录D2 读者记录P1.1图书管理P1.2读者管理D4 用户记录图书情况 读者情况管理员情况用户身份用户身份用户身份用户身份图5-4 细化后的图书馆管理系统数据流程图3. 系统数据字典图书馆管理系统数据流程图中,数据信息和处理过程需要通过数据字典才能描述清楚。在我们定义的图书馆管理系统数据字典中,主要对数据流程图中的数据流、数据存储和处理过程进行说明。(1)主要的数据流定义1)数据流名称:图书情况位置:图书P1.1,图书P2.3定义:图书情况类别出版社作者书名定价完好否数据流量:平均流量为每月传输的1000次数,高峰期流量每天传输的100次数。说明:图书入库时,根据图书情况建立图书记录;读者还书时要核实图书基本信息是否与图书记录相符,要检查图书是否完好。2)数据流名称:读者情况位置:读者P1.2定义:读者情况姓名单位性别电话数据流量:平均流量为每年传输的8000次数,高峰期流量每天传输的1000次数。说明:根据读者情况建立读者记录。3)数据流名称:管理员情况位置:管理员P3定义:管理员=用户名口令数据流量:平均流量为每年传输的100次数,高峰期流量每天传输的10次数。说明:通过管理员的用户名和口令鉴别用户身份。4)数据流名称:用户身份位置:P3 P1.1, P1.2, P2.1, P2.3定义:用户身份= 非法用户 | 内部管理员 | 服务管理员 数据流量:平均流量为每天传输的2000次数,高峰期流量每时传输的100次数。说明:不同的用户身份进入的处理过程不同。5)数据流名称:借书请求位置:读者P2.1定义:借书请求=类别|书名数据流量:平均流量为每天传输的1000次数,高峰期流量每时传输的300次数。说明:通过书名和类别查询库中的图书,其中书名为模糊查询。6)数据流名称:还书请求位置:读者P2.3定义:还书请求读者图书情况数据流量:平均流量为每天传输的1000次数,高峰期流量每时传输的300次数。说明:确认图书正确和完好后,删除借书记录。7)数据流名称:图书信息位置:P2.1P2.2定义:图书信息输入书号和读者编号数据流量:平均流量为每天传输的1000次数,高峰期流量每时传输的250次数。说明:借书时需要输入书号和读者编号,以确定读者和图书。(2)主要的数据存储定义1)数据存储编号:D1数据存储名称:图书记录输入:P1.1输出:P2.1,P2.2,P2.3数据结构:图书记录书号类别出版社作者书名定价借出否数据量和存取频度:数据量为250000条;存取频度为每天1000次。存取方式:联机处理;检索和更新;主要是随机检索。说明:书号具有唯一性和非空性。2)数据存储编号:D2数据存储名称:读者记录输入:P1.2输出:P2.2,P2.3数据结构:读者记录编号姓名单位性别电话数据量和存取频度:数据量为15000条;存取频度为每天500次。存取方式:联机处理;主要是检索处理;以随机检索为主。说明:编号具有唯一性和非空性,性别只能是“男”或“女”。3)数据存储编号:D3数据存储名称:借书记录输入:P2.2输出:P2.2,P2.3数据结构:借书记录书号读者编号借阅日期数据量和存取频度:数据量为50000条;存取频度为每天1000次。存取方式:联机处理;以更新操作为主;随机检索;说明:读者编号是外码,参照表为“读者. 编号”;书号是外码,参照表为“图书.书号”;借阅日期为添加记录的当天日期。4)数据存储编号:D4数据存储名称:用户记录输入:P3输出:P3数据量和存取频度:数据量为1000条;存取频度为每天100次。存取方式:联机处理;以检索为主;顺序检索。数据结构:用户密码级别说明:级别是“内部管理员”或“服务管理员”。(3)主要处理过程1)处理过程编号:P1.1处理过程名:图书管理输入:图书情况,用户身份输出:D1处理说明:对馆内所有图书按类别统一编码,将图书信息数据化,存储图书记录表中。2)处理过程编号:P1.2处理过程名:读者管理输入:读者情况,用户身份输出:D2处理说明:建立读者信息表,对读者统一编号;实现读者记录表的增删改维护功能。3)处理过程编号:P2.1处理过程名:查看书目输入:借书请求,D1,用户身份输出:借书请求,图书信息处理说明:实现根据图书类别查询图书、根据书名模糊查询图书的功能。4)处理过程编号:P2.2处理过程名:借书处理输入:图书信息,D1,D2,D3输出:借书记录处理说明:确认读者符合借书条件,办理借书手续。5)处理过程编号:P2.3处理过程名:还书处理输入:D1,D2,D3,还书请求,图书情况,用户身份输出:D3处理说明:对照相应的借书卡,确认书号和书名无误后可办理还书手续。6)处理过程编号:P3处理过程名:安全管理输入:管理员情况,D4输出:用户身份,D4,管理员情况处理说明:通过用户名和口令,确认用户身份,保证系统的安全性。5.1.2 系统设计在系统设计中,我们要确定图书馆管理系统的体系结构、工作环境、系统功能及结构。1. 系统体系结构及实现方法图书馆管理系统采用点对多点(point-to-multipoint)的Client/Server(客户机/服务器)结构,如图5-5所示。服务器 客户机1 客户机2 客户机n 基于BDE的应用程序 Borland Database Engine ODBC Socket ODBC 驱动程序SQL Server 2000 图5-5 图书馆管理系统体系结构 图5-6 数据库系统结构图图中的服务器既是网络服务器又是数据库服务器,主要任务是承担网络监听和实现客户机链接,实现数据库管理、数据存取和数据传输功能。客户机是系统的终端设备,它面向用户,承担着图书馆管理系统的服务工作。在图书馆管理系统中,数据库及数据库管理系统放在服务器中,系统的应用程序放在各个客户机上。图书馆管理系统的体系结构是局域网结构,数据库放在一台服务器中便于集中管理,应用程序放在多台客户机上便于开展服务工作。2. 系统工作环境要求及支撑软件(1)服务器端的工作环境要求及支撑软件操作系统:Windows 2000高级服务器版数据库管理系统:SQL Server 2000 企业版数据库应用系统开发软件:Delphi 7.0 企业版(2)客户机的工作环境要求及支撑软件操作系统:Windows 98或更高数据库应用系统开发软件:Delphi 7.0 企业版3. 数据库系统结构图书馆管理系统的数据库系统结构采用C/S(客户/服务器)两层数据库系统结构,选定BDE(Borland Database Engine)技术为支持技术,其结构如图5-6所示。4. 系统功能及结构图书馆管理系统的系统功能结构如图5-7所示。图书馆管理系统用户登录模块图书馆内部管理模块 图书馆服务功能模块改图书记录 修改读者记录 修改用户及密码 查询图书 借书处理 还书处理图5-7 图书馆管理系统功能模块结构图图书馆管理系统包括用户登录模块、图书馆管理和图书馆服务三大模块。其中,用户登录模块是为保证数据库应用系统的数据安全性而设计的,图书馆管理模块实现图书馆的内部管理功能,图书馆服务模块实现图书馆的对外服务功能。(1)用户登录模块用户登录模块的任务是识别用户身份,确定用户操作权,保证系统安全运行。用户登录模块中包括以下两个子模块。1)用户记录维护:建立用户记录,对用户记录进行及时更新。2)用户登录管理:确定用户身份和用户的操作权限。(2)图书馆内部管理模块 图书馆内部管理模块包括以下3个子模块。1)修改图书记录模块:对图书表中的记录增加、修改或删除处理。2)修改读者记录模块:增加读者表中的记录,删除或修改读者表中已有的记录。3)修改用户及密码模块:增加用户或修改用户的密码。(3)图书馆服务功能模块图书馆服务功能模块也包括以下3个子模块。1)查询图书:通过书名和类别查询库中的图书,其中书名为模糊查询。2)借书处理:在查询的基础上完成借书登记处理。借书时需要输入书号和读者编号,修改图书表记录和增加借阅表的记录。3)还书处理:实现读者的还书处理操作。还书时需要先修改图书记录,改变其借出否标志,再删除相关的借阅记录。5.2 数据库的设计与实现前面已经确定了图书馆管理系统使用SQL Server 2000为数据库管理系统,确定采用EBD支持的C/S两级数据库系统结构。本节进行数据库结构的设计,其基本任务为:确定数据库类型及数据库结构;建立数据库;建立数据库连接。5.2.1 数据库设计数据库设计的步骤是:根据系统分析建立概念模型;将数据库的概念模型转换为数据模型;进行规范化处理,使数据模型满足BC范式。1. 数据库的概念模型根据系统需求分析,可以得出图书馆管理系统数据库的概念模型(信息模型)。图5-8、5-9、5-10、5-11、5-12是用E-R图表示的图书馆管理系统的概念模型。用户 密码 级别 合法用户 图5-8 合法用户实体图 编号 姓名 单位性别 读者 电话图5-9 读者实体图书号 类别 出版社 作者 图书 书名 定价 借出否图5-10 图书实体图图书 合法用户n 借书 借书日期 1 读者图5-11 图书馆管理系统的E-R图2. 数据库逻辑模型将图书馆管理系统的E-R图转换为关系数据库的数据模型,其关系模式为: 合法用户(用户,密码,级别),其中用户为主码; 图书(书号,类别,出版社,作者,书名,定价,借出否),其中书号为主码; 读者(编号,姓名,单位,性别,电话),其中编号为主码; 借阅(书号,读者编号,借阅日期),其中书号和读者编号为主码.将图书馆管理系统的数据库名定为“图书读者”。3. 数据模式的规范化图书读者库中各表的函数依赖集: F合法用户用户密码,用户级别;F图书书号类别,书号出版社,书号作者,书号书名,书号定价,书号借出否;F读者编号姓名,编号单位,编号性别,编号电话;F借阅(书号,读者编号)借阅日期;上述关系模式中不存在对非码依赖的表达式,所有的非主属性对码完全并直接依赖。由此证明,图书读者库中各表均服从BCNF,其规范化程度较高,数据库设计合理。4. 数据库结构的详细设计(1)数据完整性约束条件1)主码约束“合法用户”表中,“用户”为主码;“图书”表中,“书号”为主码;“读者”表中,“编号”为主码;“借阅”表中,“书号”和“读者编号”为主码。这些主码的属性值具有唯一性和非空性。2)借阅表和图书表间的外码约束“借阅.书号”为外码,参照表和参照属性为“图书.书号”。在系统中,该外码约束应当执行受限删除、受限插入和级联修改的策略。具体要求是:仅当借阅表中没有任何元组的书号值与图书表中要删除元组的书号值相同时,系统才执行删除操作,否则拒绝此删除操作;仅当图书表中有相应的元组,其书号值与借阅关系插入元组的书号值相同时,系统才执行插入操作,否则拒绝此操作;如果要修改图书表中的某书号值,则借阅关系中相应的书号值也作相应的修改。3)借阅表和读者表间的外码约束“借阅.读者编号”为外码,参照表和参照属性为“读者.编号”。在系统中,该外码约束应当执行受限删除、受限插入和拒绝修改的策略。具体要求是:仅当借阅表中没有任何元组的读者编号值与读者表中要删除元组的编号值相同时,系统才执行删除操作,否则拒绝此删除操作;仅当读者表中有相应的元组,其编号值与借阅关系插入元组的读者编号值相同时,系统才执行插入操作,否则拒绝此操作;如果要修改读者表中的某编号值,则借阅关系中必需没有相同的读者编号值的元组。4)其它约束其它约束是指属性值约束,主要有:“合法用户.级别”只能取“内部管理员”或“服务管理员”;“读者.性别”只能取“男”或“女”;“借阅.借阅日期”的值为修改记录的当天日期;“图书.借出否”的默认值为0。(2)关系的属性设计关系属性的设计包括属性名、数据类型、数据长度、该属性是否允许空值、是否为主码、是否为索引项及约束条件。表5-1、表5-2、表5-3和表5-4中,详细列出了图书读者库各表的属性设计情况。表5-1“合法用户”表的属性设计表属性名含义数据类型长度允许空主码或索引约束条件用户用户名Char8No主属性输入时不显示密码口令Char8No主属性输入时不显示级别用户类别Char10No索引“内部管理员”或“服务管理员”表5-2“图书”表的属性设计表属性名含义数据类型长度允许空主码或索引约束条件书号书号Char10No主码类别图书类别VarChar10No索引项出版社出版社名称VarChar20Yes索引项作者作者姓名VarChar30Yes索引项书名书名VarChar30No索引项定价定价SmallmoneyYes借出否是否被借出bitNo索引项默认值为“0”表5-3“读者”表的属性设计表属性名含义数据类型长度允许空主码或索引约束条件编号读者编号Char8No主码姓名读者姓名VarChar8No索引单位读者单位VarChar20No索引性别读者性别Char2Yes“男”或“女”电话读者电话VarChar12Yes表5-4“借阅”表的属性设计表属性名含义数据类型长度允许空主码或索引约束条件书号借阅书号Char10No主属性外码,参照表为:图书.书号读者编号借阅人编号Char8No主属性外码,参照表为:读者. 编号借阅日期借阅日期datetime8No索引值为修改记录的当天日期5.2.2 数据库的实现我们定义服务器名称为“sd-v1pomod1auuq”。并按设计要求,在服务器上安装了Windows 2000高级服务器版的操作系统、SQL Server 2000 企业版的数据库管理系统,同时也安装了Delphi 7.0 企业版。1. 定义数据库使用企业管理器创建数据库的主要步骤如下。1)从“开始”菜单中选择:程序 Microsoft SQL Server 2000企业管理器。2)选中“数据库”文件夹,单击鼠标右键,在弹出单上选择“新建数据库”。如图5-12所示。3)在数据库属性对话框中:常规页面上,输入数据库名;数据文件页面上,输入图书读者数据库的数据文件属性,包括文件名、存放位置、和文件属性;事物日志页面上,输入数据库的日志文件属性,包括文件名、存放位置、大小和文件属性。如图5-13所示。4)单击“确定”按钮,关闭对话框。在企业管理器窗口中出现“图书读者”数据库标志。 图5-12 使用企业管理器新建数据库 图5-13 数据库属性对话框2. 定义基本表在SQL Server 2000的数据库中,文件夹是按数据库对象的类型建立的。当在企业管理器中选择服务器和图书读者数据库文件夹,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、缺省等文件夹。要建立基本表,先选中图书读者数据库中的表文件夹,击鼠标右健。在弹出的菜单中选择新建表,如图5-14所示。 图5-14 在企业管理器中定义基本表 图5-15 图书表的基本结构(1)定义图书表按表5-2的内容定义图书表。图书表的结构如图5-15所示。在定义时要特别注意数据项的类型和长度,还要注意定义主码和“借出否”的默认值。设置主码、索引等操作时,需要将光标移到表格设计区,击鼠标右键,可调出表操作弹出单,如图5-16所示。选择其中的选项可进行相应的操作。 图5-16 基本表操作弹出单 图5-17 读者表结构及检查约束(2)定义读者表按表5-3的内容定义读者表。当读者表的属性设计完后,需要调出表操作弹出框,选择“CHECK约束”项,进入属性对话框的CHECK约束页面,在约束表达式栏中输入“性别 in (男,女)”,以实现检查约束。读者表的结构如图5-17左边所示,检查约束的设置如如图5-17右边所示。(3)定义借阅表借阅表的属性按表5-4的内容设计。由于借阅表是由联系转换的关系,它的主码是多属性码,表中存在两个外码,与图书和读者表有参照关系。定义主码时按图5-18的方法进行:在索引项中,将“书号”和“读者编号”都选上;使“创建UNIQUE”和“创建约束”选中。定义外码时按图5-19的方法进行:在主键表和外键表上选择参照表、外码和对应的主码;选择参照关系处理的策略。 图5-18 借阅表结构及主码定义 图5-19 借阅表的外码和参照关系定义(4)建立合法用户表按表5-1的内容定义合法用户表。合法用户也是多属性码,定义的方法与借阅表相似,如图5-20所示。合法用户表中也有一个检查约束,定义方法如图5-21所示。 图5-20 合法用户的主码定义方法 图5-21 合法用户的检查约束定义方法3. 向数据库中输入数据在Microsoft SQL Server 2000的企业管理器中,对图书读者库中的4个表进行数据输入操作,其操作方法是:1)将光标移到要输入数据的表上,击鼠标右键,出现表相关操作的弹出菜单,如图5-22所示。2)在弹出菜单中选择“打开表返回全部行”,出现数据更新对话框,如图5-23所示。3)在数据更新对话框中:需要数据插入时,就在最后一条记录后输入,焦点离开记录后,记录会自动保存在表中;需要修改记录时,直接对表中已有记录的数据进行改动,用新值替换原有值;需要删除记录时,先用鼠标单击要删除行的左边灰色方块,使该记录成为当前行,然后按下Del键,在弹出的警告框中确认删除操作。4)在表中单击鼠标右键时,会出现弹出单,如图5-23所示。选择菜单项可执行相应的操作,如剪切、复制等操作。 图5-22 基本表的弹出单 图5-23 数据更新对话框及弹出单4. 定义数据库的安全性(1)定义数据库角色具有数据库的同样操作权的用户同属于一个角色。本系统需要建立“内部管理员”和“服务管理员”两个数据库角色。在SQL Server 2000的企业管理器中,创建数据库角色的步骤如下:1)打开SQL服务器组、服务器、数据库文件夹和图书读者数据库文件夹。用鼠标选中“角色”文件夹后,选中任意角色,击鼠标右键,在弹出单中选择“新建数据库角色”项,如图5-24所示。出现新建数据库角色对话框。2)在新建数据库角色对话框中:在名称栏中输入新角色名;确定数据库角色的类型为标准角色(Standard Role),如图5-25所示。按上述方法,在图书读者库中,建立“内部管理员”和“服务管理员”两个数据库角色。 图5-24 数据库角色弹出单及选项 图5-25 新建数据库角色对话框(2)定义角色的操作权限在企业管理器中,通过角色授权(或收权)的操作步骤如下:1)扩展开一个SQL服务器和数据库文件夹,单击角色文件夹。在细节窗口中找到要选择的用户或角色,用鼠标右键击该角色。在弹出单中选择属性项,如图5-26所示。2)在数据库角色属性对话框中,击“权限”按钮,如图5-27所示。3) 在数据库角色权限设置框中,选择“列出全部对象”项,则在下面表中会列出全部数据库对象。对图书读者库中的每个基本表进行授权的操作。在权限表中,权力SELECT、INSERT、UPDATE等安排在列中,每个对象的操作权用一行表示。在相应的单元格中,如果为“”则为授权,为“”则为废除权限,如果为空白则为撤消权力。单击单元格可改变其状态。 图5-26 数据库角色弹出单及选项 图5-27 数据库角色属性对话框按图5-28所示方法设置“内部管理员”的操作权限,其要点是不允许对借阅表进行数据更新操作;按图5-29所示方法设置“服务管理员”的操作权限,其要点是不允许对读者及合法用户表的数据更新操作。 图5-28 设置内部管理员的操作权限 图5-29 设置服务管理员的操作权限(3)定义登录用户按下述方法创建系统需要的登录用户。建立登录的操作步骤如下。1)展开“安全性”文件夹,用鼠标右键单击登录文件夹,出现如图5-30所示的弹出菜单。 图5-30 登录弹出单及选项 图5-31 新建登录对话框2)选择“新建登录”选项后出现登录属性对话框。3)常规选项卡的界面如图5-31所示。在常规选项卡中输入用户名,选择该用户的安全认证模式,选择默认数据库和默认语言。本例用户名为“王平”,使用SQL Server安全认证模式,登录密码为“111111”。4)选择服务器角色选项卡,确定用户所属服务器角色,如图5-32 所示。5)选择数据库访问选项卡,确定用户能访问的数据库,并确定用户所属的数据库角色,如图5-33所示。本例能访问的数据库是图书读者库,数据库角色为内部管理员。 图5-32 新建登录的服务器角色对话框 图5-33 新建登录的数据库访问对话框(4)定义数据库用户按下述方法创建系统需要的数据库用户。建立数据库用户的操作步骤如下。1) 在企业管理器中扩展SQL服务器及数据库文件夹。用鼠标右键击用户文件夹,出现用户弹出单,如图5-34所示。在弹出单中选择“新建数据库用户”项。2) 在新建数据库用户对话框中:登录名栏中选择一个登录用户名(本例为“王平”);在用户名栏中输入数据库用户名,本例为“王平”;在下面的数据库角色栏中选择该数据库用户参加的角色,本例用户参加的角色为内部管理员。如图5-35所示。 图5-34 用户弹出单及选项 图5-35 新建数据库角色对话框5.2.3 设置ODBC数据源和BDE数据源设图书馆管理系统的数据库服务器的名称为“sd-v1pomod1auuq”。当安装好需要的计算机软件,完成图书读者数据库的建立工作后,就可以按本节的方法,分别在服务器和客户机上设置ODBC数据源和BDE数据源方法了。1. 设置ODBC数据源定义图书读者库的数据源名称为“book_borrow”,即book_borrow为图书读者数据库的别名。1)打开“控制面板”,选择“管理工具”,选择“数据源(ODBC)”,如图5-36所示。2)在ODBC数据源管理器中,选择用户DSN选项卡,击右上方的“添加”按钮,如图5-37所示。 图5-36 管理工具中的数据源面板图 图5-37 用户DSN选项卡页面3)在选择数据源驱动程序对话框中,列出了已安装的数据源驱动程序。查找并确定数据源类别,本例选择了SQL Server,如图5-38所示。4)在随后出现的建立数据源向导中,输入数据源名称、对数据源的说明和服务器名称。本例的数据源名称为“book_borrow”,数据源说明为“图书读者”,SQL Server服务器名称为“sd-v1pomod1auuq”,如图5-39 所示。 图5-38 选择数据源驱动程序对话框 图5-39 输入用户数据源名称页面5)在选择数据源对话框中选择数据库,如图5-40所示。在设置日志文件路径的对话框中,设置日志文件参数,如图5-41所示。 图5-40 选择数据源对话框 图5-41 设置日志文件路径的对话框6)最后,会出现新建数据源的属性框,如图5-42所示。新设置的ODBC数据源会在用户数据源栏中列出,如图5-43所示。 图5-42 新建数据源属性表 图5-43 更新后的用户DSN表2. 设置BDE数据源在客户端和服务器上分别安装Delphi后,在各自的控制面板上有BDE图标,如图5-44所示。用鼠标点击后BDE管理器会打开,如图5-45所示。管理器中列出了BDE支持的数据库访问和已有的数据源,ODBC数据源会自动加入到BDE数据源中,可以通过该管理器为BDE增加、删除数据源。确认“book_borrow”也是BDE数据源。 图5-44 BDE管理器图标 图5-45 BDE管理器5.3 应用程序的设计与实现前面我们已经建立了图书读者数据库,建立了数据源,进行了功能设计。接着要进行应用程序的设计与实现工作。应用程序通过Delphi组件和Object Pascal实现。5.3.1 系统总体设计系统总体设计包括图书馆管理系统的工程文件设计和系统所需的窗体设置。1. 建立工程文件取工程文件名为“book_procejct.dpr”。建立工程文件的方法是:1)启动Delphi 7,建立用户登录窗体。2)选择菜单FileSave Proceject As,在存储文件对话框中选择文件类型为Delphi Proceject (*.dpr),输入文件名“book_procejct.dpr”和路径后,击“保存”键,建立工程项目文件。3)再次选择菜单FileSave As,在存储文件对话框中选择文件类型为Delphi Unit (*.pas),保存单元文件。在后续的设计中,要先打开工程项目文件。工程项目文件的管理可通过选择菜单:ViewProceject Manage实现。2. 窗体设计根据图书馆管理系统的功能结构,初步确定图书馆管理系统的应用程序需要9个主要窗体界面。表5-5列出了对主要窗体的标注、名称、单元及功能的设计情况。表5-5 系统窗体设置情况表窗体标注窗体名称单元文件功能说明登录LoginFormLogin.pas用户登录管理ManageFormManage.pas图书馆内部管理入口界面服务ServeingFormServeing.pas图书馆服务入口界面图书BooksFormBooks.pas实现图书记录增、删、改界面读者ReaderFormReader.pas实现读者记录增、删、改界面密码CodeFormCode.pas实现用户和密码记录增、删、改的界面查询QueryFormQuery.pas实现图书查询界面借书BorrowFormBorrow.pas实现借书界面还书ReturnFormReturn.pas实现还书界面5.3.2 用户登录模块程序设计用户登录模块通过登录窗体实现。用户登录模块程序的设计思想为:打开数据库中的合法用户表,用户在登录窗体中输入用户名和密码,通过把用户输入的用户名和密码与合法用户表对照鉴别其身份,根据用户身份确定程序转向。用户身份有三种:非法用户、内部管理员和服务管理员。1. 登录窗体设计用户登录窗体文件名定义为“Login.pas”,窗体及控件的属性设计如表5-6所示。表5-6 用户登录窗体及组件属性表组件名控件名属性名属性值及说明窗体Login FormCaption用户登录NameLogin FormPositionPoScreenCenter ;位于屏幕中心基本表Table1TableName合法用户DatabaseNamebook_borrowReadOnlyTrueIndexNamePrimoriky数据源DataSource1DatasetTable1群组GroupBox1Caption输入用户名和密码标签Lable1Caption用户名Lable2Caption密 码编辑框Edit1PasswordChar*TextEdit2PasswordChar*Text按钮Button1Caption确 定DefauttrueButton2Caption取 消2. 界面设计用户登录界面如图5-46 所示。 图5-46 用户登录界面设计与运行情况3. “确定”按钮的OnClick事件代码设计当用户输入用户名和口令后,如果用鼠标单击“确定”键,需要执行OnClick事件代码,即TLoginForm.Button1Click过程。TLoginForm.Button1Click过程的程序框图如图5-47所示。读用户名和密码值在合法用户表中查询 NO 合法用户? 显示提示框 Yes读取级别值 退出 NO 内部管理员 打开服务窗体 Yes 打开内部管理窗体 图5-47 “确定”键OnClick事件代码的程序框图TLoginForm.Button1Click过程代码如下:procedure TLoginForm.Button1Click(Sender: TObject); Var aname,apassword:string;begin aname:=trim(Edit1.Text); apassword:=trim(Edit2.Text); Table1.Open; Table1.SetKey; Table1.Fields0.AsString:=aname; if Table1.GotoKey then if Table1.Fields1.AsString=apassword then if Table1.Fields2.AsString=内部管理员 then Begin Table1.Close; LoginForm.close; ManageForm.show end else begin Table1.Close; LoginForm.close; ServeingForm.show end else Begin MessageDlg (您不是合法用户,请退出!,mtInformation,mbOk,0); Table1.Close; LoginForm.close; End;End;4. “取消”按钮代码设计“取消”按钮的功能较简单,当用户击它后,只需要关闭窗口就行了。“取消”按钮的OnClick事件代码如下:procedure TLoginForm.Button2Click(Sender: TObject);Begin Close;End;5.3.3 图书馆内部管理模块程序设计图书馆内部管理模块包括一个入口模块和三个子功能模块。入口模块为图书馆内部管理选项模块,三个子功能模块为图书记录维护、读者记录维护及用户记录维护模块。每个功能分别由一个窗体单元实现。1. 图书馆内部管理选项模块图书馆内部管理选项模块利用图书馆内部管理入口界面实现,其界面如图5-48所示。图书馆内部管理入口界面的窗体名为ManageForm,文件名为Manage.pas。本示例,为适合初学者练习,我们将界面设计的比较简单。图书馆内部管理入口界面主要利用按钮组件实现,其中3个按键对应图书馆内部管理的三个子模块,表5-7中列出了图书馆内部管理入口窗体及组件属性。 图5-48 图书馆内部管理入口界面 图5-49 图书记录维护窗体表5-7 图书馆内部管理入口窗体及组件属性组件名控件名属性名属性值及说明窗体ManageFormCaption图书馆内部管理系统NameManageFormPositionPoScreenCenter ;位于屏幕中心标签Lable1Caption图书馆内部管理系统按钮Button1Caption图书记录维护Button2Caption读者记录维护Button3Caption用户记录维护Button4Caption退出管理系统4个按钮对应的OnClick代码如下:procedure TManageForm.Button1Click(Sender: TObject);begin BooksForm.show;end;procedure TManageForm.Button2Click(Sender: TObject);begin ReaderForm.show;end;procedure TManageForm.Button3Click(Sender: TObject);begin CodeForm.show;end;procedure TManageForm.Button4Click(Sender: TObject);begin ManageForm.Close;end;2. 图书记录维护模块图书记录维护模块实现图书记录的增加、删除和修改功能,其窗体名为BooksForm,文件名为Books.pas。图书记录维护窗体界面如图5-49所示。图书记录维护窗体的设计步骤和关键设置为:(1)设置窗体:注意窗体大小、位置及标注(题目)内容。(2)设置表格标题文字:注意字体、大小和位置。(3)设置Table组件(表):事先定义好的数据库及表,并将它们定义为ODBC数据源和BDE数据源;选择数据库和基本表名;确定控件名为Table1。(4)设置DataSource组件(数据源):使DataSet属性为Table1,确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论