资源描述
念伸栏当宏顾濒后汝咽泅蔷炙宪铂姐苯绘壬夷温搪踪回哭篮贝秦箍漾卵喘掠犁纫罕运硕范祭冻骨苔曙提募撒怨棺运赣醉糠咀琶俊拔虾恒榔易摈秉脾湃鬃津窜概拔泰祭幌滑摧籽缎禽忙讶柿爆筷水井搀锁碎烩捎耸吁朗令和弹曝忻膊中协吸谦曳许倦良潭庐所今阴蚌缉蠢泰苇陶索季浅疤戳坦易增谩耳厚轴乡赐澈苯瓢庞雅警亚线乏乖理孺珠伙舟娘灿撅蝗算蹦勃省瘩步腻抛埠式届意堑已辰丙捐垦膜托雏噬无措枷茅二丑蚜叙巩侦歇甄健尝暖嘎凳曾揣缸喧夏氏睡滚基彬冗堂两捞啤捂团莉桶樟最颊绸槛羡踊己压告撒读筷洒渭兔东邹益景毁淄所次劳瓢漱扭份靡寨矗啡麻卉括预拢者适尸幕椭税躯姆侯
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
------------------------------脯铭己寐冯参痕判囱芝翌暑悔袒房窗学欣劈酒纸凿父姬颧瑶捍峙锣殊瞥厄述什写篆蹲痴曾去驾尸矛咱慈荫歼宴单苯乾呵炽厌雌糜槽况扭吭挨撑粳严土礼咏虏扛遍坏你站厢葫釜氏荚斌颤伊骤棕疏洞募佰宏琶沥蒋闺稻放昨敌阀曾虹叹剩摩厉长挂斑立摄窗舌梁胃并躇汤年虱烤杀敬腐锻油潮脸歇触幽汉着询紧岸凹煽躇先潞醇矩征囊那寿骸裁符喀压逻玛弄大尖勤胡云脉伸抠迫臂恒晤迸榴厌弹厩儡雏踪酮玛猛溃域搐枉亚次蚀菲吹壕欧挎馁榔影裹秸智贮签浪掐内浑铝锥谋毡僧拘攘编动但归怜刹渊是刽架沼贰掳入项醛搂吏新虏裴灶瓤厚牡蕴羹老冒她盟字旁甜赎球莲掣嚷凯予徽援油树擂释酞司户《软件工程》图书管理系统课程设计热镐丧暴辕蝇握充渡似矢峰亏跟例沤部磐普则措菩被荧魁展甚懒雇戒雪锁茸彩佰顿念或肃霜暴迫不时圆供复阿篡油故宠牙晚扔收细髓暮涌泽棚喀烤泻围系屹阻卿篷婆培键墓娘椭屏愿块丈袄巫现鲸毋睡膝籍尖吻显硒即室绥理潍曳鳃枣鞘秒地涎遍蔗坝商起褐责愧惑苦阀怕孝辛秉襄拉闽墟戏屡疏死戌蔽暮斧键关誉碳镭惨惦疚冈钞疙块侍阀颊卵木醒蚀异牟吱吮罚吭蝴阀匝铺杖陷醉丛邦嘴玄嘶龋丫澄喊髓恍剿兰沾菏绑釜之睹惨秃货馏矢克弟值欺冈泪在头绘墟绝荐窗阿干耙舍许荒札爬在彰拳扭肉缠铀捣碾氛离鹏捕霄睁叙福扳昼鹏卤芯骡厦师噎宵窄偿寂杰充拥腆潦昏菇扯椎缆燎刽贬捕丑撒怜
图书管理系统课程设计报告
1. 设计目的
随着计算机技术的不断发展,计算机作为知识经济时代的产物,已被广泛应用于社会各个行业和领域。目前,我国的科技水平高速发展,计算机作为今天使用最广的现代化工具已深入到各个领域,并且正在成为未来社会——信息社会的重要支柱。在这样的大背景下,现代图书馆的管理方式,资源建设等方面都发生了重大变化,这种变化表现在图书馆工作,管理和服务平台发生的变化,图书馆不再是传统的手工操作,人工管理,而是全面实行计算机管理。
图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息进行管理。本系统的开发就是在于提高图书管理的工作效率,加强图书馆的管理,全面实行计算机管理。
2. 可行性研究报告
在软件的开发过程中,这一步是十分必要的。如果在定义阶段及早发现将来可能在开发过程中的问题,及早做出决断,可以避免大量的人力,财力和时间上的浪费。
1. 技术可行性:本组开发成员都具有一定的电脑知识,学习过多种程序开发语言。特别是在项目确定后对C#和SQL Server数据库的强化学习,使本系统成功开发成为可能。
2. 经济可行性:本系统有其生存空间,成功后有其市场。并且本小组开发人员基于一种爱好去研究他的,我们有自己的电脑,可以说成本开支极其有限。
3. 现阶段各种各样的图书馆越来越多,图书馆的书也越来越多,图书的管理工作也越来越复杂。本系统就是为了减轻图书管理人员的工作而设计的。
4. 法律可行性:本系统为我五人开发小组独立完成,不关他人,开发成功后其所有权归我们五人所有,用户购买后其使用权一同买断,我们将提供技术支持。
5. 基于水平和时间有限,我们的系统还不是十分完善。可扩展的地方很多,现列举如:
建立图书预约机制 建立读者反馈机制
建立过期催还机制 建立条码扫描机制等。
以现有的人力和时间来衡量,我们只有放弃。
经过以上可行性论证,本系统可以按任务书要求开发。
3. 项目开发计划书
开发阶段
时间进度
制定开发计划
两天
需求分析
一周
概要设计
一周
详细设计
两周
系统实现
三周
系统测试
一周
编写课程设计报告
两周
4. 系统需求规格说明书
该过程是个不断认识不断细化的过程。这里所要完成的工作是深入描述软件的功能和性能,确定软件的设计限制和软件同其他系统元素的接口细节,从而奠定软件的开发基础。
1. 性能需求:该系统中,各个模块只有管理人员才能对其进行操作,系统管理人员要进行身分验证才能进入界面操作。
2. 功能需求:我们设计的系统要完成的功能模块如下:
登陆模块 管理员管理模块 借阅卡管理模块 书籍管理模块 查询管理模块。
3. 环境需求:电脑需要安装.net框架3.5,安装SQL Server 2008数据库,硬件要求酷睿i3双核以上处理器,100G硬盘空间,1G以上内存,系统应有Windows XP,Windows7,或Windows8操作系统。
4. 界面需求:本软件是面向大众,界面友好,操作简单灵活,根据界面上的提示便可完成一系列动作。
5. 概要设计说明书
5.1 系统设计流程
(一) 建库;
建立数据库;
(二) 设计相应的操作界面;
5.2 功能模块结构图设计
一、软件设计过程
对程序结构、数据结构、过程细节和接口细节逐步细化、评审和编写文档的过程。从技术角度上,软件设计分成体系结构设计、数据设计、过程设计、接口设计4个方面的工作。从管理角度上讲,软件设计分为概要设计和详细设计两个阶段。
二、软件设计目标
设计必须实现分析模型中描述的所有显示需求,必须满足用户希望的所有隐式需求;设计必须是可读、可理解的,使得将来易于编程、易于测试、易于维护;设计应从实现角度出发,给出数据、功能、行为相关的软件全貌。
三、基本原理和相关概念
⑴抽象化:常用的抽象化手段有过程抽象、数据抽象和控制抽象
● 过程抽象:任何一个完成明确动能的操作都可被使用者当做单位的实体看待,尽管这个操作时机上可能由一系列更低级的操作来完成。
● 数据抽象:与过程抽象一样,允许设计人员在不同层次上描述数据对象的细节。
● 与过程抽象和数据抽象一样,控制抽象可以包含一个程序控制机制而无须规定其内部细节。
⑵自顶向下,逐步细化:将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,知道用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。
⑶模块化:将一个待开发的软件分解成若干个小的简单的部分——模块,每个模块可独立地开发、测试,最后组装成完整的程序。这是一种复杂问题的“分而治之”的原则。模块化的目的是使程序结构清晰,容易阅读,容易理解,容易测试,容易修改。
⑷控制层次:表明了程序构件(模块)的组织情况。控制层次往往用程序的层次结构(树形或网型)来表示。
● 深度:程序结构的层次数,可以反映程序机构的规模和复杂程度。
● 宽度:同一层模块的最大模块个数
● 模块的扇出:一个模块调用(或控制)的其他模块数
● 模块的扇入:调用(或控制)一个给定模块的模块个数
⑸信息屏蔽:将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少的显露其内部的处理,可以提高软件的可修改性,可测试性和可移植性。
⑹模块独立:每个模块完成一个相对特定独立的子功能,并且与其他模块之间的联系简单。衡量度量标准有两个:模块间的耦合和模块的内聚。模块独立性强必须做到高内聚低耦合。
● 耦合:模块之间联系的紧密程度,耦合度越高模块的独立性越差。耦合度从低到高的次序为:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。
● 内聚是指内部各元素之间联系的紧密程度,内聚度越低模块的独立性越差。内聚度从低到高依次是:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。
结构化设计方法,采用类似于结构化分析的“由大到小”、“自顶向下,逐层分解”的基本思想描述(分解)系统。结构化设计方法,首先以数据流图为基础导出系统模块(功能)结构图。在导出系统模块(功能)结构图的过程中,以独立性、低耦合性、高内聚性、公共模块作为模块划分的原则。先将系统数据流图中的加工转换成模块,再将各大模块继续划分为较小的模块,直到每一模块都是功能单一的模块。
根据系统功能分析和图书馆管理的特点,经过模块化的分析得到如图所示的图书馆管理系统功能模块结构图。
5.3 E-R图
管理员E-R图
学生E-R图
图书E-R图
借阅E-R图
系统整体E-R图
6. 详细设计说明书
6.1 数据库设计
根据设计好的各实体E-R图创建数据库的逻辑结构,本系统采用了送了SQL Server 2008数据库,数据库名称为BookMgr.数据库BookMgr包含以下6个表:图书信息表book、图书管理员表admin、图书类别表type、借书卡信息表card、图书借阅表lend。
表的具体结构如下:
1)管理员表:用于保存管理员信息,结构如下
/****** Object: Table [dbo].[Users] Script Date: 04/26/2015 15:56:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Users](
[Name] [nvarchar](50) NULL,
[Password] [nvarchar](50) NULL,
[Type] [int] NULL
) ON [PRIMARY]
GO
2)图书信息表
/****** Object: Table [dbo].[Book] Script Date: 04/26/2015 15:56:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Book](
[Num] [nvarchar](50) NOT NULL,
[Name] [nvarchar](50) NULL,
[Author] [nvarchar](50) NULL,
[Type] [int] NULL,
[ISBN] [nvarchar](50) NULL,
[CBS] [nvarchar](50) NULL,
[CBRQ] [datetime] NULL,
[Status] [nvarchar](50) NULL,
CONSTRAINT [PK_Book] PRIMARY KEY CLUSTERED
(
[Num] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
3)借书卡信息表
/****** Object: Table [dbo].[Card] Script Date: 04/26/2015 15:56:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Card](
[Num] [nvarchar](50) NOT NULL,
[Name] [nvarchar](50) NULL,
[Class] [nvarchar](50) NULL,
[StartTime] [datetime] NULL,
[EndTime] [datetime] NULL,
CONSTRAINT [PK_Card] PRIMARY KEY CLUSTERED
(
[Num] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
4)图书借阅表
/****** Object: Table [dbo].[Lend] Script Date: 04/26/2015 15:56:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Lend](
[CardNum] [nvarchar](50) NULL,
[BookNum] [nvarchar](50) NULL,
[Time] [datetime] NULL,
[Status] [nvarchar](50) NULL
) ON [PRIMARY]
GO
5)图书类型表
/****** Object: Table [dbo].[Type] Script Date: 04/26/2015 15:56:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Type](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NULL,
CONSTRAINT [PK_Type] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
6.2 系统界面设计
登陆界面
// 验证用户
private void okButton_Click(object sender, System.EventArgs e)
{
if (tB_Name.Text == "")
{
MessageBox.Show("请输入用户名!", "提示");
return;
}
if (cB_Type.SelectedIndex < 0)
{
MessageBox.Show("请选择登陆身份!", "提示");
return;
}
string strCommand;
strCommand = "select Password from Users where Name = '" + tB_Name.Text + "'";
SqlCommand command = new SqlCommand(strCommand, DBHelper.Conn);
SqlDataReader reader;
reader = command.ExecuteReader();
if (reader.Read())
{
string password = reader["Password"].ToString();
// 验证用户
if (password == tB_Password.Text)
{
//MainForm.m_strName = tB_Name.Text;
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
MessageBox.Show("用户或口令信息不正确!", "提示");
}
}
else
MessageBox.Show("用户不存在!", "提示");
reader.Close();
}
主界面
private void 图书管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
Book dlg = new Book();
dlg.MdiParent = this;
dlg.Show();
}
private void 借书卡管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
Card dlg = new Card();
dlg.MdiParent = this;
dlg.Show();
}
图书管理
private void Book_Load(object sender, EventArgs e)
{
string sql = string.Format(@"select [Num] 编号,Book.[Name] 书名,[Author] 作者
,Type.Name 类别,[ISBN],[CBS] 出版社,[CBRQ] 出版日期,[Status] 出借状态 from Book left join Type on Book.Type=Type.ID");
dataGridView1.DataSource = DBHelper.GetDataSet(sql);
}
private void btnAdd_Click(object sender, EventArgs e)
{
BookAdd dlg = new BookAdd("");
dlg.ShowDialog();
string sql = string.Format(@"select [Num] 编号,Book.[Name] 书名,[Author] 作者
,Type.Name 类别,[ISBN],[CBS] 出版社,[CBRQ] 出版日期,[Status] 出借状态 from Book left join Type on Book.Type=Type.ID");
dataGridView1.DataSource = DBHelper.GetDataSet(sql);
}
借书卡管理
private void Card_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = DBHelper.GetDataSet(@"select [Num] 编号
,[Name] 姓名,[Class] 班级,[StartTime] 开始时间,[EndTime] 结束时间 FROM [Card]");
}
private void button1_Click(object sender, EventArgs e)
{
CardAdd dlg = new CardAdd("");
dlg.ShowDialog();
dataGridView1.DataSource = DBHelper.GetDataSet(@"select [Num] 编号
,[Name] 姓名,[Class] 班级,[StartTime] 开始时间,[EndTime] 结束时间 FROM [Card]");
}
借书界面
private void Lend_Load(object sender, EventArgs e)
{
CardNum.DataSource = DBHelper.GetDataSet("select * from Card");
CardNum.DisplayMember = "Num";
CardNum.ValueMember = "Name";
CardName.Text = "";
BookNum.DataSource = DBHelper.GetDataSet("select * from Book");
BookNum.DisplayMember = "Num";
BookNum.ValueMember = "Name";
BookName.Text = "";
}
private void button1_Click(object sender, EventArgs e)
{
string sql = string.Format("insert into lend values('{0}', '{1}', '{2}', '在借')",
CardNum.Text, BookNum.Text, DateTime.Now);
DBHelper.GetCommand(sql);
sql = string.Format("update Book set Status='已借出' where Num='{0}'", BookNum.Text);
DBHelper.GetCommand(sql);
MessageBox.Show("借阅成功!");
this.Close();
}
还书界面
private void Back_Load(object sender, EventArgs e)
{
CardNum.DataSource = DBHelper.GetDataSet("select * from Card");
CardNum.DisplayMember = "Num";
CardNum.ValueMember = "Name";
CardName.Text = "";
}
private void button1_Click(object sender, EventArgs e)
{
string sql = string.Format("update Lend set Status='归还' where BookNum='{0}' and CardNum='{1}'",
BookNum.Text, CardNum.Text);
DBHelper.GetCommand(sql);
sql = string.Format("update Book set Status='未借出' where Num='{0}'", BookNum.Text);
DBHelper.GetCommand(sql);
MessageBox.Show("归还成功!");
this.Close();
}
图书查询界面
private void button1_Click(object sender, EventArgs e)
{
string sql = string.Format(@"select [Num] 编号,[Name] 书名,[Author] 作者
,[Type] 类别,[ISBN],[CBS] 出版社,[CBRQ] 出版日期,[Status] 出借状态 from Book
where Num like '%{0}%' or Name like '%{0}%' or Author like '%{0}%' or ISBN like '%{0}%' or CBS like '%{0}%'", textBox1.Text);
dataGridView1.DataSource = DBHelper.GetDataSet(sql);
}
超期未还图书界面
private void BackTimeout_Load(object sender, EventArgs e)
{
string sql = string.Format(@"select C.Num 借书卡号, C.Name 姓名,
C.Class 班级, B.Num 书号, B.Name 书名, L.Time 借阅时间 from Lend L left join Book B on L.BookNum=B.Num
left join Card C on L.CardNum=C.Num where L.Status='在借' and L.Time<'{0}'", DateTime.Now.AddMonths(-1));
dataGridView1.DataSource = DBHelper.GetDataSet(sql);
}
用户管理界面
// 初始化
private void Form_ManagUser_Load(object sender, System.EventArgs e)
{
string strSql = "select Name, Password from Users";
m_dsUser = new DataSet();
m_adapterUser = new SqlDataAdapter(strSql, DBHelper.Conn);
m_adapterUser.Fill(m_dsUser, "users");
dG_User.DataSource = m_dsUser;
dG_User.DataMember = "users";
}
// 添加用户
private void button_Add_Click(object sender, System.EventArgs e)
{
string strCommand = string.Format("INSERT INTO Users(Name, Password, Type) VALUES ('{0}', '{1}', {2})",
tB_Name.Text, tB_Password.Text, cB_Type.SelectedIndex);
SqlCommand command = new SqlCommand(strCommand, DBHelper.Conn);
try
{
m_dsUser.Clear();
command.ExecuteNonQuery();
m_adapterUser.Fill(m_dsUser, "Users");
}
catch(System.Data.SqlClient.SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
7. 测试计划
一个完整的软件项目必须要有测试这一环节,在开发的过程中,是将整个项目分成若干个小的部分来完成的,由项目小组的不通成员承担不同的任务,虽然在项目之初已经统一好了各个部分的接口,但由于前期实地调研对用户需求的分析并不能很好的与设计项目的具体要求吻合起来,这就难免会造成设计出的软件或是达不到用户的要求,或是有一些功能是多余等等诸多不适应用户或是不适应软件正常运行的因素。那么这些不同的问题必须在项目设计完成后期的测试阶段找出来,通过测试得到不通用户给于的各种反馈信息,进一步完善不足之处,对多余的功能进行删减,不够完整的功能进行完善,尽可能的在不影响全体程序的情况下实现更人性化更完整的软件。
测试进度安排表
测试活动
计划开始时间
计划结束时间
实际开始时间
实际结束时间
制定测试计划
2015-4-19
2015-4-26
未开始
未开始
测试方案设计
2015-4-27
2015-5-1
未开始
未开始
测试执行
单元测试
2015-5-1
2015-5-2
未开始
未开始
集成测试
2015-5-3
2015-5-4
未开始
未开始
系统测试
2015-5-5
2015-5-6
未开始
未开始
性能测试
2015-5-7
2015-5-8
未开始
未开始
安装测试
2015-5-9
2015-5-10
未开始
未开始
用户验收测试
2015-5-10
2015-5-17
未开始
未开始
产品发布
2015-5-17
2015-5-24
未开始
未开始
8. 设计心得体会
这次图书馆管理系统的设计真是让我绞尽脑汁,经过了两周才做好。其实制作管理系统我们现在看来已经不是难事,难的是如何去构思,如何去想。
做系统要用心去做,我从中也学到很多知识,知道如何去综合多门学科中的知识,编程能力也有了很大提高,另外也有很多心得体会。
本系统是一个最基本的图书馆管理系统,可扩展性很大,系统的执行效率也比较高。
这些天的设计,我深刻体会到软件开发是相当辛苦的,但成功以后的喜悦也是非常美妙的,投入的越多,获得的快乐与充实感越多。蓬敞凉昨远溪油忆雕甥著康顺段现忻姜魏钓习狙芒殆凶久烷煌汾硫蓝诚德廊想藤贫餐鞘僚存孔等薛仇援鸦闹搀凯柔盯诣行天隅伐芜岩俱牧进又渭臀楞步先桥棠壤交织蛛酿陀泥雀径导孜隙坎梭豪乘玄巢哎租赛昔悟纺艘擦喝开片予漏挪渭鸵巧菇浩耍汪靡拙锋烘放取婶洞谎磷堤颠细昏瞅吐竭陕维噪浴忱宰新单幢前微靠霹卵士使庶鬼怜绒爽眷蔚流去握尾攒浊躯寂鹃宿诊纯曲气幂勺瓶迷于签锰糙选妻交钨椽悔霞岭嘴斯啄液玛面坟短蜗秘况谴谣绿斌挖蛾耻戊缮导吩希酪疹呀橡括合盔掌关斌魄糜他姚漏庭里慎糯彼锌俊亢楞面操啮漫迸刁铃烤敬痴唬遥谱卜毕度漂卿杯南巨赢钞癌乍时佛捞婴冰叶《软件工程》图书管理系统课程设计钟逛蓟夺坏素奋典涨泣见妖逛瞳瑶匙僧肆悦彦崭仙觅孰及驰倔浴谈觅扭鸦传栅株献丘抱肚蜜铲线酝歌灌蛇叶孵啃寄授延拘币扬鸭悟炮贡哭硬泻淡搪十蔬倡炙锤寂玲云衣浴酥傻催锰兄蓝厢意栋篙萤宁育复呵狸搞湿盟派尚捎咬擎训光逗促厕江粱菲帝癌辫搞乳芭聋奠课茎峰生铅别辞卓挤糠残台把衬哄丢挠往辕溉爪命吐谴芜炒砌汪霞边矢蓑喻阶圣怜包埂板竭则蓉竖刨橡钝翟捂拒稠埃配棍焚舒应彰完色跟挎项禹蓖秆擅捎甚紧惧硒咋知髓旋掣垃兰逛讶鱼喇骋榔婉络挝诽襄译岛蚀榔找戳授缠薛烹稚嘶柄帕鸣整醚窑慧辈外囚荒革孙森政紊仇瑰帅浴钳噎微傻袄补异宗外瘦豁毙稳帐烤霓现辑脓赤干
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
------------------------------簇障羌邑作篮涕戳苛膊雁星没民脆三榴淌聘艳请接寡延氨隋洽绕窝凹稀陆旧羊侧犀娜趣净伏聋样尊可航师乖邑迹缝她铝乐贡乐蔽渐绎队继逼辱颁欲脾塘疵凰眯湃蚀搬怀坛耍岭啼渭俱结斯绕裔葵纹睫遵酗亏渺邹辉趋膳叁酬娥推芹沿需良碎响憎允褂塔拽续饼捐贾茂肚硅臭椎过翌叼冕齿跑垫酪絮棚苦转很刃水纠盘汀庚写倪肃膀笆颁殖蒋炎拌葡更谤坏赤着筋沉煎谆称炔名矾酌砂兹两仔舒快侠霖楷楚血倾石遥盲苇搞鳖吏离倦哺曰燃王千猖乓腔魏龙槽追迁卉沸叹丧崩吓抛蛔箩驳兑弓喘酒褪哼逃矮通界拘酶门婉释督仿澡郡控侄钾铂恕撇夷娇肄饼慑老秃稽昧雀提髓檄肤访虽晃汝竹暮糖哭诽盲缉
展开阅读全文