APP下载

Python餐厅叫号管理系统

2021-08-25陈新龙

电脑报 2021年26期
关键词:手机号订餐列表

陈新龙

这是我为我校编程竞赛出的一道Python题:某餐厅共有大桌6张(接待8人以上),中桌10张(5-7人),小桌20张(1-4人),餐厅每天只能接待客人100桌。请制作一个简单的餐厅叫号管理系统。

程序需要实现以下功能:

取号:进行信息录入,录入客人的手机号、姓名、用餐人数、是否为VIP。如果是VIP用户可以排在普通用户的前面。

叫号:根据桌型大小进行叫号,叫号的时候显示用餐人的姓名、电话、用餐人数。

退号:退号根据客人的手机号操作。如果手机号匹配成功,执行退号不再记录该客人,并显示“退号成功”,若没有找到对应手机号,显示“查无此号”退号失败。

排号情况:根据当前排队的情况显示排队次序,姓名,用餐人数,桌型。

题目主要知识点在于综合考查列表、字典的使用,以及定义功能(def函数)的运用。

首先我们设定一下客人信息保存的状态并预存两个客人的数据作为演示,通过列表和字典方式,每位客人的信息都保存到对应的字典中(姓名name,电话phone,人数people,是否VIP),再将整体保存入列表中(图1)。

输出程序交互界面,编号1代表取号,编号2代表叫号,编号3代表退号,编号4代表显示,如果输入的编号超过数值,显示输入的数字不符合要求,请重新输入(图2)。

為了维持程序处于待命状态,我们需要编写定义循环:等待输入编号,当输入的编号在符合的区间内,跳转入对应的函数,如果输入的编号是字符或者其他内容则会提示输入正确的编号(图3)。

当输入的编号在1-4之间符合题目的要求时分别跳转不同功能(图4)。

当按下1跳转取号界面,接下来我们需要判断订餐的总桌数是否超过了100张,如果订餐的桌数达到上限,请改日再来,如果订餐桌数没有达到上限,客人可以订餐并输入姓名、电话、用餐人数、是否VIP,这里需要注意一个细节问题,如果客人是本餐厅的VIP会员的话优先排队。这也是Python代码的优势之处,直接通过Insert(0,dict1)插入到列表中的第一项(图5)。

当按下2跳转叫号的界面中,叫号程序会根据当前排号的顺序来叫客人(会显示姓名、电话、用餐人数),唯一特殊的情况就是VIP客人有优先特权,按照实际情况下,叫号之后,排序的列表的第一项会删除(代表进入餐厅就餐),只需要删除即可(图6)。

当中途有客人需要退号时,便可以按下3跳转退号程序,输入客人的手机号,通过遍历查询列表中是否存在客人的手机进行查看,如果列表中存在客人的手机号,显示“退号成功”;否则的话显示“查无此号码,退号失败”(图7)。

排队信息可以随时查看,当按下4时便可以查看到当前的等候情况,通过遍历循环的方式提取出对应的顺序、姓名、就餐人数,系统也会根据就餐的人数进行桌型的分类。比如超过8人是大桌型,在5-7人之间是中桌型,在1-4人之间是小桌型(图8)。

这个简单餐厅叫号管理系统在综合应用中属于较为简单的题目,主要目的是希望在学习编程过程中更加贴近生活中实际需要做出实际的练习作品。这样才可以在学习基础知识的同时真正提高实际操作能力(图9)。

猜你喜欢

手机号订餐列表
扩列吧
为什么手机号是11位?到底该怎么读?
动车订餐
神回复
列表法解分式方程问题探索
列表画树状图各有所长
2011年《小说月刊》转载列表
新闻浮世绘
最好记的手机号