饭馆餐厅点菜软件的设计与实现.doc_第1页
饭馆餐厅点菜软件的设计与实现.doc_第2页
饭馆餐厅点菜软件的设计与实现.doc_第3页
饭馆餐厅点菜软件的设计与实现.doc_第4页
饭馆餐厅点菜软件的设计与实现.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(设计、创作)题目: 饭店餐馆点菜软件的设计与实现 学生姓名: 方鹏飞 学号: 0321002018 所在院系: 信息与通信技术系 专业: 电子信息工程 入学时间: 2010 年 9 月导师姓名: 傅有亮/朱亮 职称/学位: 副教授/硕士/讲师/硕士 导师所在单位: 完成时间: 2014 年 5 月安徽三联学院教务处 制安徽三联学院毕业论文饭馆餐厅点菜软件的设计与实现 摘要:中国是举世闻名的美食大国,餐饮业具有巨大的投资市场。中国市场的竞争尤为激烈,而且随着餐饮业的迅速扩展,其中所暴露的问题也是不容忽视的,如餐饮业管理人才的专业化程度不够导致内供不足,餐厅缺少一套现代企业制度和监督管理体制,服务管理应变能力差,缺乏先进的信息工具等。所以,餐饮业管理从观念意识、经营思想和管理水平还有待专业化。因此,开发实用型点菜系统是餐饮业发展的必然趋势。本系统是基于Linux系统下开发的餐厅点菜系统,运用服务器/客户端开发模式,采用的是RedHat企业版5,图形界面功能由QT类开发,后台数据库采用SQLITE3,网络编程使用的协议是Linux支配的SocketTCP/IP协议。前台划分为前台管理,点菜管理,后厨管理,数据库管理,服务器五个功能模块。本系统的主要作业流程,从顾客在前台查看餐桌空闲空闲状态,入桌点菜,可以加菜、删菜等,提交菜单,后厨按照菜单做菜,顾客到前台结账,前台打印账单,顾客结账,实现了开台、点菜、加菜、删菜等系统设计功能。关键词:餐厅点菜系统;Linux;QT;SQLITE3Design 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 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 supervision 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 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 management, 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 cooking, 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:Restaurantordersystem;Linux; QT;SQLITE31目录第1章 绪论11.1选题的目的和意义11.2国内外综述11.3论文研究内容2第2章相关知识概述32.1系统开发环境32.2系统的结构32.3应用的相关技术32.3.1QT图形界面42.3.2SQLite数据库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测试基本原则125.2系统测试12第6章 结论15致谢16参考文献17第1章 绪论1.1选题的目的和意义面对餐饮业各式各样的经营现状,经营的特色、规模、出品这些不同的因素,带给餐饮企业的则是不同的工作流程和标准与方法,针对这些解决方法不同的情况,人才的专业化程度的要求也被相应地提高,但在国内市场上,餐饮业人才供应不足,在如此情况下,这一紧张局面在信息系统的出现后得到了缓解。一方面餐饮管理信息系统不仅仅是用于结帐计算的工具,它是一套科学的、标准的管理体系,它是在对餐饮市场的现状作科学的调研分析后设计出来的,它能够针对餐厅因其菜品的多样化和特色化的服务实现标准化管理,使餐厅的成本控制等问题得到解决。 另一方面,基于ARM和Linux的嵌入式系统,具有丰富的开放软件资源与成熟的嵌入式硬件结构,同时具备的优良性能使得其成为开发工作和学习研究是一个巨大帮助;此外,常见的PDA与PC硬件目前的生产已基本满足需求,专用的硬件设备,不再具有明显的成本优势,所以,本论文研究嵌入式Linux和Qt技术的开发与应用收藏,并易于使用的通用软件的方向,可以很容易地移植软件结构。提高了餐饮业的服务质量,并对嵌入式系统的研究和GUI应用开发的研究提供了良好的平台。1.2国内外综述餐厅点菜系统代表了目前的食品和饮料行业领先的技术最先进的解决方案,它集网络通信技术、计算机技术和移动终端于一身。国外早在2001年就把餐厅点菜系统运用到日常的餐厅经营中去了。2002三月的在上海外观高档餐厅,开启了第一家中国餐饮管理上真正的数字化,引起餐饮行业的轰动。自那时以来,点菜系统市场的群雄并起,促进餐饮业信息管理的普及和发展。现在,国内已经有很多公司开发出电子点菜系统。同时因为成本等其他因素使电子点菜系统还很少出现在餐厅,但市场供不应求,跟随着技术的进步,在竞争激烈的餐饮行业,电子点菜系统将会越来越普遍,而且会越做越好。现在,嵌入式Linux操作系统的开放源代码的发展已经非常成熟,其性能已经不比很多多的商业操作系统差,同时,它支持的软件非常多,在数据库方面有MySQL、Sqlite等,用户图形界面系统有Qt、MiniGUI和Microwindows等。因此,构建一个基于嵌入式Linux技术的点菜系统并不难1.3论文研究内容本文设计并实现了一个功能简单的餐厅点菜系统,基于该系统可以容易过渡到实用的点菜系统。在该系统的实现过程中涉及到许多技术,主要有嵌入式技术、数据库技术、用户图形界面编程技术等。餐厅点菜系统通常涉及到大量的数据,而且需要对各种数据处理,所以餐厅点菜系统使用数据库管理系统管理数据的占绝大多数。数据库管理系统通常依赖于特定的操作系统,因此,就要选择合适的操作系统。另外,还要设计一个人性化的图形界面以方便用户的使用。餐厅点菜系统中,需要用到计算机网络将二者联系起来以此来解决管理数据的地方与使用数据的地方往往不在同一个站点上的问题。本课题通过研究现有的电子点菜系统的解决方案,以当代广泛应用的Linux系统、Qt图形界面、SQLite数据库、系统支持的TCP/IP网络通信协议来实现的点菜系统的终端。具体包括以下内容:1 Linux系统开发平台搭建:使用的是世界上最广泛使用的Red Hat Linux的,建立基本的开发环境,编译工具构建,安装的Qt用于应用开发,进行数据管理的sqlite3。2 点菜终端程序设计:首先利用Qt设计器规划点菜终端的程序的大致界面,然后遵循Qt编程一般规则编写代码,主要为主窗口类的实现,实现开台、点菜、加菜、删菜等功能,并在主程序中添加国际化和中文支持,编译后进行测试。3 数据库设计:首先利用Qt设计器规划数据库管理程序的大致界面,然后遵循Qt编程一般规则编写代码,主要为主窗口类的实现,数据库的管理功能,包括删除菜单列表、添加菜单列表等功能,在主程序中添加中文支持。第2章相关知识概述本系统主要运用到的开发系统环境是Linux系统,选择的是RedHat企业版5,该系统是采用C/S(客户端/服务器)架构开发的,其中运用到的技术有,SQLITE3数据库的开发,QT图形界面的开发及socket编程。2.1系统开发环境Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可以安装在各种电脑硬件,电脑,手机,路由器和视频游戏机,台式计算机,大型机和超级计算机。Linux是一个主要的操作系统,在10台世界上运行速度最快的超级计算机用的都是Linux操作系统。严格来说,Linux这个词本身只表示Linux内核,但事实上,它已被用于描述基于Linux内核的Linux操作系统的使用,并使用GNU工程工具和数据库。2.2系统的结构传统的C/S结构往往是开放模式,但这只是开放系统的发展水平,在客户端或服务器的特定的应用程序都需要特定的软件支持。由于没能提供真正的开放环境给用户,C/S结构的软件需要针对不同的操作系统开发不同版本的软件,再加上产品的更新换代快,百台电脑以上局域网用户很难做到同时使用。而且代价高,效率低。目前,CS结构的基本原理是计算机任务分成多个子任务,由多台电脑分别完成,它使用的是分配原则。客户端完成数据处理,用户接口功能和数据表示;服务器端完成DBMS的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。C / S结构的优点是充分发挥客户端PC的处理能力,在客户端处理大量的工作,然后提交到服务器。客户端响应速度非常快是其对应的优点。2.3应用的相关技术本系统应用的相关技术主要有数据库的SQLITE的应用,QT的图形界面的开发和TCP/IP协议。2.3.1QT图形界面Qt是诺基亚开发的一个跨平台的C+图形用户界面应用程序框架。它所提供的所有功能足以满足应用程序开发者建立艺术级的图形用户界面。QT是完全面向对象的,很容易扩展,并且允许真正地组件编程。2.3.2SQLite数据库SQLite,是一个轻量级的数据库,是一个遵守ACID的关系型数据库管理系统,它的设计目标是嵌入的,现在在许多嵌入式产品的使用它,它占用的资源是非常低的,在嵌入式设备中,可能只有几百K的内存就足够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言结合。第3章系统分析及设计3.1系统需求分析随着局域网技术与电子商务的大力发展,餐厅自助点菜系统也在国内外兴起,并逐渐影响到人们的生活。在国外餐厅自助点菜早已成为一种时尚。对每天消费人数巨大的餐厅来说,自助点菜是一种不可缺的工具,而国内的点菜系统才刚刚起步,所以本论文将设计实现一个餐厅自助点菜系统。本系统根据一般餐厅的需要,分析本系统的业务流程如下:a服务器负责前台、后厨、数据库管理、点菜终端的通讯;b点菜终端从数据库获取菜品信息;c前台负责查询餐台的空闲状态和结账并打印账单;d顾客点菜,并填入数据库;e服务器接受点菜信息并发送给后厨;f后厨开始按照菜单信息做菜;g用户到前台结账;h结果被显示给用户,顾客结账。客人在客户端点菜,通过局域网传送到服务器,后厨接受从服务器接受到菜单信息,客户在前台结账。同时有个数据库管理界面可以实现菜品信息的管理。根据系统功能的需求,分析了所需要的系统总功能结构如表3.1所示:表 3.1 功能需求名称功能客户端设置基础信息,更新菜谱,点菜,结账,打印账单;服务器负责各终端间的通信;3.2系统开发环境本系统是基于Linux系统中Qt来设计前台应用系统的可视化界面,而后台部分采用SQLite3来构建出数据库的实现。Linux系统采用了可视化的程序设计,具有面向对象的可视化设计工具,结构化的程序设计语言,提供了易懂的应用程序集成开发环境,支持多种数据库系统的访问,Linux系统中的Qt提供了可视化的界面。用户风格图形界面的动态调整可用QtCreator来实现。3.3系统总体功能模块针对对餐厅点菜系统需要实现的功能进行需求分析,将本系统划分为前台管理,点菜管理,后厨管理,数据库管理,服务器五个功能模块。3.4数据库结构设计根据对本系统数据的分析,系统的数据库设计了一个表:菜肴信息表。该表用于存放菜肴的信息,包括菜肴的名字、菜肴的类别、菜肴的价格、菜肴的描述。第4章软件设计软件采用面向对像的设计方法,考虑到对计算效率的要求,采用C+编程语言,开发环境为LinuxRedHat企业版5,服务器编译工具为gcc,其余编程工具为g+编译器,采用C+标准库函数和QT类库。4.1数据库表结构设计本系统数据库中建立了一张菜单信息表,该表详细结构如图表1所示:表 1. 菜单信息结构表名称类型(长度)空属性Idvarchar(20)nouniqueIddvarchar(20)yesNamevarchar(20)yesPricevarchar(20)yesImagepathvarchar(20)yesAboutvarchar(20)yes4.2各功能模块的详细设计4.2.1服务器管理模块用C语言编写的服务器模块主要是,为其他模块间的通信。其中主要运用到TCP/IP协议通信的。运用到了TCP/IP协议函数,首先socket()函数获得套接字描述符,然后用bind()函数将描述符捆绑到IP上,监听listen()函数,其中可以设置客户端的个数。主要实现代码如下:if(sockfd=socket(AF_INET,SOCK_STREAM,0)=-1)perror(-Socketerror!-);exit(0); /*服务器端填充sockaddr_in结构*/bzero(&server_addr,sizeof(server_addr);server_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,(structsockaddr*)&server_addr,sizeof(server_addr)=-1) perror(-Binderror!-);exit(0);/*设置允许连接的最大客户端数*/if(listen(sockfd,10)=-1) perror(-Listenerror!-); exit(0);address_size=sizeof(client_addr);while(1) inti=0; /*服务器阻塞,等待客户程序建立连接*/if(accefd=accept(sockfd,(structsockaddr*)&client_addr,&address_size)=-1) perror(-Accepterror!-); exit(0); sock_accepti=accefd; i+; /*创建线程,处理客户端请求*/ pthread_ttid; pthread_create(&tid,0,run,&accefd); /*服务器主程序返回继续等待下一次客户端连接*/close(sockfd);4.2.2前台管理模块前台管理模块主要查看餐台空闲信息,和打印账单两部分组成。餐台空闲信息。主要实现代码如下:/*客户程序建立sockfd描述符*/if(sockfd=socket(AF_INET,SOCK_STREAM,0)=-1)/*客户程序填充服务端的资料*/bzero(&server_addr,sizeof(server_addr);server_addr.sin_family=AF_INET;server_addr.sin_addr.s_addr=inet_addr(127.0.0.1);server_addr.sin_port=htons(portnumber);4.2.3顾客点菜端管理模块首先创建套接字描述符Socket()函数,然后连接服务器connect()。主要代码实现如下:/*客户程序建立sockfd描述符*/if(sockfd=socket(AF_INET,SOCK_STREAM,0)=-1)/*客户程序填充服务端的资料*/bzero(&server_addr,sizeof(server_addr);server_addr.sin_family=AF_INET;erver_addr.sin_addr.s_addr=inet_addr(127.0.0.1);server_addr.sin_port=htons(portnumber);/*客户程序发起连接请求*/if(connect(sockfd,(structsockaddr*)&server_addr,sizeof(structsockaddr)=-1)开台界面有两个选择都是用QComboBox类,可以选择现在是几号桌和人数,点击开台Button同样触发槽函数slotOkButton()的发生,会让点菜界面显示用到QWidget类中的成员show()函数。再send()将开台信息发送到服务器。4.2.4后厨管理系统主要实现如下:hhDialog:hhDialog(QWidget*parent,Qt:WindowFlagsf):QDialog(parent,f) QHBoxLayout*btnLayout=newQHBoxLayout; btnLayout-addWidget(rec); btnLayout-addWidget(recDel); btnLayout-addWidget(finishButton); btnLayout-addWidget(clearButton); btnLayout-addWidget(btn);QHBoxLayout*listLayout=newQHBoxLayout;listLayout-addWidget(list);listLayout-addWidget(finishList);QVBoxLayout*layout=newQVBoxLayout(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(clearButton,SIGNAL(clicked(),this,SLOT(on_clearButton_clicked();connect(recDel,SIGNAL(clicked(),this,SLOT(on_recDelButton_clicked();client();4.2.5数据库管理模块数据库管理模块主要是管理菜单信息的,可以添加菜品信息有添加Button、删除菜品信息有删除Button、并能够查询菜品有查询Button。主要实现代码如下:model=newQSqlTableModel(view);model-setTable(menubook);model-setEditStrategy(QSqlTableModel:OnManualSubmit);model-select();view-setModel(model);第5章系统测试5.1测试方法与原则系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。5.1.1黑盒测试测试方法以黑盒测试为主。从实际情况来说,满足实际项目需要,黑盒测试具有诸多优点。主要有五个优点。a 非常简单,没有了解程序内部的代码和实现的必要。b 和软件的内部实现没有关联。c 站在用户的立场,非常容易了解到他们需要哪些功能。d 在软件自动化测试的时候比较方便。e 基于软件开发文档,所以也容易知道软件实现了文档中哪些功能。5.1.2测试基本原则在开发项目系统中,进行系统测试时要遵循的以下2个基本原则。a测试用例不仅要包括合理、有效的输入数据,还要包括无效的不合理的输入数据。b从小规模开始,渐渐到大规模是测试的正确步骤。c 穷举测试是不可能的。d 测试时应该让开发相关人员避嫌。5.2系统测试本系统分为五个模块,服务器模块、前台模块、顾客点菜模块、后厨模块、数据库管理模块。要分别对这五个模块的基本进行测试。部分软件运行界面图如下三点所示:1 菜品管理:功能界面如图1所示。 图1 菜品管理界面图2 点菜管理:功能界面如图2所示。 图2 点菜界面图3 点菜查询:功能界面如图3所示。图3 点菜查询界面图第6章 结论 本文比较完整准确的分析了餐厅点菜系统的各项需求和功能分析,及系统和软件的分析,完成了一个实用的易操作的餐厅点菜系统。主要工作如下:1.对Linux系统的基本运用的掌握,Linux系统下的软件的的选择,主要包括Linux系统下的数据库、Linux系统下的图形界面的开发、Linux系统下的通信协议等相关知识及使用。2.利用QT类库,实现了系统的图形界面的开发,和数据库的基本操作。3.基于C/S架构的广泛应用,本系统运用服务器/客户端开发模式,几个模块间的通信都是通过服务连接通信,采用Linux下的TCP/IP协议通信可以保证通信的安全可靠性。由于时间短以及资金上的短缺,本文只局限于软件层的设计与开发,没有移植到ARM版上测试,该系统还局限于网线连接通信,所以今后的工作应该在嵌入式系统开发方面和在无线方面的继续研究。同时通过对这次的设计也使我认识到学好计算机要注重实际操作。要学好各种计算机语言,和其他计算机方面的知识。以后也要更加重视实践。致谢 本课题及论文是在两位老师的热情悉心指导和帮助下完成的,在设计期间老师帮助我收集诸多实用的文献资料,理清设计思路,指导操作方法,并对我所做的课题提出有效的改进方案。老师热爱学生、充满

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论