1、 本科毕业论文(设计、创作)题目: 饭店餐馆点菜软件的设计与实现 学生姓名: 方鹏飞 学号: 0321002018 所在院系: 信息与通信技术系 专业: 电子信息工程 入学时间: 2010 年 9 月导师姓名: 傅有亮/朱亮 职称/学位: 副 教 授 /硕 士 /讲 师 /硕 士 导师所在单位: 完成时间: 2014 年 5 月安徽三联学院教务处 制安徽三联学院毕业论文0饭馆餐厅点菜软件的设计与实现 摘要:中国是举世闻名的美食大国,餐饮业具有巨大的投资市场。中国市场的竞争尤为激烈,而且随着餐饮业的迅速扩展,其中所暴露的问题也是不容忽视的,如餐饮业管理人才的专业化程度不够导致内供不足,餐厅缺少一
2、套现代企业制度和监督管理体制,服务管理应变能力差,缺乏先进的信息工具等。所以,餐饮业管理从观念意识、经营思想和管理水平还有待专业化。因此,开发实用型点菜系统是餐饮业发展的必然趋势。本系统是基于 Linux 系统下开发的餐厅点菜系统,运用服务器/客户端开发模式,采用的是 RedHat 企业版 5,图形界面功能由 QT 类开发,后台数据库采用 SQLITE3,网络编程使用的协议是 Linux支配的 Socket TCP/IP 协议。前台划分为前台管理,点菜管理,后厨管理,数据库管理,服务器五个功能模块。本系统的主要作业流程,从顾客在前台查看餐桌空闲空闲状态,入桌点菜,可以加菜、删菜等,提交菜单,后
3、厨按照菜单做菜,顾客到前台结账,前台打印账单,顾客结账,实现了开台、点菜、加菜、删菜等系统设计功能。关键词:餐厅点菜系统;Linux;QT;SQLITE3安徽三联学院毕业论文1Design and implementation of hotel restaurant softwareAbstract:China is a big country world-famous cuisine, people found the restaurant industry has huge investment market.Particularly intense competition in the
4、Chinese market, and with the rapid expansion of the restaurant industry, which exposed the problem can not be ignored, such as insufficient degree of specialization leads to the restaurant industry management talent within the supply shortage, the restaurant lacks a modern enterprise system and supe
5、rvision management system, service management response capabilities, the lack of advanced information tools.So, Therefore, the development of practical ordering system catering industry is the inevitable trend of development. This system is based on the Linux system development restaurant a la carte
6、 system, the use of client / server development model, using RedHat Enterprise Edition 5, the graphical interface features developed by QT class, background database using SQLITE3, protocol using a Linux network programming Socket TCP / IP protocol dictated.Reception is divided into front desk manag
7、ement, order management, Houchu management, database management, server five functional modules. The main processes of the system, from the customer to see the table in the foreground Idle Idle state, into the desk a la carte, can food to eat, delete dishes, submit the menu, follow the menu Houchu c
8、ooking, customer billing to the front, front printing bills, customer checkout achieve the Founding, a la carte, food to eat, delete system design features dishes.Keywords:Restaurant order system;Linux; QT;SQLITE3安徽三联学院毕业论文目录第 1 章 绪论 .11.1 选题的目的和意义 .11.2 国内外综述 11.3 论文研究内容 2第 2 章 相关知识概述 .32.1 系统开发环境
9、32.2 系统的结构 32.3 应用的相关技术 32.3.1 QT 图形界面 42.3.2 SQLite 数据库 4第 3 章 系统分析及设计 .53.1 系统需求分析 .53.2 系统开发环境 53.3 系统总体功能模块 .63.4 数据库结构设计 .6第 4 章 软件设计 .74.1 数据库表结构设计 74.2 各功能模块的详细设计 74.2.1 服务器管理模块 .74.2.2 前台管理模块 .94.2.3 顾客点菜端管理模块 94.2.4 后厨管理系统 104.2.5 数据库管理模块 11第 5 章 系统测试 125.1 测试方法与原则 125.1.1 黑盒测试 125.1.2 测试基本
10、原则 125.2 系统测试 12第 6 章 结论 15致谢 .16参考文献 .17安徽三联学院毕业论文0第 1 章 绪论1.1 选题的目的和意义面对餐饮业各式各样的经营现状,经营的特色、规模、出品这些不同的因素,带给餐饮企业的则是不同的工作流程和标准与方法,针对这些解决方法不同的情况,人才的专业化程度的要求也被相应地提高,但在国内市场上,餐饮业人才供应不足,在如此情况下,这一紧张局面在信息系统的出现后得到了缓解。一方面餐饮管理信息系统不仅仅是用于结帐计算的工具,它是一套科学的、标准的管理体系,它是在对餐饮市场的现状作科学的调研分析后设计出来的,它能够针对餐厅因其菜品的多样化和特色化的服务实现标
11、准化管理,使餐厅的成本控制等问题得到解决。另一方面,基于 ARM 和 Linux 的嵌入式系统,具有丰富的开放软件资源与成熟的嵌入式硬件结构,同时具备的优良性能使得其成为开发工作和学习研究是一个巨大帮助;此外,常见的 PDA 与 PC 硬件目前的生产已基本满足需求,专用的硬件设备,不再具有明显的成本优势,所以,本论文研究嵌入式 Linux 和 Qt技术的开发与应用收藏,并易于使用的通用软件的方向,可以很容易地移植软件结构。提高了餐饮业的服务质量,并对嵌入式系统的研究和 GUI 应用开发的研究提供了良好的平台。1.2 国内外综述餐厅点菜系统代表了目前的食品和饮料行业领先的技术最先进的解决方案,它
12、集网络通信技术、计算机技术和移动终端于一身。国外早在 2001 年就把餐厅点菜系统运用到日常的餐厅经营中去了。2002 三月的在上海外观高档餐厅,开启了第一家中国餐饮管理上真正的数字化,引起餐饮行业的轰动。自那时以来,点菜系统市场的群雄并起,促进餐饮业信息管理的普及和发展。现在,国内已经有很多公司开发出电子点菜系统。 同时因为成本等其他因素使电子点菜系统还很少出现在餐厅,但市场供不应求,跟随着技术的进步,在竞争激烈的餐饮行业,电子点菜系统将会越来越普遍,而且会越做越好 。2现在,嵌入式 Linux 操作系统的开放源代码的发展已经非常成熟,其性能安徽三联学院毕业论文1已经不比很多多的商业操作系统
13、差,同时,它支持的软件非常多,在数据库方面有 MySQL、Sqlite 等,用户图形界面系统有 Qt、MiniGUI 和 Microwindows 等。因此,构建一个基于嵌入式 Linux 技术的点菜系统并不难1.3 论文研究内容本文设计并实现了一个功能简单的餐厅点菜系统,基于该系统可以容易过渡到实用的点菜系统。在该系统的实现过程中涉及到许多技术,主要有嵌入式技术、数据库技术、用户图形界面编程技术等。 餐厅点菜系统通常涉及到大量的数据,而且需要对各种数据处理,所以餐厅点菜系统使用数据库管理系统管理数据的占绝大多数。数据库管理系统通常依赖于特定的操作系统,因此,就要选择合适的操作系统。另外,还要
14、设计一个人性化的图形界面以方便用户的使用。餐厅点菜系统中,需要用到计算机网络将二者联系起来以此来解决管理数据的地方与使用数据的地方往往不在同一个站点上的问题。本课题通过研究现有的电子点菜系统的解决方案,以当代广泛应用的 Linux 系统、Qt 图形界面、SQLite 数据库、系统支持的 TCP/IP 网络通信协议来实现的点菜系统的终端 。具体包括以下内容: 1541 Linux 系统开发平台搭建:使用的是世界上最广泛使用的 Red Hat Linux的,建立基本的开发环境,编译工具构建,安装的 Qt 用于应用开发,进行数据管理的 sqlite3。2 点菜终端程序设计:首先利用 Qt 设计器规划
15、点菜终端的程序的大致界面,然后遵循 Qt 编程一般规则编写代码,主要为主窗口类的实现,实现开台、点菜、加菜、删菜等功能,并在主程序中添加国际化和中文支持,编译后进行测试。3 数据库设计:首先利用 Qt 设计器规划数据库管理程序的大致界面,然后遵循 Qt 编程一般规则编写代码,主要为主窗口类的实现,数据库的管理功能,包括删除菜单列表、添加菜单列表等功能,在主程序中添加中文支持。安徽三联学院毕业论文2第 2 章 相关知识概述本系统主要运用到的开发系统环境是 Linux 系统,选择的是 RedHat 企业版 5,该系统是采用 C/S(客户端/服务器)架构开发的,其中运用到的技术有,SQLITE3 数
16、据库的开发,QT 图形界面的开发及 socket 编程。2.1 系统开发环境Linux 是一种自由和开放源码的类 Unix 操作系统。目前存在着许多不同的Linux,但它们都使用了 Linux 内核。Linux 可以安装在各种电脑硬件,电脑,手机,路由器和视频游戏机,台式计算机,大型机和超级计算机。Linux 是一个主要的操作系统,在 10 台世界上运行速度最快的超级计算机用的都是 Linux操作系统。严格来说,Linux 这个词本身只表示 Linux 内核,但事实上,它已被用于描述基于 Linux 内核的 Linux 操作系统的使用,并使用 GNU 工程工具和数据库 。652.2 系统的结构
17、传统的 C/S 结构往往是开放模式,但这只是开放系统的发展水平,在客户端或服务器的特定的应用程序都需要特定的软件支持。由于没能提供真正的开放环境给用户,C/S 结构的软件需要针对不同的操作系统开发不同版本的软件,再加上产品的更新换代快,百台电脑以上局域网用户很难做到同时使用。而且代价高,效率低 。 765目前,CS 结构的基本原理是计算机任务分成多个子任务,由多台电脑分别完成,它使用的是分配原则。客户端完成数据处理,用户接口功能和数据表示;服务器端完成 DBMS 的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。 C / S 结构的优点是充分发挥客户端 PC 的
18、处理能力,在客户端处理大量的工作,然后提交到服务器。客户端响应速度非常快是其对应的优点。2.3 应用的相关技术本系统应用的相关技术主要有数据库的 SQLITE 的应用,QT 的图形界面的开发和 TCP/IP 协议。安徽三联学院毕业论文32.3.1 QT 图形界面Qt 是诺基亚开发的一个跨平台的 C+图形用户界面应用程序框架。它所提供的所有功能足以满足应用程序开发者建立艺术级的图形用户界面。QT 是完全面向对象的,很容易扩展,并且允许真正地组件编程。2.3.2 SQLite 数据库SQLite,是一个轻量级的数据库,是一个遵守 ACID 的关系型数据库管理系统,它的设计目标是嵌入的,现在在许多嵌
19、入式产品的使用它,它占用的资源是非常低的,在嵌入式设备中,可能只有几百 K 的内存就足够了。它能够支持Windows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言结合。安徽三联学院毕业论文4第3章 系统分析及设计3.1 系统需求分析随着局域网技术与电子商务的大力发展,餐厅自助点菜系统也在国内外兴起,并逐渐影响到人们的生活。在国外餐厅自助点菜早已成为一种时尚 。321对每天消费人数巨大的餐厅来说,自助点菜是一种不可缺的工具,而国内的点菜系统才刚刚起步,所以本论文将设计实现一个餐厅自助点菜系统。本系统根据一般餐厅的需要,分析本系统的业务流程如下:a 服务器负责前台、后厨、数据库
20、管理、点菜终端的通讯; b 点菜终端从数据库获取菜品信息; c 前台负责查询餐台的空闲状态和结账并打印账单; d 顾客点菜,并填入数据库; e 服务器接受点菜信息并发送给后厨;f 后厨开始按照菜单信息做菜;g 用户到前台结账; h 结果被显示给用户,顾客结账。客人在客户端点菜,通过局域网传送到服务器,后厨接受从服务器接受到菜单信息,客户在前台结账。同时有个数据库管理界面可以实现菜品信息的管理。根据系统功能的需求,分析了所需要的系统总功能结构如表 3.1 所示:表 3.1 功能需求名称 功能客户端 设置基础信息,更新菜谱,点菜,结账,打印账单;服务器 负责各终端间的通信;3.2 系统开发环境 本
21、系统是基于 Linux 系统中 Qt 来设计前台应用系统的可视化界面,而后台部分采用 SQLite3 来构建出数据库的实现。Linux 系统采用了可视化的程序设计,具有面向对象的可视化设计工具,结构化的程序设计语言,提供了易懂的安徽三联学院毕业论文5应用程序集成开发环境,支持多种数据库系统的访问,Linux 系统中的 Qt 提供了可视化的界面。用户风格图形界面的动态调整可用 QtCreator 来实现 。873.3 系统总体功能模块针对对餐厅点菜系统需要实现的功能进行需求分析,将本系统划分为前台管理,点菜管理,后厨管理,数据库管理,服务器五个功能模块。3.4 数据库结构设计根据对本系统数据的分
22、析,系统的数据库设计了一个表:菜肴信息表。该表用于存放菜肴的信息,包括菜肴的名字、菜肴的类别、菜肴的价格、菜肴的描述。安徽三联学院毕业论文6第 4 章 软件设计软件采用面向对像的设计方法,考虑到对计算效率的要求,采用 C+编程语言,开发环境为 Linux RedHat 企业版 5,服务器编译工具为 gcc,其余编程工具为 g+编译器,采用 C+标准库函数和 QT 类库 。1234.1 数据库表结构设计本系统数据库中建立了一张菜单信息表,该表详细结构如图表 1 所示:表 1. 菜单信息结构表名称 类型(长度) 空 属性Id varchar(20) no unique Idd varchar(20
23、) yesName varchar(20) yesPrice varchar(20) yesImagepath varchar(20) yesAbout varchar(20) yes4.2 各功能模块的详细设计4.2.1 服务器管理模块用 C 语言编写的服务器模块主要是,为其他模块间的通信。其中主要运用到 TCP/IP 协议通信的。运用到了 TCP/IP 协议函数,首先 socket()函数获得套接字描述符,然后用 bind()函数将描述符捆绑到 IP 上,监听 listen()函数,其中可以设置客户端的个数 。主要实现代码如下:140if(sockfd = socket(AF_INET,S
24、OCK_STREAM,0) = -1) perror(“-Socket error!-“);exit(0); /* 服务器端填充 sockaddr_in 结构 */ bzero(安徽三联学院毕业论文7server_addr.sin_family = AF_INET;server_addr.sin_addr.s_addr = inet_addr(“127.0.0.1“);server_addr.sin_port = htons(portnumber); /* 捆绑 sockfd 描述符到 IP 地址 */ if(bind(sockfd,(struct sockaddr*)exit(0);/* 设
25、置允许连接的最大客户端数 */if(listen(sockfd,10) = -1)perror(“-Listen error!-“); exit(0);address_size = sizeof(client_addr); while(1) int i=0;/* 服务器阻塞,等待客户程序建立连接 */if(accefd = accept(sockfd,(struct sockaddr*) exit(0); sock_accepti =accefd;i+;安徽三联学院毕业论文8/*创建线程,处理客户端请求*/pthread_t tid; pthread_create(/*服务器主程序返回继续等待
26、下一次客户端连接*/close(sockfd);4.2.2 前台管理模块前台管理模块主要查看餐台空闲信息,和打印账单两部分组成。餐台空闲信息。主要实现代码如下:/* 客户程序建立 sockfd 描述符 */ if(sockfd=socket(AF_INET,SOCK_STREAM,0) = -1) /* 客户程序填充服务端的资料 */ bzero(server_addr.sin_family = AF_INET;server_addr.sin_addr.s_addr = inet_addr(“127.0.0.1“);server_addr.sin_port = htons(portnumber
27、);4.2.3 顾客点菜端管理模块 首先创建套接字描述符 Socket()函数,然后连接服务器 connect()。 主要代码实现如下:/* 客户程序建立 sockfd 描述符 */ if(sockfd=socket(AF_INET,SOCK_STREAM,0) = -1) /* 客户程序填充服务端的资料 */bzero(server_addr.sin_family = AF_INET;erver_addr.sin_addr.s_addr = inet_addr(“127.0.0.1“);server_addr.sin_port = htons(portnumber); /* 客户程序发起连接
28、请求 */安徽三联学院毕业论文9if(connect(sockfd,(struct sockaddr *)btnLayout -addWidget(rec); btnLayout -addWidget(recDel); btnLayout -addWidget(finishButton); btnLayout -addWidget(clearButton); btnLayout -addWidget(btn); QHBoxLayout *listLayout = new QHBoxLayout; listLayout-addWidget(list); listLayout-addWidget(
29、finishList); QVBoxLayout *layout = new QVBoxLayout(this); layout-addLayout(listLayout); layout-addLayout(btnLayout); onnect(rec,SIGNAL(clicked(),this,SLOT(slotrec(); connect(btn,SIGNAL(clicked(),this,SLOT(close(); connect(finishButton,SIGNAL(clicked(),this,SLOT(on_fin ishButton_clicked(); connect(cl
30、earButton,SIGNAL(clicked(),this,SLOT(on_clearButton_clicked();connect(recDel,SIGNAL(clicked(),this,SLOT(on_recDelButton_clicked();安徽三联学院毕业论文10client();4.2.5 数据库管理模块数据库管理模块主要是管理菜单信息的,可以添加菜品信息有添加Button、删除菜品信息有删除 Button、并能够查询菜品有查询 Button。 主要实现代码如下:model =new QSqlTableModel(view); model-setTable(“menubo
31、ok“);model-setEditStrategy(QSqlTableModel:OnManualSubmit);model-select();view-setModel(model);安徽三联学院毕业论文11第 5 章 系统测试5.1 测试方法与原则系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方 。9635.1.1 黑盒测试测试方法以黑盒测试为主。从实际情况来说,满足实际项目需要,黑盒测试具有诸多优点。主要有五个优点。a 非常简单,没有了解程序内部的
32、代码和实现的必要。b 和软件的内部实现没有关联。c 站在用户的立场,非常容易了解到他们需要哪些功能。d 在软件自动化测试的时候比较方便。e 基于软件开发文档,所以也容易知道软件实现了文档中哪些功能。5.1.2 测试基本原则在开发项目系统中,进行系统测试时要遵循的以下 2 个基本原则。a 测试用例不仅要包括合理、有效的输入数据,还要包括无效的不合理的输入数据。 b 从小规模开始,渐渐到大规模是测试的正确步骤。c 穷举测试是不可能的。d 测试时应该让开发相关人员避嫌。5.2 系统测试 本系统分为五个模块,服务器模块、前台模块、顾客点菜模块、后厨模块、数据库管理模块。要分别对这五个模块的基本进行测试
33、。部分软件运行界面图如下三点所示:1 菜品管理:功能界面如图 1 所示。安徽三联学院毕业论文12图 1 菜品管理界面图2 点菜管理:功能界面如图 2 所示。图 2 点菜界面图3 点菜查询:功能界面如图 3 所示。安徽三联学院毕业论文13图 3 点菜查询界面图安徽三联学院毕业论文14第 6 章 结论本文比较完整准确的分析了餐厅点菜系统的各项需求和功能分析,及系统和软件的分析,完成了一个实用的易操作的餐厅点菜系统。主要工作如下: 1.对 Linux 系统的基本运用的掌握,Linux 系统下的软件的的选择,主要包括Linux 系统下的数据库、Linux 系统下的图形界面的开发、Linux 系统下的通
34、信协议等相关知识及使用。 2.利用 QT 类库,实现了系统的图形界面的开发,和数据库的基本操作。 3.基于 C/S 架构的广泛应用,本系统运用服务器/客户端开发模式,几个模块间的通信都是通过服务连接通信,采用 Linux 下的 TCP/IP 协议通信可以保证通信的安全可靠性。 由于时间短以及资金上的短缺,本文只局限于软件层的设计与开发,没有移植到 ARM 版上测试,该系统还局限于网线连接通信,所以今后的工作应该在嵌入式系统开发方面和在无线方面的继续研究。同时通过对这次的设计也使我认识到学好计算机要注重实际操作。要学好各种计算机语言,和其他计算机方面的知识。以后也要更加重视实践。安徽三联学院毕业
35、论文15致谢本课题及论文是在两位老师的热情悉心指导和帮助下完成的,在设计期间老师帮助我收集诸多实用的文献资料,理清设计思路,指导操作方法,并对我所做的课题提出有效的改进方案。老师热爱学生、充满智慧、负责的态度和在自己领域内的专业精神让我收获颇多。 这次的毕业设计进行长达半年的时间,如今最终到结束了。通过我的努力及老师同学的帮助终于完成了,作为我大学四年的一个总结。通过本次的学习研究,使自己整体素质得到巨大改善,例如,主动学习的能力和认真对待学问的态度等方面。 同时,我要感谢学校为我们提供了这么好的学习环境,提供实验室和机器,搭建了一个完美的实验平台,为我们安排指导老师,使我们能够在老师的指导帮
36、助下完成设计。更要感谢学院与老师我的毕业设计所提供的巨大帮助和关爱。最后,感谢同学们对于我生活、学习上的帮助,以及毕业设计论文写作过程中的指导和意见。最后,要谢谢家人给我的无条件的支持,使我能安心完成学业。安徽三联学院毕业论文16参考文献1 周霞.餐饮业的管理信息系统J.华南理工大学学报,2005.3:21-34.2 黄文.餐饮企业管理M.北京:中国纺织出版社, 2009.3:34-35 3 鸟哥.鸟哥的 Linux 私房菜基础学习篇M.北京:人民邮社,2010.6:123-137. 4(英)马修, (英)斯通斯编著,陈健,宋健建翻译 Linux 程序设计.人民邮电出版社.2007.5:66-
37、78. 5由宏颖.操作系统的一匹黑马 LinuxJ.网络与信息,1998:50-51. 6 周小松,朱雄军.基于 TCP 协议的 Socket 网络编程模式部署及实现J.软件导刊,2006.9:20-21. 7 Johan Thelin. Foundations of Qt DevelopmentM.Expers Voice in Open Source,2007,8:255-257. 8 Matthias Dalheimer,Programming with Qt OReilly MediaJ.Linux Device Driver,2002,6:123-235. 9 美Grant Alle
38、n,Mike Owens 著 杨谦,刘义宣,谢志强 译.SQLite 权威指南(第二版) .2010.2:149-234. 10 陈永军.什么是 TCP/IPJ.化工管理,2000.8:2. 11 李卓恒.LINUX 网络编程M.北京:机械工业出版社,2000.5:4-22. 12 KURE W.GNU/Linux 编程指南M.北京:北京科海电子出版社,2002.23:52-54. 13 M.Tim Jones.GNU/Linux Application Programming M.Charles River Media,2008,4:225-256. 14 加(Jasmin Blanchette) C+ GUIQt4 编程(第 2 版)电子工业出版社.2008.4:35-87. 15 史蒂文斯,拉戈著,尤晋元,张亚英,戚正伟译.UNIX 环境高级编程.第二版.人民邮电出版社.2006:170186