《2022年食堂消费管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年食堂消费管理系统 .pdf(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 / 34郑州轻工业学院本科数据库课程设计总结报告设计题目:食堂消费管理系统学生姓名:系别:专业:班级:学号:指导教师:2011 年11 月20 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 34 页 - - - - - - - - - 2 / 34郑州轻工业学院课 程 设 计 任 务 书题目食堂消费管理系统专业、班级学号姓名主要内容:系统数据初始化; 餐卡基本信息录入与修改; 职工工资标准基本设定; 员工工资查询;系统用户设定,密码修改等。基本要求:立足于高校工资
2、管理的实际事务,开发具有价值的工资管理专用软件,实现工资管理自动化 ,提高工作效率 ,减少手工工作方式难以避免的数据错漏。主要参考资料等:数据库系统概论作者:王珊萨师煊出版社:高等教育出版社SQL Server2005中文版关系数据库基础与实践教程作者:周峰出版社:电子工业出版社。SQL Server 数据库开发实例精粹作者:徐国智汪孝宜等出版社:电子工业出版社。完成期限:两 周指 导 教 师 签 名:课程负责人签名:年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共
3、34 页 - - - - - - - - - 3 / 34目录课 程 设 计 任 务 书. 21.需求分析 . 41.1 系统目标: . 41.2 系统功能需求:. 41.3 开发工具: . 51.4 系统的数据流图:. 51.5 数据字典 . 62 数据库的概念设计. 82.1 系统的概念模型:. 82.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 详细设计
4、 . 18 5.1 表的设计 . 18 5.2 关系模式设计. 19 5.3 存储过程设计和部分sql 语句代码 . 19 5.4 关键代码及操作. 20 程序实现部分. 29 对本设计的简单评述,总结. 34 参考文献 . 34 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 34 页 - - - - - - - - - 4 / 34食堂消费管理系统1.需求分析1.1 系统目标:实现一个食堂消费管理系统,完成餐卡信息管理,餐卡信息查询,窗口信息管理,餐卡消费管理和窗口信
5、息查询等功能。1.2 系统功能需求:本系统管理员能够对餐卡信息增加,修改,查询,删除等。功能划分:用户通过身份验证后进入主界面。 主界面为超级用户提供5 项选择:餐卡办理,餐卡挂失,餐卡充值,餐卡解除挂失, 餐卡查询。功能描述:餐卡办理:管理员通过插入表和更新表来为餐卡使用人员办理新卡。新生报到时,学生要到管理员那里办理新卡,管理员通过插入表信息来办理。当卡主的卡丢失或损坏且确定要办理新卡时,管理员通过更新表的信息来办理新卡。餐卡挂失当学生的餐卡找不到但是不能确定还能否找到时,学生可以到擦卡管理员那里去挂失。管理员通过修改表的信息暂时禁用此卡。名师资料总结 - - -精品资料欢迎下载 - -
6、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 34 页 - - - - - - - - - 5 / 34餐卡解除挂失学生找到丢失的餐卡后,可以到管理员那里解除挂失。管理员通过修改表的信息让此卡能从新使用。餐卡充值餐卡余额不足时,学生可能无法到食堂消费,此时要到管理员那里充值。管理员通过修改表的信息为餐卡充值。餐卡查询就餐时可能出现刷错卡的情况,当刷错卡但是刷卡人员没有注意到时两方就会产纠纷,这时要到餐卡管理员那里查询消费情况。1.3 开发工具:该综合教务系统的数据库采用了Microsoft 的 SQL Server20
7、00企业版,前台应用程序采用了Java编写。1.4 系统的数据流图:了解用户的应用要求, 使用信息流程图分析应用系统中的信息流。食堂消费管理系统的简单信息流如下。(1)系统的上下文数据流图如图5-38 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 34 页 - - - - - - - - - 6 / 34管理员食堂消费管理系统窗口管理员卡主录入或更新餐卡记录监控服务信息消费记录1.5 数据字典数据项名:学生编号说明:标识每个学生身份类型:CHAR 长度:7 别名:学号取
8、值范围: 970000979999 数据流名:选课申请名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 34 页 - - - - - - - - - 7 / 34说明:由学生的个人信息,欲选课程信息组成选课申请来自过程:无流至过程:身份验证数据结构:学生个人信息欲选课信息数据结构:学生个人信息说明:说明了学生的个人情况。组成:帐号密码数据存储:上课时间信息说明:说明了每门课的上课时间,一门课可以有多个上课时间,同一时间可以有多门课程在上课。输出数据流:课程上课时间数据描述:
9、课程编号上课时间数量:每学期 2030 个存取方式:随机存取处理过程:身份验证说明:对学生输入的帐号,密码进行验证,确定正确,得到名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 34 页 - - - - - - - - - 8 / 34相应的学生编号。输入:学生帐号密码选课的课程编号输出:学生编号选课的课程编号2 数据库的概念设计2.1 系统的概念模型:管理员餐卡卡主窗口操作消费ID账号密码卡号卡号金额证件号姓名窗口号机器号是否挂失卡号金额上限窗口负责人管理菜烹饪厨师出售
10、姓名年龄性别姓名年龄性别菜名价格种类名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 34 页 - - - - - - - - - 9 / 34上图是食堂消费管理的概念模型的E/R 图,该系统涉及的实体集有:管理员实体集:具有属性账号,工号ID和密码。餐卡实体集:具有属性卡号,是否挂失和金额。卡主实体集:具有属性卡号,证件号和姓名。窗口实体集:具有属性窗口号和机器号。窗口负责人实体集:具有属性姓名,年龄和性别。菜实体集:具有属性菜名,价格和种类。厨师实体集:具有属性姓名,年
11、龄和性别。管理员窗口卡窗口管理人员管理消费nm管理11卡主所有111出售菜mn厨师烹饪nnm一个管理员可以管理多张餐卡,所以管理员和餐卡之间的管理联名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 34 页 - - - - - - - - - 10 / 34系是 1:n 的联系。一张餐卡只属于一个卡主,每个卡主只有一张餐卡,所以餐卡与卡主之间的联系是1:1 的联系。一个卡主可以到多个窗口消费,多个卡主可以到一个窗口消费,所以卡主与窗口之间的联系是n:m 的联系。一个窗口可以
12、出售多种菜,每种菜也可以被多个窗口出售,所以窗口与菜之间的联系是m:n 的联系。2.2 将概念模型转换成关系模型2.2.1 将 E-R模型转换为关系模式(1) 管理员实体集可以转换为关系:管理员(账号, ID,密码)(2) 餐卡实体集可以转换为关系餐卡(卡号,是否挂失,金额)(3) 卡主实体可以转换为关系卡主(证件号,姓名)(4)窗口实体可以转换为关系窗口(窗口号,机器号)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 34 页 - - - - - - - - - 11
13、 / 34(5)窗口负责人实体可以转换为关系窗口负责人(姓名,性别,性别)(6)菜实体可以转换为关系菜(菜名,价格,种类)(7)厨师实体可以转换为关系厨师(姓名,性别,年龄)(8) 卡主与餐卡之间的联系是1:1 的联系,所以没有必要为其建立一个关系,可以通过扩展卡主关系来表示:卡主(证件号,姓名,卡号)(9) 管理员,餐卡之间的操作联系可以转换为关系:操作( ID,卡号)(10) 餐卡和窗口之间的消费联系可以转化为关系:消费(卡号,窗口号)(11)窗口和菜之间的出售联系可以转化为关系:出售(窗口号,菜名)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
14、- - - - - - 名师精心整理 - - - - - - - 第 11 页,共 34 页 - - - - - - - - - 12 / 34(12)菜和厨师之间的烹饪联系可以转换为关系烹饪(菜名,姓名)这里的姓名是指厨师姓名。2.2.2 数据库表结构设计:把关系模型转化为表结构:管理员信息表:定义如下:域名含义数据类型长度例子备注ID 管理员工号Char 5 12345 主码账号管理员账号Char 5 12345 密码管理员密码Char 5 23456 餐卡信息表:定义如下:域名含义数 据 类型长度例子备注名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
15、 - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 34 页 - - - - - - - - - 13 / 34卡号餐 卡 卡号Char 12 540907010238 主码是 否 挂失挂 失 情况0 金额餐 卡 余额Int 100.00 卡主信息表:域名含义数 据 类型长度例子备注证件号卡 主 的证件号Char 5 12345 主键姓名卡 主 姓名Char 12 张三卡号卡 主 的擦 卡 卡号Char 12 540907010152 窗口信息表域名含义数据类型长度例子备注窗口号食堂窗口Int 11 主键名师资料总结 - - -精品资料欢迎下载 - - -
16、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 34 页 - - - - - - - - - 14 / 34编号机器号食堂刷卡机编号Int 29 窗口负责人信息表域名含义数据类型长度例子备注姓名窗口负责人的姓名Char 12 张义坤主键年龄窗口负责人的年龄Int 2 26 性别窗口负责人的性别Char 2 男菜信息表域名含义数据类型长度例子备注菜名窗口所卖菜式的菜名Char 30 酸辣白菜主键菜价某种菜的价钱Int 1.50 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
17、 - - - - 名师精心整理 - - - - - - - 第 14 页,共 34 页 - - - - - - - - - 15 / 34类别是否为该窗口的特色菜Char 2 否厨师信息表域名含义数据类型长度例子备注姓名厨师的姓名Char 12 张义坤主键性别厨师的性别Int 2 26 年龄厨师的年龄Char 2 男2.2.3 实现数据完整性:通过各种约束, 缺省,规则和触发器实现数据的完整性。由于食堂消费管理系统的重要性, 和各个数据之间的复杂相关性,保证数据的完整性显得更为重要。不能让用户随意的删除,修改数据。(1)各种外码约束保证数据的完整性,不能随意删除。外码的设置在上面数据库建表时已
18、经提到。(2)主码约束保证实体的完整性,主码的设置在上面数据库建名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 34 页 - - - - - - - - - 16 / 34表时也已经提到了。(3)创建规则保证年龄在18 岁到 35 岁之间,不会输入错误数据。3.开发工具本该综合教务系统的数据库采用了Microsoft 的 SQL Server2000企业版,前台应用程序采用了Java编写。4.1 基本流程图开始管理员登 录合法?选择服务继续关闭执行操作卡主申请YNNY名
19、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 34 页 - - - - - - - - - 17 / 34数据库设计学生管理员操作登陆办理充值挂失解除挂失查询按时间查询按擦卡号查询按窗口号查询数据库窗口消费窗口负责人登陆操作扣除金额4.2 总体结构和外部模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 34 页 - - - - - - - -
20、- 18 / 34账户验证模块主模块餐卡办理餐卡充值餐卡挂失餐卡查询解除挂失5 详细设计5.1 表的设计本系统主要包括以下几个表:管理员的登录信息,窗口管理人员的信息,学生的基本信息表,学生所持卡号的详细信息,每张卡对应的消费信息,窗口的信息,窗口的消费信息表,菜的信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 34 页 - - - - - - - - - 19 / 345.2 关系模式设计在数据库的设计的时候, 考虑到现实中无法进行透支消费等,进行了防止误操作的
21、控制,比如消费金额如果超过一定数量将限制消费,无法消费价格超过余额的物品。其中使用到了触发器的操作。5.3 存储过程设计和部分sql 语句代码由于存储过程不像解释执行的sql 语句一样在提出操作请求时才进行语法分析和优化操作,因而运行效率高 ,它提供了在服务器端快速执行 sql语句的有效途径 . 存储过程降低了客户机和服务器之间的通行量,方便实施企业规则 . insertinto card_id_table values( 000001, 23.4 , 1) insertinto cai_id_table values( 1, 麻辣鸡丝名师资料总结 - - -精品资料欢迎下载 - - - -
22、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 34 页 - - - - - - - - - 20 / 34 , 1, 1, 6.5 ) deletefrom cai_id_table where cai_name= 麻辣鸡丝 insertinto cooker_id_table values( 1, 张胖子 , 男 , 33) insertinto window_id_table values( 1, 2, 麻辣鸡丝 ) insertinto window_manager_id_table values( 2, 张胖子 ,
23、123) insertinto xiaofei_id_table select* fromxiaofei_id_table wherecardid=0000015.4 关键代码及操作数据库的连接package com.gp.connectdb; import java.sql.Connection; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 34 页 - - - - - - - - - 21 / 34import java.sql.DriverManager; i
24、mport java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class LianJie public static Connection getConnection() throws ClassNotFoundException, SQLException Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); Connection conn = DriverManager.getConnect
25、ion( jdbc:sqlserver:/localhost:1433;DatabaseName=shitang, sa, gp); return conn; public static PreparedStatement getPreparedStatement(String sql) throws SQLException, ClassNotFoundException return getConnection().prepareStatement(sql); public static ResultSet getResultSet(String sql) throws SQLExcept
26、ion, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 34 页 - - - - - - - - - 22 / 34ClassNotFoundException return getPreparedStatement(sql).executeQuery(); public static int executeDelete(String sql) throws SQLException, ClassNotFoundException return getPrepared
27、Statement(sql).executeUpdate(); 对数据库的全部操作package com.gp.util; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.gp.connectdb.*; import com.gp.javabean.*; public class Alloperate / 所有的返回状态都是int,当为 1 是返回成功,当为0 时候返回失败名师资料总结 - - -精品资料欢
28、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 34 页 - - - - - - - - - 23 / 34/ 查询所有的 cardid,username,cash, 并且最后以 cardBean的 list 返回public List list(String str) List list=new ArrayList(); try ResultSet rs=LianJie.getResultSet(select * from +str); while(rs.next() CardBean card=ne
29、w CardBean(); card.setCardid(rs.getString(cardid); card.setCash(rs.getFloat(cash); card.setUsername(rs.getString(username); list.add(card); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace(); return list; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
30、- - - - 名师精心整理 - - - - - - - 第 23 页,共 34 页 - - - - - - - - - 24 / 34 / 查询 cardid下面的卡的信息(用户名,余额)public float show(String cardid) float ret = 0; try ResultSet rs=LianJie.getResultSet(select * from cardinfo where cardid =+cardid+); while(rs.next() ret=rs.getFloat(cash); catch (SQLException e) e.printSt
31、ackTrace(); catch (ClassNotFoundException e) e.printStackTrace(); return ret; / 查询 cardid下面的所有消费记录并且最后以OpBean的 LIST返回名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 34 页 - - - - - - - - - 25 / 34public List listlist(String str) List list=new ArrayList(); try Re
32、sultSet rs=LianJie.getResultSet(select * from cardop where cardid=+str+); while(rs.next() OpBean op=new OpBean(); op.setDate(rs.getString(optime); op.setOp(rs.getFloat(op); list.add(op); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace(); return list; /
33、扣除 cardid为 cash的余额public int chuli(float dao,String cardid) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 34 页 - - - - - - - - - 26 / 34int ret=0; try ret = LianJie.executeDelete(update cardinfo set cash=+dao+where cardid=+cardid+); catch (SQLException e) e.p
34、rintStackTrace(); catch (ClassNotFoundException e) e.printStackTrace(); return ret; / 清除 cardid下面的所有记录public int clearcard(String cardid) int ret1=0 ,ret2=0; try ret1 = LianJie.executeDelete(delete from cardinfo where cardid = +cardid+); ret2 = LianJie.executeDelete(delete from cardop where cardid =
35、 +cardid+); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 34 页 - - - - - - - - - 27 / 34 catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); catch (ClassNotFoundException e) / TODO Auto-generated catch block e.printStackTrace(); retu
36、rn ret1+ret2 ; / 添加 cardid public int addcard(String cardid, String username) int ret =0; try ret=LianJie.executeDelete(insert into cardinfo (cardid , username,cash)values(+cardid+,+username+,0); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); catch (ClassNotFoundExcept
37、ion e) / TODO Auto-generated catch block e.printStackTrace(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 34 页 - - - - - - - - - 28 / 34 return ret; / 添加 cardid的消费记录public int addop(String cardid, float dao,String str) int ret = 0; try ret = LianJie.execute
38、Delete(insert into cardop (cardid , op , optime )values(+cardid+,+dao+,+str+); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); catch (ClassNotFoundException e) / TODO Auto-generated catch block e.printStackTrace(); return ret ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
39、 - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 34 页 - - - - - - - - - 29 / 34程序实现部分用户首页:登陆后的消费页面:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 34 页 - - - - - - - - - 30 / 34名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 3
40、4 页 - - - - - - - - - 31 / 34管理登陆后的页面(可以直接进行删除和更改操作)对人物的添加操作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 31 页,共 34 页 - - - - - - - - - 32 / 34名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 32 页,共 34 页 - - - - - - - - - 33 / 34名师资料总结
41、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 33 页,共 34 页 - - - - - - - - - 34 / 34对本设计的简单评述,总结通过参与此项目的工作,在这个学期内有了很大的收获,从开始的需求分析、数据库设计、系统设计到最后软件架构的实现、代码的编写,遇到了很多问题,通过查资料,向老师请教,在线提问等多种方式,最终一一解决,从而积累、学习到了很多知识!最后系统使用javabean+jsp开发完成,在系统的实现过程中遇到了,诸如汉字乱码问题等,最大的问题还是由于刚开始的需求分析阶段
42、未完全考虑遇到的问题导致最后功能很多都未能实现。参考文献1萨师煊,王珊编著数据库系统概论高等教育出版社 ,2004 年 12月第 16 版2125 数据库原理及应用教程称志泊,王春林人民邮电出版社2011 年 9月版1 李静燕 渭南师范学院学报:综合版数据库设计技巧2007,(5): 6365 1王新龙存储过程应用研究科技情报开发与经济2006, (13) :183184 1孙明魁 软件体系结构的探讨电脑与电信2007 ,(10) 2324 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 34 页,共 34 页 - - - - - - - - -