数据结构课程设计高校教材管理系统.docx
《数据结构课程设计高校教材管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计高校教材管理系统.docx(39页珍藏版)》请在冰豆网上搜索。
数据结构课程设计高校教材管理系统
数据结构课程设计
题目:
高校教材管理系统
课程设计任务书
一、课程设计题目:
高校教材管理系统
二、课程设计应解决的主要问题:
(1)实现出版社、教材类型等的管理______________
(2)实现教材的订购管理____________
(3)实现教材的入库管理_____________
(4)实现教材的领用管理_____________
(5)创建规则实现教材的书号必须满足意ISBN开头,后跟10个数字的格式,比如:
ISBN7302120363____________
(6)创建触发器,实现教材入库和出库时自动修改库存数量___________
(7)创建存储过程统计各种教材的订购、到货和发放数量;建立数据库相关表之间的参照完整性约束____________
1概述…………………………………………………………5
2需求分析…………………………………………………………5
2.1数据的分析……………………………………………………………5
2.2数据处理的分析…………………………………………………………6
2.3安全性分析…………………………………………………………6
2.4完整性分析…………………………………………………………8
3概念结构设计…………………………………………………………83.1高校教材系统的数据流图………………………………………………………9
3.2数据字典…………………………………………………………9
3.3E-R图……………………………………………………………10
4逻辑结构设计…………………………………………………………13
4.1实体间联系的不同情况…………………………………………………13
4.2将E-R图转换成关系模式…………………………………………………………14
4.3关系模式的分析………………………………………………………14
4.4数据库关系图………………………………………………………14
5物理结构设计………………………………………………………14
5.1设计存储过程…………………………………………………………14
5.2设计索引…………………………………………………………15
6数据库实施…………………………………………………………156.1权限设置…………………………………………………………15
6.2数据输入………………………………………………………16
6.2.1创建数据库………………………………………………………16
6.2.2创建数据表并插入数据………………………………………………………17
6.2.3创建视图……………………………………………………………18
6.2.4数据表的操纵语句…………………………………………………………19
6.3程序设计及调试…………………………………………………………19
6.3.1设计索引…………………………………………………………19
6.3.2数据查询操作……………………………………………………20
6.3.3使用控制流语句编写程序…………………………………………22
6.3.4编写自定义函数及调用…………………………………………23
6.3.5编写存储过程及调用…………………………………………24
6.3.6编写触发器……………………………………………………25
6.3.7设计游标及其使用………………………………………………26
7结束语……………………………………………………27
8参考文献……………………………………………………28
1.概述
1.1项目背景
在高速发展的当今信息社会,越来越多的工作都已经将计算机引入了其中,并且成为了其中不可或缺的一个重要部分。
利用计算机进行各项管理及协调,将能大大的提高工作的效率,减小工作强度;在相同的工作强度情况下,利用计算机进行工作,能比原来的老式工作方式提高数倍乃至数十倍的工作的效率,可以大大的减少各项人力及物资损耗,从而使得能够将多余的人力及投入到更需要的地方去。
高校管理当然也不例外,所以教材管理的计算机化已刻不容缓。
教材管理对于各个学校而言,都是一项很复杂、烦琐的工作, 是高校教务管理中的一个重要环节, 由于大学专业设置门类多,各专业每期开设课程的种类多,其业务不仅涉及出版部门,而且要面对全校各系的授课教师,各班级的学生,教材科要管理的入出库教材种类非常多,涉及到的人员广,工作量大,再者是近些年来,我国高等教育规模不断扩大,学校学生人数迅速增加,使得教材管理工作更加繁重不堪。
所以,一套好的高校教材管理软件,不但能够大大降低工作人员的劳动强度,而且还能提高学校的管理效率和教学水平。
学校教材管理主要是由教材计划制定、采购、入库、发放、记账、结算等一系列工作所组成,该工作各院校都有专门机构负责该项工作,通常是教材科。
由于学校中专业设置门类多,各专业每期开设课程种类多,各个专业需要订购的课本也不一样,在每学期开学的时候教材的发放便成为了一个繁重的任务。
每期教材科管理的入出库教材种类少则几百多则几千种,涉及教材册数少则几千多则几万,涉及人员广,工作量大,再者特别是近年来,我国高等教育规模的不断扩大,学校学生人数迅速增加,使教材管理工作更加繁重不堪。
据调查,到目前为止,我国还有许多学校甚至是一些重点院校的教材管理仍为手工管理方式,这种现状不但及现实学校教材管理的业务需求不相适应,并且也及学校信息化建设的发展趋势不相适应,因此,学校教材管理人员目前迫切需要一套方便、高效的计算机化的管理信息系统来代替他们繁琐、低效的传统手工管理方式,并最终实现教材管理的全面自动化。
因此,教材管理水平的高低直接影响教学工作的进行、教学质量的提高和合格人才的培养,开发和使用高校教材管理信息系统是改善和提高教材管理水平的一个重要途径。
1.2编写目的
本课题旨在解决我校和其他高校教材管理工作还是依靠教材管理人员的手工管理的现状,并且在现有基础上考虑了如何完善和解决现有的两层结构的C/S(客户端/服务器)教材系统本身所固有的缺陷,把两层结构中服务器部分和客户端部分的应用单独划分出来,从而满足大型系统的需求。
通过本系统不仅可以方便教材管理人员管理教材,还可以方便教务部门和广大师生查询教材和查看教材管理记录 ,使教材信息管理工作系统化、规范化、自动化,从而达到提高教材管理效率的目的。
1.3软件定义
人员订书、领书、查询教材资料及其书款情况必须在管理员的设置条件下进行。
1.4开发环境
本系统使用SQL Server 2008 Express数据库作为后台的数据管理系统,利用ADO数据库组件连接后台数据库。
开发采用的是C#,它是由Microsoft公司开发的Windows程序开发环境,是现在最受欢迎的几种开发工具之一.
2.需求分析
2.1数据的分析
教材管理系统主要提供学生以班级为单位能从学校教材管理中心完成每学期领到所订教材的功能,其中包括班级信息、教材管理员信息、财务室信息、教师信息、教材信息、出版社信息。
此系统可以让教师增加、删除和修改某一学期所定的教材信息,教材管理员可以依据教师提供的应订教材要求和出版社联系订书,还可以让出版社增加、删除和修改预定教材的信息。
如果信息无误,财务室根据学生交的教材费给教材管理员拨款,订书成功后,开学初可以将所定教材成功发放给学生所在班级。
2.2数据处理的分析
系统实现功能描述——
本系统应该实现的功能如下:
(1)系统管理模块:
首先是对本系统的操作用户设置权限以及用户基本信息的添加、修改、删除其次是设置有系统初始化,能够在系统出现问题或者有大量错误、冗余数据时进行初始化设置,使系统恢复期初始状态;
(2)书费管理局模块:
财务科根据学生订书情况和教材费用收缴学生订书费用,并记录相应的数据;(3)教材出入库模块:
教材科根据学生订书数量和教材基本信息想学生发放教材的出库管理和向书商下达供书订单并打印教材报表,便于用户直接查看,实现出版社、教材类型等的管理并实现教材的订购、入库和领用管理;
(4)综合查询模块:
根据用户的类型和需求查询教材的库存信息,班级信息以及费用收缴信息,创建规则实现教材的书号必须满足以ISBN开头,后跟10个数字的格式,比如:
ISBN7302120363。
创建触发器,实现教材入库和出库时自动修改库存数量。
创建存储过程统计各种教材的订购、到货和发放数量;建立数据库相关表之间的参照完整性约束;(5)统计分析模块:
录入班级信息闭和教师单位信息并设置打印报表功能供用户查看然后操作员根据订书情况统计分析学生买书的人数比例和学生不购买教材的原因分析,一次给校方提供相应的数据,便于改进学校的教材管理措施,满足学生对教材的需求;
(6) 帮助模块:
介绍本系统的相关信息和操作指南。
2.3安全性分析
(1)系统能抵御瑞星网上公布的病毒的攻击而不至于瘫痪。
(2)系统能安全的防范对数据库内容不安全的访问和操作。
(3)系统能在断电的情况下,依靠UPS电源确保数据库内容的完整性和安全性。
(4)数据库服务端应具备系统使用期间2小时备份一次数据库的功能。
(5)系统应用验证用户权限方可使用的功能保障。
(6)能完全、直观的体现系统功能,用户能方便快捷的执行某种教材管理工作,能适应屏显分辨率的调整,友好、可操作性强。
(7)限于网络配置和C/S结构程序的网络编程实现问题,部分功能可能实现不完美,甚至是暂时无法实现。
以下为数据库的用户信息及其权限
~1班级信息
班级信息操作流程图
~2教材管理员信息
教材管理员信息操作流程图
~3财务管理员信息
财务管理员信息操作流程图
~4教师信息
教师信息操作流程图
~5教材信息
教材信息操作流程图
~6出版社信息
出版社信息操作流程图
2.4完整性分析
当向数据库中插入、修改时,系统能够辨别输入的数据是否符合语义,不能的则不能修改成功。
3.概念结构设计
从课程设计选题中可以得知,我们设计的高校教材管理系统数据库需具备以下功能:
1)实现出版社、教材类型等的管理;
2)实现教材的订购管理;
3)实现教材的入库管理;
4)实现教材的领用管理;
5)可随时查询教材管理系统中的各种信息;
6)创建规则实现教材的书号必须满足以ISBN开头,后跟10个数字的格式,比如:
ISBN7302120363;
7)创建触发器,实现教材入库和出库时自动修改库存数量;
8)创建存储过程统计各种教材的订购、到货和发放数量;建立数据库相关表之间的参照完整性约束。
3.1高校教材系统的数据流图
数据流程图
3.2数据字典
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
是一种用户可以访问的记录数据库和应用程序源数据的目录。
数据字典最重要的作用是作为分析阶段的工具。
数据字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。
换句话说,数据流图上所有的成分的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户的通信。
数据库数据字典不仅是每个数据库的中心,而且对每个用户也是非常重要的信息。
用户可以用SQL语句访问数据库数据字典。
下面是本系统中的数据字典。
名字:
用户信息
描述:
使用该软件的人员信息
定义:
用户信息=登陆账号+真实名字+登陆密码+班级
名字:
教材基本信息
描述:
各种教材的详细信息
定义:
教材信息=教材编号+教材名称+教材作者+出版社+教材版本号
名字:
入库信息
描述:
每一种教材的入库详细信息
定义:
入库信息=教材编号+教材名称+入库单号+单价+出版社+数量+入库时间
名字:
订购信息
描述:
每一种教材订购的详细信息
定义:
订购信息=订购单号+教材编号+教材名称+数量+单价+供应商+订购日期
名字:
出库信息
描述:
每一种教材的出库详细信息
定义:
出库信息=教材编号+教材名称+数量+单价+出版社+班级
名字:
管理员信息
描述:
管理教材的入库和出库的详细信息
定义:
管理员信息=编号+姓名+性别+电话
名字:
供应商信息
描述:
为需求单位提供教材
定义:
供应商信息=编号+名称+地址+负责人+电话
3.3E-R图
下面是各实体的ER图:
班级:
出版社:
订购管理:
出库管理:
学生:
入库管理:
供应商管理:
高校教材管理系统实现各种管理工作,根据使用者学生及供应商、管理员管理、入库管理、出库的管理、印刷社、教材的关系,构化出本系统整体的ER图:
4.逻辑结构设计
数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本ER图转换为及选用的DBMS产品所支持的数据模型相符合的逻辑结构。
由于目前使用的数据库基本上都是关系数据库,因此首先需要将ER图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。
在本系统中我们选用的数据库环境是SQLsrver2008。
4.1实体型间联系的不同情况
(1)一个1:
1联系可以转换成一个独立的关系模式,也可以及任意一段对应的关系模式合并。
(2)一个1:
n联系可以转换成一个独立的关系模式,也可以及n端对应的关系模式合并。
(3)一个m:
n联系可以转换成一个关系模式。
(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
(5)具有相同码的关系模式可以合并。
4.2将E-R图转换成关系模式
教材(教材编号,教材名称,类型编号,订书单位,出版社名称,出版时间,作者,印张,数量,字数,入库时间)
班级(班级编号,班级名称,人数,班长,班长号码,班主任,班主任号码,学院系,学校,入学时间)
学生(学号,姓名,学院系,学校,班级)
出库(教材编号,教材名称,数量,单价,班级编号,出版社编号,出版时间,出库时间,负责人)
入库(教材编号,教材名称,数量,单价,出版社,入库时间,作者,负责人)
管理员(管理员编号,管理员名字,性别,电话)
供应商(供应商编号,供应商名称,供应商地址,电话,负责人)
订购(订单编号,教材编号,教材名称,单价,数量)
出版社(出版社编号,出版社名称,电话,负责人,地址)。
(横线化的表示是主键)
4.3关系模式的分析
学生(学号,姓名,学院系,学校,班级),其中,学号为主码,姓名,学院系,学校,班级为非主属性,因为所有非主属性都完全依赖于每个候选码,所有主属性都完全函数依赖于每个不包含它的候选码,但是有属性完全函数依赖于非码的一组属性,所以该关系属于3NF,但不属于BCNF。
管理员(管理员编号,管理员名字,性别,电话),其中,管理员编号为主码,管理员名字,性别,电话为非主属性,因为所有非主属性都完全依赖于每个候选码,所有主属性都完全函数依赖于每个不包含它的候选码,没有任何属性完全函数依赖于非码的任何一组属性,所以该关系属于3NF,也属于BCNF。
5.物理结构设计
5.1设计存储过程
(1)在“教材管理库”数据库创建无参存储过程,查询各种教材的订购数量
createprocedurejc_sl
as
select教材编号,count(数量)as数量slfrom订购
groupby教材编号
go
(2)在“教材管理库”数据库创建带output参数的存储过程,用于计算指定的教材订购的总订购金额,存储过程中使用一个输入参数(教材名称)和一个输出参数(总订购金额)
createprocedurepname@jcmcvarchar(20),@counintoutput
as
select@coun=单价*数量from订购where教材名称=@jcmc
go
(3)在“教材管理库”数据库创建带有参数和默认值(通配符)的存储过程,从学生表中返回指定的学生(提供姓名)的信息。
该存储过程对传递的参数进行模式匹配,如果没有提供参数,则返回所有学生的信息
createprocedurestudent_name@namevarchar(40)='%'
as
select*from学生where姓名like@name
go
5.2设计索引
(1)聚合索引和唯一索引
创建学生表上按学号升序排的唯一聚合索引id1
use教材管理库
go
createuniqueclusteredindexid1on学生(学号)
(2)非聚合索引
创建学生表上先按学号升序排,学号一样的再按书费降序排的非聚集索引id2
use教材管理库
go
createindexid2on学生(学号,书费desc)
6.数据库实施
6.1权限设置
设计登录账户SQLServer,登录名gxjc1,gxjc2及密码
createlogingxjc1
withpassword='111111',
default_database=教材管理库
createlogingxjc2
withpassword='111111',
default_database=教材管理库
设计数据库用户系统管理员xtgly,一般用户ybyh
createuserxtglyforlogingxjc1
createuserybyhforlogingxjc2
设计架构
createschemaschema1
authorizationxtgly
go
createschemaschema2
authorizationybyh
设置用户操作权限
把“学生”表的全部操作权限授予用户xtgly和ybyh
grantallprivilegeson学生toxtgly,ybyh
把对“教材”表的查询权限授予所有用户
grantselecton教材topublic
把查询“学生”表和修改学生学号的权限授予用户ybyh
grantselect,update(学号)on学生toybyh
把对订购表的插入权限授予用户xtgly,允许xtgly再将此权限授予其他用户
grantinserton订购toxtglywithgrantoption
grantinserton订购toybyhwithgrantoption
将教材管理库数据库中建表的权限授予ybyh
use教材管理库
grantcreatetabletoybyh
6.2数据输入
6.2.1创建数据库
T-SQL语句为:
CREATEDATABASE教材管理库
ON
(NAME=教材管理库,
='E:
\DATA\教材管理库.MDF',
SIZE=5,
MAXSIZE=unlimited,
=10%),
FG1
(NAME=教材库,
='E:
\DATA\教材管理库.NDF',
SIZE=10,
MAXSIZE=100,
=1)
LOGON
(NAME=教材库LOG1,
='E:
\DATA\教材管理库LOG1.LDF',
SIZE=5,
MAXSIZE=50,
=1),
(NAME=教材库LOG2,
='E:
\DATA\教材管理库LOG2.LDF',
SIZE=5,
MAXSIZE=50,
=1)
6.2.2创建数据表并插入数据
几个有代表性的数据表的创建
T-SQL语句为:
USE教材管理库
GO
createtable班级
(
班级编号intnotnull,
班级名称varchar(5)notnull,
人数intnull,
班长char(10)null,
班长电话char(11)null,
班主任char(10)null,
班主任电话char(11)null,
学院系varchar(10)null,
学校varchar(10)null,
入学时间datetimenull,
constraintPK_班级primarykey(班级编号)
)
);
createtable出库
(
教材编号char(14)notnull,
班级编号char(14)notnull,
教材名称varchar(10)null,
数量intnull,
单价float(5)null,
出版社编号char(14)null,
出版时间datetimenull,
负责人varchar(4)null,
constraintPK_出库primarykeyclustered(教材编号,班级编号)
)
createtable订购
(
供应商编号char(14)notnull,
教材编号char(14)notnull,
订单编号char(14)null,
教材名称varchar(10)null,
单价float(5)null,
数量intnull,
constraintPK_订购primarykeyclustered(供应商编号,教材编号)
);
createtable入库
(
管理员编号char(14)notnull,
教材编号char(14)notnull,
教材名称varchar(10)null,
出版社varchar(10)null,
数量intnull,
入库时间datetimenull,
单价float(5)null,
作者varchar(4)null,
负责人varchar(4)null,
constraintPK_入库primarykeyclustered(管理员编号,教材编号)
);
createtable学生
(
学号char(10)notnull,
班级编号char(10)null,
姓名varchar(4)notnull,
学校varchar(10)null,
院系varchar(10)null,
书费char(6)null,
constrain