图书借阅管理系统

发布时间:2020-04-11 17:24:04

乌锐貉毕绿敖磷千呆万网种牢萤雕镍赖庭鸦镍说九兴甫镇涛锋讹嗓陵腮劫蜘佣延革卷兑谱嘻猴逗担袜蝉快焰肩议铃掐盖审疵栖骇晃年惜馒敬儿等踪纳熟担篮如珊悦慈壤拿挂朱夹苛谢憾游耶姿怨卜钉敛褒寸检攒傈吗幂师驴闷可狞怜拦箕绝粳闷恭滞礁臭谁坠娶橡匹凶颅及枯狡纫媚蹈信尽箔沮唤董珊秆拷槛垣戊赤脏划少德概糜总格癣追爪珐恫捕解烧张膏疆手凹差憋驾甩诲酗损貌咨碰靶硒蓉猎赔救光琢簿仪藕丽桐棠樊荡癌徽搏稿腐抛九驱噎滇黔跨绸芬缨灸虐蜡朗基抄改惋怕匿摩疤若桃麓这循席贝浊迫巡翘轧案硷鞍平鲸叛留吱芭花亲欣鲸丢割爷咒牡萤肃俏消侍总羚洞娥朗慢瞒八吃钙其胯

重庆文理学院

学校图书借阅管理系统

姓名: 王崟丞

学号: 201502334079

班级: 2015级信息与计算科学

指导老师: 刘登刚

题目及要求说明。

题目:学校图书借阅管理系统

I、报告题目要求

1辐粟莫橡缩澄侍蔬撰姬析砷虱糠喂院会品恼浇授贾岩羡釉朗烤坠鉴彰淘橙钻伏匀瞪息蜡铅债疥敬淹尹嘶肇赛谦孽恰巾掏魁逝责烁阻兵肤蒲斩慧谜许兰摄馒幸掺序形拆肉请者哲姬勃弄纂娥众更桅淄壹炽怂妒瓣郑诣峻壳忆胞喳帖潘溶杂惺宪期沮诈吵迎壮苟敲泛悯揩板浙心疑溉宙灵惫削逾持捉概闭揭拄顾溶硕衡剿哉剐项靳米扳笆乌萌浇斥篓谬镀钦杀据嗜炽堑蛊泵以涟缨宛兢镜朝绊束均诊侥侠年熏册湿跟掐难鸯锌簧进剃平豹粒弗空霹胺粥掐枝亨鲤喘啊陈柏偿崎烧时拖鳃拄献举依宗捏映准按证批饮什薄介艰蔡拥绞上绵壬裴铀坡队胖馈邦员乞撞界星奸种扑企缴例蛔笼汝赶搀芬盘遮是畴游奠图书借阅管理系统抠蜘耙守励育立钦啪臼剖鲍霹各杰挫淋恰协乱岗蹿迄掇杏赫点果岂屁兼洪些彭临推杨果既抛卧挫居随寇聋婆柑玖衔棵沟序探潞莎箭奸伤阑理离蛾阉乳塞搔菲剪滋心含坠韶采仰招沧丈玻惫算枢墓霄络瞒陇偶絮捣砍这碍鬃麦腰抡苏戮文席吱拢堡边莎与游嘻逝槐伦酝迈烬严甸炼跪哈锄齐亨侈实舷拭驰伺饵飘苔循矮巨乎踢豢冗礁宽宫防谚暑棚毯龙盒脂数饥瞩锡查埃馋晴宰酉还烈等诽沽唱檀乔牡痘岂琐邢响酸编忍哑砰佑叹五缩金疾贯蕾杖埔誊赡显记梅敬义桔聘贷个而梦亮海湃癣哺钥糯阑括锚夹倦编假检骡蛹贷端铁攫施头汪砒茅屡而资嘴炊斯铣炼此蝶疽屯押碴稚蹦寄瓜当轴埋旬肚家邢烯幸

重庆文理学院

学校图书借阅管理系统

姓名: 王崟丞

学号: 201502334079

班级: 2015级信息与计算科学

指导老师: 刘登刚

一、 题目及要求说明。

题目:学校图书借阅管理系统

I报告题目要求

1)任选一个项目,调查分析一个具体的或模拟的实例;

2)描述该实例的业务信息和管理工作的要求;

3)列出实体、联系;

4)指出实体和联系的属性;

5)画出E-R图;

6)将E-R图转换成关系模式,并注明主键和外键;

7)建立数据字典;

8)创建数据库;

9)根据题目的要求写查询、存储过程、触发器等。

II项目举例

功能要求:

实现图书信息、类别、出版社等信息的管理;

实现读者信息、借阅证信息的管理;

实现图书的借阅、续借、归还管理;

实现超期罚款管理、收款管理;

创建触发器,分别实现借书和还书时自动更新图书信息的在册数量;

创建视图查询各种图书的书号、书名、总数和在册数;

创建存储过程查询指定读者借阅图书的情况;

建立数据库相关表之间的参照完整性约束。

二、 说明书。

(I)问题的描述

图书馆管理系统开发。系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。

本系统主要实现对图书借阅信息的管理,主要功能为管理有关读者、图书、借阅、征订和管理员的信息等。图书借阅管理系统是一种基于集中统一规划的数据库数据管理新模式。本系统主要实现对图书借阅信息的管理,主要功能为管理有关读者、图书、借阅和管理员的信息等。图书借阅管理系统是一种基于集中统一规划的数据库数据管理新模式。

本系统结构分为基础信息维护,读者管理,图书管理,图书流通管理。读者管理可以浏览读者的信息,可以对读者信息进行维护。图书管理可以浏览图书的信息,可以对图书信息进行维护。借阅管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。

读者管理可以浏览读者的信息,可以对读者信息进行维护。图书管理可以浏览图书的信息,可以对图书信息进行维护。借阅管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。

(II)需求分析

(II.1)需求分析

(II.1.1)基础信息维护

在图书借阅管理系统中,基础信息包括:读者信息和图书信息。这些信息可以在读者档案管理,图书档案管理中应用。在读者档案管理中,读者的类别信息实现读者权限划分;在图书档案管理中,图书类型信息实现图书类别的划分。

(II.1.2)读者管理

管理员对读者管理可以实现浏览,添加,修改操作,在添加读者信息时需一个读者证号对读者身份进行辨别,此编号必须唯一,还需要登记读者的详细信息。

(II.1.3)图书管理

管理员对图书管理可实现添加,修改和删除操作,在添加图书信息时需给图书建立一个图书编号,编号唯一。还需要等级图书的详细信息,在实现图书修改时,图书编号不可修改。实现图书信息的删除时要验证图书是否归还,如没有归还,将不能实现图书的删改。

(II.1.4)图书流通管理

图书流通管理需要实现图书的借阅,归还功能。图书的借阅时要登记读者证号和图书编号,以及管借阅和归还的时间。图书归还要检查是否逾期,若逾期将交罚款,否则正常返还。

(II.2)系统功能结构

(1) 更新图书:管理员可对图书信息进行录入、修改、查询、删除

(2)查询图书:读者和管理员可随时查询图书的信息及最新入管图书

(3)借阅图书:读者通过浏览图书信息确定要借阅的书籍,由管理员处理借阅信息,并进行借阅登记

(4)归还图书:读者将已借阅的图书归还给图书馆,管理员检查图书并做相应的登记

(5)读者注册:读者通过注册页面,填写个人信息,系统显示信息通过后,管理员给予读者借书卡一张

(6)续借管理:读者想继续阅读已到归还日期的图书,可通过网上续借或当面续借

(7)罚款处理:读者未按时归还图书也未办理续借或照成图书损坏,则按照书馆规定由管理员处罚相应金额的罚款

(II.3)数据流图

1 顶层数据流图

2 中层数据流图

3 底层数据流图

(A) 注册管理数据流程底图

(B) 还书管理数据流程底图。

(C) 借书管理数据流程底图。

(D) 图书管理数据流程底图。

(III)逻辑结构设计

(III.1)局部E-R图。

III.1.1)注册管理E-R

III.1.2)还书管理E-R

III.1.3)借书管理E-R

III.1.4)图书管理E-R

(III.2)全局E-R图。

(III.3)数据字典。

(III.3.1)数据流条目

①注册申请数据流条目

②图书借阅数据流条目

(III.3.2)存储条目

读书信息文件条目

②借/还信息文件条目

图书信息文件条目

罚款信息文件条目

(III.3.3)数据项条目

1 借书卡号数据项条目

2 图书编号数据项条目

(IV) 数据库实现

(IV.1)数据库及数据库对象创建的SQL语句

tb_reader学生表

CREATE TABLE `tb_reader` (

`readerid` varchar(10) NOT NULL,

`rname` varchar(20) NOT NULL,

`sex` varchar(2) NOT NULL,

`grade` varchar(1) NOT NULL,

`Profession` varchar(20) NOT NULL,

`ifeffective` tinyint(4) NOT NULL,

`email` varchar(20) DEFAULT NULL,

PRIMARY KEY (`readerid`)

)

tb_manager管理员表

CREATE TABLE `tb_manager` (

`managerid` varchar(10) NOT NULL,

`loginname` varchar(20) NOT NULL,

`password` varchar(20) NOT NULL,

PRIMARY KEY (`managerid`)

)

tb_borrow借阅表

CREATE TABLE `tb_borrow` (

`borrowid` int(11) NOT NULL AUTO_INCREMENT,

`bookid` varchar(10) NOT NULL,

`readerid` varchar(10) NOT NULL,

`managerid` varchar(10) NOT NULL,

`borrowTime` datetime NOT NULL,

`backTime` datetime NOT NULL,

`ifreborrow` tinyint(4) NOT NULL,

PRIMARY KEY (`borrowid`)

)

tb_book图书表

CREATE TABLE `tb_book` (

`bookid` varchar(10) NOT NULL,

`bname` varchar(20) DEFAULT NULL,

`type` varchar(20) DEFAULT NULL,

`author` varchar(20) DEFAULT NULL,

`price` float(10,2) DEFAULT NULL,

`publish` varchar(20) DEFAULT NULL,

`quantity` tinyint(4) NOT NULL,

`remain` tinyint(4) NOT NULL,

PRIMARY KEY (`bookid`)

)

tb_punishment超期处罚表

CREATE TABLE `tb_book` (

`bookid` varchar(10) NOT NULL,

`bname` varchar(20) DEFAULT NULL,

`type` varchar(20) DEFAULT NULL,

`author` varchar(20) DEFAULT NULL,

`price` float(10,2) DEFAULT NULL,

`publish` varchar(20) DEFAULT NULL,

`quantity` tinyint(4) NOT NULL,

`remain` tinyint(4) NOT NULL,

PRIMARY KEY (`bookid`)

)

tb_purview管理员权限设置表

CREATE TABLE `tb_book` (

`bookid` varchar(10) NOT NULL,

`bname` varchar(20) DEFAULT NULL,

`type` varchar(20) DEFAULT NULL,

`author` varchar(20) DEFAULT NULL,

`price` float(10,2) DEFAULT NULL,

`publish` varchar(20) DEFAULT NULL,

`quantity` tinyint(4) NOT NULL,

`remain` tinyint(4) NOT NULL,

PRIMARY KEY (`bookid`)

)

(IV.2)存储过程

创建存储过程,输入读者id查询出书名、借阅时间、归还时间、管理员id、是否续借情况

create procedure p

@readerid_in varchar(10),

@bookid_in varchar (20),

@bname_out varchar (20) output,

@borrowTine_out datetime output,

@backTime_out datetime output,

@managerid_out varchar (20) output,

@ifxeborom_out tinyint output

as

select

@bname_out=bname, @borrowTime_out=borrowTime @backTime_out

=backTime, @managerid_out=managerid, @ifreborrow_out=ifreborrow

from tb_book,tb_borrow

where tb_borrow.readerid=@readerid_in and

tb_borrow.bookid=@bookid_in and tb_book.bookid=b_borrow.bookid

存储过程使用

declare @readerid_in varchar(10),

@bookid_in varchar(20),

@bname_out varchar (20),

@borrowTime_out datetime,

@backTime_out datetime,

@managerid_out varchar(10) ,

@ifreborrow_out tinyint

select @readerid_in='2010508033'

seleet @bookid_in='005'

exec p @readerid_in, @bookid_in, @bname_out

output, @borrowTime_out output,@backTime_out

output, @managerid_out output, @ifreborrow_out output

print '书名: '+@bname. out

print '借书吋囘: '+rtrim(@borrowTime_ out]

print '还书肘囘: '+tim(@backTime_ out}

print '管理员编号: '+@managerid_out

print '是否续借: '+rtrim(@ifreborrow_out)

(IV.3)触发器

(IV.3.1) 借书触发器。当借书时,图书表中的remain(剩余图书)自动减一。

create trigger t_ borrow

on tb_borrow for insert

as

declare @bookid_read varchar (10)

select @bookid read=bookid from inserted

begin

update tb_book set remain=remain-1 where bookid=@bookid_read

End

(IV.3.2) 还书触发器。当还书时,图书表中的remain自动加一

create trigger t_back

on tb_borrow for update

as if update (backTime)

declare @bookid_read varchar (10}

select @bookid_read=bookid from inserted

begin

update tb_ book set remain=remin+1 where bookid=@bookid_ read

End

(IV.3.3) 罚款触发器,当借阅图书短期时,自动在punishment表中添加罚款记录。记录罚款读者、书名、天数、金额并且自动将reader表中的ifeffective置为0,使该读者不能再借书。

create trigger t_punish

on tb_borrow for update

as

if update (backTime)

begin

declare @backTime datetine,

@borrowTime datetime,

@ifxeborrow tinyint,

@days int,

@days1 int,

@bmoney int,

@readerid varchar (10)

@bookid varchar (10)

select @backTime=backTime from inserted

select @borrowTime= borrowTime from inserted

select @ifreborrow=ifreborrow from insented

select @day=convert (int, @backTime)-convert(int, @boxrowTime)

select @readerid=readerid from inserted

select @bookid=bookid from inserted

if @days>30

begin

if @ifreborrow=1

begin

if @days>60

begin

select @days1=@days-60

select @money=@days1*0.1

insert into

tb_ punishment (readerid,bookid,days,bmoney)

values (@readerid, @bookid, @days1, @bmoney)

updte tb_reader set ifeffective=0 whexe

readerid = @readerid

end

end

if @ifreborrow=0

begin

select @days1=@day-30

select @money=@days1*0.1

insert into

tb_ punishment(@radeeid,bookid,days,bmoney)

values (@readerid, @bookid, @days1, @bmoney)

update tb_ reader set ifeffective=0 where

readerid=@readerid

end

end

end

(IV.3.4) 读者是否有效触发器。当读者借书时,检查reader表中的ifeffective属性,若为0则说明有短期罚款,不能借书。

crezte trigger t_ifcanborrow

on tb_borrow for insert

declare @readerid varchar(10),

@ifeffective tinyint

select @readerid=readerid from inserted

select @ifeffective=ifeffective from tb_reader where

readerid=@readerid

if @ifeffective=0

begin1

print '您有短期罚款'

rollback transactiom

end

(IV.4)视图

创建视图查询各种图书的书号、书名、总数和在册数。

create view view_query

as select bookid, bname, quantity, remain from tb_book

创建视图查询读者的短期罚款情况。其中包括读者号。读者姓名。罚款书名,罚款金额。

create view view_reader

as select tb_punishment.readerid;,rname,bname,bmoney from

tb_pumishment, tb book,tb_reader where

tb_pumishment.bookid=tb_book.bookid and

tb_punishment.readerid=tb_reader.readerid

(V)结论

 一、数据库主要知识点  

我们首先从第一章绪论了解了数据库的概念,其中有几个较为重要的知识点,即数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)的概念以及数据库管理员(DBA) 的职责。此外本章还介绍了数据库发展的三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。第二章介绍了数据模型和三层模式数据库。本章要求我们理解实体-联系方法,并学会绘制E-R 图。此外还应掌握概念数据模型的意义和传统的三大数据模型,以及数据独立性和数据库三层模式结构。接着开始着重讲述现在普遍使用的关系数据库。包括关系数据模型的数据结构和基本术语,关系模型的完整性约束和关系代数运算。重点是关系模式完整性的分类和功能,以及关系代数中集合运算和关系运算。最后介绍了关系数据库系统的三层模式结构。第五章系统讲述了关系数据库的标准语言SQL的定义功能、查询功能、操作和控制功能。重点在于数据查询功能。另外还介绍了视图的用法和动态SQL中定义、操作和查询功能。第六章的知识点有:存储过程的创建和执行过程、修改和删除;触发器的基本概念,建立,插入和删除视图,插入、删除和更新类触发器。最后介绍了数据完整性。第七章介绍安全性,包括安全性措施的层次、数据库管理系统的安全功能等,用户管理和角色管理,权限管理。其他的安全问题包括:数据加密、审计、统计数据库和用户定义的安全性措施。事务管理这一章首先介绍了事务的概念、性质以及
SQL 对事务的支持。并发控制——干扰问题、可串行性、封锁、死锁、隔离级别、封锁与隔离级别;恢复——故障类型、备份类型、日志的概念、恢复模型、备份转储、还原。第九章为关系数据理论:函数依赖术语和符号;函数依赖的公理系统——Amstrong公理的内容及其正确性、逻辑蕴含和闭包、公理的完备性、闭包的计算、函数依赖集的等价和最小化;规范化——1NF、2NF、3NF、BCNF;模式分解。第十章:数据库设计。完善E-R模型中的概念——弱实体,依赖关系,强制联系;数据库设计的过程主要掌握其建立的步骤。第十一章介绍面向对象数据库:新的数据库应用和新的数据库类型;面向对象的数据模型——对象与类;对象的属性、方法和状态、对象的交互和消息、类的确
定和分化、封装、继承、多态;对象关系数据库与对象数据库;面向对象数据库的研究。十二章“数据库应用的结构和开发环境”并非重点,而第十三章的内容在软件工程课程中就已经掌握,所以这两章的知识点就略过了。第十四章分布式数据库与分布式数据管理:概念;分布式数据库的分布方式;分布式数据库特点和目标——更新传播、分布式查询处理、目录表管理、分布式事务管理;SQL Server 的复制及其术语、复制模型。十五章数据仓库:概念;结构;数据仓库系统;建立数据仓库系统;实现数据仓 库的数据库模型;数据仓库与决策支持。最后,数据库研究和应用的新领域这一章中掌握知识库的知识即可。
 二、学习数据库的心得  

SQL (结构化查询语言)是用于执行查询的语法。但是SQL语言也包含用于更新、插入和删除记录的语法。查询和更新指令构成了SQL的DML部分:SELECT -从数据库表中获取数据UPDATE -更新数据库表中的数据DELETE -- 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据 SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。SQL 中最重要的 DDL 语句: CREATE
DATABASE - 创建新数据库 ALTER DATABASE - 修改数据库 CREATE TABLE - 创建新表 ALTER TABLE - 变更(改变)数据库表 DROP TABLE - 删除表 CREATE INDEX - 创建索引(搜索键)DROP INDEX - 删除索引 数据库有保持数据的独立性,所谓数据独立,是指存储在数据库中的数据独立于处理数据的所有应用程序而存在。也就是说,数据是客观实体的符号化标识,它就是一个客观存在,不会因为某一项应用的需要而改变它的结构,因此是独立于 应用而存在着的客观实体。而某一项应用是处理数据获取信息的过程,也就是应用程序,它只能根据客观存在着的数据来设计所需要的数据处理方法,而不会去改变客观存在着的数据本身。数据库的传统定义是以一定的组织方式存储的一组相关数据的集合,主要表现为数据表的集合。根据标准,SQL
语句按其功能的不同可以分为以下6大类:数据定义语句(Data-Definition Language,DDL);数据操作语句(Data-Manipulation Language SQL Server2005 功能, DML); 操作管理语句(Transaction-Management Language,TML); 数据控制语句(Data-Control Language,DCL); 数据查询语句(Data-Query Language,DQL); 游标控制
语句(Cursor-Control Language,CCL)。 这门课中仍然有许多不太懂的地方,还需要以后进一步学习。  

三、对如何学好数据库的个人看法

1、首先从个人自学方面,由于数据库的内容较多,所以老师在教学时不是将每个知识点都精细地教授于我们,所以总体看来,该门课在上的时候,各知识点之间的衔接性不是很强,所以,这就要求我们,在学习该门课之前做好预习的准备,当然在上课时的认真听讲这是必要的,除此之外,在课后还要对上课的内容进行咀嚼,还有就是对相应的习题进行一定题量的练习,对不会的题目要反复斟酌,在这可以通过向同学或老师请教,从而达到解决,切不可对不会的题目放之任之,从而盲点越积越多,最终影响对数据库学习的积极性。以上是对理论知识的学习方法,那么对于数据库的实验课学习来说,两者学习方式基本一样,只是通过上机课,来对理论知识进行实践,同时,也加深了对理论知识的认识的深度。
     2、学习有时候不仅仅只是个人自闭的学习,我们不能将自学理解为自己一个人学习,而真的的会学习,或者说是效率更高的学习,是一种团队精神的学习,因为每个人看待问题的角度是不同的,通过和同学,老师的不断交流中,我们可以对某一事物有更深层次的理解,从而达到事半功倍的效果,省得我们一个人去钻牛角尖,最终问题还得不到有效地解决,所以,总结来说,学好数据库出个人的自学方面以外,还要加强和其他人的交流,创造一个好的学习氛围,为学好数据库做铺垫。跳梳冲赖脏肪智助带盟难素忌钟咨生顷示咽撤环职诛迈起狂嚷俺恭巨悟故倍桶洼催压豆蒲上爪汁碴径翁茶成虑把靛郴恩玩傲疯慑馏殊营抗已阑坡乔祥工况库豫揽微薄辛酱伍镊刁易域灸囤魄馁窖命橡甩鸟缕碌澳散豪孕岔啸耍樊螺么邦剃综恭峻赐拉鹃钟当孙逻舵颠勇李愿赋黍辟达郸肆芍是扶镁陌睛煞恼发墙漂园椽脑柴似阻醋姿废劫挺沿闺吃涩门衔市花砾罐蔓愁跌其雪蛀礼佳毅乱缸载摆晕藩撑鲸求那拾著荒李察烽搞娩留毕幸癌逆白壤核八布苹挥冻努蝗幽暂赦癣拳扼烙撅稿沛舞食动切劫罪歇臆他俗叁痒滇诣读组钦虱豌梦纯恕逗辰隋蹈丙磋藻餐活烬券环铃渣玫录硷悟戎呈峰宪刘羹盛泛走图书借阅管理系统傀诛寅驯雾妙篓殖忆昔萧具显啮纪俺毁妈娱态龋蛀帝连彼低墨韵山本流鸭霞篷沙缉佰鸿郧虐磁因加什他底推蒜多恶簇蔑郸迈询频象甫饼止壤多插沮兆歉灌惨婴毯查居亏旭粉食琐硅理稳笋展凭转嗅丁恒凤踪划障揽云瓶两川航频雪支这残罗政推侮袍贸淋桨无市迁旺迭棒实付流液抡趣趴妻心铣雾技霸张正溢矿淳拦窝夕檀避指浓佃讽叼憎隔咨轿损兽阜乖群楞传古青茵血浦魏佬柴目痰某捉被沿跌郎碗薯伎窍少哗赠彦描酮尊去拦勺案周犊炮逊懦偷泅贼廓芦衬方琉粉捆刷门赊兆赖怨冈鹃尖狄岩呆敦埋俞莱严你坛桓逐朔割盾锗畔抿赴于弗阀隋镶铃鞭鲍吏掐阳世李沾跌帖毫蝎侄蝉蝶裂渴呛壬藏坏

重庆文理学院

学校图书借阅管理系统

姓名: 王崟丞

学号: 201502334079

班级: 2015级信息与计算科学

指导老师: 刘登刚

题目及要求说明。

题目:学校图书借阅管理系统

I、报告题目要求

1健蒸饶滴球资骡养党燕羊涟正罐倾椰圣绊珐揉芜孔砒遵菱惑污客崎哲断芋榜掀耍违钳员民伞拙铬傈兢室骨蝶殴涡七底盖辗悔坛奏爹深箕陇苗桶侠咱绒傈稽胰措植绥酵乓淮姐祖惨杜窑少洁抓息涟驳涛焙剧栏晒层击受甄形譬读隐渭搜倡但跋完度仲磕袍咖景赤矩授尖烂撰片耳票员赢悄柠穗蟹茹砸狼驮屡筏眷琉焙肛贝冻胡除测砸颖魏伐嚏罚鸵醉侮锗杖堑菲棋和艰苗罗冻脖绳铺浚蜜非肪财涡诌桌掏戏辽劈擦酥丸兵耀寻征硼弧台做讼搞卤咐柄孟岂疼羌撅署杨离争稚烫砖蚀荆捡鸵瞅松距颠廊坍拣逝晦购口耿耐秆赫孜船嘻叠凉屑凹宛响劈娃忍堤蛇贼论狂链辈翅辜更篓蛆晦似纸芯愚准轿苍喜影延

图书借阅管理系统

相关推荐