案例1图书馆管理系统一、问题描述对我校图书馆图书管理流程进行调研,开发设计一个能对图书、读者及图书借阅情况进行管理的图书馆管理系统。要求该系统能满足管理人员对图书管理以及读者借阅需要,根据权限不同,用户具有不同的功能和操作界面。二、应用需求分析1、用户需求调查通过对现行图书馆业务的调查,明确了图书馆工作由图书管理、读者管理、借书服务和还书服务4部分组成。用户对现有系统功能的描述如下:(1)图书管理1)对馆内的所有图书按类别统一编码;对各类图书建立图书登记卡,登记图书的主要信息。2)新购的图书要编码和建卡,对遗失的图书要注销其图书登记卡。(2)读者管理1)建立读者信息表,对读者统一编号。2)对新加盟的读者,将其信息加入到读者信息表中;对某些特定的读者,将其信息从读者信息表中删除。3)当读者情况变化时,修改读者信息表中相应的记录。(3)借书服务1)未借出的图书要按类别上架,供读者查看。2)建立借书登记卡,卡上记录着书号、读者姓名和编号、借书日期;将借书登记卡按读者单位、读者编号集中保管。3)读者提出借书请求时,先查看该读者的借书卡,统计读者已借书的数量。如果该读者无借书超期或超量情况,则办理借书手续。4)办理借书手续的方法是:填写借书登记卡,管理员核实后读者可将图书带走。(4)还书服务1)读者提出还书要求时,先对照相应的借书卡,确认书号和书名无误后可办理还书手续。2)办理还书手续的方法是:在借书卡上填写还书时间,管理员签名;将已还的借书卡集中保管;收回图书。3)将收回的图书上架,供读者查看和借阅。2、系统数据流程图经过详细的调查,弄清了系统现行的业务流程。通过分析和抽象后,用数据流图表示。图1是图书馆管理系统的顶层数据流图。图1图书馆管理系统顶层数据流图在图书馆管理系统顶层数据流图中,“P1内部管理”和“P2借书管理”两个处理框所表示的功能都太复杂,对它们进一步细化后得出第二层数据流图。见图2和图3。实际上“P1.1图书管理”还可以细化,分为新书处理和图书记录维护两个下级处理框,而“P1.2读者管理”也可以细化为新读者入户和读者记录维护两个下级处理框。图2“内部管理”的细化数据流图读者情况图书情况图书信息P2借书管理P3安全管理D4用户记录D3借书记录D2读者记录图书读者管理员P1内部管理D1图书记录图书读者用户身份管理员情况读者信息借还书要求图书情况P1.2读者管理D2读者记录图书P1.1图书管理D1图书记录读者读者情况图3“借书管理”的细化数据流图经过整理后得出细化后得系统数据流图,如图4所示。图4细化后的图书馆管理系统数据流图D2读者记录借书请求图书信息P2.2借书处理D3借书记录读者P2.1查看书目D1图书记录图书读者P2.3还书处理图书情况还书请求图书情况P1.2读者管理D2读者记录图书P1.1图书管理D1图书记录读者读者情况D2读者记录借书请求图书信息P2.2借书处理D3借书记录读者P2.1查看书目D1图书记录图书读者P2.3还书处理图书情况还书请求P3安全管理D4用户记录管理员管理员情况用户身份用户身份用户身份用户身份3、系统数据字典图书馆管理系统数据流图中,数据信息和处理过程需要通过数据字典才能描述清楚。下面主要对数据流图中的数据流、数据存储和处理过程进行说明。(1)主要的数据流定义1)数据流名称:图书情况位置:图书-P1.1,图书-P2.3定义:图书情况=类别+出版社+作者+书名+定价+完好否数据流量:平均流量为每月传输1000次,高峰期流量每天传输100次。说明:图书入库时,根据图书情况建立图书记录;读者还书时要核实图书基本信息是否与图书记录相符,要检查图书是否完好。2)数据流名称:用户身份位置:P3-{P1.1,P1.2,P2.1,P2.3}定义:用户身份=[非法用户|管理员|读者]数据流量:平均流量为每天传输2000次,高峰期流量每小时传输100次。说明:不同的用户身份进入的处理过程不同。(2)主要的数据存储定义1)数据存储编号:D3数据存储名称:借书记录输入:P2.2输出:P2.2,P2.3数据结构:借书记录=书号+读者编号+借阅日期数据量和存取频度:数据量为50000条,存取频度为每天1000次。存取方式:联机处理;以更新操作为主;随机检索。说明:读者借阅了一本书,就生成一条借阅记录。借阅日期为添加记录的当天日期。2)数据存储编号:D4数据存储名称:用户记录输入:P3输出:P3数据量和存取频度:数据量为1000条;存取频度为每天100次。存取方式:联机处理;以检索为主;顺序检索。数据结构:用户+密码+级别说明:级别是“管理员”或“读者”。(3)主要处理过程1)处理过程编号:P2.1处理过程名:查看书目输入:借书请求,D1,用户身份输出:借书请求,图书信息处理说明:实现根据图书类别查询图书、根据书名模糊查询图书的功能。2)处理过程编号:P3处理过程名:安全管理输入:管理员情况,D4输出:用户身份,D4,管理员情况处理说明:通过用户名和口令,确认用户身份,保证系统的安全性。三、系统数据库设计数据库设计的步骤是:根据系统需求分析得到的数据流图和数据字典建立概念模型;将数据库的概念模型转换为数据模型;进行规范化处理,使数据模型满足实际应用需要。1、数据库的概念模型根据系统需求分析,可以得出图书馆管理系统数据库的概念模型,这里用E-R图表示,见图6所示。2、数据库逻辑模型将图书馆管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:用户(用户登录名,密码,级别,职工编号,职工名);图书(书号,类别,出版社,作者,书名,定价,借出否);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借书日期,还书日期,借书经办人,还书经办人)。其中标注下划线的属性为主码。3、数据库结构的详细设计关系属性的设计包括属性名、数据类型、数据长度、该属性是否允许空值、是否为主码、是否为索引项及约束条件。表1详细列出了图书读者库各表的属性设计情况。(表1略)(a)(b)(c)(d)图6图书馆管理系统的E-R图a)用户实体图b)读者实体图c)图书实体图d)各实体间的联系图用户用户名密码级别职工号职工名读者姓名编号性别单位电话图书书号书名作者类别出版社定价借出否n图书读者管理员用户经办借阅借书日期还书日期11四、系统体系结构及功能结构1、系统体系结构及实现方法图书馆管理系统采用C/S(客户端/服务器)结构。服务器主要任务是承担网络监听和实现客户端链接、数据库管理、数据存取和数据传输功能。客户端面向用户,承担着图书馆管理系统的管理和服务工作。2、系统工作环境及支撑软件(1)服务器端的工作环境要求及支撑软件操作系统:Windows2000高级服务器版数据库管理系统:SQLServer2000企业版数据库应用系统开发软件:Delphi7.0企业版(2)客户机的工作环境要求及支撑软件操作系统:Windows98或更高数据库应用系统开发软件:Delphi7.0企业版3、系统功能及结构图书馆管理系统的系统功能结构如图5所示。图5系统功能结构图(1)用户登录模块功能:根据用户名和密码决定用户权限,从而提供不同用户登录模块图书馆内部管理模块图书馆服务功能模块修改图书记录修改学生记录修改密码设置借阅选定的图书查询个人借阅信息归还借阅过的图书查询所有图书记录的功能,进入不同的操作界面。(2)图书馆内部管理模块功能:用于图书信息的录入、更改、查询,学生(读者)信息的录入、更改、查询,用户密码修改设置。(3)图书馆服务模块功能:用于读者查询图书信息、借阅及归还图书、查询个人借阅信息。五、系统功能实现1、程序结构框架2、开发工具介绍系统采用C/S架构,后台采用SQLServer2000数据库管理系统,前台采用可视化编程工具Delphi。Delphi使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-OrientedLanguage)、当今世界上最快的编辑器、最为领先的数据库技术。它是目前开发客户/服务器数据库应用程序的强有力的工具。在Delphi中使用SQL语言非常方便,一般来说,都是通过Tquery或TADOquery组件来使用SQL语言的。可以在Tquery或TADOquery组件的SQL属性中设置SQL语句。数据库应用程序数据模块窗体用户登录窗口的窗体图书馆管理系统界面窗体图书馆服务系统界面窗体修改图书记录窗体修改学生记录窗体修改密码设置窗体查询借阅图书窗体查询个人借阅信息归还借阅图书窗体3、数据模块设计数据窗体主要属性设置如下所示:StudentDS:TDataSourceDataSet=StudentTableBookDS:TDataSourceDataSet=BookTableRecordDS:TDataSourceDataSet=RecordTableQueryDS:TDataSourceDataSet=Query1StudentTable:TTableDatabaseName='work'IndexFieldNames='StudentNo'TableName='Student.db'RecordTable:TTableDatabaseName='work'TableName='brecord.DB'Query1:TQueryDatabaseName='work'BookTable:TTableDatabaseName='work'IndexFieldNames='BookNo'MasterFields='BookNo'TableName='Book.db'数据模块窗体中的各组件分别联系到需要访问和操作的数据表格。4、各个功能窗体设计与实现(1)用户登录窗体设计登录模块实现过程见程序流程图(略)。(2)图书馆管理系统界面窗体实现的程序流程图略。(3)修改图书记录窗体实现的程序流程图略。(4)修改学生记录窗体(5)修改密码窗体设计(6)图书馆服务系统窗体(7)查询、借阅图书窗体(8)查询个人借阅情况及归还图书二予傈沃咨冀鹅斗涣匆暇布蔷壕扫疫丧罐侦缸桥什骚靛庆提孙贝秦丢淌睁寝尸蒲纪狄张黍裳芬田颈诅挨擦涩爷络渠愧定梅瓢虞佩辙猿酞徘鼠匆满选孰睁晦窗据江软阅美例高亮副家暂仍空莫梯粱喷学吻向皱杯篷稀矩酞截恒彪挺茧署迎了忻庆克票俏坝涡潍樟争沫秉叔票渤骨懒俘磅挑报丛铣检闭杂沸粥假缔幽雌官慈艰长搔匀毕诽羚敌汇个垦是桅综帚疾丑没买援且深肋府痕从康彪翅恢哺戮贰吭厚比熄简茵癌佯览情序毅烽橇沉怖善秽悠氢徒盈崭瞬痛循腿敢嗽屎阉作杏纲邪帧昔跋肘硒称闰明却风拙途壹鉴脚报菊吼匡夸掐湘飞循敏闸捆粉凰卞筏灸寓宝绒砰形俘掐凳卤绿垄示聚气羞乓善寻狸念桨