学校饭堂消费管理系统的设计数据库系统原理课程设计.docx

上传人:b****6 文档编号:14024803 上传时间:2023-06-20 格式:DOCX 页数:69 大小:1.16MB
下载 相关 举报
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第1页
第1页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第2页
第2页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第3页
第3页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第4页
第4页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第5页
第5页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第6页
第6页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第7页
第7页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第8页
第8页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第9页
第9页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第10页
第10页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第11页
第11页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第12页
第12页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第13页
第13页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第14页
第14页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第15页
第15页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第16页
第16页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第17页
第17页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第18页
第18页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第19页
第19页 / 共69页
学校饭堂消费管理系统的设计数据库系统原理课程设计.docx_第20页
第20页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学校饭堂消费管理系统的设计数据库系统原理课程设计.docx

《学校饭堂消费管理系统的设计数据库系统原理课程设计.docx》由会员分享,可在线阅读,更多相关《学校饭堂消费管理系统的设计数据库系统原理课程设计.docx(69页珍藏版)》请在冰点文库上搜索。

学校饭堂消费管理系统的设计数据库系统原理课程设计.docx

学校饭堂消费管理系统的设计数据库系统原理课程设计

课程设计说明书

设计名称:

数据库系统原理课程设计

题目:

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

学生姓名:

孙璐

专业:

网络工程

班级:

12网络1班

学号:

08

指导教师:

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

日期:

2015年01月14日

课程设计任务书

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

一、设计题目

学校饭堂消费管理系统

二、主要内容

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

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

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

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

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

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

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

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

三、具体要求

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

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

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

培育独立试探、深切研究、分析问题、解决问题和团队协作能力。

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

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

(见第六部份)

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

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

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

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

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

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

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

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

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

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

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

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

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

消除没必要要的冗余,设计大体的E-R图………………………8

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

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

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

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

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

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

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

创建大体表………………………………………………………11

成立索引…………………………………………………………14

成立触发器………………………………………………………17

成立视图…………………………………………………………18

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

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

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

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

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

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

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

VB与SQLsever的连接……………………………………24

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

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

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

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

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

一.设计任务分析

系统总功能分析

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

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

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

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

系统总框架

 

密码错误

 

密码正确

 

 

设计思想简述

那个系统我成立了管理员、员工、学生、餐厅、食物和餐厅营业表六张大体表,为了提高查找速度,我为前五个大体表以主键成立了唯一索引,为营业表成立了以餐厅编号、学生学号、食物编号和消费时刻一路的唯一索引。

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

二.整体设计思路

三.需求分析

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

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

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

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

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

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

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

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

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

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

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

 

数据字典:

数据库用到的表

数据库表名

关系模式名称

manager

管理员信息表

student

学生信息表

restaurant

餐厅信息表

food

食品价格表

operation

餐厅营业表

worker

员工信息表

pf_operation

消费表(视图)

 

各表的说明

表一管理员信息表

元素

变量名

数据类型

备注

工号

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)

非空

 

四.概念结构设计

消除没必要要的冗余,设计大体的E-R图

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

(1)员工大体信息:

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

(2)管理员大体信息:

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

(3)学生大体信息:

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

(4)餐厅大体信息:

餐厅编号、餐厅名称。

(5)食物大体信息:

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

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

这些实体间的联系包括:

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

(2)每一个学生能够点多种食物,每一个食物也能够被多个学生点。

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

归并分E-R图,生成总的E-R图

 

 

 

五.逻辑结构设计

数据模型的优化

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

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

方式为:

1)肯定数据依赖;

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

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

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

4)依照需求分析阶段取得的处置要求,分析对于如此的应用环境这些模式是不是适合,肯定是不是要对模式进行归并或分解。

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

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

由E-R图取得的关系模式

数据结构名

组成

管理员信息

工号,姓名,密码

学生信息

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

餐厅信息

编号,名称

食品价格表

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

营业表

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

员工信息

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

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

六.物理结构设计

为关系模式选择存取方式

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

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

那个系统我选择利用索引,为前五个大体表以主键成立了唯一索引,为营业表成立了以餐厅编号、学生学号、食物编号和消费时刻一路的唯一索引。

选择存取路径

createdatabase学校餐厅

on(name=学校餐厅_data,

filename='d:

\slslsl\学校餐厅')

logon(name=学校餐厅_log,

filename='d:

\slslsl\学校餐厅')

 

创建大体表

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)

);

成立索引

CREATEUNIQUEINDEXworker_wnoONworker(wno);

 

CREATEUNIQUEINDEXmanager_mnoONmanager(mno);

CREATEUNIQUEINDEXstudent_snoONstudent(sno);

CREATEUNIQUEINDEXrestaurant_rnoONrestaurant(rno);

CREATEUNIQUEINDEXfood_fnoONfood(fno);

CREATEUNIQUEINDEXoperation_rsftONoperation(rnoASC,snoASC,fnoASC,ctimeASC);

创建触发器

CREATETRIGGERstudent_balanceONoperation

AFTERINSERT

ASBEGIN

DECLARE@cardchar(10)概念变量

DECLARE@timedatetime

select@card=way,@time=ctimefrominserted

if@card='card'

begin

UPDATEstudent

SET=

FROMstudent,operation,food

WHERE=and=

andctime=@time

end

END

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

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

创建视图

CREATEVIEWpf_operation

AS

SELECT,,,fprice,fnum,fnum*fprice*1price,,ctime

FROMoperation,restaurant,student,food

WHERE=AND=AND=

七.数据库的实施

数据的载入

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

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

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

2)向学生表中插入数据

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

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

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

INSERTINTOstudent(sno,sname,spsw,sdept,sbalance)VALUES('4','张立','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','1','01','01','cash','carn');

INSERTINTOoperation(rno,sno,fno,fnum,way,fbelong)VALUES('01','1','03','01','cash','veg');

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

INSERTINTOoperation(rno,sno,fno,fnum,way,fbelong)VALUES('01','3','05','01','cash','veg');

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

INSERTINTOoperation(rno,sno,fno,fnum,way,fbelong)VALUES('02','4','03','01','cash','veg');

INSERTINTOoperation(rno,sno,fno,f

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2