食品消费管理系统.doc

上传人:仙人指路1688 文档编号:3799716 上传时间:2023-03-22 格式:DOC 页数:28 大小:256KB
返回 下载 相关 举报
食品消费管理系统.doc_第1页
第1页 / 共28页
食品消费管理系统.doc_第2页
第2页 / 共28页
食品消费管理系统.doc_第3页
第3页 / 共28页
食品消费管理系统.doc_第4页
第4页 / 共28页
食品消费管理系统.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《食品消费管理系统.doc》由会员分享,可在线阅读,更多相关《食品消费管理系统.doc(28页珍藏版)》请在三一办公上搜索。

1、得分:课程设计报告食品消费卡管理系统设计姓名班级学号课程名称指导教师2015年1月1日目录一 食品消费卡管理系统应用分析21.1食品消费卡管理系统的应用背景21.2学生管理系统应用需求21.3食品消费卡管理系统功能分析3二 总体设计32.1数据库概念设计32.2应用软件系统功能划分4三 系统详细设计53.1数据库关系模式设计53.2软件模块设计53.3各模块功能5四 系统实现64.1登录界面设计64.2功能界面和食品管理设计64.3消费卡管理设计74.4消费记录74.5餐厅管理8五 实验总结91食品消费卡管理系统应用分析1.1食品消费卡管理系统的应用背景依据现阶段食堂食品的实际业务情况,通过对

2、整个系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节进行分析与描述。从而以此为基础,建立起科学、高效的管理系统,实现食品管理,餐厅管理以及消费管理的功能。最终达到方便管理人员对食品,消费等的管理,实现食堂管理的高效化和统一化,和提高管理方便性及可行性的目的。1.2学生管理系统应用需求1.2.1功能需求通过对学生使用消费卡在学校餐厅的消费流程进行分析,完成具有食品管理、消费管理、餐厅管理等相关功能的小型数据库管理应用系统。完成人员、消费卡、餐厅、食品价目表的维护完成消费表的生成,并计算消费折扣。 按人员、时间、餐厅统计计算消费总额按食品类别、时间、餐厅统计计算消费总额

3、等功能。1.2.2数据处理需求系统主要处理需求有如下几点:1)对基本信息管理:食品信息、学生信息、餐厅信息等;2)对食品管理:食品登记、食品查询、食品消费等;3)对消费管理:消费登记、消费记录查询等。1.3食品消费卡管理系统功能分析从数据库获得相应的权限后,登录进去,然后对食品表,消费卡,餐厅表等进行增,删,改,查的操作。功能流程图如下:表1 功能流程图2 总体设计2.1数据库概念设计本系统主要有食品,餐厅和消费卡三个实体集,一个餐厅可以有多种食品,一种食品也可以在不同餐厅中,这两个实体集之间是多对多联系;一个消费人员可以点多道菜,每道菜可以被多个消费人员点,这两个实体集间关系是多对多关系;一

4、个消费人员有一张消费卡,一张消费卡只能被一个人拥有,这两个实体集之间关系是一对一。全局E-R图如下:表2 全局E-R图实体装换为所对应的关系模式:食品(食品编号,菜名,菜价,食品类型)餐厅(餐厅编号,餐厅名称,日销售额)消费卡(学号 消费卡编号 联系方式)消费人员(学号 姓名 班级 性别)联系转化为所对应的关系模式:使用(餐厅编号,消费卡编号)拥有(学号,消费卡编号)购买(食品编号,消费卡编号,学号)出售(餐厅编号, 食品编号)2.2应用软件系统功能划分1)消费卡管理显示消费卡的相关信息,便于管理员进行下一步操作。2) 菜单管理显示菜单的相关信息,便于管理员进行下一步操作。3) 食品管理显示食

5、品表的相关信息,便于管理员进行下一步操作。4) 餐厅管理显示餐厅表的相关信息,便于管理员进行下一步操作。3 系统详细设计3.1数据库关系模式设计实体完整性约束:食品信息(食品编号,菜名,菜价,食品类型)餐厅信息(餐厅编号,餐厅名称,日销售额)消费卡信息( 学号 姓名 班级 性别 消费卡编号 联系方式)消费记录信息(餐厅号,学号,菜数量,消费额,消费记录)3.2软件模块设计软件分为四大模块,分别为消费卡模块,菜单模块,食品模块,登陆信息模块,餐厅模块。3.3各模块功能消费卡模块功能:查询,添加,删除,修改消费卡信息菜单模块功能:查询,修改,添加,删除食品编号,菜名,菜价,食品类型。食品模块功能:

6、包含所有食品编号菜名菜价等。登陆信息模块功能:使用登陆账号,密码登入食品消费卡管理系统。消费记录模块功能:查询部分消费者的消费信息。4 系统实现4.1登录界面设计管理员登录时,只有输入正确的账号和密码,才能进入,正确的账号和密码存储在数据库中,账号或密码错误时,也会有相应的提示,登录界面如下:表3 登录界面输入正确的账号和密码,然后即可进入。4.2功能界面和食品管理设计登录进入之后,便会出现如下界面:表4 主界面主界面显示的是食品表的相关信息,由菜单栏和相应的按钮组成,可以清楚的看到食品表的结构和详细信息,也可以进行食品表的相关操作。4.3消费卡管理设计消费卡管理的界面设计如下:表5 消费卡界

7、面通过上图,我们可以清楚的看到消费卡表的详细信息,通过查询,添加,修改,删除按钮可以对表进行操作,满足实际需求。4.4消费记录消费记录界面设计如下:表6 消费记录在数据库中,通过复杂查询,可以得到上述的信息,通过上表,我们能够详细的看到每个同学的消费情况,可以方便管理员的管理。4.5餐厅管理餐厅管理的界面设计如下:表7 餐厅表通过上图可知餐厅表的详细信息,管理员可通过相应的按钮对餐厅表进行相关操作。5 实验总结通过本次课程设计,明白了实验的重要性,不管你的理论知识学习的如何,都必须通过不断的练习才能对知识有更深刻的理解。我不但加深了对数据库基础理论和基本知识的理解,更是学习和实践了如何对食品销

8、售管理系统数据库进行设计。通过实战,更详细的了解了系统开发的具体流程。通过对系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节的实施和设计,学习和理解了开发和设计一个小型数据库系统时设计数据库系统模型的基本方法。虽然实际设计操作过程中还是出存在很多不足,但是通过亲自动手和动脑,运用数据库解决实际问题的能力仍得到了一定提高。 附录package Java;import java.io.IOException;import java.util.Properties;public class Config /step1:创建连接配置文件对象 private final st

9、atic Properties prop = new Properties(); static try /step2:加载dbconfig.properties配置文件 prop.load(Config.class.getResourceAsStream(dbconfigs.properties); catch (IOException e) e.printStackTrace(); /step3:设置获取配置文件7个常量 public static final String CLASS_NAME = prop.getProperty(DRIVERCLASSNAME); public stat

10、ic final String DATABASE_URL = prop.getProperty(DATABASE_URL); public static final String USERNAME = prop.getProperty(USERNAME); public static final String PASSWORD = prop.getProperty(PASSWORD);package Java;import java.sql.*;public class DatabaseHelper /三大属性,四大方法 /三大属性是指 JDBC体系中的三个核心接口 private Conne

11、ction conn = null; private PreparedStatement pstmt = null; private ResultSet rs = null; /四大方法 /method1:创建数据库连接 public Connection getConnection() throws ClassNotFoundException, SQLException try /step1:加载连接驱动,java反射原理 Class.forName(Config.CLASS_NAME); /step2:创建connection接口对象,用于获取数据库连接对象。三个参数 url连接的字符串

12、,username账号,password密码 String url = Config.DATABASE_URL; System.out.println(url= + url); /step3:创建数据库连接 conn = DriverManager.getConnection(url, Config.USERNAME, Config.PASSWORD); catch (ClassNotFoundException e) e.printStackTrace(); conn=null; throw e; catch (SQLException e) e.printStackTrace(); con

13、n=null; throw e; return conn; /method2:关闭数据库方法 public void closeConn() /关闭顺序:ResultSet PreparedStatement Connection /关闭:ResultSet if (rs != null) try rs.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); /关闭:PreparedStatement if (pstmt != null) try pstmt.close();

14、catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); /关闭:Connection if (conn != null) try conn.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); System.out.println(数据库连接已关闭); /method3:用于发送 增、删、改 的方法 public int executeUpdate(final String s

15、ql, final Object params)throws Exception /step1:获取数据库连接 this.getConnection(); try /step3:创建Statement接口对象 pstmt = conn.prepareStatement(sql); /step4:动态为pstmt对象赋值参数 for (int i = 0; i params.length; i+) pstmt.setObject(i + 1, paramsi); /step5:使用Statement对象发送sql语句 int affectedRows = pstmt.executeUpdate(

16、); /step6:返回结果 return affectedRows; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return -1; /method4:用于发送 查询结果 的方法 public ResultSet execQuery(final String sql, final Object params)throws Exception /step1:获取数据库连接 this.getConnection(); try /step3:创建PreparedStatement接口对

17、象 pstmt = conn.prepareStatement(sql); /step4:动态为pstmt对象赋值参数 for (int i = 0; i params.length; i+) pstmt.setObject(i + 1, paramsi); /step5:使用Statement对象发送sql语句 rs = pstmt.executeQuery(); /step6:返回结果 return rs; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return null; p

18、ublic int getMaxId(String sql, Object params) throws Exception /step1:获取数据库连接 this.getConnection(); try /step3:创建PreparedStatement接口对象 pstmt = conn.prepareStatement(sql); /step4:动态为pstmt对象赋值参数 for (int i = 0; i params.length; i+) pstmt.setObject(i + 1, paramsi); /step5:使用Statement对象发送sql语句 rs = pstm

19、t.executeQuery(); /step6:返回结果 return rs.getInt(1); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return 0; finally this.closeConn(); DRIVERCLASSNAME=com.microsoft.sqlserver.jdbc.SQLServerDriverDATABASE_URL=jdbc:sqlserver:/127.0.0.1:1433;databaseName=FoodCardUSERNAME=r

20、ootPASSWORD=123456 package Sql;import Java.DatabaseHelper;import com.zjl.entity.Card;import java.sql.Connection;import java.sql.SQLException;import java.sql.Statement;import java.util.logging.Level;import java.util.logging.Logger;public class CardAction static DatabaseHelper helper = new DatabaseHel

21、per(); static Connection conn = null; public static int AddCard() throws ClassNotFoundException, SQLException conn = helper.getConnection(); Statement stmt=conn.createStatement(); String sql=INSERT INTO card VALUES (+Card.cardID+,+Card.userAccount+, +Card.userName+,+Card.userClass+,+Card.userSex+,+C

22、ard.userTel+); stmt.executeUpdate(sql); conn.close(); return 1; public static void UpdateData() throws ClassNotFoundException, SQLException conn = helper.getConnection(); Statement stmt=conn.createStatement();String sql=update card set userAccount=+Card.userAccount+,userName=+Card.userName +,userCla

23、ss=+Card.userClass+,userSex=+Card.userSex+,userTel=+Card.userTel + where cardID=+Card.cardID+; stmt.execute(sql); conn.close(); public static void delrow() throws ClassNotFoundException, SQLException conn = helper.getConnection(); Statement stmt=conn.createStatement(); String sql=Delete FROM card wh

24、ere cardID=+Card.cardID+; stmt.execute(sql); conn.close(); /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package Sql;import Java.DatabaseHelper;import java.sql.Connec

25、tion;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;public class GetTableData DatabaseHelper helper = new DatabaseHelper(); Connection conn = null; public void getData(JTable TableInfo,String tableName,int cloNum) TableInfo.re

26、moveAll(); try conn = helper.getConnection(); Statement stmt=conn.createStatement(); String sql=SELECT * FROM +tableName+; TableInfo = setModelList(TableInfo, tableName); ResultSet res=stmt.executeQuery(sql); String str=new String100100; int row=0; while( res.next() ) row+; for(int j=1;j=cloNum;j+)

27、strrowj-1=res.getString(j); conn.close();/ TableModel model=TableInfo.getModel(); DefaultTableModel model=(DefaultTableModel) TableInfo.getModel(); for(int i=0;irow;i+) model.addRow(stri+1); TableInfo.setModel(model); catch(Exception e) e.printStackTrace(); public void getRecordData(JTable TableInfo

28、,String tableName) TableInfo.removeAll(); try conn = helper.getConnection(); Statement stmt=conn.createStatement(); String sql=select card.cardID,card.userName,food.vname,food.belong,restaurant.rno,restaurant.rname,consume.cmoney,consume.ctime from consume join food on consume.vno=food.vno join card

29、 on consume.cinfo=card.cardID join restaurant on consume.rno=restaurant.rno; TableInfo = setModelList(TableInfo, record); ResultSet res=stmt.executeQuery(sql); String str=new String100100; int row=0; while( res.next() ) row+; for(int j=1;j=8;j+) strrowj-1=res.getString(j); conn.close(); DefaultTable

30、Model model=(DefaultTableModel) TableInfo.getModel(); for(int i=0;irow;i+) model.addRow(stri+1); TableInfo.setModel(model); catch(Exception e) e.printStackTrace(); public void QueryData(JTable TableInfo,String tableName,int cloNum,String noName,String No) try conn = helper.getConnection(); Statement

31、 stmt=conn.createStatement(); String sql=SELECT * FROM +tableName+ WHERE +noName+=+No+; TableInfo = setModelList(TableInfo, tableName); ResultSet res=stmt.executeQuery(sql); String str=new String100100; int row=0; while( res.next() ) row+; for(int j=1;j=cloNum;j+) strrowj-1=res.getString(j); conn.cl

32、ose();/ TableModel model=TableInfo.getModel(); DefaultTableModel model=(DefaultTableModel) TableInfo.getModel(); for(int i=0;i= 0; index-) tableModel.removeRow(index); if(name.equals(food) table.setModel(new javax.swing.table.DefaultTableModel( new Object , new String 食品编号, 菜名,菜价, 食品类型 ) Class types

33、 = new Class java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class,

34、 java.lang.String.class ; boolean canEdit = new boolean false, false, false, false, false, false, false, false, false, false, false, false, false ; public Class getColumnClass(int columnIndex) return types columnIndex; public boolean isCellEditable(int rowIndex, int columnIndex) return canEdit columnIndex; ); else if(name.equals(restaurant) table.setModel(new javax.swing.table.DefaultTableModel( new Object , new String 餐厅编号,

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号