目录
系统需求分析
(一)需求概述
整个系统主要分为两个部分:管理员和普通用户、员工,每个模块下的分支功能不一样。对功能做出如下说明:
1.教材采购管理:包括教材的订购、采购流程管理,以及采购订单的审核和跟踪。
2.库存管理:对教材库存的管理,包括入库、出库、库存查询和调拨等功能。
3.教材分发管理:管理教材的分发流程,包括根据教学计划进行教材分发、分发记录的管理以及分发情况的统计和分析。
4.教材回收管理:管理教材的回收流程,包括回收通知、回收登记和回收统计等功能。
5.权限管理:不同用户角色的权限划分,包括管理员、教师和学生等角色,确保各项操作的安全性和合法性。
6.数据统计和报表:系统应具备生成各类报表和统计分析功能,包括教材采购统计、库存统计、分发统计等,为学校管理者提供决策支持。
图一 系统功能结构图
(二)业务流分析
图二 业务流程图
(三)数据流分析
图三 系统数据流图(零层)
图四 系统数据流图(一层)
(四)数据字典
数据项名:教材编号 |
简述:存储每本教材的信息 |
简要说明:学校教材编码 |
类型及长度:数字型,7位 |
数据值类型:(连续/离散)离 |
数据结构名:教材管理表单 |
简述: 存储教材入出库等的表单 |
数据结构组成:征订号+书名+出版社+作者+版次+单价+课程+专业+班级+人数+日期+操作员 |
处理逻辑名:制定计划 |
加工编号:P1 |
简要描述:根据各系征订教材以及所缺教材定购计划。 |
输入数据流: 教材订单。 |
输出数据流: 教材计划表 |
数据存储名:入库教材 |
简述:存储入库教材的基本信息 |
文件组成:征订号+书名+出版社+作者+版次+单价+数量。 |
数据存储名:出库教材 |
简述:存储出库教材的基本信息。 |
文件组成:征订号+书名+出版社+作者+版次+单价+数量。 |
数据库概念结构设计
(1)用户信息实体:登录信息。
(2)教材购买信息实体:购买教材的信息。
(3)教材库存信息实体:库存中教材的信息。
(4)教材征订信息实体:教材信息。
(1)用户信息实体:用户编号、姓名、性别、所属专业、班级、密码、手机号。
(2)教材购买信息实体:征订号、书名、出版社、作者、版次、单价、班级、数量。
(3)教材库存信息实体:征订号、书名、出版社、作者、版次、单价、数量。
(4)教材征订信息实体:征订号、书名、出版社、作者、版次、单价、班级、人数。
图五 E-R图
图六
三、数据库逻辑结构设计
(1)概念模型转化为逻辑模型
图七
(2)逻辑模型设计(.LDM图)
图八
四、数据库物理结构设计
(一)表设计
图九 教材购买表
图十 教材信息表
图十一 购买信息表
图十二 用户表
(二)创建表和完整性约束代码设计
if exists (select 1
from sysobjects
where id = object_id('"User"')
and type = 'U')
drop table "User"
go
if exists (select 1
from sysindexes
where id = object_id('goumai')
and name = 'GengGai_FK'
and indid > 0
and indid < 255)
drop index goumai.GengGai_FK
go
if exists (select 1
from sysindexes
where id = object_id('goumai')
and name = 'GouShu_FK'
and indid > 0
and indid < 255)
drop index goumai.GouShu_FK
go
if exists (select 1
from sysobjects
where id = object_id('goumai')
and type = 'U')
drop table goumai
go
if exists (select 1
from sysindexes
where id = object_id('jiaocai')
and name = 'DuiBi_FK'
and indid > 0
and indid < 255)
drop index jiaocai.DuiBi_FK
go
if exists (select 1
from sysindexes
where id = object_id('jiaocai')
and name = 'JiaoCai_FK'
and indid > 0
and indid < 255)
drop index jiaocai.JiaoCai_FK
go
if exists (select 1
from sysobjects
where id = object_id('jiaocai')
and type = 'U')
drop table jiaocai
go
if exists (select 1
from sysindexes
where id = object_id('kucun')
and name = 'DuiBi2_FK'
and indid > 0
and indid < 255)
drop index kucun.DuiBi2_FK
go
if exists (select 1
from sysobjects
where id = object_id('kucun')
and type = 'U')
drop table kucun
go
/*==============================================================*/
/* Table: "User" */
/*==============================================================*/
create table "User" (
User_code int not null,
User_name char(30) null,
sex char(2) null,
major char(16) null,
pwd int null,
num int null,
tradeclass char(10) null,
constraint PK_USER primary key nonclustered (User_code)
)
go
/*==============================================================*/
/* Table: goumai */
/*==============================================================*/
create table goumai (
GBno int not null,
CBno int null,
User_code int null,
GBname char(26) null,
GBpress char(16) null,
GBauthor char(30) null,
GBrevision char(10) null,
GBnum int null,
GBprice int null,
GBclass char(10) null,
constraint PK_GOUMAI primary key nonclustered (GBno)
)
go
/*==============================================================*/
/* Index: GouShu_FK */
/*==============================================================*/
create index GouShu_FK on goumai (
User_code ASC
)
go
/*==============================================================*/
/* Index: GengGai_FK */
/*==============================================================*/
create index GengGai_FK on goumai (
CBno ASC
)
go
/*==============================================================*/
/* Table: jiaocai */
/*==============================================================*/
create table jiaocai (
Bno int not null,
GBno int null,
CBno int null,
Bname char(25) null,
Bpress char(16) null,
Bauthor char(30) null,
Brevision char(10) null,
Bnum int null,
Bclass char(10) null,
Bprice float null,
constraint PK_JIAOCAI primary key nonclustered (Bno)
)
go
/*==============================================================*/
/* Index: JiaoCai_FK */
/*==============================================================*/
create index JiaoCai_FK on jiaocai (
GBno ASC
)
go
/*==============================================================*/
/* Index: DuiBi_FK */
/*==============================================================*/
create index DuiBi_FK on jiaocai (
CBno ASC
)
go
/*==============================================================*/
/* Table: kucun */
/*==============================================================*/
create table kucun (
CBno int not null,
Bno int null,
CBname char(25) null,
CBpress char(16) null,
CBauthor char(30) null,
CBrevision char(10) null,
CBnum int null,
CBprice float null,
constraint PK_KUCUN primary key nonclustered (CBno)
)
go
/*==============================================================*/
/* Index: DuiBi2_FK */
/*==============================================================*/
create index DuiBi2_FK on kucun (
Bno ASC
)
go
(三)创建物理模型设计图(.PDM)
图十三
五、系统实现和界面
(1)登录界面
图十四
图十五
(2)购书界面
图十六
图十七
(3)教材界面
图十八
图十九
(4)库存界面
图二十
图二十一
(5)首页
图二十二 首页
六.总结与展望
1.总结
通过完成学校教材管理系统的过程,我不仅学会灵活运用SQLServer,dreamweaver和powerdesigner等软件。也深刻理解了系统设计并实践的重要性。希望通过这些体会,能够更好地应用于未来的学习中。
2.展望
已解决问题分析:
数据准确性:通过建立学校教材管理系统数据库,成功解决了数据准确性的问题。数据库能够实时更新、准确记录学生资助相关信息,避免了可能出现的错误和遗漏。
尚未解决的问题分析:
页面优化:丰富页面设计,使其更加美观与使用
系统功能优化:通过用户反馈改进系统功能或新增系统功能
完善的设想与建议:我们可以对系统进行功能扩展。例如,可以增加教材预订功能、教材评价功能等,以满足用户更加多样化的需求。
持续优化系统:系统上线后,要及时收集用户反馈,不断优化系统功能和性能,确保系统能够持续满足用户需求。