delphi图书馆管理信息系统分析与设计

发布时间:

By25175.com

【论文摘要】......................................................1【关键字】........................................................11.选题背景.......................................................3
1.1.课题背景、意义和来源以及系统工具介绍.....................3
1.1.1.课题背景及意义......................................31.1.2.课题的来源..........................................31.1.3.系统工具介绍........................................31.2.国内外发展概况...........................................41.3.研究内容及须解决的关键问题...............................4
1.3.1.研究内容............................................41.3.2.需要解决的关键问题..................................4
2.图书馆管理信息系统解决方案.....................................5
2.1.方案内容.................................................52.2.方案论证.................................................5
2.2.1.方案的选择..........................................52.2.2.方案的技术实现......................................6
3.系统总体设计...................................................7
3.1.系统总体设计.............................................73.2.系统总体功能图...........................................83.3.数据库设计...............................................8
3.3.1.数据库的选择........................................83.3.2.数据库设计..........................................93.3.4.数据库关系图.......................................10
4.图书馆管理信息系统的实现过程..................................11
4.1.系统结构................................................114.2.登录系统界面的设计......................................124.3.信息服务子系统的设计....................................124.4.管理和维护子系统的设计..................................145.开发过程遇到的问题及解决方法..................................186.结束语........................................................19参考文献.........................................................19



图书馆管理信息系统
陈清芽
【论文摘要】这篇论文主要讲述关于图书馆管理信息系统的信息,特别是讨
论了关于设计该系统时的思想、方法和过程,以及在细节上分析函数和方法的实现思想。在本论文中讲述的图书馆管理信息系统拥有一个交互式的界面、逻辑的数据库结构。并且在设计数据库时还考虑到了实体完整性约束、参照完整性约束、及尽量减少数据的冗余,在数据库里有包括表、过程、函数、触发器5个数据库对象。许多涉及到图书、读者的信息的功能在本系统中都有实现。例如,你可以将新书的信息插入到数据库的图书基本情况表里;还可以对已经插入的关于图书的信息进行修改;更重要的是,读者可以从图书馆里借阅书籍。经过多次的测试和运行,本系统能实现其在设计时的所有功能。
【关键字】图书、读者、管理系统、数据库、ODBC

QQ:528858391


LibraryManagementInformationSystem
ChenQingya
AbstractThisdissertationmainlytalkaboutinformationaboutthesystem
oflibrary,particularlydiscussesthedesignthinking,methodandprocessofcreatingalibraryManagementInformationSystemandanalysesthefunctionandmethodofrealizationindetail.Thissystem,whichisimplementedinourprojecttalkedaboutinthisdissertationhasaveryinteractiveinterface,averylogicaldatabasearchitecture.Whathasbeentakenintoaccountmostareentityintegrity,referenceintegrityandreductionofdataredundancy.Thereare5databaseobjectsintotal,includingtables,procedure,triggerandsoon.Manykindsoffunctionsrelatedtobookorreadercloselyhavebeenimplementedinoursystem.Forexample:youcaninserttheinformationofanewbookintodatabase,youcanalsoaltertheinformationwhichhasbeeninserted,moreimportant,thereadercanborrowbookfromthelibrary.Afterbeingtestedmanytimes,thesystemcanberunwell!

KeywordsBookReaderManagementSystemDatabaseODBC

QQ:528858392


1.选题背景
1.1.课题背景、意义和来源以及系统工具介绍
1.1.1.课题背景及意义
今天,随着信息技术的发展,在图书馆的管理中运用传统的手工操作方式在现在这个数字化的时代已显得极不适应,因此,工作人员和读者对于运用计算机来辅助协调和管理自身工作的需求正在逐步提高。随着我国现代化技术的不断提高和普及,学校也在不断的提高它的各个部门的管理质量,而图书馆管理就是对图书的编目、查询及读者信息的管理,重要的是图书的信息管理,包括图书的采购、编目、下架、遗失等。因此,图书的管理是一个工作量比较大而且较为繁杂的工作,至今还有很多学校仍然采用人工管理的方式,由两三个工作人员管理图书档案,对于借书还书都是用手工来进行操作,而一旦借阅者较多时就容易因忙碌导致错误的产生,这样的情况在今天这样一个科技高速发展、工作节奏加快的年代真是感觉太原始了。
自从管理信息系统这一新兴的管理方法引入我国,在我国企业管理中已有20多年的时间。现在,管理信息系统已经广泛应用于各行各业。因此在这样的前提下,我选择了‚图书馆管理信息系统‛这样一个较为普遍,同时又较为典型的课题。在当今这样一个科技高速发展的社会里,仅有理论知识是显然不行的,所以,我希望通过开发这个系统,能更好地把理论与实际结合起来,充分将自己所学的专业知识应用于实践之中,并在实践中不断充实自己,提高自己的专业技能水平,以获取更多的教益......1.1.2.课题的来源
本课题由学院和辅导老师提出,基于Delphi7.0SQLServer2000数据库平台开发图书馆管理信息系统,用于解决图书在馆内的信息变更、查询,以及读者借阅图书等问题。1.1.3.系统工具介绍
本系统的开发工具是用面向对象的Delphi进行设计的。Delphi是由美国
Borland公司推出的功能强大、使用灵活的快速应用开发工具,是面向对象领域的开发工具中的佼佼者。它具有运行速度快、易于学习和使用以及开发效率高等特点,是可视化的应用编程开发环境、可重用性面向对象语言、快速编译器和数据库的完美结合。它在各个方面都具有优越性,提供了一系列开发、测
QQ:52885839
3


试和调试的先进工具,包括大量可以重复使用的VCL组件库、各种Form模板。其应用程序主要是围绕着窗体和单元两个部分进行,窗体(Form)是与用户直接可见的对象,Delphi的应用程序由多个窗体(Form)组成,与之相对应的是单元,每个单元对应一个Form程序区段,包含事件处理程序、过程和函数。
1.2.国内外发展概况
目前,国际上大多数发达国家的图书馆基本上实现了电脑管理,尤其是那些较大型的图书馆还采用了大型数据库开发的软件,部分大型图书馆也使用FoxproSQLServer等。而基于Access数据库的多数是中小型图书馆。但在大多数不发达国家,基于SQLServer数据库的图书馆管理信息系统应用得很广泛。而在中国,许多中小型图书馆用的还是手工图书管理,大多数图书馆对计算机管理信息还没有一定的认识,而SQLServer数据库具有使用方便、学习简单、易学易用的特点,所以基于SQLServer数据库在非发达国家有着很广阔的发展前景。
1.3.研究内容及须解决的关键问题
1.3.1.研究内容
课题研究的内容是关于图书馆管理信息系统的流通部子系统,是图书馆运用计算机管理和实际运用的具体体现,可以让大量的图书信息得到合理的安排。该系统使用的是Delphi7.0,以SQLServer2000数据库平台进行开发。1.3.2.需要解决的关键问题*用户需求分析
*系统整体规划方案及设定*功能模块的划分及设定
*利用SQLselect实现数据的连接*实现最终系统代码的设计
QQ:528858394


2.图书馆管理信息系统解决方案
2.1.方案内容
我们可以用两层体系结构作为图书馆管理信息系统软件解决方案的核心,它的基本思想是将读者操作的界面同工作人员的操作界面分离,把信息系统按功能划分为管理和维护、信息服务和信息查询三大块,分别放臵在相同或不同的硬件平台上。之后从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。系统划分了子系统后,下一步的工作是继续划分子系统的小模块。先考虑在进入子系统时应该做什么,进入系统之后又应该做什么,提供哪些服务等。例如,对于图书信息服务子系统,在工作人员进入时首先得调用相关数据库表,找出该工作人员的基本信息;进入系统后,子系统得提供图书查询,图书借阅和还书的功能。
2.2.方案论证
2.2.1.方案的选择
两层客户机/服务器技术在结构、开发环境、应用平台的开发方式上已经非常成熟。请求另一计算机为之服务的计算机称为客户机Client.而处理数据库的计算机称为服务器(Server。客户机/服务器是将处理工作分散到工作站和服务器上去处理,服务器不仅负责存取数据,还要对数据作一定的处理工作,这样在数据发送给工作站之前即取得查询结果集,从而在大部分情况下可大大减少网络传输的开销,因此,也减轻了工作处理负担,用户只需关心界面的处理工作即可。客户机/服务器系统的成功与否在很大程度上依赖于服务器。用户越多,服务器的处理负担越重,相应服务器硬件性能也要跟得上,否则就会导致影响时间比本地型数据库还要差的结果。
客户机运行数据请求程序,并将这些请求传送到服务器。由客户机执行的计算称为前端处理。前端处理具有所有与提供、操作和显示数据相关的功能。C/S[1]数据库应用程序中客户端的主要功能:
从用户接收数据处理应用逻辑生成数据库请求
向服务器发送数据库请求从服务器接收结果并显示结果
在服务器上执行的计算称为后端处理。后端处理设备是一台管理数据资源并执行数据库引擎功能(如存储、操作和保护数据)的计算机。C/S数据库应
QQ:52885839
5


用程序中服务器端的主要功能:
从客户机接收数据库请求处理数据库请求传送结果给客户机执行完整性检查提供并行访问控制
事务处理失败后,执行事务恢复优化查询和更新处理2.2.2.方案的技术实现
在设计图书馆管理信息系统时,我们采用了传统的基于两层的C/S结构来构建系统。根据需求的分析结果,在此C/S结构中,客户端有两种的操作用户:工作人员和读者。
Delphi客户机/服务器结构原理:这里前端应用程序发送命令给基于服务器数据库引擎,再由后者负责从物理磁盘上读取数据并加以处理,最后返回给前端应用程序。服务器负责数据库处理工作,而工作站负责用户界面处理工作:读者查询信息及工作人员对系统的操作和维护。
Delphi客户机/服务器的前端应用程序实际上不直接与数据库引擎打交道。每个客户服务器提供一个数据库通信接口,该数据库通信接口运行于前端。这些接口也称为数据库通信API等。数据库通信接口的工作流程如下:

工作站的前端应用程序

命令数据

数据库接口

数据库通信接口

服务器端数据库引擎

命令数据

服务器数据库

2-1工作流程图
Delphi中的BDE提供了丰富和强壮的特性支持客户机/服务器应用的开
QQ:52885839
6


发。它提供了支持多种数据库如:Oracle,SQLServer以及任何ODBC数据源的统一和一致的应用程序编程接口。开发者可以不用修改数据库应用程序就能直接访问不同的数据库站点和数据格式。
3.系统总体设计
3.1.系统总体设计
对于图书馆主要负责提供的功能是指从图书的购入开始直到该图书过期下架的整个流通过程,这其中包括图书入库、借出、归还以及对参与此流通过程的读者的信息管理
1新图书信息入库:建立图书信息库,以便读者进行查询和借阅。2修改图书信息:在建立信息库时可能因操作错误或其它情况而造成
数据库里图书信息的错误,需要修改这些错误。
3整理图书库:图书因使用过久或信息过时需做下架处理,或者在读
者借阅书籍时发生遗失的情况下需做遗失处理,这些都需要修改数据库关于书籍的信息。
4读者信息管理:读者一般都是在校的学生和教师。教师的信息一般
在建立档案后一般不需要修改(或修改量较小),而对于学生则会有新生入学和老生毕业等情况出现,这些都需要修改数据库关于读者的信息。
5借书:图书馆主要的功能就是提供书籍供读者借阅,在借阅图书时
应按图书馆的规则进行借阅,例如不超过5本,如果已有超时借阅的图书,则在归还前不允许再借阅等等。
6还书:对于图书遗失或超期归还的情况应根据图书馆的规则进行处
罚。
7规则管理:对于读者借阅书籍的权限(可借阅书籍数目,每人每本
书可持有天数等)应该能按其类型加以分类,若有图书遗失或超期未还的情况发生,图书馆都应该规定处罚的条例。另外对于操作此系统的前端工作人员的权限也应该有一定限制。这些都应该只能由系统管理员来进行操作和修改。
8信息查询:一般读者在借阅书籍前都需查询图书馆关于所借书籍的
大概信息:该图书是否在馆—是否已借出—在馆中的书架号;除查询书籍外读者还可查询关于自身的信息:是否有超期未还的图书,还可借阅书籍数目等。

QQ:52885839
7


3.2.系统总体功能图
图书信息服务子系统
图书馆图书信息管理系统

图书管理和维护子系统
信息查询子系统












3.3.数据库设计
3.3.1.数据库的选择
图书馆管理信息系统是一个小型的数据库系统。在这里我们选择SQLServer数据库进行开发。MicrosoftSQLServer是一种关系型数据库管理系统。关系模型是当前最受欢迎的数据存储和数据检索模型。所有的数据处理都涉及存储和检索数据的操作,MicrosoftSQLServer是作为一个组织内部的全部数据的中心存储器来设计的。组织中数据的关键特征强调了这一方法的重要性。在客户机/服务器框架内,服务器数据库也要求与服务器的通信组件集成,以便和客户系统连接。MicrosoftSQLServer的客户机/服务器使用WindowsNT的内臵网络组件。MicrosoftSQLServer还在其网络组件的顶部添加了服务特有的中介组件:开放式数据库连接(OpenDatabaseConnectivity,ODBC)能使不同客户机进行相互连接,而不要求变更服务器及其他现存客户应用程序。











3-1总体功能图

QQ:52885839
8


3.3.2.数据库设计
表名
属性
说明
Book主要存储关于书籍的信息,主键BookID,外键TypeID引用表BookTypeReader主要存储关于读者的信息,主键ReaderID,外键:DepartmentID引用表
DepartmentJobID引用表JobClassID引用表ClassClass主要存储关于读者等级的信息,
主键ClassIDBookRule主要存储关于图书馆管理规则的信
息,主键RuleIDBorrowRecorder主要存储关于书籍借阅的信息,主键BookID-ReaderID,外键:BookID引用表BookReaderID引用表ReaderWorker主要存储关于工作人员的信息,
主键WorkerIDPastBook主要存储关于过期图书的信息,主键BookID外键:BookID
引用表Book
Book
BookIDBookNameBookWriterBookPublicBookBorrowedBookPositionTypeIDPublicdateBookPriceBookIntimeNote
Reader
ReaderIDReaderNameReaderSexDepartmentIDJobIDClassIDReaderSum
ClassBookRule
ClassIDClassNameBorrowSumDeadlineRuleIDRuleName
RuleContent
BookIDReaderIDBookDate

DeadlineBookReturnPastTime
BorrowRecorder
PenaltyNote
WorkerIDWorkerNameWorkerSexWorkerRight
WorkerPasswordBookIDBookNameBookWriterBookPublic
OutDateNote
Worker
PastBook

3-1数据库表对象

QQ:52885839
9


3.3.4.数据库关系图
3-3数据库关系图

QQ:5288583910


4.图书馆管理信息系统的实现过程
4.1.系统结构
我们用两层体系结构作为图书馆管理信息系统软件解决方案的核心,把信息系统按功能划分为管理和维护、信息服务和信息查询三大块,分别放臵在相同或不同的硬件平台上,并将系统的操作人员划分为三类:读者,工作人员,系统管理员。
读者查询子系统
启动系统
系统自由界面
用户登录
工作人员系统管理员
图书信息服务子系统

图书管理和维护子系统
密码正确吗?


退出系统
退出系统

4-1操作界面示意图
退出系统


QQ:52885839
11


4.2.登录系统界面的设计
1.从列表框里选择用户,此列表框内的用户直接与数据库里工作人员的表相关联。
2输入密码。判断该密码与工作人员表中定义的密码是否相符3.如果不正确,提示输入正确的信息。
4.如果正确,用户登录,并根据工作人员表中的用户权限设定其可操作界面。
5.对于用户的权限规定:
权限为‘1’的用户(系统管理员)拥有全部的权限。
权限为‘2’的用户:除不能修改图书馆的规则管理以外,拥有其他的
全部管理权限,相当于底层的工作人员:系统初始化、新书的入库、图书整理、修改图书信息、规则维护、用户信息管理、查询图书借阅、图书借出、图书归还。
权限为3’的用户为前台的工作人员;他只能负责前台的工作:图书借
出、图书归还。


4.3.信息服务子系统的设计
信息服务子系统包括借书和还书两大功能模块:对于读者借书是应考虑的情况有:1该图书是否在馆;
2该读者是否有借阅此图书的权限;
3该读者所借图书数目是否已满其可借图书数目或该读者是否有超期未还的图书。
对于读者归还图书时应考虑的情况有:
该图书是否超期,若有则应根据规则予以处罚。信息服务子系统的数据流图:

输入数据
QQ:52885839
图书基本情况表
图书编号
读取图书编号查询图书信息
不可借
12
可借




4-2借书的数据流图



输入数据读取图书编号
图书基本情况表
修改图书信息
QQ:52885839
图书编号

图书借阅情况表
图书编号
查询图书借阅信息
13
是否超期






4-5还书的数据流图

4.4.管理和维护子系统的设计
1.新书入库:首先根据图书名称自动产生图书编号(由数据库内的过程产生)
2.修改图书信息:根据输入的图书编号将已经插入的图书信息在界面上显示出来,然后由工作人员修改图书信息,将修改后的图书信息再重新插入数据库,此时的图书编号不发生改变。
3.用户信息管理:对于已毕业的学生应删除其在数据库中的记录。新入学的学生应根据其学籍档案在读者基本信息表里为其建立信息记录。
4.规则管理:根据图书馆的最新规定增加或修改已存在的管理规则。5.整理图书库:
a图书遗失:首先根据读者编号查询该遗失图书的基本信息。再根据管理规则对遗失该图书的读者进行处罚。之后对该图书的信息进行整理:在遗失图书基本情况表里为其建立一条记录,并将其在其它表里的相关记录信息予以删除。
b图书下架:首先根据图书编号查询图书的基本信息。查看该书是否已借出。若已借出是否要进行下架的操作处理。对于下架的图书,首先应在过期图书基本情况表里为其建立一条记录,并将其在其它表里的相关记录信息予以删除。

QQ:52885839
输入数据
14图书编号
图书借阅情况表
读取图书编号查询图书借阅信息




4-6图书下架的数据流图
对于图书下架表单,在进行图书下架处理时,首先需要根据图书编号查询该图书的基本信息,所以在表单的代码处理中,应有检验图书编号的函数来检验数据库里是否存在该图书的编号,代码如下:
functionTfrmBookclear.CheckExistid(Code:string:boolean;begintry
qrydel.SQL.Clear;
then
Result:=Falseelse
Result:=True;except
Result:=False;;end;end;
只有当函数CheckExistid值为True时才能进行对此图书的下架处理,在对图书进行下架处理时,要将数据库表中除过期图书基本情况表外所有的表中
QQ:52885839
15


关于该图书信息的记录全部删除。删除记录的函数代码如下:
procedureTfrmBookclear.delete;varsbookno,sborrow:string;begin
ifrbtndel.Checked=truethenbegin
ifCheckExistid(edtbookno.Text=Falsethenbegin
MessageDlg('此号<'+edtbookno.Text+'>不存在,请重新输入!',
mtWarning,[mbok],0;
edtbookno.SetFocus;edtbookno.SelectAll;exit;end;
ifbookborrowed(edtbookno.Text=true//图书已借出thenbegin
ifMessageBox(0,PChar('此书<'+edtbookno.Text+'>已借出,
确实要删除吗?','警告',MB_YESNO=IDYES
thenbegintry
booknodel(edtbookno.Text;
MessageBox(0,'删除完成',PChar('删除'+edtbookno.Text,MB_OK;except
MessageDlg('删除<'+edtbookno.Text+'>失败',mtWarning,[mbok],0;end;endelsebegin
edtbookno.SetFocus;edtbookno.SelectAll;exit;end;endelse
QQ:52885839
16


begintry
booknodel(edtbookno.Text;thenbegin
sbookno:=tbbook.FieldValues['BookID'];
sborrow:=tbbook.FieldValues['BookBorrowed'];ifsborrow=''//图书已借出thenbegin
ifMessageBox(0,PChar('此书<'+sbookno+'>已借出,确实要删除
?','警告',MB_YESNO=IDYES
thenbegintry
booknodel(sbookno;
MessageBox(0,'删除完成',PChar('删除'+sbookno,MB_OK;except
MessageDlg('删除<'+sbookno+'>失败',mtWarning,[mbok],0;end;end;end
else//图书未借出begintry
booknodel(sbookno;
MessageBox(0,'删除完成',PChar('删除'+sbookno,MB_OK;except
MessageDlg('删除<'+sbookno+'>失败',mtWarning,[mbok],0;end;end;
tbbook.Refresh;dbgbook.Refresh;end;end;

QQ:5288583917


5.开发过程遇到的问题及解决方法
1关于字段为datetime型时产生的问题
在修改图书信息时:其中关于书籍的入库时间在数据库里定义为datetime型。当对书籍的信息进行修改后,若图书的入库时间为空时,则在插入数据时将产生错误。
解决方法:当此字段为空时,将该书的入库时间默认为当前时间。2对于有外键约束的表,在界面端用SQL语句向表中插入记录时,该外键
属性值必不能为空,且必须将插入记录的所有属性都在语句中列出。如在图书遗失情况下,首先应向LostBook表中添加该图书的记录,但此处因有外键约束:BookIDReaderID则不能用语句:insertintoLostBookvalues(:sno,:sreaderid,:sname,:swriter,:spublic,:sprice,:slostdate,:srepay
3图书遗失的表单中:首先需根据其读者编号查询该读者和书籍的信息。
因此表单中的QuerySQL查询语句是预先已经定义好的,只是在运行时对其参数进行一次赋值(读者编号)操作。但在几次的操作之后发现:当打开该表单后只能查询一次读者的信息,即使对其参数赋不同的值,但显示的结果都是第一次所赋读者编号的所有信息。解决方法:在表单里对QuerySQL语句先清空,然后重新写SQL语句。4关于图书整理表单的统计页的问题
在此我定义了统计所有未按时归还的图书总数,其代码是:
qrydel.SQL.Add('selectcount(BookIDfromBorrowRecorderwherePastTime=:stime';qrydel.ParamByName('stime'.AsString:='';但此处的PastTime=‘是’存在某些疑惑,因为在此系统里对于图书借阅表中是否超期的字段都是在还书时根据借书时间和可借期限进行统计然后再赋值的,所以若某些图书虽未归还但根据其借书期限已经超期了,但因该图书尚未归还则在图书借阅表中该超期字段并不是‘是’种情况下的统计出来的结果则会发生错误!
解决方法:在数据库段建立过程,只要图书已经超期则修改图书借阅表
中是否超期字段
5总结:在Delphi中出现的错误大体有以下几种
编译错误:这种错误出现一般都是代码的语法问题。因为编译而导致
Delphi停运行
运行错误:这个错误是发生在你准备运行Delphi时的,例如:如果你
试图给一个变量赋值,但是却超出了该变量允许的范围
逻辑错误:逻辑错误是最难发现的,这种错误经常是一种结构错误。这
就需要我们彻头彻尾地检查我们的代码。
如何处理错误:发生错误后,我一般都是设臵断点,对语句进行一条一
条的调试
QQ:52885839
18


6.结束语
经过一段时间的开发设计和调试,我基本实现了在系统设计时所设计的所有功能,设计出了一个功能比较完善的图书馆管理信息系统。在开发的过程中,我查阅了大量的资料,与同学特别是本小组的成员进行交流,向老师请教,学到了不少课本上学不到的知识。通过这次开发,我充分感受到了开发的艰辛,很多看起来简单的问题实际动手起来却不是那么回事,往往有这样或那样的错误,需要我一步一步地去解决,虽然在出现问题是感觉很头痛,特别是查找不出问题的原因时,然而更多的是实现功能后所享受到的喜悦。最后,向在此次设计过程中给与我帮助的同学表示感谢,同时更加感谢指导老师给予的这次机会,谢谢!

参考文献
[1]魏志强、王忠华、何敏、乔林,《数据库应用实务篇》,中国铁道出版社
2000
[2]齐治昌、谭庆平、宁洪,《软件工程》,高等教育出版社
1997年第一版[3]韩强SQLSERVER2000程序员手册》,机械工业出版社2000[4]吴起程,DELPHI5企业级解决方案及应用剖析》电子工业出版社2000[5]潇湘工作室、邢增平,Delphi6.0最佳专辑》,人民邮电出版社2002[6]飞思科技产品研发中心,Delphi6.0开发者手册》,电子工业出版社2002[7]史彦军,Delphi5.0开发大全》,中国水利水电出版社2000[8]飞思科技产品研发中心,Delphi分布式开发》电子工业出版社1999[9]刑增平等,Delphi6.0最佳专辑》,人民邮电出版社2002[10]张子江、蓝薇等著,Delphi6.0高级开发范例》,电子工业出版社
2002
[11]萨师煊、王珊,《数据库系统概论》,高等教育出版社2000年第三版[12]李新乐,《现代图书馆管理》,书目文献出版社1989

QQ:52885839
19

delphi图书馆管理信息系统分析与设计

相关推荐