教材信息管理系统1
教材信息管理系统
一、 系统开发背景 ................................................................... 2 二、 需求分析............................................................................ 2 1.1使用人员: ...................................................................... 2 1.2功能需求: ...................................................................... 2 1.3数据字典 .......................................................................... 3 1.4数据存储 ........................................................................ 10 1.5数据流图 ........................................................................ 11 二、 概要设计.......................................................................... 13 2.1 E_R图 ............................................................................ 13 三、 逻辑结构设计 ................................................................. 14 3.1 E-R图转化为关系模型 . ................................................ 14 四、数据库实现........................................................................ 15 4.1表 .................................................................................... 15 4.2触发器和存储过程 ........................................................ 19 4.3部分视图 ........................................................................ 25 4.4界面设计 ........................................................................ 25 五、 系统总结.......................................................................... 28
一、 系统开发背景
在信息高速发展的今天,教材信息管理系统弄已成为商业市场。由于人工管理方式存在大量的缺点,如效率低,管理难度大,保密性差等,所以教材信息管理系统存在着很好的应用前景。本系统的设计对象是:高校教材信息管理。
二、 需求分析
1.1使用人员:
1.1.1管理员 1.1.2 学院管理者 1.1.3 教师
1.2功能需求:
1.2.1功能分析
操作员信息的增、删、改
院系信息的增、删、改
财务管理(交纳书费、退回多余的书费) 教材出入库记录,学生退书记录、教师领书记录 综合查询(书费查询、领书查询、教材库存量查询、一些本系统的基本信息)
1.2.2功能模块图
1.3数据字典
1.3.1数据流:(说明:简要介绍作用即它产生的原因和结果。)
1.3.2数据项:
1.3.2.1 教材信息(编号,书名,出版社,作者,教
师用书,学生用书,入库时间,出库时间,单价,总数量)
1.3.2.2管理员信息(管理员编号,管理员姓名,管理员性别,管理员登录名,管理员登录密码,管理员手机号码)
1.3.2.3教师信息(教师登录名,教师登录密码,教师姓名,教师性别,教师手机号码,教师所在学院编号)
1.3.2.4学院信息(学院编号,学院名,学院建院年份,院办公室电话)
1.3.2.5班级信息包括(班级号,班长姓名,班长联系电 话,订单号) 1.3.2.6订单信息包括:订单号,教材号,订书人编号,数量,金额,订单说明
1.4数据存储
1.5数据流图
点此查看
1.5.1第0层
b) 第1层
c) 第2层
二、概要设计
2.1E_R图
点此查看详细图
三、逻辑结构设计
3.1E-R 图转化为关系模型
教材(编号,书名,出版社,作者,教师用书,学生用书,入库时间,出库时间,单价,总数量) 管理员(管理员编号,管理员姓名,管理员性别,
管理员登录名,管理员登录密码,管理员手机号码) 教师(教师登录名,教师登录密码,教师姓名,教师性别,教师手机号码,教师所在学院编号) 学院(学院编号,学院名,学院建院年份,院办公室电话)
班级(班级号,班长姓名,班长联系电话,订单号) 订单(订单号,教材号,订书人编号,数量,金额,订单说明)
四、数据库实现
4.1表
4.1.1创建教师表
create table 教师(
教师编号 char (20) primary key , 教师姓名 char (20) not null,
教师性别 char (20) not null check (教师性别=' 男' or 教
师性别=' 女' ),
教师登录名 char (20) not null, 教师登录密码 char (20) not null, 教师所属学院号
char (20) not null,
教师号码 char (11) )
4.1.2 创建学院表
create table 学院(
)
学院编号 char (20) primary key , 学院名
char (20) not null,
学院成立时间 datetime not null, 学院登录名 char (20) not null, 学院登录密码 char (20) not null, 学院办公室号码
char (11)
4.1.3 创建教材信息表
create table 教材(
教材号 char (20) primary key ,
)
教材名 char (20) not null, 作者 char (20) not null, 出版社 char (20) not null, 教材使用者 char (10) not null, 教材入库时间 datetime not null, 教材出库时间 datetime not null, 教材单价 float not null,
本教材总数量 int null default (0),
4.1.4订单信息表
create table 订教材表(
订单号char (20) primary key , 订书数量int not null, 书籍单价float not null, 订书人编号char (20) not null,
foreign key (订书人编号) references 学院( 学院编号), foreign key (订书人编号) references 教师(教师编号), foreign key (书籍单价) references 教材( 教材单价)
)
4.1.5管理员信息表
create table 管理员(
管理员编号 char (20) primary key , 管理员姓名 char (20) not null,
管理员性别 char (20) not null check (管理员性别=' 男' or 管
理员性别=' 女' ),
)
管理员登录名 char (20) not null, 管理员登录密码
char (20) not null,
4.1.6班级信息表
create table 班级( 班级编号char (20), 班级人数 int ,
班长姓名char (20) not null, 联系电话char (20) not null, 订单号char (20), 订单号char (20), 订单号char (20),
foreign key (订单号) references 订单表(订单号) foreign key(订单号) references 订单表(订单号) foreign key(订单号) references 订单表(订单号)
)
4.2触发器和存储过程
-------------------------订书触发器建立 create trigger 订书on 订单表 for insert as
declare @教材号char (20), @数量float , @订书人编号char (20)
select @数量=订书数量, @教材号=教材号, @订书人编号=订书人编号 from inserted
if (@订书人编号in( ))
select 教师编号 from 教师
update 教师
set 订单数=订单数+1
where 教师编号=@订书人编号 update 教材
set 本教材总数量=本教材总数量-@数量 where 教材号=@教材号 update 学院 set 订单数=订单数+1
where 学院编号=@订书人编号
---------------------存储过程================默认值输入
create procedure 插入订单(@订单号char (20), @订书数量int =0, @教材号char (20), @订书人编号char (20), @订单时间char (20), @订单状态char (20)=' 交易中' , @是否付款char (10)=' 否' ) as insert into 订单表
values (@订单号, @订书数量, @教材号, @订书人编号, @订单时间, @订单状态, @是否付款) go
execute 插入订单@订单号='1' , @订书数量=10, @教材号
='7-300-04029-2' , @订书人编号='20' , @订单时间='2012/6/20' go
execute 插入订单@订单号='2' , @订书数量=10, @教材号='978-7-121-06225-1 ' , @订书人编号='01' , @订单时间='2012/5/12'
go
execute 插入订单@订单号='3' , @订书数量=10, @教材号='7-300-04029-2 ', @订书人编号='20 ', @订单时间='2012/6/20' ----------------------付款触发器和存储过程=============== create procedure 付款(@订单号char (20))
as
update 订单表 set 是否付款=' 是' , 订单状态=' 交易成功' where 订单号=@订单号and 是否付款=' 否' and 订单状态=' 交易中'
create trigger 交易完成on 订单表
for update as
declare @预定人编号char (20) select @预定人编号=订书人编号 from deleted where 订单状态=' 交易中' update 学院
set 订单数=订单数-1 where 学院编号= @预定人编号
go
execute 付款@订单号='4'
--------------------------查询教材信息存储过程
create procedure 查询(@教材名char (20)) as
SELECT * FROM 教材
whe re 教材名=@教材名
go
execute 查询@教材名='+""大学英语""+'
create procedure 修改(@教师编号 char (20), @教师姓名 char (20), @教师性别 char (20), @教师登录密码 char (20), @教师所属学院号 char (20), @教师号码char (11)) as
update 教师
set 教师姓名=@教师姓名, 教师性别=@教师性别, 教师登录密码=@教师登录密码, 教师所属学院号=@教师所属学院号, 教师号码=@教师号码
where 教师编号=@教师编号
go
execute 修改@教师编号='1001-1' , @教师姓名=' 柯波波' , @教师性别=' 女' , @教师登录密码='10101' , @教师所属学院号='20' , @教师号码='[1**********]'
-----------------------创建触发器
create trigger 取消订单on 订单表
for delete as
declare @预定人编号char (20), @教材号char (20), @数量int , @订单状态char (20)
select @预定人编号=订书人编号, @教材号=教材号, @数量=订书数量, @订单状态=订单状态
from deleted if @订单状态=' 交易中' --update 学院 --set 订单数=订单数-1 --where 学院编号=@预定人编号 update 教材 set 本教材总数量=本教材总数量+@数量 where 教材号=@教材号
-----------------------测试触发器
delete 订单表 where 订单号='1'
-------------进货
create procedure 进货(@时间char (20), @教材号char (20), @数量int ) as
update 教材
set 本教材总数量=本教材总数量+@数量, 教材入库时间=@时间 where 教材号=@教材号
go
execute 进货@时间='2012/7/1', @教材号='7-300-04029-2 数量=20
-----查看软件学院所订教材总金额
create procedure 查询总金额( @学院编号char (20))
as
declare @教材编号char (20), @数量int
select @教材编号= 教材号, @数量= sum (订书数量)
from 订单表
where 订书人编号=@学院编号
group by 教材号
select sum (教材单价*@数量) 软件学院订单总金额
from 教材
where 教材号=@教材编号
go
execute 查询总金额@学院编号= '20' ' , @
4.3部分视图
-----------------------创建视图
create view 教材视图--(教材名, 作者, 出版社)
as
select 教材名, 作者, 出版社
from 教材
where 本教材总数量>40
4.4界面设计
4.4.1登录界面
4.4.2功能选择界面
4.4.3查询功能界面
4.4.4修改功能界面
五、系统总结
通过这次课程设计让我对前面学过的许多课程有了更为深刻的理解,也是我对这一年所学的东西的一个综合运用。然而这次设计让我感受颇深,急于求成的心情给我带来了很大的困难。以前我注重是编码过程,以为只要能把最后的功能实现了就可以了,所以一开始我就稍微理了一下思绪就动起手来编码,我原以为很快就能完成此次任务,可万万没想到,编了二三天,自已就陷入了泥潭,进退两难,但后来面临的问题只有重来,这真是给了我很大的打击,这样的反复让我进行了几次。后来我终于沉住气,吸取前几次的教训,严格的按照“教材信息管理系统”“软件开发工具”所提到开发系统所用的方法一步一步进行,把系统规划和系统分析放在极为重要的位置,把握整体布局,明确了系统的基本功能,做好业务流程图、数据流图的情况下,在设计好系统各主要部分,将一些细节问题考虑周全后才开始动手进行开发,使得后来的工作才得以顺利进行。
总的来说,这次的课程设计为我提供了一次锻炼的舞台。正像辅导老师说的一样,使知识得到了融会贯通,得到了比以往学习任何一门课都大的提高和进步。