食堂消费管理系统方案Word文档下载推荐.docx
《食堂消费管理系统方案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《食堂消费管理系统方案Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
周峰
:
电子工业。
《SQLServer数据库开发实例精粹》作者:
徐国智汪孝宜等
完成期限:
两周
指导教师签名:
课程负责人签名:
年月日
课程设计任务书2
1.需求分析4
1.1系统目标:
4
1.2系统功能需求:
1.3开发工具:
5
1.4系统的数据流图:
1.5数据字典6
2数据库的概念设计8
2.1系统的概念模型:
8
2.2将概念模型转换成关系模型10
2.2.1将E-R模型转换为关系模式10
2.2.2数据库表结构设计:
12
2.2.3实现数据完整性:
15
3.开发工具16
4.1基本流程图16
数据库设计17
4.2总体结构和外部模块17
5详细设计18
5.1表的设计18
5.2关系模式设计19
5.3存储过程设计和部分sql语句代码19
5.4关键代码及操作20
程序实现部分29
对本设计的简单评述,总结34
参考文献34
1.需求分析
实现一个食堂消费管理系统,完成餐卡信息管理,餐卡信息查询,窗口信息管理,餐卡消费管理和窗口信息查询等功能。
本系统管理员能够对餐卡信息增加,修改,查询,删除等。
功能划分:
用户通过身份验证后进入主界面。
主界面为超级用户提供5项选择:
餐卡办理,餐卡挂失,餐卡充值,餐卡解除挂失,餐卡查询。
功能描述:
●餐卡办理:
管理员通过插入表和更新表来为餐卡使用人员办理新卡。
新生报到时,学生要到管理员那里办理新卡,管理员通过插入表信息来办理。
当卡主的卡丢失或损坏且确定要办理新卡时,管理员通过更新表的信息来办理新卡。
●餐卡挂失
当学生的餐卡找不到但是不能确定还能否找到时,学生可以到擦卡管理员那里去挂失。
管理员通过修改表的信息暂时禁用此卡。
●餐卡解除挂失
学生找到丢失的餐卡后,可以到管理员那里解除挂失。
管理员通过修改表的信息让此卡能从新使用。
●餐卡充值
餐卡余额不足时,学生可能无法到食堂消费,此时要到管理员那里充值。
管理员通过修改表的信息为餐卡充值。
●餐卡查询
就餐时可能出现刷错卡的情况,当刷错卡但是刷卡人员没有注意到时两方就会产纠纷,这时要到餐卡管理员那里查询消费情况。
该综合教务系统的数据库采用了Microsoft的SQLServer2000企业版,前台应用程序采用了Java编写。
了解用户的应用要求,使用信息流程图分析应用系统中的信息流。
食堂消费管理系统的简单信息流如下。
(1)系统的上下文数据流图如图5-38
1.5数据字典
数据项名:
学生编号
说明:
标识每个学生身份
类型:
CHAR
长度:
7
别名:
学号
取值围:
970000-979999
数据流名:
选课申请
由学生的个人信息,欲选课程信息组成选课申请
来自过程:
无
流至过程:
身份验证
数据结构:
学生个人信息
欲选课信息
说明了学生的个人情况。
组成:
密码
数据存储:
上课时间信息
说明了每门课的上课时间,一门课可以有多个上课时间,同一时间可以有多门课程在上课。
输出数据流:
课程上课时间
数据描述:
课程编号
上课时间
数量:
每学期20-30个
存取方式:
随机存取
处理过程:
对学生输入的,密码进行验证,确定正确,得到相应的学生编号。
输入:
学生
选课的课程编号
输出:
学生编号
2数据库的概念设计
上图是食堂消费管理的概念模型的E/R图,该系统涉及的实体集有:
管理员实体集:
具有属性账号,工号ID和密码。
餐卡实体集:
具有属性卡号,是否挂失和金额。
卡主实体集:
具有属性卡号,证件号和。
窗口实体集:
具有属性窗口号和机器号。
窗口负责人实体集:
具有属性,年龄和性别。
菜实体集:
具有属性菜名,价格和种类。
厨师实体集:
一个管理员可以管理多餐卡,所以管理员和餐卡之间的管理联系是1:
n的联系。
一餐卡只属于一个卡主,每个卡主只有一餐卡,所以餐卡与卡主之间的联系是1:
1的联系。
一个卡主可以到多个窗口消费,多个卡主可以到一个窗口消费,所以卡主与窗口之间的联系是n:
m的联系。
一个窗口可以出售多种菜,每种菜也可以被多个窗口出售,所以窗口与菜之间的联系是m:
2.2将概念模型转换成关系模型
2.2.1将E-R模型转换为关系模式
(1)管理员实体集可以转换为关系:
管理员(账号,ID,密码)
(2)餐卡实体集可以转换为关系
餐卡(卡号,是否挂失,金额)
(3)卡主实体可以转换为关系
卡主(证件号,)
(4)窗口实体可以转换为关系
窗口(窗口号,机器号)
(5)窗口负责人实体可以转换为关系
窗口负责人(,性别,性别)
(6)菜实体可以转换为关系
菜(菜名,价格,种类)
(7)厨师实体可以转换为关系
厨师(,性别,年龄)
(8)卡主与餐卡之间的联系是1:
1的联系,所以没有必要为其建立一个关系,可以通过扩展卡主关系来表示:
卡主(证件号,,卡号)
(9)管理员,餐卡之间的操作联系可以转换为关系:
操作(ID,卡号)
(10)餐卡和窗口之间的消费联系可以转化为关系:
消费(卡号,窗口号)
(11)窗口和菜之间的出售联系可以转化为关系:
出售(窗口号,菜名)
(12)菜和厨师之间的烹饪联系可以转换为关系
烹饪(菜名,)
这里的是指厨师。
把关系模型转化为表结构:
管理员信息表:
定义如下:
域名
含义
数据类型
长度
例子
备注
ID
管理员工号
Char
5
12345
主码
账号
管理员账号
密码
管理员密码
23456
餐卡信息表:
卡号
餐卡卡号
12
8
是否挂失
挂失情况
金额
餐卡余额
Int
100.00
卡主信息表:
证件号
卡主的证件号
主键
卡主
三
卡主的擦卡卡号
2
窗口信息表
窗口号
食堂窗口编号
11
机器号
食堂刷卡机编号
29
窗口负责人信息表
窗口负责人的
义坤
年龄
窗口负责人的年龄
26
性别
窗口负责人的性别
男
菜信息表
菜名
窗口所卖菜式的菜名
30
酸辣白菜
菜价
某种菜的价钱
1.50
类别
是否为该窗口的特色菜
否
厨师信息表
厨师的
厨师的性别
厨师的年龄
通过各种约束,缺省,规则和触发器实现数据的完整性。
由于食堂消费管理系统的重要性,和各个数据之间的复杂相关性,保证数据的完整性显得更为重要。
不能让用户随意的删除,修改数据。
(1)各种外码约束保证数据的完整性,不能随意删除。
外码的设置在上面数据库建表时已经提到。
(2)主码约束保证实体的完整性,主码的设置在上面数据库建表时也已经提到了。
(3)创建规则保证年龄在18岁到35岁之间,不会输入错误数据。
3.开发工具
本该综合教务系统的数据库采用了Microsoft的SQLServer2000企业版,前台应用程序采用了Java编写。
4.1基本流程图
数据库设计
4.2总体结构和外部模块
5详细设计
5.1表的设计
本系统主要包括以下几个表:
管理员的登录信息,窗口管理人员的信息,学生的基本信息表,学生所持卡号的详细信息,每卡对应的消费信息,窗口的信息,窗口的消费信息表,菜的信息。
5.2关系模式设计
在数据库的设计的时候,考虑到现实中无法进行透支消费等,进行了防止误操作的控制,比如消费金额如果超过一定数量将限制消费,无法消费价格超过余额的物品。
其中使用到了触发器的操作。
5.3存储过程设计和部分sql语句代码
由于存储过程不像解释执行的sql语句一样在提出操作请求时才进行语法分析和优化操作,因而运行效率高,它提供了在服务器端快速执行sql语句的有效途径.
存储过程降低了客户机和服务器之间的通行量,方便实施企业规则.
insertintocard_id_tablevalues('
000001'
23.4,1)
insertintocai_id_tablevalues(1,'
麻辣鸡丝'
1,1,6.5)
deletefromcai_id_tablewherecai_name='
insertintocooker_id_tablevalues(1,'
胖子'
'
男'
33'
)
insertintowindow_id_tablevalues(1,2,'
insertintowindow_manager_id_tablevalues(2,'
123'
insertintoxiaofei_id_table
select*fromxiaofei_id_tablewherecardid='
5.4关键代码及操作
数据库的连接
package.gp.connectdb;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sq