数据库课程设计餐厅点餐说明书
数据结构课程设计餐厅点餐系统

数据结构课程设计餐厅点餐系统1. 简介本文档旨在介绍数据结构课程设计的餐厅点餐系统。
该系统通过使用数据结构的相关知识和算法,实现了一个简单而功能完善的餐厅点餐系统。
2. 功能列表以下是系统提供的功能列表:- 菜品信息管理:系统可以管理餐厅提供的菜品信息,包括菜品名称、价格、菜品种类等。
- 菜单显示:系统可以显示菜品信息,供用户进行点餐。
- 菜品点餐:用户可以选择菜品,并通过系统进行点餐。
- 菜品数量管理:系统可以管理用户点餐的菜品数量,包括增加、减少和删除菜品数量等操作。
- 菜品总金额计算:系统可以根据用户点餐的菜品数量和价格计算出总金额。
- 结账功能:用户可以通过系统进行菜品的结账操作。
3. 数据结构和算法选择为了实现系统的高效和功能完善,我们选择以下数据结构和算法:- 数组:用于存储菜品信息和菜品点餐数量。
- 链表:用于实现菜单显示和菜品数量管理的功能。
- 栈:用于实现用户点餐的操作,以及计算菜品总金额的功能。
4. 系统流程系统的主要流程如下:1. 用户打开系统,菜单显示出来。
2. 用户选择需要点餐的菜品和数量,并将其加入到菜品点餐列表中。
3. 用户可以进行菜品数量的增加、减少和删除操作。
4. 用户点餐完毕后,可以选择结账并支付菜品的总金额。
5. 系统显示订单信息,并将订单信息存储到数据库中。
5. 技术实现系统的技术实现如下:- 后端使用Java语言进行菜品信息管理、点餐操作和订单处理。
- 数据库使用MySQL进行订单信息的存储和管理。
6. 总结通过本文档的介绍,我们可以了解到数据结构课程设计的餐厅点餐系统的功能和实现方式。
该系统通过合理选择数据结构和算法,实现了高效和功能完善的餐厅点餐系统,能够满足用户的点餐需求。
同时,系统的技术实现方案也提供了参考,为开发类似系统提供了一定的指导。
外卖点餐数据库系统设计说明书

外卖点单管理系统设计说明书12电一曾文俊许振杰1、引言编写目的:外卖是我们生活中必不可少的一部分,但是,很多外卖经营店往往会忽略管理系统的重要性。
而本外卖点单管理系统集成了点单,订单号、外送时间,地点,付款等一系列功能,每一个环节分工明确,界面简洁明了,可视化程度高,有效地缩减了人为出错的概率。
本管理系统实现了一体化的管理,使得外卖的点单更加迅捷。
定义1.、系统名称:外卖点单管理系统2 、数据库管理软件:Microsoft SQL Server3 、数据库设计人员:曾文俊4、系统采用C/S体系结构:Client (客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server (服务器)端用于提供数据服务。
5、运行平台:windows 2000/xp/linux2、需求分析功能分析1 、菜单的列表信息:查询、增加、删除、更新(修改)2 、客户个人信息:查询、增加、删除、更新(修改)3 、订单信息:查询、增加、删除、更新(修改)4、送餐员信息:查询、增加、删除、更新(修改)业务管理数据字典数据结构3、ER 图4、 建表代码 1*1.客户信息表*/create table customer( c_id varchar(5), c_name varchar(20), c_address varchar(20), c_tele varchar(20) primary key(c_id) );时间是否送餐N 下订电订单 顾客N数最送餐员T其它信息电话订购〕與工密「地址菜式名)C 价格地址)(电话IN菜式/*2. 送餐员信息表*/create table staff( s_id varchar(5),s_name varchar(20),s_tele varchar(20)primary key(s_id));/*3 菜单信息表*/create table menu( m_id varchar(5),m_name varchar(20),m_price numeric(5,2), m_information varchar(20), primary key(m_id));/*4 订单信息表*/create table order( o_id varchar(5),o_isornot varchar(10),);/*5 下订单信息*/create table submit( c_id varchar(5),o_id varchar(5),time varchar(10) foreign key c_id references customer(c_id), foreign key o_id references order(o_id) );/*6 订购信息*/create table book( o_id varchar(5),m_id varchar(5),number numeric(5),foreign key o_id references order(o_id),foreign key m_id references menu(m_id));/*7 送餐情况*/Create table deliver( c_id varchar(5),o_id varchar(5),foreign key c_id references customer(c_id),foreign key o_id references order(o_id));5、项目总结实践出真知。
网上订餐数据库设计说明书

数据库设计说明书1引言1.1编写目的a)编写目的:数据库的表结构设计是整个项目开发中一个非常重要的环节,一个良好的数据库设计,可以提高开发效率,方便系统维护,并且为以后项目功能的扩展留下余地。
我们通过书写这份文档说明,从各方面进行网上订餐系统的数据库设计规划,用它指导该系统在数据库各方面的内容,为系统开发的程序员、系统分析员提供基准文档。
我们也希望通过写数据设计说明书,规范数据名称、数据范围、数据代码等。
这份文档是项目小组今后共同作战的基础,有了开发规范、程序模块之间和项目成员之间的接口规则、数据方式,大家就有了共同的工作语言、共同的工作平台,使整个软件开发工作可以协调有序地进行。
b)预期读者:项目开发的全体人员,项目评审人员,项目测试人员,指导老师X老师。
1.2背景a)待开发系统的名称:网上订餐系统;b)本项目的任务提出者:某某网店管理者;c)开发者:本人;d)用户:所有顾客;1.3定义在此我们列出本文件中用到的专门术语的定义、外文首字母组词的原词组:1.4参考资料a)XX网店提供的货品管理流程文件;b)XX网店的货物信息;c)经核准的用户合同、《用户需求说明书》和《项目开发委托合同书》;d)《数据库设计说明书》(GB8567——88);e)李代平.软件工程.第二版.北京:冶金工业出版社,2006.11;f)《网上订餐系统数据库设计说明书》.doc 商丘师范大学22小组毕业设计g)《网上订餐系统毕业论文-郑光运》.doc2外部设计2.1标识符和状态联系用途,详细说明用于唯一地标识该数据库的代码、名称或标识符,附加的描述性信息亦要给出。
如果该数据库属于尚在实验中、尚在测试中或是暂时使用的,则要说明这一特点及其有效时间范围。
2.2使用它的程序网上订餐系统2.3约定♦本系统的开发环境为:编译器:SQL Sever 2005数据库:Vs编译器操作系统:Microsoft Windows XP辅助软件:Power Designer12.♦本项目用到的数据项:在名称,范围,类型等方面的约定见数据字典。
网上订餐数据库设计说明书

数据库设计说明书1引言1.1编写目的a)编写目的:数据库的表结构设计是整个项目开发中一个非常重要的环节,一个良好的数据库设计,可以提高开发效率,方便系统维护,并且为以后项目功能的扩展留下余地。
我们通过书写这份文档说明,从各方面进行网上订餐系统的数据库设计规划,用它指导该系统在数据库各方面的内容,为系统开发的程序员、系统分析员提供基准文档。
我们也希望通过写数据设计说明书,规范数据名称、数据范围、数据代码等。
这份文档是项目小组今后共同作战的基础,有了开发规范、程序模块之间和项目成员之间的接口规则、数据方式,大家就有了共同的工作语言、共同的工作平台,使整个软件开发工作可以协调有序地进行。
b)预期读者:项目开发的全体人员,项目评审人员,项目测试人员,指导老师X老师。
1.2背景a)待开发系统的名称:网上订餐系统;b)本项目的任务提出者:某某网店管理者;c)开发者:本人;d)用户:所有顾客;1.3定义在此我们列出本文件中用到的专门术语的定义、外文首字母组词的原词组:1.4参考资料a)XX网店提供的货品管理流程文件;b)XX网店的货物信息;c)经核准的用户合同、《用户需求说明书》和《项目开发委托合同书》;d)《数据库设计说明书》(GB8567——88);e)李代平.软件工程.第二版.北京:冶金工业出版社,2006.11;f)《网上订餐系统数据库设计说明书》.doc 商丘师范大学22小组毕业设计g)《网上订餐系统毕业论文-郑光运》.doc2外部设计2.1标识符和状态联系用途,详细说明用于唯一地标识该数据库的代码、名称或标识符,附加的描述性信息亦要给出。
如果该数据库属于尚在实验中、尚在测试中或是暂时使用的,则要说明这一特点及其有效时间范围。
2.2使用它的程序网上订餐系统2.3约定♦本系统的开发环境为:编译器:SQL Sever 2005数据库:Vs编译器操作系统:Microsoft Windows XP辅助软件:Power Designer12.♦本项目用到的数据项:在名称,范围,类型等方面的约定见数据字典。
mysql课程设计餐馆订餐

mysql课程设计餐馆订餐一、教学目标本课程的目标是让学生掌握MySQL数据库在餐馆订餐系统中的应用。
通过本课程的学习,学生应能够:1.知识目标:理解MySQL的基本概念、特点和优势;掌握SQL语言的基本语法和用法;了解餐馆订餐系统的业务需求和数据库设计。
2.技能目标:能够安装和配置MySQL数据库;熟练使用SQL语言进行数据查询、插入、更新和删除;根据业务需求设计和优化餐馆订餐系统的数据库。
3.情感态度价值观目标:培养学生对数据库技术的兴趣和热情,提高学生解决实际问题的能力,培养学生的团队合作意识和创新精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.MySQL数据库的基本概念和特点:介绍MySQL数据库的历史、特点、优势和应用场景。
2.SQL语言的基本语法和用法:讲解SQL语言的分类、基本语法和常用函数,包括数据查询、数据操作、数据定义和数据控制。
3.餐馆订餐系统的业务需求和数据库设计:分析餐馆订餐业务的流程和需求,设计合理的数据库表结构和关系。
4.MySQL数据库的安装和配置:介绍MySQL数据库的安装方法和配置参数,确保数据库的正常运行。
5.数据库的查询和操作:通过实例讲解如何使用SQL语言进行数据查询、插入、更新和删除。
6.数据库的性能优化:分析数据库性能的影响因素,介绍如何优化数据库的性能。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解MySQL数据库的基本概念、SQL语言的语法和用法,以及餐馆订餐系统的业务需求。
2.案例分析法:通过实际案例,让学生学会使用SQL语言进行数据查询和操作,以及设计和优化数据库。
3.实验法:安排实验课,让学生亲自动手操作MySQL数据库,巩固所学知识。
4.小组讨论法:学生进行小组讨论,分享学习心得和经验,提高学生的团队合作能力。
四、教学资源本课程的教学资源包括:1.教材:选用权威、实用的MySQL数据库教材,为学生提供系统的学习资料。
餐厅点菜系统设计说明书

C++语言程序设计课程设计说明书一、课程设计题目及功能简介一、课程设计题目:餐厅点菜系统二、程序功能简介:一、能够实现顾客点菜、结帐、打印功能,能够实现顾客预定和VIP客户治理。
二、餐桌至少有15张。
3、客人规模在30人以上。
4、能够实现客人的排队等候等功能。
二、餐厅点菜系统背景及有效性一、餐厅点菜系统的数据构造表成员名〔字段名〕数据类型长度字段含义Food_Name string 食物名称Food_Price float 食物价钱food_type string 餐点类型all_price int 总价B[6]、C[10]、D[8] Food 对象数组Desk_number int 桌号Cust_type string 顾客类型food_num int 食物数量All_Desk_numnumber int 餐厅总桌量Desk_customer int 每桌人数desk_num int 客人所定桌数All_desk int 总餐桌数Customer_num int 每桌人数cust_number int 客人规模二、界面〔1〕界面一先进入:餐厅治理系统初始化主管能够设置本餐厅所能容纳的餐桌数〔不得小于15张〕及每张餐桌所容纳的客人数。
〔2〕界面二初始化完毕后,就进入了:餐厅治理系统顾客能够选择:点餐、结账、或退出系统。
〔3〕界面三当咱们选择点餐后,屏幕上就会显示:请输入顾客数、选择用户或退出系统。
〔4〕界面四当咱们输入顾客数和选择用户后,屏幕就会显示出:您所需要的餐桌数并请顾客输入所需餐的类型或退出系统。
〔5〕界面五如:当咱们选择早饭后,系统就会在屏幕上自动显示出早饭菜单并供顾客选择。
〔6〕界面六当咱们选择菜单后,系统就会自动在屏幕上显示出:顾客一共所定的餐桌数;顾客的号码;顾客所点菜单;然后,屏幕将请顾客输入所需份数。
〔7〕界面七当顾客输入份数后,屏幕又将显示出:餐厅治理系统,顾客又能够选择再次点餐,或选择结账。
数据库课程设计
数据库课程设计(饭店点餐系统)班级:目录1.需求分析 (1)2.概念结构设计 (1)2.1 数据需求 (1)2.1.1下订单阶段需要的数据: (1)2.1.2点菜阶段需要的数据: (1)2.1.3结账阶段需要的数据: (2)2.1.4员工管理需要的数据: (2)2.2事务需求 (2)2.2.1数据录入 (2)2.2.2数据更新/删除 (2)2.2.3数据查询 (3)2.3数据项 (3)2.4抽象出系统的实体 (5)2.5设计E-R图 (6)全局E-R图 (6)3. 逻辑结构设计 (7)3.1转换规则 (7)3.2 根据以上规则得到如下关系模型(红色字体的属性为主码) (7)4.数据库物理设计与实施 (8)4.1创建数据库 (8)4.2建立基本表 (8)4.3建立和管理视图 (10)4.3.1建立视图 (10)5.访问数据库 (10)5.1数据查询 (10)总结与心得 (12)1.需求分析通过了解餐饮行业的特点和实际情况,从分析饭店的基本情况入手,结合要实现的功能,对系统的可行性进行分析,为提高其可行性,故做了以下数据分析。
2.概念结构设计2.1 数据需求餐桌数据包括餐桌号、座位数、状态(空/有人)。
餐厅存储有顾客信息,员工信息。
菜品信息有菜品编号、名称、类别、价格等。
具体数据需求如下:2.1.1下订单阶段需要的数据:顾客信息:包括顾客编号。
订单信息:包括订单编号、消费时间。
餐桌信息:包括编号、可容人数、使用状态等员工信息:包括员工工号。
2.1.2点菜阶段需要的数据:订单信息:订单编号菜品信息:包括菜品编号、菜品名称、菜品数量等。
2.1.3结账阶段需要的数据:订单信息:包括订单编号、顾客编号菜品信息:包括菜品编号、菜品名称、菜品数量等。
员工信息:包括员工工号折扣信息:包括消费金额、折扣数2.1.4员工管理需要的数据:员工档案:包括工号、姓名、性别、工资2.2事务需求2.2.1数据录入录入顾客信息、录入餐桌信息、录入员工信息、录入菜品信息2.2.2数据更新/删除更新/删除餐桌信息、更新/删除菜谱菜品信息、更新/删除员工信息、更新/删除顾客信息、更新/删除订单菜品信息2.2.3数据查询查询可用餐桌信息、查询在售菜品信息、查询订单信息、查询顾客点菜信息、查询员工信息、查询顾客消费信息2.3数据项FoodTable(餐桌)数据项Menus(菜谱)数据项Worke(员工)数据项Tomer(顾客)数据项Oder(订单)数据项Menus_Oder(点菜)数据项Discount_rules(折扣规则)数据项Sales_bill(消费账单)数据项2.4抽象出系统的实体菜谱(Menus)顾客(Tomer)餐桌(FoodTable)员工(Worke)订单(Oder)消费记录(Sales_bill)折扣规则(Discount_rules)2.5设计E-R图全局E-R图3. 逻辑结构设计3.1转换规则一个实体型转换成一个关系模型。
订餐系统数据库课程设计
订餐系统数据库课程设计一、课程目标知识目标:1. 学生能理解数据库的基本概念,掌握数据库的设计原则和步骤。
2. 学生能掌握SQL语言的基本操作,如创建表、插入数据、查询数据等。
3. 学生能运用数据库知识,设计并实现一个简单的订餐系统数据库。
技能目标:1. 学生能够运用所学知识,分析实际订餐系统的需求,完成数据库表结构的设计。
2. 学生能够使用SQL语言,对数据库进行基本的增删改查操作。
3. 学生能够通过课程学习,提高问题解决能力和团队协作能力。
情感态度价值观目标:1. 学生通过学习,培养对数据库技术的兴趣,增强对信息技术的认识。
2. 学生在课程实践中,体会团队合作的重要性,增强沟通与协作能力。
3. 学生能够关注数据库技术在生活中的应用,认识到信息时代数据的重要性。
课程性质:本课程为信息技术学科的高年级课程,要求学生具备一定的编程基础和数据库知识。
学生特点:高年级学生具有较强的逻辑思维能力、问题解决能力和自主学习能力。
教学要求:结合学生特点,通过项目式教学,引导学生运用所学知识解决实际问题,培养其团队协作能力和创新精神。
在教学过程中,注重理论与实践相结合,确保学生能够掌握课程目标所要求的知识和技能。
二、教学内容1. 数据库基础知识:介绍数据库的基本概念、发展历程、关系模型等,结合教材相关章节,让学生理解数据库的核心理论。
2. 数据库设计:讲解数据库设计的原则、步骤和方法,包括需求分析、概念结构设计、逻辑结构设计、物理结构设计等,指导学生运用ER图等工具进行数据库设计。
3. SQL语言:教授SQL语言的基本操作,包括创建表、插入数据、查询数据、修改数据、删除数据等,结合教材实例,让学生熟练掌握SQL语句的使用。
4. 订餐系统数据库设计:以实际项目为例,引导学生分析订餐系统的需求,设计数据库表结构,实现基本功能,包括用户、商家、菜品、订单等模块。
5. 数据库操作实践:组织学生进行数据库操作实践,包括创建数据库、表,插入、查询、修改和删除数据,以及简单的数据备份和恢复。
数据库课程设计—快餐店的网上订餐
• order-goods(oid, gid, qty, time).幻灯片 12
也可 • 将四个实体转换为四张表:顾客(customers),订单 (orders),菜式(goods)和员工(staffs) ; • 将三个联系转换为一张表(order-goods) 。
• • • • •
共五张表: Customers(cid, cname, cadd,Tel); Orders (oid, delivery); Goods (gid, gname, price, inf); staffs (sid, sname, sadd,Tel);
5.三个或三个以上实体间的一个多元联系可以转换为一 个关系。
幻灯片 18
( , N)
顾客
1
下订单
( , 1) N
( , 1) N
订单
N
( , N)
( , N) 1
订购
送餐
N ( , N)
员工
菜式 基数 In a relation data base, the number of tuples in a relation. 关系数据库中,一个关系的元组数目。
• 将四个实体转换为四张表:顾客(customers),订单 (orders),菜式(goods)和员工(staffs) ; • • • • • • • 将两个1:n 的联系合并到orders表中 。 将一个n:n 的联系转换为一张表(order-goods) 。 共五张表: Customers(cid, cname, cadd,Tel); Orders (oid, cid, sid, delivery); staffs (sid, sname, sadd,Tel); Goods (gid, gname, price, inf);
餐饮服务管理系统数据库课程设计报告书
应用技术学院课程设计任务书指导教师(签名):教研室主任(签名):2015年7月 17 日 2015 年 7月 17 日目录1 ........................................................................... 概述11.1餐饮管理系统的目标 (1)1.2开发环境及工具 (1)1.3小组分工 (2)2需求分析 (3)2.1问题述 (3)2.2功能需求 (3)2.3系统总体功能模块图 (3)3概念结构设计 (5)3.1设计思想 (5)3.2系统总E--R图 (6)3.3局部E-R图 (7)3.4实体属性的描述 (8)4逻辑结构设计 (11)4.1关系模式 (11)4.2建表逻辑设计 (11)5物理结构设计 (13)5.1数据流图 (13)5.1.1总体数据流图 (13)5.1.2分功能数据数据流图 (15)5.2数据字典 (16)5.2.1数据项 (16)5.2.2数据结构 (16)5.2.3数据流 (17)5.2.4数据存储 (17)5.2.5处理过程 (17)6数据库实施 (19)6.1界面设计 (19)6.1.1登录界面设计 (19)6.1.2登录界面主要代码 (19)6.1.3主界面设计 (21)6.1.4主界面对应代码 (21)6.2桌台信息管理 (24)6.2.1桌台管理模块页面设计 (24)6.2.2桌台管理主要代码 (26)6.3菜单管理设计 (33)6.3.1菜单管理界面设计 (33)6.3.2菜单管理功能主要代码 (34)6.4数据的存储与表的设计 (37)6.4.1菜单的数据存储 (37)6.4.2桌台信息数据存储 (37)7结束语 (39)8参考文献 (40)参考文献 (41)1 概述近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。
然而,传统餐饮企业的日常运作还是靠人工管理,从原材料入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要在深入研究中小餐饮企业工作流程的基础上,分析制约餐饮企业工作效率的各种因素,发现影响效率的主要因素是普遍使用手工登记菜谱的现象,本系统运用计算机系统来实现餐饮企业工作流的信息化管理,采用面向对象的开发方法以及C#语言,依靠Visual studio2012作为开发工具,使用SQL Server 2008网络数据库存储数据。
实现了客户点餐、客户订餐、收银管理、用户管理四大功能,解决餐饮企业中客户点餐速度慢、服务员登记不清晰、厨师配餐漏配、菜谱更新不及时且不直观、会员管理混乱的现象。
关键词:餐饮点餐;Visual studio;SQL serve1系统简介 (1)1.1编写目的 (1)1.2编写背景 (1)1.3任务概述 (1)2需求分析 (2)2.1需求调查 (2)2.1.1.餐馆的基本情况 (2)2.1.2用户对系统的要求 (2)2.2数据流程图 (4)2.2.1系统总体流程图 (4)2.2.2订餐业务流程图 (4)2.2.3功能模块图 (6)2.3数据字典 (6)2.3.1数据项 (6)2.3.2数据结构 (7)2.3.3数据流 (8)2.3.4数据存储 (8)2.3.5处理过程 (8)3 概念结构设计 (10)3.1实体E-R图 (10)3.2总体E-R图 (13)4逻辑结构设计 (15)4.1实体所对应的关系模式 (15)4.2数据库表 (15)5物理结构设计 (22)5.1关系模式存取方法选择 (22)5.2确定数据库的存储结构 (22)5.2.1确定数据的存放位置 (22)5.2.2数据库的系统配置 (23)6.系统主要查询功能及SQL语句 (24)6.1主要查询功能 (24)6.2 SQL语句 (25)7系统实现 (32)7.1系统的功能模块图 (32)7.2部分程序代码 (32)7.3系统运行截图 (38)8设计小结 (44)8.1心得与体会 (44)参考文献 (45)1系统简介1.1编写目的本文档是餐厅点菜系统设计文档的组成部分,编写此文档的目的是:明确此系统的需求和要具体实现什么功能,用来指导后期的数据库脚本的开发。
本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。
1.2编写背景本项目开发的软件是餐厅点菜系统软件。
随着人民的生活水品不断提高,生活也越来越好。
就喜欢出去吃饭,酒店等人员来往爆炸性增长。
饭店对自身和宾客信息的管理,越来越难。
随着这方面的信息不断增长。
人工的记忆管理的弊端越来越突显出来,自动化的管理,可以更好的。
更方便、更有效的对饭店的日常的所有管理。
增加工作效率。
所以本系统就应运而生。
本项目名称为饭店管理系统,系统就要与数据库交互。
所以就要数据库,餐厅点菜系统的待开发的数据库名字为HotalMSDB。
1.3任务概述餐厅点菜系统的目标是尽可能的简化人工的操作,实现自动化。
以最少的人实现最大的工作。
尽量做到达到人力于设备费用的节省,并且使软件处理数据的速度提高,软件的整个设计过程必须通过生产能力的提高,人员工作效率的提高等等使软件开发成本最小化。
实现保证软件质量的前提下的资金投入的最小化来获利益的最大化。
本系统提供对员工的增删改,用户的增删改,菜的管理等饭店的基本日常管理。
2需求分析2.1需求调查2.1.1.餐馆的基本情况顾客到餐馆自助点餐,每个餐桌上都配有点餐设备,点餐之后通过结账,等餐,吃饭。
所以数据库中应有如下实体:订单信息:餐桌号,菜的编号,价格;餐馆的菜单信息:菜的编号,菜名,价格,菜品简介、价格、图片、类型;管理员:姓名,登录系统密码。
2.1.2用户对系统的要求1信息要求(1)订单信息:餐桌号,菜的编号,价格。
(2)餐馆的菜单信息:菜名,价格。
2处理要求(1)当顾客订单信息发生改变时,能自行进行修改。
比如某些顾客加菜时,顾客点餐信息就应该做相应的修改。
(2)当餐馆的菜单信息需要发生变更时,管理员能对其进行修改。
(3)当顾客结账后,管理员能根据其订单通知厨房做菜,配送。
(4)顾客结账后等待并就餐。
3安全性与完整性要求(1)安全性要求:系统应设置访问用户的标识以鉴别是否是合法用户,即是否为管理员,并要求合法用户设置其密码,保证用户身份不被盗用。
(2)完整性要求:①各种数据间相互联系的正确性。
②相同数据在不同记录中的一致性。
2.2数据流程图图2.2.1系统总体流程图2.2.2订餐业务流程图图2.2.2订餐业务流程图2.2.3功能模块图本系统有点餐、订餐功能,模块图如图2.2.3图2.2.3功能模块图2.3数据字典2.3.1数据项表1菜单数据字典表2用户数据字典表3订单数据字典2.3.2数据结构表2.3.2数据结构表2.3.3数据流表2.3.3数据流表2.3.4数据存储表2.3.4数据存储表2.3.5处理过程表2.3.5处理过程表3 概念结构设计3.1实体E-R图1.经理实体图3.1.1经理实体属性E-R图2.厨师实体图3.1.2厨师实体属性E-R图3.菜单实体图3.1.3餐单实体属性E-R图4.收银员实体图3.1.4收银员实体E-R图3.2总体E-R图图3.2总体E-R图4逻辑结构设计4.1实体所对应的关系模式用户(UserID、userName、userPassword、userTypeID)员工(employeesID、employeesName、Sex、Age、identityCard、Tel、userTypeID)员工类型(employeesID、employeesName)收入(accountID、Money、bookdinnerID、userID、times、bookTypeID)菜单(foodID、foodName、Price、Picture、foodtypeID、number)菜单类型(foodtypeID、foodTypeName)订餐(bookID、booktime、eatTime、address、tel、bookTypeID)出餐(launchID、employeesID、bookTypeID、foodID、time)点餐(Choose ID、times、sourceID、bookTypeID)来源(SourceID、Sourcenumber)订餐类型(bookTypeID、BookTypeName)4.2数据库表表4.2.1数据库的简要说明表4.2.2 Users(用户表)表4.2.3 Employees(厨师表)表4.2.4 userTypes(用户类型表)表4.2.5 Accounts(收入表)表4.2.6 Foods(菜单表)表4.2.7 Foodtypes(菜单类型表)表4.2.8 Books(订餐表)表4.2.9 Launchs(出餐表)表4.2.10 Chooses(点餐表)表4.2.11 detaileds(点餐详细表)表4.2.12 Sources来源表(点餐时的来源)表4.2.13 BookTypes(点出餐类型表)5物理结构设计5.1关系模式存取方法选择数据库是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求,物理结构设计的任务之一是根据关系数据管理系统支持的存取方法确定选择哪些存取方法,本次设计采用B+树索引存取方法,根据应用要求确定对关系的哪些属性列建立索引,对哪些属性列建立组合索引,对哪些列建立唯一索引。
在本次设计中,一共有三个关系,分别是Users(用户表)、Employees厨师表、userTypes(用户类型表)、Accounts(收入表)、Foods(菜单表)Foodtypes (食物类型表)、Books(订餐表)、Launchs(出餐表)、Chooses(点餐表)、detail (点餐详细表)、Source(来源表(点餐时的来源))、BookTypes(点出餐类型表)在这12个表中都用主键Id作为唯一索引进行相关的操作。
5.2确定数据库的存储结构确定数据库的物理结构主要是指确定数据的存放位置和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储结构,确定系统配置等。
确定数据的存放位置和存储结构要综合考虑存取时间,存储空间利用率和和维护代价三方面的因素。
这三个方面常常是相互矛盾的,因此需要进行权衡,选择一个这种方案。
5.2.1确定数据的存放位置为了提高系统性能,应该根据应用情况将数据的易变部分与稳定部分,经常存取部分和存取频率较低的部分分开存放,本系统由于12个表都是要经常存取的,因此将其都放在一起,具体位置如下。
行数据文件存放位置:C:\ProgramFiles\MicrosoftSQLServer\MSSQL10.MSSQLSERVER\MSSQL\D ATA日志文件存放位置:C:\ProgramFiles\MicrosoftSQLServer\MSSQL10.MSSQLSERVER\MSSQL\D ATA5.2.2数据库的系统配置关系数据库管理系统铲平一般都提供了一些系统配置变量和存储分配参数,供设计人员和数据库管理员对数据库进行物理优化,出事情况下,系统都为这些变量赋予了合理的默认值,但是这些值不一定适合每一种应用环境,在进行物理设计时需要重新对这些变量赋值,以改善系统的性能。
表5.2.2本系统数据库的系统配置6.系统主要查询功能及SQL语句6.1主要查询功能订单信息查询private void select_Click(object sender, EventArgs e){p = 0;IncomeOpt incomeopt=new IncomeOpt();if (cbotype.Text == "点餐"){dgvselect.DataSource=incomeopt.GetSelectFoodDian(cbodesk.Selected Value.ToString());}else{dgvselect.DataSource=incomeopt.GetSelectFoodDing(cbonumber.Text);}for (int i = 0; i < dgvselect.RowCount; i++){p += float.Parse(dgvselect.Rows[i].Cells[2].Value.ToString()) *float.Parse(dgvselect.Rows[i].Cells[3].Value.ToString());}labcount.Text = p.ToString() + " 元";label1.Text = p.ToString() + " 元";}6.2 SQL语句1.点餐的处理private static void tui(Package package){Choose choose = new Choose();choose.SourceID = 1;choose.BookTypeID = 2;choose.Datetime = DateTime.Now;SqlConnection conn = new SqlConnection(constr);conn.Open();SqlTransaction tran = conn.BeginTransaction();try{SqlCommand comd = new SqlCommand();mandText = "insert into Choosesvalues(@DateTime,@SourceID,@BookTypeID)";SqlParameter par1 = new SqlParameter();par1.ParameterName = "@DateTime";par1.Value = choose.Datetime;comd.Parameters.Add(par1);SqlParameter par2 = new SqlParameter();par2.ParameterName = "@SourceID";par2.Value = choose.SourceID;comd.Parameters.Add(par2);SqlParameter par3 = new SqlParameter();par3.ParameterName = "@BookTypeID";par3.Value = choose.BookTypeID;comd.Parameters.Add(par3);comd.Connection = conn;comd.Transaction = tran;comd.ExecuteNonQuery();mandText = "select @@identity ";int id = Convert.ToInt32(comd.ExecuteScalar());// Detailed detailed = new Detailed();foreach (Food food in package.ListFood){mandText = "select foodID from Foods where foodName='" + food.FoodName + "'";int foodID = Convert.ToInt32(comd.ExecuteScalar());mandText = "insert into Detaileds values('" + id + "','" + foodID + "','" + food.Number + "','" + choose.BookTypeID + "')";comd.ExecuteNonQuery();}mit();}catch (Exception ex){tran.Rollback();throw ex;}finally{conn.Close();}}2.订餐的处理private static void insert(Package package){Book book = new Book();book.Address = package.Address;book.Tel = package.Tel;book.EatTime = package.EatTime;book.BookTime = DateTime.Now;book.BookTypeID = 1;SqlConnection conn = new SqlConnection(constr);conn.Open();SqlTransaction tran = conn.BeginTransaction(); //事务处理try{SqlCommand comd = new SqlCommand();mandText = "insert into Books values(@BookTime,@EatTime,@Address,@Tel,@BookTypeID)";SqlParameter par1 = new SqlParameter();par1.ParameterName = "@BookTime";par1.Value = book.BookTime;comd.Parameters.Add(par1); SqlParameter par2 = new SqlParameter(); par2.ParameterName = "@EatTime"; par2.Value = book.EatTime;comd.Parameters.Add(par2); SqlParameter par3 = new SqlParameter(); par3.ParameterName = "@Address";par3.Value = book.Address;comd.Parameters.Add(par3); SqlParameter par4 = new SqlParameter(); par4.ParameterName = "@Tel";par4.Value = book.Tel;comd.Parameters.Add(par4); SqlParameter par5 = new SqlParameter(); par5.ParameterName = "@BookTypeID"; par5.Value = book.BookTypeID; comd.Parameters.Add(par5);comd.Connection = conn;comd.Transaction = tran;comd.ExecuteNonQuery();mandText = "select @@identity ";int id = Convert.ToInt32(comd.ExecuteScalar());oreach (Food food in package.ListFood){if (food.Number > 0){mandText = "select foodID from Foods where foodName='"+food.FoodName+"'";}}mit();}catch (Exception ex){tran.Rollback();throw ex;}finally{conn.Close();}}}}7系统实现7.1系统的功能模块图图7.1.1系统的功能模块图7.2部分程序代码1.用户登陆代码private void btnLogin_Click(object sender, EventArgs e){using (SqlConnection con = new SqlConnection(constr)){try{SqlCommand cmd = new SqlCommand();cmd.Connection = con;mandText = "select userID from users where "+ "username=@username and userpassword=@userpassword and usertypeid=@usertypeid";SqlParameter s1 = cmd.Parameters.Add("@username", SqlDbType.NVarChar);s1.Value = txtUserName.Text;SqlParameter s2 = cmd.Parameters.Add("@userpassword", SqlDbType.NChar);s2.Value = txtPassword.Text;SqlParameter s3 = cmd.Parameters.Add("@usertypeid", SqlDbType.Int);s3.Value = int.Parse(coboptionligion.SelectedValue.ToString());con.Open();int count = Convert.ToInt32(cmd.ExecuteScalar());if (count > 0){Globalinfo.Login = int.Parse(coboptionligion.SelectedValue.ToString());erID = count;Globalinfo.LoginName = txtUserName.Text;this.Close();}else{MessageBox.Show("用户名或密码错误!");}}catch (Exception exe){MessageBox.Show(exe.Message);}finally{con.Close();}}}2.连接数据库代码private void btnLogin_Click(object sender, EventArgs e){using (SqlConnection con = new SqlConnection(constr)){try{SqlCommand cmd = new SqlCommand();cmd.Connection = con;mandText = "select userID from users where "+ "username=@username and userpassword=@userpassword and usertypeid=@usertypeid";SqlParameter s1 = cmd.Parameters.Add("@username", SqlDbType.NVarChar);s1.Value = txtUserName.Text;SqlParameter s2 = cmd.Parameters.Add("@userpassword", SqlDbType.NChar);s2.Value = txtPassword.Text;SqlParameter s3 = cmd.Parameters.Add("@usertypeid", SqlDbType.Int);s3.Value = int.Parse(coboptionligion.SelectedValue.ToString());con.Open();int count = Convert.ToInt32(cmd.ExecuteScalar());if (count > 0){Globalinfo.Login=int.Parse(coboptionligion.SelectedValue.To String());erID = count;Globalinfo.LoginName = txtUserName.Text;this.Close();}else{MessageBox.Show("用户名或密码错误!");}}catch (Exception exe){MessageBox.Show(exe.Message);}finally{con.Close();}}}3.服务器连接代码public class Connect{static string ip = ConfigurationManager.AppSettings["ip"]; //设置ipstatic string port = ConfigurationManager.AppSettings["port"]; //设置端口public Package SendAdd(List<Food> listfood){Package package = new Package(); //报文中存放着实体集合和mark 标记package.ListFood = listfood;package.Mack = Mack.add;package.Address = UserInfo.Address;package.EatTime = UserInfo.EatTime;package.Tel = UserInfo.Tel;TcpClient client = new TcpClient(ip, int.Parse(port)); //与服务器建立连接NetworkStream Ns = client.GetStream(); //接收网络流IFormatter formatter = new BinaryFormatter(); //定义格式化器formatter.Serialize(Ns, package); //序列化网络流、发送报文给服务Package package1 = (Package)formatter.Deserialize(Ns);Ns.Close();return package1;}}}7.3系统运行截图1.用户登陆界面图7.3.1用户登陆界面2.用户主界面图7.3.2用户主界面3.职位管理界面图7.3.3职位管理界面4.员工管理界面图7.3.4员工管理界面5.员工任务分配界面图7.3.5员工任务分配界面6.收银台界面图7.3.6收银台界面7.添加菜谱界面图7.3.7添加菜谱界面8.点餐、订餐界面图7.3.8点餐、订餐界面9.服务器界面图7.3.9服务器界面8设计小结8.1心得与体会本次课程设计主要是利用数据库的基本知识和C#编程语言的知识和方法,对系统进行了功能需求分析和设计,以及相关功能的实现和验证的相关研究阐明。