数据库学校饭堂消费管理系统设计说明书.docx

上传人:b****7 文档编号:10267188 上传时间:2023-02-09 格式:DOCX 页数:73 大小:1.16MB
下载 相关 举报
数据库学校饭堂消费管理系统设计说明书.docx_第1页
第1页 / 共73页
数据库学校饭堂消费管理系统设计说明书.docx_第2页
第2页 / 共73页
数据库学校饭堂消费管理系统设计说明书.docx_第3页
第3页 / 共73页
数据库学校饭堂消费管理系统设计说明书.docx_第4页
第4页 / 共73页
数据库学校饭堂消费管理系统设计说明书.docx_第5页
第5页 / 共73页
点击查看更多>>
下载资源
资源描述

数据库学校饭堂消费管理系统设计说明书.docx

《数据库学校饭堂消费管理系统设计说明书.docx》由会员分享,可在线阅读,更多相关《数据库学校饭堂消费管理系统设计说明书.docx(73页珍藏版)》请在冰豆网上搜索。

数据库学校饭堂消费管理系统设计说明书.docx

数据库学校饭堂消费管理系统设计说明书

课程设计说明书

设计名称:

数据库系统原理课程设计

题目:

学校饭堂消费管理系统的设计

****************************

专业:

网络工程

班级:

12网络1班

学号:

**********

指导教师:

顾艳春、韦庆清、李娅、胡明

日期:

2015年01月14日

课程设计任务书

网络工程专业12年级1班孙璐

一、设计题目

学校饭堂消费管理系统

二、主要内容

通过对学生在学校饭堂或餐厅的消费流程进行分析,完成具有食品管理、消费管理、帐户管理、餐厅管理等相关功能的小型数据库管理应用系统(消费刷卡可以通过手工输入来模拟完成)

1.根据任务要求完成有关表的设计(表的设计需要遵循3NF)。

2.完成饭堂(餐厅)员工表、消费人员及帐户表、餐厅表、食品价目表的维护。

3.完成消费表的生成,并计算消费折扣(可现金消费也可刷卡消费)。

4.按人员、时间、餐厅统计计算消费总额。

5.按食品类别、时间、餐厅统计计算消费总额。

6.完成用户帐户管理功能。

7.完成数据备份与恢复功能。

三、具体要求

围绕课程设计的目的和意义,基本要求如下:

1、巩固和加深对数据库系统原理的理解,提高综合运用本课程所学知识的能力。

2、培养学生选用参考书,查阅手册及文献资料的能力。

培养独立思考、深入研究、分析问题、解决问题以及团队协作能力。

3、通过实际系统的分析设计、编程调试,掌握数据库软件的分析设计方法和巩固软件工程方法。

软件开发的流程可参见软件工程课程教材。

(见第六部分)

4、能够按要求编写课程设计报告书,能正确阐述设计和实验结果、正确绘制系统数据流图和E-R图。

5、通过课程设计,培养学生严谨的科学态度,严肃认真的工作作风,和团队协作精神。

6、本课程设计只要求大家完成一个基本的数据库软件的开发工作,系统开发不要求大而全数据库软件的开发,只要完成数据的增、删、改、查等基本功能,并设计一个较友好系统操作界面(最好是图形界面)。

7、系统开发平台不做统一要求。

四、进度安排

依照教学计划,课程设计时间为:

2周。

本设计要求按照软件工程的基本过程完成设计。

建议将时间分为四个阶段:

第一阶段,根据题目要求,确定系统的总体设计方案(概要设计):

即系统包括哪些功能模块,每个模块的实现方法,同时编写相应的设计文档;第二阶段,完成系统的详细设计工作;第三阶段,完成数据库设计和编写程序代码并调试,再将调试通过的各个子模块进行集成调试;第四阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。

三个阶段时间分配的大概比例是:

25:

25:

40:

10。

具体安排如下:

1月5日-1月6日:

资料查找、系统分析,数据流程分析,概要设计。

1月7日-1月8日:

系统详细设计、功能设计。

1月9日-1月14日:

算法实现、编程调试。

1月15日-1月16日:

功能演示、资料整理、课程设计说明书编写。

五、完成后应上交的材料

本课程设计要求按照学校有关规范的要求完成,在课程设计完成后需要提交的成果和有关文档资料包括课程设计的说明书,课程设计有关源程序及可运行程序(含运行环境),其内容不能过于简单,必须包括的内容有:

1.课程设计的基本思想,系统的总功能和各子模块的功能说明;

2.数据库设计中有关数据流图和E-R图,并对重要的操作画出有关算法流程图;

3.源程序中核心代码的说明;

4.本课程设计的个人总结,主要包括以下内容:

1 课程设计中遇到的主要问题和解决方法;

2 你的创新和得意之处;

3 设计中存在的不足及改进的设想;

4 本次课程设计的感想和心得体会。

5.源代码要求在关键的位置有注释,增加程序的可读性。

程序结构和变量等命名必须符合有关软件开发的技术规范(参见有关文献)。

六、总评成绩

 

指导教师签名日期年月日

系主任审核日期年月日

 

一.设计任务分析…………………………………………………………5

1.1系统总功能分析…………………………………………………5

1.2系统总框架………………………………………………………5

1.3设计思想简述……………………………………………………5

二.总体设计思路…………………………………………………………6

三.需求分析………………………………………………………………6

3.1数据字典…………………………………………………………7

3.1.1数据库用到的表…………………………………………7

3.1.2各表的说明………………………………………………7

四.概念结构设计…………………………………………………………8

4.1消除不必要的冗余,设计基本的E-R图………………………8

4.2合并分E-R图,生成总的E-R图………………………………9

五.逻辑结构设计…………………………………………………………10

5.1数据模型的优化…………………………………………………10

5.2由E-R图得到的关系模式………………………………………10

六.物理结构设计…………………………………………………………10

6.1为关系模式选择存取方法………………………………………10

6.2选择存取路径……………………………………………………10

6.3创建基本表………………………………………………………11

6.4建立索引…………………………………………………………14

6.5建立触发器………………………………………………………17

6.6建立视图…………………………………………………………18

七.数据库的实施…………………………………………………………19

7.1数据的载入………………………………………………………19

八.数据库的试运行………………………………………………………22

8.1视图中的数据……………………………………………………22

8.2视图的查询………………………………………………………23

九.数据库运行和维护……………………………………………………23

9.1系统开发工具的介绍………………………………………………23

9.2VB6.0与SQLsever的连接……………………………………24

9.3VB实现学校餐厅的管理…………………………………………27

9.3.1登录界面……………………………………………………27

9.3.2管理员功能…………………………………………………30

9.3.3学生功能……………………………………………………57

十.课程设计的总结报告…………………………………………………60

一.设计任务分析

1.1系统总功能分析

通过对学生在学校饭堂或餐厅的消费流程进行分析,完成具有食品管理、消费管理、帐户管理、餐厅管理等相关功能的小型数据库管理应用系统。

根据任务要求完成有关表的设计(表的设计需要遵循3NF)。

同时还要完成进人员、餐厅、食品价目表的维护,完成消费表的生成,并计算消费折扣。

以及按人员、时间段、餐厅统计计算消费总额,按食品类别、时间段、餐厅统计计算消费总额,最后完成用户管理功能,完成数据备份与恢复功能。

1.2系统总框架

 

密码错误

密码正确

 

修改自己的密码

 

1.3设计思想简述

这个系统我建立了管理员、员工、学生、餐厅、食品和餐厅营业表六张基本表,为了提高查找速度,我为前五个基本表以主键建立了唯一索引,为营业表建立了以餐厅编号、学生学号、食品编号和消费时间一起的唯一索引。

为了简化操作,更清晰地表达查询,我为学生、餐厅、食品和餐厅营业表建立了视图。

二.总体设计思路

三.需求分析

通过我对学校餐厅的调查分析,我得出了餐厅以下几点特点:

工作人员分为管理员,一般员工。

管理员都有唯一的工号,姓名,密码,其中初始密码为工号。

而一般员工都有唯一的工号、姓名、职位和所属餐厅。

其中只有管理员可以登录系统,对餐厅、学生、一般员工、食品进行管理,对餐厅营业表进行查询消费总额。

每位同学都有唯一的学号、姓名、密码、专业和学生卡内余额,其中初始密码为学号后5位,学生可以利用学号和初始密码登录系统进行修改密码,查看自己的基本信息以及查询自己卡内的余额。

餐厅分为两个,每个餐厅都有唯一的编号和姓名。

食品的类别分为素菜和肉菜,每个食品都有唯一的编号,食品名称,素菜的单价为2元,肉菜的单价为4元。

学生在学校餐厅就餐,就有所就餐的餐厅编号、该学生的学号、所食用的食品编号、食品数量、该食品的类别,付款方式(现金或者刷卡)和就餐时间。

消费表就是建立的视图,包括学生学号、餐厅号、食品号、食品单价、食品数量、折扣后价格。

以上就是我对学校餐厅管理系统的需求分析,要求系统能有效、快速、安全、可靠和无误的完成上述操作,服务器程序利于维护。

 

3.1数据字典:

3.1.1数据库用到的表

数据库表名

关系模式名称

manager

管理员信息表

student

学生信息表

restaurant

餐厅信息表

food

食品价格表

operation

餐厅营业表

worker

员工信息表

pf_operation

消费表(视图)

3.1.2各表的说明

表一管理员信息表

元素

变量名

数据类型

备注

工号

mno

Char(9)

主键(非空)

姓名

mname

Char(20)

非空

密码

mpsw

Char(18)

非空

表二学生信息表

元素

变量名

数据类型

备注

学号

sno

Char(9)

主键(非空)

姓名

sname

Char(20)

非空

密码

spsw

Char(18)

非空

专业

sdept

Char(20)

非空

余额

sbalance

Int

表三餐厅信息表

元素

变量名

数据类型

备注

编号

rno

Char(9)

主键(非空)

名称

rname

Char(20)

非空

 

表四食品价格表

元素

变量名

数据类型

备注

食品编号

fno

Char(9)

主键(非空)

食品名称

fname

Char(20)

非空

食品单价

fprice

Int

非空

食品类别

fbelong

Char(20)

非空

表五餐厅营业表

元素

变量名

数据类型

备注

餐厅编号

rno

Char(9)

Restaurant的外键

学号

sno

Char(9)

Student的外键

食品编号

fno

Char(9)

Food的外键

食品数量

fnum

Char(10)

非空

消费时间

ctime

Datetime

允许空值

付款方式

way

Char(10)

非空

食品类别

fbelong

Char(20)

非空

表六员工信息表

元素

变量名

数据类型

备注

工号

wno

Char(9)

主键(非空)

姓名

wname

Char(20)

非空

职位

wpost

Char(18)

非空

所属餐厅

rno

Char(9)

非空

 

四.概念结构设计

4.1消除不必要的冗余,设计基本的E-R图

由需求分析的结果可知,本系统设计的实体包括:

(1)员工基本信息:

员工工号、员工姓名、员工职位、所属餐厅。

(2)管理员基本信息:

管理员工号、管理员姓名、管理员密码。

(3)学生基本信息:

学生学号、学生姓名、学生密码、专业、卡内余额。

(4)餐厅基本信息:

餐厅编号、餐厅名称。

(5)食品基本信息:

食品编号、食品名称、食品单价、食品类别。

由于餐厅的营业表学生、餐厅、食品三者之间的多对多联系转换出来的表,是其基本属性,不必画在E-R图上。

这些实体间的联系包括:

(1)每位学生可以在多个餐厅里消费,每个餐厅也可以供给多个学生的饭菜。

(2)每个学生可以点多种食物,每个食物也可以被多个学生点。

(3)每个餐厅可以有多名员工,而每个员工只能在一个食堂工作。

4.2合并分E-R图,生成总的E-R图

 

 

五.逻辑结构设计

5.1数据模型的优化

数据库逻辑设计的结果不是唯一的。

为了进一步提高数据库应用系统的性能,还应该根据应用需求适当地修改、调整数据模型的结构,这就是数据模型的优化。

方法为:

1)确定数据依赖;

2)对于各个关系模式之间的数据依赖进行极小化的处理,消除冗余的联系;

3)按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数、传递依赖、多值依赖等,确定各关系模式分别处于第几范式。

由于并不是规范化程度越高的关系就越优,一般说来,第三范式就足够了,所以对于本系统,按照要求,达到第三范式。

4)按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要对模式进行合并或分解。

本系统中的管理员皆是餐厅的员工,但是只要管理员拥有密码可以对餐厅进行管理,所以我把他们分为管理员表和员工表。

5)对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。

5.2由E-R图得到的关系模式

数据结构名

组成

管理员信息

工号,姓名,密码

学生信息

学号,姓名,密码,专业,卡内余额

餐厅信息

编号,名称

食品价格表

食品号,食品名,食品价,食品类别

营业表

餐厅编号,学号,食品号,食品数量,消费时间,付款方式,食品类别

员工信息

工号,姓名,职位,所属餐厅

(下划线标注的属性为主码)

六.物理结构设计

6.1为关系模式选择存取方法

数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。

为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计。

这个系统我选择使用索引,为前五个基本表以主键建立了唯一索引,为营业表建立了以餐厅编号、学生学号、食品编号和消费时间一起的唯一索引。

6.2选择存取路径

createdatabase学校餐厅

on(name=学校餐厅_data,

filename='d:

\slslsl\学校餐厅_data.mdf')

logon(name=学校餐厅_log,

filename='d:

\slslsl\学校餐厅_log.ldf')

 

6.3创建基本表

1)创建管理员表

CREATETABLEmanager

(mnoCHAR(9)PRIMARYKEY,

mnameCHAR(20)NOTNULL,

mpswCHAR(18)NOTNULL

);

 

2)创建学生表

CREATETABLEstudent

(snoCHAR(9)PRIMARYKEY,

snameCHAR(20)NOTNULL,

spswCHAR(18)NOTNULL,

sdeptCHAR(20)NOTNULL,

sbalanceINTCHECK(sbalance>=0)

);

 

3)创建餐厅表

CREATETABLErestaurant

(rnoCHAR(9)PRIMARYKEY,

rnameCHAR(20)NOTNULL

);

 

 

4)创建食品表

CREATETABLEfood

(fnoCHAR(9)PRIMARYKEY,

fnameCHAR(20)NOTNULL,

fpriceINTNOTNULL,

fbelongCHAR(20)NOTNULL

);

 

 

5)创建餐厅营业表

CREATETABLEoperation

(rnoCHAR(9)NOTNULL,

snoCHAR(9)NOTNULL,

fnoCHAR(9)NOTNULL,

fnumCHAR(10)NOTNULL,

ctimeDATETIMEDEFAULTGETDATE(),

wayCHAR(10)NOTNULL,

fbelongCHAR(20)NOTNULL,

FOREIGNKEY(rno)REFERENCESrestaurant(rno),

FOREIGNKEY(sno)REFERENCESstudent(sno),

FOREIGNKEY(fno)REFERENCESfood(fno)

);

6)创建员工表

CREATETABLEworker

(wnoCHAR(9)PRIMARYKEY,

wnameCHAR(20)NOTNULL,

wpostCHAR(18)NOTNULL,

rnoCHAR(9)NOTNULL,

FOREIGNKEY(rno)REFERENCESrestaurant(rno)

);

6.4建立索引

CREATEUNIQUEINDEXworker_wnoONworker(wno);

 

CREATEUNIQUEINDEXmanager_mnoONmanager(mno);

CREATEUNIQUEINDEXstudent_snoONstudent(sno);

CREATEUNIQUEINDEXrestaurant_rnoONrestaurant(rno);

CREATEUNIQUEINDEXfood_fnoONfood(fno);

CREATEUNIQUEINDEXoperation_rsftONoperation(rnoASC,snoASC,fnoASC,ctimeASC);

6.5创建触发器

CREATETRIGGERstudent_balanceONoperation

AFTERINSERT

ASBEGIN

DECLARE@cardchar(10)定义变量

DECLARE@timedatetime

select@card=way,@time=ctimefrominserted

if@card='card'

begin

UPDATEstudent

SETstudent.sbalance=student.sbalance-food.fprice*operation.fnum*1

FROMstudent,operation,food

WHEREstudent.sno=operation.snoandoperation.fno=food.fno

andctime=@time

end

END

学生卡内余额=原余额-食品单价X数量X折扣。

只有当学生的付款方式为刷卡时才计算,支付现金不计算。

6.6创建视图

CREATEVIEWpf_operation

AS

SELECTstudent.sno,restaurant.rno,food.fno,fprice,fnum,fnum*fprice*1price,food.fbelong,ctime

FROMoperation,restaurant,student,food

WHEREoperation.sno=student.snoANDoperation.rno=restaurant.rnoANDoperation.fno=food.fno

七.数据库的实施

7.1数据的载入

1)向管理员表中插入数据

INSERTINTOmanager(mno,mname,mpsw)VALUES('30481','王红','30481');

INSERTINTOmanager(mno,mname,mpsw)VALUES('30482','李明','30482');

2)向学生表中插入数据

INSERTINTOstudent(sno,sname,spsw,sdept,sbalance)VALUES('201215121','李勇','15121','cs','101');

INSERTINTOstudent(sno,sname,spsw,sdept,sbalance)VALUES('201215143','刘晨','15143','cs','140');

INSERTINTOstudent(sno,sname,spsw,sdept,sbalance)VALUES('201247384','王敏','47384','ma','99');

INSERTINTOstudent(sno,sname,spsw,sdept,sbalance)VALUES('201268974','张立','68974','is','70');

由于建立了触发器会自动修改学生卡内余额,截图是在所有消费记录输入过以后的,所以插入数据时的余额跟截图的余额会有不同。

3)向餐厅表中插入数据

INSERTINTOrestaurant(rno,rname)VALUES('01','清风楼');

INSERTINTOrestaurant(rno,rname)VALUES('02','映月阁');

4)向食品表中插入数据

INSERTINTOfood(fno,fname,fprice,fbelong)VALUES('01','红烧鱼块','4','carn');

INSERTINTOfood(fno,fname,fprice,fbelong)VALUES('02','炸鸡腿','4','carn');

INSERTINTOfood(fno,fname,fprice,fbelong)VALUES('03','清炒西洋菜','2','veg');

INSERTINTOfood(fno,fname,fprice,fbelong)VALUES('04','苦瓜炒蛋','2','veg');

INSERTINTOfood(fno,fname,fprice,fbelong)VALUES('05','酸辣土豆丝','2','veg');

INSERTINTOfood(fno,fname,fprice,fbelong)VALUES('06','家常豆腐','2','veg');

5)向餐厅营业表中插入数据(插入了两天的营业记录,时间自动为系统时间)

INSERTINTOoperation(rno,sno,fno,fnum,way,fbelong)VALUES('01','201215121','01','01','cash','carn');

INSERTINTOopera

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1