餐饮管理系统(1)界面图+源代码

合集下载

餐饮管理程序(PB源代码)

餐饮管理程序(PB源代码)
3日志过滤缺省为本日日志4在后改管理的销售项目一览表中增加了排行top105增加了版本校验机制6增加了错误陷阱7增加了程序中颜色自定义8修改了挂帐单位可挂帐额度的计算错误9修改了xp窗体的拖动10限制了程序只能运行1次1)
餐饮管理程序(PB源代码)
drui12009-03-14上传
餐饮管理程序
1、在后台管理中增加了前台销售一览表。
2、完成了日志察看中的查找功能。
3、日志过滤(缺省为本日日志)
4、在后改管理的销售项目一览表中增加了排行TOP10
5、增加了版本校验机制
6、增加了错误陷阱
7、增加了程序中颜色自定义
8、修改了挂帐单位可挂帐额度的计算错误
9、修改了XP窗体的拖动
10、限制了程序只能运行1次
11、增加了运行库文件察看。
12、增加了操作日志中的系统提示

C++餐厅管理系统源码(可运行)

C++餐厅管理系统源码(可运行)

//Win10操作系统下,用VC6运行,文件后缀名应为.cpp#include <iostream>//输入输出流#include <fstream>//文件流#include <iomanip>//用来对输入输出操作的格式进行更加方便的控制,在ios_base基类的基础上#include <stdlib.h>//标准库头文件#include<Windows.h>//Windows,图形界面接口,图形设备函数等重要的功能using namespace std;typedef struct bianhao{int num;//桌子编号int seat;//座位数(顾客数)int stat;//桌子状态}bianhao_T;//利用数组存桌子,三个参数分别为桌子编号、座位数、状态(是否有人在用)bianhao_T A[10] = { {1, 2, 0},{2, 2, 0},{3, 2, 0},{4, 2, 0},{5, 2, 0},{6, 4, 0},{7, 4, 0},{8, 4, 0},{9, 4, 0},{10, 6, 0}};class Restaurant //餐厅类{private:char location[50]; //座位char phone_number[20];//电话号码char evaluates[200];//评价public:void Search();//搜寻void Set();//建立void evaluate();//评价};class Customer //顾客类{private:int desk; //桌子char dishes[20];//菜品int queues;//队列,排队char write_evaluate[200];//客户书写评价static int total;//总价格public:Customer();//顾客void order();//菜};class Waiter//服务员类{private:int job_number;//工作号char name[25];//名字char sex[5];//性别char phone_number[20];//手机号码public:void Search();//搜索void Set();//录入};class Menus//菜单类{private:static int sums;//菜品总价int number;//菜品序号int price;//菜品价格char dish_name[30];//菜品名字public:friend void Customer::order();void Search();//查询void Set();//录入};int Customer::total = 0;//顾客排队号int Menus::sums = 0;//餐品总价格void Welcome(){system("color b1");cout << " ︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻" << endl;cout << " 【︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻︻】" << endl;cout << " 【【】】" << endl;cout << " 【【★★★★ 】】" << endl;cout << " 【【】】" << endl;cout << " 【【】】" << endl;cout << " 【【★欢迎使用★ 】】" << endl;cout << " 【【】】" <<endl;cout << " 【【◆◆◆餐厅管理系统◆◆◆ 】】" << endl;cout << " 【【】】" << endl;cout << " 【【】】" << endl;cout << " 【【】】" << endl;cout << " 【【-------------------------------- 】】" << endl;cout << " 【【︱制作者:------、------、------ | 】】" << endl;cout << " 【【-------------------------------- 】】" << endl;cout << " 【【】】" << endl;cout << " 【【】】" << endl;cout << " 【【】】" << endl;cout << " 【︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼】" << endl;cout << " ︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼︼" << endl;}//****全局函数***//void Menu(){cout << " **** ****" << endl;cout << " *** ** ** ***" << endl;cout << " *** ** ** ***" << endl;cout << " *** ~.~ - - ***" << endl;cout << " *** 1、信息查询***" << endl;cout << "*** ^.^ @.@ ***" << endl;cout << "*** 2、信息录入***" << endl;cout << " *** $.$ +.+ ***" << endl;cout << " *** 3、顾客点餐***" << endl;cout << " *** @.@ = = ***" << endl;cout << " *** 4、接待顾客***" << endl;cout << " *** ***" << endl;cout << " *** 5、顾客评价***" << endl;cout << " *** ***" << endl;cout << " *** 0、退出***" << endl;cout << " *** ***" << endl;cout << " *** ***" << endl;cout << " ***" << endl;}void Search()//查询菜单函数{system("cls");cout << endl; cout << endl; cout << endl; cout << endl; cout << endl;cout << "1、查询餐厅信息" << endl;cout << endl;cout << "2、查询服务员信息" << endl;cout << endl;cout << "3、查询菜单" << endl;cout << endl;cout << "4、查看评价" << endl;cout << endl;cout << "5、返回上一级菜单" << endl;cout << endl;cout << "" << "请选择:" << endl;int choice;Restaurant restaurant;Waiter waiter;Menus dish;cin >> choice;switch (choice){case 1: restaurant.Search(); break;case 2: waiter.Search(); break;case 3: dish.Search(); break;case 4: restaurant.evaluate(); break;case 5:system("cls");Menu(); break;}}//黄int Arrange_table(int seat)//顾客桌子安排函数{int i = 0;for (i = 0; i < 10; i++){if (0 == A[i].stat)//判断桌子状态,是否被占用{if (A[i].seat >= seat)//如果桌子位置数大于等于人数,则安排此桌子,此桌子将被占用,状态变为1{A[i].stat = 1;cout << "编号" << A[i].num << "的座位可安排" << seat << "人" << endl;return A[i].num;//安排桌子}}}cout << "找不到可安排" << seat << "个人的座位,请顾客排队" << endl;}void reception()//接收顾客数{system("cls");int seat = 0;int num = 0;cout << "请输入当前需要接待的顾客数:" << endl;cin >> seat;num = Arrange_table(seat);system("pause");system("cls");Menu();}void orderdish(){Customer customer;customer.order();Menu();}void customer_evaluate()//顾客评价函数{char evaluate[200];cout << "请评价:" << endl;cin >> evaluate;ofstream out("evaluate.txt", ios::app);out << evaluate << endl;out.close();Menu();}void Restaurant::evaluate(){system("cls");cout << endl << "历史评价:" << endl << endl;ifstream in("evaluate.txt");while (in >> evaluates)cout << "" << evaluates << endl << endl;in.close();system("pause");system("cls");Menu();}Customer::Customer(){}void Customer::order()//顾客,点餐,计算总价{system("cls");int temp[50];//点餐编号int j = 0;int sum = 0;//菜品总价char flag = 'y';int num = 0;Menus menu[50];//菜品cout << "菜单" << endl << endl;ifstream in("Menus.txt");//以输入方式打开文件,从硬盘到内存int i = 0;while (in >> menu[i].number >> menu[i].dish_name >> menu[i].price){cout << "" << menu[i].number << setw(10) << menu[i].dish_name << setw(10) << menu[i].price << endl;//输出菜品编号、名字、价格i++;}in.close();//关闭文件while (flag == 'y'){cout << "请点餐,选择相应编号:" << endl;cin >> temp[num];num++;cout << "是否继续y or n" << endl;cin >> flag;}for (j = 0; j < num; j++)//点几份菜{for (i = 0; i < 10; i++){if (temp[j] == menu[i].number)//找到对应菜品编码{sum = sum + menu[i].price;//计算总价}}}cout << "总价钱:" << sum << endl;system("pause");system("cls");}//朱void Set()//信息录入函数{system("cls");cout << endl << endl << endl << endl;cout << "1 添加菜品" << endl << endl;cout << "2 添加服务员" << endl << endl;cout << "3 添加餐厅信息" << endl << endl;cout << "4 返回上一级菜单" << endl << endl;cout << "请选择:" << endl;Menus dish;int choice;Waiter waiter;Restaurant restaurant;cin >> choice;switch (choice){case 1:dish.Set(); break;case 2:waiter.Set(); break;case 3:restaurant.Set(); break;case 4:system("cls");Menu();break;}}void Waiter::Set(){system("cls");char flag = 'y';do{cout << "输入服务员的工号,姓名,性别,电话号码:" << endl;cin >> job_number >> name >> sex >> phone_number;ofstream out("Waiter.txt");out << job_number << " " << name << " " << sex << " " << phone_number << endl;out.close();cout << "是否继续是(y)否(n)" << endl;cin >> flag;} while (flag == 'y');Menu();}void Menus::Set(){system("cls");char flag = 'y';do{sums++;cout << "输入编号,菜名,价格" << endl;cin >> number >> dish_name >> price;ofstream out("Menus.txt", ios::app);out << number << " " << dish_name << " " << price << " " << endl;out.close();cout << "是否继续是(y)否(n)" << endl;cin >> flag;} while (flag == 'y');system("pause");system("cls");Menu();}void Restaurant::Set(){system("cls");cout << "输入餐厅位置,电话号码" << endl;cin >> location >> phone_number;ofstream out("Restaurant.txt");out << location << " " << phone_number << endl;out.close();system("pause");system("cls");Menu();}//吴void Restaurant::Search(){system("cls");cout << endl << endl;ifstream in("Restaurant.txt");cout << "地址" << "" << "联系电话" << endl;while (in >> location >> phone_number){cout << location << "" << phone_number << endl;}in.close();cout << endl << endl;system("pause");system("cls");Menu();}void Waiter::Search(){system("cls");ifstream in("Waiter.txt");cout << endl << endl;cout << "工号" << " " << "姓名" << " " << "性别" << " " << "电话号码" << endl;while (in >> job_number >> name >> sex >> phone_number){cout << " " << job_number << " " << name << " " << sex << " " << phone_number << endl;}in.close();system("pause");system("cls");Menu();}void Menus::Search(){system("cls");ifstream in("Menus.txt");cout << endl << endl;cout << "编号" << setw(10) << "菜名" << setw(10) << "价格" << endl;while (in >> number >> dish_name >> price){cout << " " << number << " " << setw(10) << dish_name << setw(10) << price << endl;}in.close();system("pause");system("cls");Menu();}int main(){Welcome();Sleep(3000);system("cls");Menu();do{cout << "请输入你的选择:" << endl;int choice;cin >> choice;switch (choice){case 1:Search(); break;case 2:Set(); break;case 3:orderdish(); break;case 4:reception(); break;case 5:customer_evaluate(); break;case 0:exit(1); break;}} while (1);return 0;}。

餐饮管理系统代码大全

餐饮管理系统代码大全

餐饮管理系统代码大全1餐饮管理系统代码1 using System;2using System.Collections.Generic;3using ponentModel;4using System.Data;5using System.Drawing;6using System.Text;7using System.Windows.Forms;8using System.Collections;9namespace 餐饮管理系统10...{11 public partial class frmManagement : Form12 ...{13 ArrayList RoomStatus = new ArrayList();14 ArrayList VipClass = new ArrayList();15 public frmManagement()16 ...{217 InitializeComponent();18 }1920 private void 房间类型BindingNavigatorSaveItem_Click(object sender, EventArgs e)21 ...{22 this.Validate();23 this.房间类型BindingSource.EndEdit();24 this.房间类型TableAdapter.Update(this.dieteticManagementDataSet.房间类型);25 }2627 private void frmManagement_Load(object sender, EventArgs e)28 ...{29 // TODO: 这行代码将数据加载到表”dieteticManagementDataSet.管理员”中。

您能够根据需要移动或移除它。

30 this.管理员TableAdapter.Fill(this.dieteticManagementDataSet.管理员);31 // TODO: 这行代码将数据加载到表”dieteticManagementDataSet.Vip”中。

餐饮管理系统(1)界面图+源代码

餐饮管理系统(1)界面图+源代码

餐饮管理系统1、前言在餐饮业务竞争越来越激烈的今天,如何提高服务质量,其管理能力显的越来越重要。

尤其是对一些大的餐饮店,餐饮店内部服务项目越多,管理难度越大,既要处理前台又要处理后台的工作,所以一个好的管理系统可以提高酒店的管理水平也可以大幅度提高酒店服务水平。

1.1目的随着当今社会信息化的日新月异的发展,计算机应用已经渗透到日常工作的许多方面无论是其自身还是所发挥的作用,计算机都标志着一种高科技、高效率和高水平。

为了企业创先进、争一流,为了企业的发展一套好的系统必不可少.现在餐饮业发展速度飞快,要想在激烈的社会竞争有一席之地,好的服务是最基本的保障,此次开发的餐饮管理系统就是针对现代化社会管理和要求,在服务上提高自己的效率,使自己的公司立于不败之地.1.2定义餐饮管理系统,SQL,E-R图1.3 参考资料《数据库应用系统开发技术》朱如龙刘焰机械出版社2004年8月《VC++与SQL2000开发技术》汪晓平钟军人民邮电出版社2004年8月2、系统设计2.1系统目标设计餐饮管理系统的主要目标是实现对酒店内部各种管理的电子化、自动化,提高各个模块之间的办公效率,为高质量餐饮服务提供保证。

2.2开发设计思想餐厅系统是按照国内餐饮行业最新要求开发的全心概念的信息管理系统。

该系统将餐厅收银、往来帐务结算及销售情况统计工作在单计算机或网络系统中完成。

主要特点包括:*代码菜谱编制,方便统计,方便输入;*开单、改单、结算、打印、用户界面方便友好;*系统专设往来账、内部账,结算方式灵活多样,结算消息详尽;*系统可同前台系统衔接,查询客人信贷情况,往前台客人帐户转账;*报表真实,实用性强,如:收银报表汇总收银、支票、信用卡、转帐等情况;菜肴销售报表汇总各种菜肴的日、月销售量;员工销售统计表,可打印值台人员销售业绩核实报表提供依据。

*账务系统共讷讷感的完整性。

一旦该系统正式运行,餐厅每日的营业账和全部往来客户的账务操作结算都将依靠计算机,该系统面对当前餐厅餐饮业各种负复杂的结算要求应具有很强的应变能力。

原创java餐饮管理系统源码

原创java餐饮管理系统源码

原创Java餐饮管理系统源码引言餐饮行业在当今社会具有广泛的应用和发展前景。

为了优化餐饮业务流程,提高服务质量和效率,许多餐饮企业选择使用计算机餐饮管理系统进行日常运营管理。

本文将介绍一款原创的Java餐饮管理系统源码。

功能概述该餐饮管理系统源码包括以下主要功能:1.用户管理:支持注册新用户、登录、修改密码等功能。

不同用户角色拥有不同的权限,例如管理员可以管理菜单、员工、订单等,客户可以浏览菜单、下订单等。

2.菜单管理:管理员可以添加、编辑和删除菜单,包括菜名、价格、配料等信息。

菜单可以按分类进行组织,方便用户查找和选择。

3.订单管理:客户可以浏览菜单,并选择下单。

管理员可以查看和管理订单,包括确认订单、取消订单等操作。

订单信息包括菜品、数量、价格、配送地址等。

4.员工管理:管理员可以添加、编辑和删除员工信息,包括姓名、联系方式、职位等。

员工可以登录系统,查看个人信息,接收和处理订单。

5.数据统计:系统可以生成各类报表,统计菜品销售情况、订单量、销售额等。

这些数据能够帮助餐饮企业分析经营情况,制定运营策略。

技术选型该餐饮管理系统源码基于Java语言开发,并采用以下主要技术:•后端框架使用Spring Boot,简化配置和开发流程,提供高效的Web 应用程序开发框架。

•数据库采用MySQL,存储系统的用户、菜单、订单、员工等信息。

•前端页面使用HTML、CSS和JavaScript进行开发,实现用户界面和交互逻辑。

•数据交互采用RESTful API,前后端通过JSON格式进行数据传输。

系统架构该餐饮管理系统采用分层架构,分为前端、后端和数据库三层。

•前端层:主要负责用户界面的展示和交互逻辑。

用户通过浏览器访问系统,与后端进行交互。

•后端层:负责处理用户请求,进行业务逻辑处理和数据访问。

后端使用Spring Boot框架,提供RESTful API供前端调用。

•数据库层:负责存储系统的数据。

系统使用MySQL作为数据库,存储用户、菜单、订单、员工等信息。

C语言实现的餐饮管理系统

C语言实现的餐饮管理系统

C语言实现的餐饮管理系统在餐饮行业中,餐厅、酒店以及其他餐饮企业需要一个高效的管理系统来处理订单、库存、员工管理等重要业务。

C语言作为一种强大而灵活的编程语言,可以实现餐饮管理系统的各种功能。

本文将介绍C语言实现的餐饮管理系统的设计和功能,以及其对餐饮行业的重要意义。

一、系统设计1. 数据库设计餐饮管理系统的数据库设计是系统设计的重要一环。

数据库应包含以下表格:菜品表、订单表、库存表、员工表和顾客表。

这些表格应包含相应的字段,如菜品名称、价格、库存量、销售量、员工姓名、职位、顾客姓名等。

2. 功能设计餐饮管理系统的功能设计是系统设计的核心。

系统应该具备以下功能:(1)菜品管理:包括菜品信息的录入、查询和修改功能,以及对菜品库存量和销售量的统计。

(2)订单管理:包括新建订单、查询订单、修改订单和删除订单的功能,以及对订单信息的统计分析。

(3)库存管理:包括库存量的录入、查询和修改功能,以及库存量的统计和报警功能。

(4)员工管理:包括员工信息的录入、查询和修改功能,以及员工职位的调整和离职处理。

(5)顾客管理:包括顾客信息的录入、查询和修改功能,以及对顾客消费信息的统计和分析。

二、系统实现餐饮管理系统的实现需要使用C语言进行编程。

下面是系统实现的主要步骤:1. 数据库连接使用C语言中的数据库连接库,如MySQL的C API等,连接数据库。

2. 菜品管理实现菜品信息的录入、查询和修改功能,使用C语言的文件操作函数来进行读写操作。

3. 订单管理实现订单的新建、查询、修改和删除功能,使用C语言的数据结构来存储订单信息,并使用文件操作函数进行读写操作。

4. 库存管理实现库存量的录入、查询和修改功能,使用C语言的文件操作函数来进行读写操作。

5. 员工管理实现员工信息的录入、查询和修改功能,使用C语言的文件操作函数来进行读写操作。

6. 顾客管理实现顾客信息的录入、查询和修改功能,使用C语言的文件操作函数来进行读写操作。

智慧餐系统源代码设计方案

智慧餐系统源代码设计方案

智慧餐系统源代码设计方案智慧餐系统是一种基于计算机技术和物联网技术的餐饮管理系统,旨在提高餐厅的运营效率和用户体验。

下面是一个智慧餐系统的源代码设计方案,包括系统架构、数据库设计、前端设计和后端设计。

1. 系统架构智慧餐系统的系统架构可以采用三层架构,即前端、后端和数据库三层。

- 前端层:前端层主要负责用户界面和用户交互,可以使用HTML、CSS和JavaScript等技术来实现。

- 后端层:后端层主要负责业务逻辑和数据处理,可以使用Java、Python等编程语言来实现,并使用框架如Spring MVC来简化开发。

- 数据库层:数据库层主要负责数据的存储和管理,可以使用关系型数据库如MySQL或非关系型数据库如MongoDB来实现。

2. 数据库设计智慧餐系统的数据库设计需要根据实际需求进行设计,一般包括以下几个表:- 用户表:用于存储用户的基本信息,包括用户ID、用户名、密码、手机号等。

- 菜品表:用于存储菜品的信息,包括菜品ID、菜名、价格、图片等。

- 订单表:用于存储订单的信息,包括订单ID、用户ID、菜品ID、下单时间、订单状态等。

3. 前端设计智慧餐系统的前端设计需要考虑用户交互和用户体验,可以采用响应式设计来适配不同的设备。

- 登录页面:用于用户登录,需要校验用户输入的用户名和密码。

- 菜单页面:用于展示菜品信息,可以根据用户的选择进行筛选和排序。

- 订单页面:用于展示用户订单的信息,包括订单状态和菜品详情。

- 结算页面:用于用户结算订单,可以选择支付方式和配送方式。

4. 后端设计智慧餐系统的后端设计需要实现业务逻辑和数据处理,可以采用面向对象的编程思想和设计模式。

- 用户管理:包括用户登录和注册功能,需要进行用户身份验证和密码加密。

- 菜品管理:包括菜品的增删改查功能,需要进行菜品信息的验证和管理。

- 订单管理:包括订单的生成和更新功能,需要对订单状态进行管理和更新。

5. 安全性设计智慧餐系统的安全性设计需要考虑用户数据的保护和系统的防护。

食堂饭卡管理系统源代码

食堂饭卡管理系统源代码
printf("\n\t\t输入密码:");
scanf("%s",&student[num].password);
printf("\n\t\t输入添加金额:");
scanf("%d",&student[num].balance);
num++;
printf("\n\t\t是否继续添加?(Y/N):");
void select(); /* 主菜单 */
void writetofile();
void addnewcard(); /*添加用户*/
void searchcard(); /*查询用户*/
printf("\n\t\t余额: %d",student[i].balance);
printf("\n\t\t密码: %s",student[i].password);
printf("\n\t\t************************************************");
if (getch()=='y')
addnewcard();
return;
}
void searchcard() /*查询用户 */
{
int mark=0;
int i;
int a=0;
char cardnumber[10];
printf("\n\t\t***************** 按学号查找 *****************\n");
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

餐饮管理系统1、前言在餐饮业务竞争越来越激烈的今天,如何提高服务质量,其管理能力显的越来越重要。

尤其是对一些大的餐饮店,餐饮店内部服务项目越多,管理难度越大,既要处理前台又要处理后台的工作,所以一个好的管理系统可以提高酒店的管理水平也可以大幅度提高酒店服务水平。

1.1目的随着当今社会信息化的日新月异的发展,计算机应用已经渗透到日常工作的许多方面无论是其自身还是所发挥的作用,计算机都标志着一种高科技、高效率和高水平。

为了企业创先进、争一流,为了企业的发展一套好的系统必不可少.现在餐饮业发展速度飞快,要想在激烈的社会竞争有一席之地,好的服务是最基本的保障,此次开发的餐饮管理系统就是针对现代化社会管理和要求,在服务上提高自己的效率,使自己的公司立于不败之地.1.2定义餐饮管理系统,SQL,E-R图1.3 参考资料《数据库应用系统开发技术》朱如龙刘焰机械出版社2004年8月《VC++与SQL2000开发技术》汪晓平钟军人民邮电出版社2004年8月2、系统设计2.1系统目标设计餐饮管理系统的主要目标是实现对酒店内部各种管理的电子化、自动化,提高各个模块之间的办公效率,为高质量餐饮服务提供保证。

2.2开发设计思想餐厅系统是按照国内餐饮行业最新要求开发的全心概念的信息管理系统。

该系统将餐厅收银、往来帐务结算及销售情况统计工作在单计算机或网络系统中完成。

主要特点包括:*代码菜谱编制,方便统计,方便输入;*开单、改单、结算、打印、用户界面方便友好;*系统专设往来账、内部账,结算方式灵活多样,结算消息详尽;*系统可同前台系统衔接,查询客人信贷情况,往前台客人帐户转账;*报表真实,实用性强,如:收银报表汇总收银、支票、信用卡、转帐等情况;菜肴销售报表汇总各种菜肴的日、月销售量;员工销售统计表,可打印值台人员销售业绩核实报表提供依据。

*账务系统共讷讷感的完整性。

一旦该系统正式运行,餐厅每日的营业账和全部往来客户的账务操作结算都将依靠计算机,该系统面对当前餐厅餐饮业各种负复杂的结算要求应具有很强的应变能力。

为此本系统为适应拥护的要求,设计了完整的转帐功能。

*帐务系统的可扩充性。

由于餐厅业务的扩展,势必要求帐务结算系统随之扩展,在不修改程序的前提下,本系统可在相当可观的范围内,由用户扩展其营业项目和结算手段。

*帐务操作数据的可校验性。

本系统提供了多种方便的查询,校核和统计功能,共帐务操作人员和专职人员自校对帐务数据。

如当班收银员下班的时候直接统计当班期间的输单、收银情况。

为餐饮企业管理人员提供及时准确的经营状况和帐务信贷系统情况。

餐厅系统需要完成的功能有以下几点:*定餐管理:定餐修改、定餐取消、定金处理、定餐统计、定餐查询、定餐报表。

*收款管理:立帐、校费明细录入、特色菜自定义、追加消费、消费修改、消费取消、加位、更改台号、折扣设定、消费服务设定、帐单打印、现付结算和房帐转录。

*交班管理:统计当班数据、为下班操作做准备、当班帐务流水报表。

*系统报表:餐饮销售分析报表、每菜销售统计报表、营业收入报表、每菜销售统计日报表和当班特色菜报表。

*系统维护:餐厅代码设定、餐台号码以及贵宾房设定特色分类设定、特色编码设定、折扣设定、货币设定、服务费率设定、营业统计项目设定、成本统计项目设定、使用者权限维护、系统备份、系统恢复。

*餐饮成本核算:成本统计项目设定、成本管理。

2.3系统功能模块设计在系统功能分析的基础上,考虑Visual C++的编程特点,得到如下面功能模块图。

图1-1为餐厅系统餐饮系统的功能模块图。

餐饮系统功能图由上面的餐饮系统的功能分析,可以看出一个餐饮管理系统是一个复杂的系统工程,涉及到系统的各个方面。

由于篇幅的问题就不具体的介绍了。

3、数据库设计在数据库系统开始设计的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需求,避免浪费不必要的人力和物力。

3.1数据库需求分析在仔细调查餐饮日产管理过程的基础上,得到本系统所处理的数据流程图如图1-2所示。

餐饮管理数据流程图针对本市里,通过对餐饮系统管理系统的内容和数据流程分析,设计的数据项和数据结构如下。

*菜谱信息。

包括的数据项有菜谱号、名称、所属价格、种类、描述等。

*值班员信息。

包括数据项有值班员的姓名和口令。

*荣誉客户信息。

包括的数据项有客户号、客户姓名、年龄、性别、职称、联系电话、工作单位等。

*定餐信息。

包括的数据项有客户号、桌号、结算日期、打折情况和总计等。

有了上面的数据结构、数据项和数据流程,就能进行下面的数据库设计。

3.2数据库概念设计本实例根据上面的设计规划出的实体有:菜谱实体、值班员实体、客户实体、定餐实体和结算实体。

各个实体具体的描叙E-R图及其之间的关系描述如下。

图1-3为菜谱实体E-R图。

菜谱实体E-R图图1-4为值班员实体E-R图值班员实体E-R图图1-5为客户实体E-R图客户实体E-R图图1-6为订餐信息实体E-R图订餐信息实体E-R图图1-7为结算信息实体E-R图实体和实体之间的关系E-R图如图1-8所示实体之间的关系E-R3.3数据库逻辑结构设计在上面的实体以及实际实体之间关系的基础上,形成数据库中表格以及各个表格之间的关系。

餐饮管理系统数据库中各个表格的设计结果如下面的几个表格所示。

每个表格表示在数据库中的一个表表1-1为值班员ZSP表1-2为菜谱信息表CP表1-5为结算信息表JS3.4数据字典数据项数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}值班员数据项描述菜谱信息数据项描述荣誉客户信息数据项描述订餐信息数据项描述结算信息数据项描述用户数据结构描述3.5 数据库物理结构设计数据库物理设计指确定数据库在物理设备上的存储结构与存取方法。

确定数据库的物理结构:是否聚集存储,如何建立索引,数据的存放位置,确定系统配置等。

介于本系统数据库的简单性,我们没有采用聚集存储之类的结构设计。

4、功能模块设计4.1 设计登录和口令管理模块在未登录时,主对话框中的按钮,除了“登录”“退出”“帮助”“关于”等项,全是不可用的。

为达到这一效果,在CRMSDlg::OnInitDialog()中加入如下代码:GetDlgItem(IDC_BTN_UPDPWD)->EnableWindow(FALSE);GetDlgItem(IDC_BTN_DC)->EnableWindow(FALSE);GetDlgItem(IDC_BTN_JS)->EnableWindow(FALSE);GetDlgItem(IDC_BTN_KH)->EnableWindow(FALSE);GetDlgItem(IDC_BTN_CP)->EnableWindow(FALSE);GetDlgItem(IDC_BTN_ZBY)->EnableWindow(FALSE);GetDlgItem(IDC_BTN_VIEWDC)->EnableWindow(FALSE);然后在资源编辑器加入如图所示的登录对话框。

主对话框的事件处理函数CRMSDlg::OnBtnLogin()的代码如下,它来处理登陆事务。

若成功,则使所有的按钮变为可用,示意登录成功。

void CRMSDlg::OnBtnLogin(){CDlgLogin dlg;dlg.DoModal();try{CString sql_;sql_.Format("SELECT ZBY_NAME FROM ZBY WHERE ZBY_NAME='%s' AND ZBY_PSWD='%s'",dlg.m_name, dlg.m_pswd);_bstr_t sql = sql_;_RecordsetPtr pRst;pRst = m_DBCnt->Execute(sql, NULL, adCmdText);if (!pRst->adoEOF){MessageBox("登录成功!");GetDlgItem(IDC_BTN_UPDPWD)->EnableWindow(TRUE);GetDlgItem(IDC_BTN_DC)->EnableWindow(TRUE);GetDlgItem(IDC_BTN_JS)->EnableWindow(TRUE);GetDlgItem(IDC_BTN_KH)->EnableWindow(TRUE);GetDlgItem(IDC_BTN_CP)->EnableWindow(TRUE);GetDlgItem(IDC_BTN_ZBY)->EnableWindow(TRUE);GetDlgItem(IDC_BTN_VIEWDC)->EnableWindow(TRUE);} else{MessageBox("登录失败!");}pRst->Close();}catch(_com_error& e){AfxMessageBox(e.ErrorMessage());return;}}void CRMSDlg::OnBtnUpdpwd(){CDlgUpdPwd dlg;dlg.DoModal();if (dlg.m_newpswd!=dlg.m_newpswd2){MessageBox("两次输入新密码不一致!");return;}下面是一段SQL语句:sql_format(“SELECT ZBY NAME FORM ZBY WHERE ZBY NAME+’%s’”“AND ZBY_PSWD=’%s’”dlg.m_name,dlg.m_pswd);这里并没有取出ZBY表中的所有字段(ZBY_NAME和ZBY_PSWD),然后把密码字段和用户的输入作比较来决定登录的与否;而是只取出了值班员名字(ZBY_NAME),密码的校验放在数据库服务器端进行。

这主要是基于安全考虑。

如果没有确实的需要,就竟量不从数据库里取用户密码这种敏感数据。

虽然这只是一个细节,但是很多安全漏洞都是又对这种细节的忽视应起的。

登录成功后可以单击“修改口令”按钮激活“修改口令”界面如图所示。

这部分事务的处理代码和登录处理类时,只是更为繁琐。

所以只给代码,void CRMSDlg::OnBtnUpdpwd(){CDlgUpdPwd dlg;dlg.DoModal();if (dlg.m_newpswd!=dlg.m_newpswd2){MessageBox("两次输入新密码不一致!");return;}try{CString sql_;sql_.Format("SELECT ZBY_NAME FROM ZBY WHERE ZBY_NAME='%s' AND ZBY_PSWD='%s'",dlg.m_name, dlg.m_oldpswd);_bstr_t sql = sql_;_RecordsetPtr pRst;pRst = m_DBCnt->Execute(sql, NULL, adCmdText);if (pRst->adoEOF){MessageBox("密码错误!");pRst->Close();return;}pRst->Close();sql_.Format("Update ZBY SET ZBY_PSWD='%s' WHERE ZBY_NAME='%s'",dlg.m_newpswd, dlg.m_name);sql = sql_;m_DBCnt->Execute(sql, NULL, adCmdText);MessageBox("修改密码成功!");}catch(_com_error& e){AfxMessageBox(e.ErrorMessage());return;}}4.2设计值班员管理模块下面开始设计值班员表(ZBY0的管理界面。

相关文档
最新文档