摘 要

随着计算机应用技术的快速发展和日益普及,网络也遍及到我们生活的每个角落,为我们的学习和工作带来极大的方便。很多人都使用过传统的文字,纸张管理手段,与之不同的另外一种管理方式就是利用电脑程序管理餐厅。主要对追求工作高效、稳定、便捷的餐厅管理人员,电脑程序管理餐厅是一种很好的新型管理手段,它能提高工作效率和方便使用,餐厅管理程序就涉及到了文字、数字、项目信息的输入、读取、修改以及保存。

本程序针对真实餐厅工作状况进行分析,讨论工作平台的环境影响,比较后采用在VS开发平台下,调用文件读写函数以实现Windows系统下信息的更新和保存。通过同类型软件测试比较可得:餐厅管理系统软件的设计具有先进性,可靠性。

关键词:餐厅管理;文件读写;数据更新、保存

第一章 设计内容

设计一个模拟实现餐厅管理系统的程序,输入你需要的操作(选择相对的括号里的阿拉伯数字)程序具体功能有:

查看菜单

新增菜单

删除菜单

修改菜单(含名称及价格)

查看座位剩余量

修改座位剩余量

查看预定情况

新增预定(含菜式预定)

查看顾客积分

顾客兑换积分

第二章 总体设计

2.1 模块化设计

为实现系统功能,本程序主要分为八个模块。它们分别为:查看菜单、新增菜单、删除菜单、修改菜单、查看座位剩余量、修改座位剩余量、查看预定情况、新增预定。这八个函数再通过主函数调用分别得以实现。

主函数,首先提供了程序运行时的友好界面,提供客户选择的菜单。然后,通过执行多分支选择语句——switch语句,分别实现其它各个函数的调用功能。

其它各个函数的功能分别如下:

check()// 查看菜单函数

add()// 新增菜单函数

decrease()// 删除菜式函数

change()// 修改菜式函数

seat_check()// 查看座位剩余量函数

seat_change()// 修改座位剩余量函数

booking_check()// 查看预定情况函数

booking_add()// 新增预定座位函数

draw_check()// 查看顾客积分

draw_check2()// 查看礼品列表

draw_main()// 兑换功能

2.2 程序运行示意图

第三章 详细设计

3.1 数据结构设计

本程序中,运用了多种数据结构。首先进入了主界面,查看菜单、新增菜单、删除菜单、修改菜单、查看座位剩余量、修改座位剩余量、查看预定情况、新增预定。在主函数中分别调用各项的函数。

对于主要数据结构的举例如下:

//定义菜单类

classmenu

{

private:

//基本元素

intnum,price;//菜式序号、价格

charname[20];//菜式名称

//用于功能实现的元素

intmealnum,delnum,changenum,changeprice;//菜式总数目、删除序号、修改序号、修改菜式序号

charchangename[20];//修改菜式名字

public:

menu();

~menu();//析构函数

voidcheck();//查看菜单

voidadd();//新增菜单

voiddecrease();//删除菜单

voidchange();//修改菜单,包括修改菜式名称和菜式价格

voidchange_name();//修改菜式名称

voidchange_price();//修改菜式价格

};

//座位类

classseat

{

private:

//基本元素

intnum,rest;//座位序号,座位剩余量

charsize[20];//座位大小

//用于功能实现的元素

intseatnum,changenum,rerest;//座位种类数目,修改序号,剩余量

public:

seat(int);

~seat();//析构函数

voidseat_check();//座位查看

voidseat_change();//座位剩余量修改

};

//预定类

classbooking:publicseat

{

private:

//基本元素

intbnum,phone,peoplenum;

charbname[20],bmeal[100];

//功能实现的元素

intbookingnum,cancelnum;//预约信息总数目、取消的序号

public:

booking();

~booking();//析构函数

voidbooking_check();//预约查看功能

voidbooking_add();//新增预约

};

//主菜单

voidworking()

{

cout<

cout<

cout<

cout<

cout<

}

//福利类

classdraw

{

private:

chardname[20];//名称

intdnum,dphone,dpoint,total,dchange,duse;//序号,手机尾号,积分数目,记录表的总人数,兑换人号码,兑换礼品的序号

public:

draw();

~draw();

voiddraw_check();//查看积分

voiddraw_check2();//查看奖品

voiddraw_main();//使用积分

};

voidselect()

{

menu A;

seat B;

booking C;

intchiose;

while(1)

{

system("cls");

working();

cout<

cin>>chiose;

cout<

switch(chiose)

{

case0:

exit(0);

break;

case1:

A.check();

break;

case2:

A.add();

break;

case3:

A.decrease();

break;

case4:

A.change();

break;

case5:

B.seat_check();

break;

case6:

B.seat_change();

break;

case7:

C.booking_check();

break;

case8:

C.booking_add();

break;

default:

cout<

cout<

break;

}

getchar();

getchar();

}

}

3.2 程序模块设计

本程序执行的入口是main函数,在main函数中首先调用了界面类中的各项操作的函数,在界面类中选择所需要进行的操作,在switch语句进行界面显示,实现对餐厅管理系统算法的操作。其中涉及到被调用的方法有:

voidworking()

{

cout<

cout<

cout<

cout<

cout<

}

voidselect()

{

menu A;

seat B;

booking C;

intchiose;

while(1)

{

system("cls");

working();

cout<

cin>>chiose;

cout<

switch(chiose)

{

case0:

exit(0);

break;

case1:

A.check();

break;

case2:

A.add();

break;

case3:

A.decrease();

break;

case4:

A.change();

break;

case5:

B.seat_check();

break;

case6:

B.seat_change();

break;

case7:

C.booking_check();

break;

case8:

C.booking_add();

break;

default:

cout<

cout<

break;

}

getchar();

getchar();

}

}

voidmain()

{

select();

system("pause");

}

3.3 流程图

查看菜单

新增菜单

删除菜单

修改菜单(价格和名称)

查看座位剩余量

修改座位剩余量

查看预定信息

新增预定

查看积分

福利兑换

第四章 调试与测试

4.1 调试过程中的主要问题

本程序,即餐厅关系系统程序,是涉及到了有关文件的读取、修改、清除、关闭等多个不同方面的操作,其中对文本文件的读取并输出到屏幕、修改最为棘手,同时这也是本程序的核心,关键内容。在开始的时候,我并无头绪,后来在网络上参考了网友的问题和解决方案后,找到了解决问题的思路,即打开文件-保存内容到数组中-清除文件内容-关闭文件-按需求修改数组内容-打开文件(已为空)-数组内容写入文件-关闭文件。使用这思路,简单明了,易于理解,便于操作,思路清晰,解决问题的相关代码也随之而出,复杂的核心问题得到解决,其他内容也就迎刃而解。

4.2 具体测试过程

主界面

显示菜单

新增菜单

删除菜单

修改菜单(价格)

修改菜单(价格)

查看座位剩余量

修改座位剩余量

查看预定情况

新增预定

查看积分

兑换功能

参考文献

[1] 陈维兴 林小茶,C++面向对象程序设计教程(第3版)。北京:清华大学出版社,2009年5月

[2] 严蔚敏 吴伟民,数据结构(C语言版)。北京:清华大学出版社,2011年5月

[3] Thomas H.Cormen Charles E.leiserson Ronald L.Rivest Clifford Stein, 算法导论。机械工业出版社,2010年11月

[4] 王晓东,计算机算法设计与分析(第4版)北京:电子工业出版社,2012年2月

餐厅管理程序c语言源代码,课内资源 - 基于C++的餐厅管理程序的设计与实现相关推荐

  1. 数学金字塔C语言原函数,课内资源 - 基于C语言实现的金字塔问题(Pyramid Problem)...

    1 开发软件说明 Dev C++是一个 Windows 下的C 和C++程序的集成开发环境,是一款自由软件,遵守GPL 许可协议分发源代码.它使用MingW32/GCC 编译器,遵循 C/C++ 11 ...

  2. mysql餐馆点餐系统_课内资源 - 基于Jsp和MySql的餐厅点餐系统

    1 总体概述 本设计主要通过HTML.CSS.JavaScript网页开发技术,会话及其会话技术,过滤器技术,Java语言以及连接mysql数据库来实现一个具有登录注册功能,且登录页面使用验证码技术来 ...

  3. python+diango写酒店管理系统_课内资源 - 基于Python的Django框架实现的中式快餐厅管理信息系统网站...

    1 初步调研 随着餐饮业的连锁和国外餐饮巨头的进入,餐饮业的竞争将越来越激烈:要想在竞争中处于不败之地,必须在管理.服务等方面提高服务管理意识.面对当前餐饮业普遍的产业化程度低,管理手段.管理技术落后 ...

  4. C语言家谱管理程序,课内资源 - 基于C语言实现的家谱管理系统

    一.项目简介 家谱是一种以表谱形式,记载一个以血缘关系为主体的家族世袭繁衍和重要任务事迹的特殊图书体裁.家谱是中国特有的文化遗产,是中华民族的三大文献(国史,地志,族谱)之一,属于珍贵的人文资料,对于 ...

  5. C语言编程求解圆盘的汉诺塔,课内资源 - 基于80x86汇编的汉诺塔

    一.软件背景介绍 我们今天要陈述的应用叫做汉诺塔,大家可能小时候都接触过类似于鲁班锁,九连环的益智玩具,我们要说的汉诺塔其实也可以说是益智玩具的一种. 下面我们具体介绍一下汉诺塔.汉诺塔有三根杆子A, ...

  6. java实现一元多项式减法,课内资源 - 基于C语言实现的一元多项式的计算

    一.概述 通过C语言使用链式存储结构实现一元多项式加法.减法和乘法的运算.按指数降序排列. 二.需求分析 建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式 ...

  7. c语言外卖程序,课内资源 - 基于C语言的外卖派单模拟系统

    一.课题任务概述 你运行一家外卖快递服务店,负责一个区域内的外卖订单接收和餐食快递.你有一笔启动资金,可以招募外卖骑手帮你送餐,来赚取快递费.但你也会面临风险,本区域的订单你都有义务接收,不能拒绝,若 ...

  8. 用c语言写扫雷游戏倒计时代码,课内资源 - 基于VS2013实现的扫雷小游戏

    1.任务概述 1.1 系统总体目标 本项目的目的在于开发一个扫雷软件,该软件面向游戏玩家用户,具有进行扫雷游戏的功能.游戏玩家将使用系统中的如下功能: 进行游戏 使用自定义游戏规格功能 使用计时器功能 ...

  9. c语言文字冒险类游戏,课内资源 - 基于C语言和easyx实现的巧虎划船大冒险游戏...

    1 需求分析 1.1 功能需求 游戏性:通过键盘方向键的←.→.↑.↓来控制巧虎(船)的移动,躲避暗礁,碰撞宝物(特殊宝物),来增加积分,在倒计时结束前(到达终点前)争取得到更多分数.为提高可玩性,宝 ...

最新文章

  1. arcgis xml 下载 切片_vue/cli3整合Cesium,加载离线arcgis 切片
  2. 一些当前 Node.js 中最流行 ES6 特性的 benchmark (V8 / Chakra)
  3. logstash 利用drop 丢弃过滤日志
  4. TypeError系列之:TypeError: only size-1 arrays can be converted to Python scalars
  5. 关于可变字符串StringBuffer和String的区别总结
  6. GraphQL query的schema校验
  7. jenkins api_接触Jenkins(Hudson)API,第2部分
  8. js中的时间与毫秒数互相转换,倒计时
  9. Qt文档阅读笔记-QWebPage官方解析与实例
  10. 利用自定义事件实现不同窗体间的通讯 -- C#篇
  11. 如何解决2345看图王无法显示PSD缩略图?
  12. 示例项目:简单的六足步行者
  13. 程序员的工资到底花到哪里去了?
  14. 语音识别/合成开源项目
  15. 得物 × StarRocks:潮流网购社区的极速 OLAP 实践
  16. 前端网站开发页面重定向的几种方法
  17. 大牛讲解信号与系统以及数字信号处理
  18. 构建基于Linux平台的开源×××服务器
  19. 基于水平投影,垂直投影的字符图像分割思路和代码实现
  20. mysql设置bufferpool_mysql参数之innodb_buffer_pool_size大小设置

热门文章

  1. MySQL查看数据表
  2. linux结束ping进程,linux常用命令
  3. 【计算机网络(微课版)】第1章 概述 课后习题及答案
  4. JavaScript的编程风格的见解
  5. 数据结构-堆实现优先队列(java)
  6. python画画零基础_[零基础学python]画圈还不简单吗?
  7. SSM整合及CRUD实现
  8. JSP脚本实现登录验证功能
  9. Apollo分布式配置中心在本地的安装教程
  10. 【转】 ubuntu adduser 命令学习