为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于linux嵌入式点菜系统的设计_学士学位论文

2019-01-21 6页 doc 1MB 60阅读

用户头像 个人认证

不系舟红枫

从教近30年,经验丰富,教学水平较高

举报
基于linux嵌入式点菜系统的设计_学士学位论文 哈尔滨远东理工学院 学士学位论文 题 目: 基于Linux餐厅点菜系统的设计与开发 姓 名: *** 分  院: 工学院 专  业: 电子信息工程 学 号: 09030335 指导教师: *** 二0 年 月 日 毕业设计...
基于linux嵌入式点菜系统的设计_学士学位论文
哈尔滨远东理工学院 学士学位论文 题 目: 基于Linux餐厅点菜系统的设计与开发 姓 名: *** 分  院: 工学院 专  业: 电子信息工程 学 号: 09030335 指导教师: *** 二0 年 月 日 毕业设计(论文)及成绩 一、指导教师评语: 是否同意参加答辩: 指导教师签字: 20 年 月 日 二、评阅人评语: 是否同意参加答辩: 评阅教师签字: 20 年 月 日 三、答辩委员会评语: 是否建议授予学士学位: 答辩委员会成员签字:1、 2、 3、 4、 5、 6、 7、 8、 9、 20 年 月 日 四、答辩委员会主任单位 答辩委员会主任职称 答辩委员会主任签字 20 年 月 日 五、毕业设计(论文)成绩: 学生所在分院盖章: 20 年 月 日 哈尔滨远东理工学院 毕业设计(论文)任务书 学生姓名 *** 学 号 ******** 分 院 工学院 专 业 电子信息工程 任务起止时间: 年 月 日 至 年 月 日 毕业设计(论文)题目: 基于Linux餐厅点菜系统的设计与开发 毕业设计(论文)工作内容: 电子点菜系统是餐馆实行信息化管理的一个重要组成部分。顾客使用它可以进行查询菜单菜价、添加和删除点菜条目、呼叫服务员等操作;营业者可以方便的管理菜单、准确的计算账单、轻松的统计营业数据。本系统采用Socket TCPIP 协议、CS架构实现通信。存储菜单信息用Sqlite3小型数据库。 毕业设计(论文)进度安排: 1、查阅中外文文献资料,写出文献综述阶段: 1月15日—2月28日 2、调查、设计、实验、研究阶段: 3月1日—3月31日 3、设计(论文)撰写与整理阶段: 4月1日—5月31日 指导教师意见与要求: 签字: 年 月 日 主任意见: 签字: 年 月 日 摘 要 中国是举世闻名的美食大国,拥有五千年的饮食文化和巨大的餐饮市场。随着人民生活水平和生活方式的转变,渐渐的人们发现餐饮业具有巨大的投资市场。中国市场的竞争尤为激烈,而且随着餐饮业的迅速扩展,其中所暴露的问题也是不容忽视的,如餐饮业管理人才的专业化程度不够导致内供不足,餐厅缺少一套现代企业和监督管理体制,服务管理应变能力差,缺乏先进的信息工具等。所以,餐饮业管理从观念意识、经营思想和管理水平还有待专业化。因此,开发实用型点菜系统是餐饮业发展的必然趋势。 本系统是基于Linux系统下开发的餐厅点菜系统,运用服务器客户端开发模式,采用的是RedHat企业版5,图形界面功能由QT类开发,后台数据库采用SQLITE3,网络编程使用的协议是Linux支配的Socket TCPIP 协议。前台划分为前台管理,点菜管理,后厨管理,数据库管理,服务器五个功能模块。 本系统的主要作业流程,从顾客在前台查看餐桌空闲空闲状态,入桌点菜,可以加菜、删菜等,提交菜单,后厨按照菜单做菜,顾客到前台结账,前台打印账单,顾客结账,实现了开台、点菜、加菜、删菜等系统设计功能。 关键词:餐厅点菜系统;Linux;QT;SQLITE3 Abstract China is world-famous cate big country, with five thousand years of diet culture and great food market. As the people's living standard and life transitions, gradually people found restaurant industry , and with the rapid expansion of catering industry, which is exposed to the problem is also not allow to ignore, such as catering management personnel of professional enough to lead to internal for shortage, lack of a restaurant modern enterprise system and supervision and management system, service management strain ability is poor, lack of advanced information tools etc. So, catering management from the idea consciousness, management thought and management level remains to be professional. Therefore, the development of practical order system is an inevitable trend in the development of catering industry. This system is based on Linux system of development order system restaurant, using serverclient development mode, use is RedHat enterprise version 5, graphic interface functions by QT kind of development, the backend database using SQLITE3, network programming use agreement is Linux dominate Socket of the TCPIP protocol. The front desk is divided into the front desk management, order management, management after module. The system's main operation process, from the customer in the front desk check table free idle state, into the table to order, can add food, delete vegetables etc, submit the menu, kitchen according to menu after cooking, the customer to front desk check, front desk print bill, customer checkout, realize the founding, order, and food, delete vegetables etc system design functions. Keywords:Restaurant order system;Linux;QT;SQLITE3 目 录 摘 要 I Abstract II 第1章 绪 论 1 1.1 选题目的和意义 1 1.2 国内外综述 1 1.3 论文研究内容 2 第2章 相关知识概述 3 2.1 系统开发环境 3 2.2 系统的结构 4 2.3 应用的相关技术 5 2.3.1 QT图形界面 5 2.3.2 SQLite数据库 5 2.3.3 Linux系统支配的TCPIP协议 6 2.4本章小结 8 第3章 系统分析及设计 9 3.1系统需求分析 9 3.1.1功能需求 9 3.1.2性能需求 9 3.2系统开发环境 10 3.3系统总体功能模块 10 3. 4数据库结构设计 12 3.5本章小结 12 第4章 软件设计 13 4.1 数据库表结构设计 13 4.2 各功能模块的详细设计 13 4.2.1 服务器管理模块 13 4.2.2 前台管理模块 14 4.2.3 顾客点菜端管理模块 15 4.2.4 后厨管理系统 20 4.2.5 数据库管理模块 20 4.3本章小结 22 第5章 系统测试 23 5.1测试方法与原则 23 5.1.1 黑盒测试 23 5.1.2 测试基本原则 23 5.2 系统测试 23 5.3 测试小结 26 结 论 27 致 谢 28 参考文献 29 附录A 30 附录B 35 第1章 绪 论 1.1 选题目的和意义 面对餐饮业多元化的经营现状,经营的特色、规模、出品这些因素的不同,带给餐饮企业的则是不同的标准和工作流程和方法,面对着这解决方法不一的情况,对人才的专业化程度的要求也相应地提高了,然而在国内市场上,餐饮业人才供应不足,在这样的两难情况下,信息系统得出现暂缓了这一紧张局面。 首先,餐饮管理信息系统不是单纯的用于结帐计算的工具,它有着科学的、标准的,它是通过对目前餐饮市场的具体情况科学的调研分析后设计而成的,它能够针对中餐因其菜品的多样化和特色化的服务很难实现标准化管理,使中餐企业的成本控制很难实现这些问题给与解决。 其次,餐饮管理信息系统能够给出具体的相应的符合企业自身要求的较科学的标准化管理流程,这暂时缓解了专业人才的需求,通过使用该系统就能完成专业人员所要做的事。 最后,餐饮管理信息系统可以针对企业的经营现状而做出科学的分析,使得企业对市场的应变能力得到了提高,从而通过餐饮管理信息系统来实现强化管理、降低成本、堵漏节流等作用。更好的完善企业的经营管理,提高企业自身的竞争实力。 另一方面,基于ARM和Linux的嵌入式系统,具有成熟的嵌入式硬件结构和丰富的开放软件资源,优良的性能和广泛的市场定位,这无疑对开发工作和学习研究是一个重大帮助;在GUI(图形用户界面)的选用上,使用基于C++语言面向对象编程的应用程序开发软件库Qt,它汇集了丰富的C++类提供开发应用程序用户界面所需要的全部内容,具有优良的跨平台性能和丰富的API函数及开发文档。另外,当前量产的普通PDA和PC机硬件上已经基本满足点菜需求,使自行研究的专用硬件设备不再具有明显的成本优势,为此,本课题集合嵌入式Linux和Qt开发应用等技术,以程序软件的通用性和易用性为方向,构造能够方便移植的软件。提高餐饮业的服务质量,并为自身研究学习嵌入式系统和GUI应用开发提供一个良好的平台。 1.2 国内外综述 餐厅点菜系统代表着当今餐饮业解决中最尖端的领先科技,它集网络通信技术与移动电脑终端技术与一身,此高端技术应用在餐饮行业中,即使在美国也是2001年才在洛杉矶的一家高档餐厅中诞生;国内于2002年3月份方有一例高档的餐馆在上海露面,开中国餐饮管理真正数字化之先河,在餐饮业轰动一时。自此,点菜系统市场上豪杰并起,全面促进了餐饮业信息化管理的普及和发展。 目前,国内已经有不少公司开发出电子点菜系统,例如上海工理电子有限公司的点菜通、餐饮通等,北京辰森计算机系统有限公司的手持点菜宝等。有些大型的餐饮企业已经采用了这两个公司的产品,例如,花雨大酒店、上海美林阁等采用了上海工理电子有限公司的点菜通或餐饮通;向阳渔港集团、中国全聚集团、四川文杏大酒楼则采用了北京辰森计算机系统有限公司的手持点菜系统。但是由于成本等原因使电子点菜系统的餐馆还比较少,市场需求很大。随着技术的进步及餐饮业的激烈竞争,电子点菜系统将会越来越普遍,并越做越好。 市场上出现的点菜系统都是作为餐厅信息化管理系统的一部分出现的,它们除了实现基本的点菜功能外,为了便于客户及管理者的使用,还添加了许多其他的功能,例如,查询当前餐馆的资源使用情况,记录营业历史,当前工作状态等。由此可见,开发餐厅点菜系统具有重大的意义。首先,提高运营效率与降低运营成本,使用餐厅点菜系统可以加快点菜速度,减少人力资源的投入,避免跑、冒、漏;其次,提升餐厅品牌与形象,餐厅点菜系统是一个高科技产品,它代替传统的纸笔式点菜方式给人一种高贵的感觉;最后,营造一个安静、舒服的就餐环境,传统的餐厅点菜方式在某些环节中出现大声喧哗的场面,餐厅点菜系统则可以避免这类情况的发生。 如今开源的嵌入式Linux操作系统已经发展的非常成熟,其性能并不亚于很多商业操作系统,而且,它支持的上层软件非常多,数据库方面的有MySQL、Sqlite等,用户图形界面系统有Qt、MiniGUI和Microwindows等。因此,构造一个基于嵌入式Linux的点菜系统在技术上来说已经不是困难的事。 1.3 论文研究内容 本文设计并实现了一个功能简单的餐厅点菜系统,基于该系统可以容易过渡到实用的点菜系统。在该系统的实现过程中设计到许多技术,其中主要有嵌入式技术、数据库技术、用户图形界面编程技术等。 餐厅点菜系统一般都涉及很多数据,而且还要对数据进行各种处理,因而绝大部分餐厅点菜系统都用数据库管理系统来管理数据。数据库管理系统一般依赖与某种操作系统,因此,也要选择一个合适的操作系统。另外,为了方便用户的使用,还要设计一个人性化的图形界面。餐厅点菜系统中,管理数据的地方与使用数据的地方往往不在同一个站点上,需要用到计算机网络将二者联系起来。在本文设计的系统中使用了MySQL来管理数据,操作系统选用了Linux,用户图形界面引入了Qt。 本课题通过研究现有的电子点菜系统的解决方案,以当代广泛应用的Linux系统、Qt图形界面、SQLite数据库、系统支持的TCPIP网络通信协议来实现的点菜系统的终端。具体包括以下内容: 1.Linux系统开发平台的构建:使用是全球应用最广泛的Red Hat Linux,建立基本的开发环境,建立编译工具,安装用于程序开发的Qt,用于数据管理的SQLite3。 2.点菜终端程序设计:首先利用Qt设计器规划点菜终端的程序的大致界面,然后遵循Qt编程一般规则编写代码,主要为主窗口类的实现,实现开台、点菜、加菜、删菜等功能,并在主程序中添加国际化和中文支持,编译后进行测试。 3.数据库的设计:首先利用Qt设计器规划数据库管理程序的大致界面,然后遵循Qt编程一般规则编写代码,主要为主窗口类的实现,数据库的管理功能,包括删除菜单列表、添加菜单列表,查询菜单等功能,并在主程序中添加中文支持。 第2章 相关知识概述 本系统主要运用到的开发系统环境是Linux系统,选择的是RedHat 企业版5,该系统是采用CS(客户端服务器)架构开发的,其中运用到的技术有QT图形界面的开发、SQLITE3数据库的开发及socket编程。 2.1 系统开发环境 Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。 1.Linux操作系统概述:Linux操作系统是UNIX操作系统的一种克隆系统。Linux于1991年8月在Usenet新闻组comp.os.minix上正式发布(Free minx-like kernel sources for 386-AT)。其创始人是林纳斯·本纳第克特·托瓦兹(Lines Benedict Tornados),出生于芬兰赫尔辛基市。他毕业于赫尔辛基大学计算机科学系。早期的Linux1.0版本内核发布于1994年3月14日,两年之后2.0版本发布,此时,Linux功能已经非常强大,只是界面设计不是很理想。 Linux被大众所关注是在1998年3月,当Netscape承诺在GNU计划的GPL(General Public License,通用公共许可证)的一个修订版本的基础上公开Netscape Communicator Internet套件的源代码的时候。同年7月,世界上最大的两家关系数据库厂商Informix和Oracle宣布把他们的数据库产品移植到了Linux上。一个月后,Intel和Netscape公司购买了Linux发布商中的领头羊Red Hat公司的少量股票,专项资金投入了Linux世界。次年,Linux成为了IT市场的年青分子,随着RedHat和Valium成为上市的Linux公司,Linux得到了软硬件厂商的投资支持,很快便众所周知,公众对Linux的兴趣与日俱增,相关的大众媒体也蜂拥而至,几乎每周都有与Linux相关的消息发布,此时的Linux已经不仅仅是爱好者的玩具了。 如今Linux已经是软件开发人员的首选开发环境,其发行版超过了三百个,最普遍被使用的发行版有大约十二个,例如Bantu,RedHat,Defiant,Fedora等。通常来讲,一个Linux发行版包括Linux内核,将整个软件安装到电脑上的一套安装工具,各种GNU软件,其他的一些自由软件,在一些特定的Linux发行版中也有一些专有软件。发行版为许多不同的目的而制作,包括对不同计算机结构的支持,对一个具体区域或语言的本地化,实时应用,和嵌入式系统。Linux主要作为Linux发行版(通常被称为"distort")的一部分而使用 2. Linux操作系统特点:Linux是一款开放源代码的操作系统。用户可以通过任何途径免费获得它的源代码,并可以任意修改其源代码。这是其他的操作系统所做不到的。由于它的开放性使无数程序员积极的参与了Linux的修改、编写工作,使得Linux吸收了无数程序员在根据自己的兴趣和灵感对其所做的精华改变,并不断壮大。 Linux支持多任务、多用户。多任务使得Linux可以同时独立运行多个程序而互不影响,为大型的多任务工程提供保障。多用户使得各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。 Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。 Linux提供了先进的网络支持。它的网络功能和其内核紧密相连,用户可以轻松实现网页浏览、文件传输、远程登陆等网络工作。并且可以作为服务器提供WWW、FTP、E-Mail等服务。 Linux完全运行于保护模式,其中有对读、写进行权限控制、审计跟踪、核心授权等技术。Linux以它较高的稳定性在网络服务器上利于不败之地。 Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,业界归纳为什么Linux嵌入式操作系统发展如此之快的三大原因是:第一,Linux在嵌入式系统所需的实时性、电源管理等核心技术不断发展,成熟可期。第二,国际标准组织OSDL、CELF等,持续建立嵌入式Linux相关标准,有效解决版本分歧与兼容性问题。第三,业界主导组织、开发厂商等不断推出嵌入式Linux相关开发工具、维护系统。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。Linux支持数十种文件系统格式。普通文件,纯文本文件,二进制文件,数据格式文件,目录,连接文件,设备与设备文件,块设备文件,字符设备文件,套接字和管道等。采用先进的内存管理机制,更加有效的利用物理内存。主要有页面、连续内存区管理和非连续存储区管理机制。 3.Linux的基本思想:Linux的基本思想有两点,第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。 2.2 系统的结构 传统的CS体系结构常采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,CS结构的软件需要针对不同的操作系统开发不同版本的软件,加之产品的更新换代快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。 目前,CS 结构的基本原则是将计算机任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。 CS结构的优点是能充分发挥出客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度非常快。缺点主要反映以下3个方面: 1.只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。 2.客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。 3.对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于win2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。 2.3 应用的相关技术 本系统应用的相关技术主要有QT的图形界面的开发、数据库的SQLITE的应用、还有运用到了TCPIP协议。 2.3.1 QT图形界面 1.Qt概念:Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。QT是完全面向对象的,很容易扩展,并且允许真正地组件编程。所以说QT的进步发展将会推进诺基亚桌面等方面的大幅度进步。 2.Qt的特点:Qt是一款面向对象的图形界面开发工具。Qt 的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。Qt 提供了一种称为 signalsslots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。它具有丰富的API。Qt包括多达 250 个以上的 C++ 类,还提供基于模板的 collections,serialization,file,IO device,directory management, datetime 类。甚至还包括正则表达式的处理 功能。Qt支持 2D3D 图形渲染,支持 OpenGL。真正使得 Qt 在自由软件界的众多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脱颖而出的还是基于 Qt 的重量级软件 KDE。 3.QtCreator:在发布Qt 4.6 的同时,作为Qt开发跨平台 IDE 的 Qt Creator 也发布了更新版本。Qt Creator 1.3 和 Qt 4.6共同构成的 Qt SDK,包含了开发跨平台应用程序所需的全部功能。 Qt Creator是一个用于Qt开发的轻量级跨平台集成开发环境。Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境 (IDE),并确保首次接触Qt框架的开发人员能迅速上手和操作。 Qt Creator包含了一套用于创建和测试基于Qt应用程序的高效工具,包括:一个高级的C++代码编辑器 上下文感知帮助系统 可视化调试器 源代码管理 项目和构建管理工具。 2.3.2 SQLite数据库 SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持WindowsLinuxUnix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月,至今已经有10个年头,SQLite也迎来了一个版本 SQLite 3已经发布。SQLite的具有以下特性: 1.ACID事务;   2.零配置–无需安装和管理配置;   3.储存在单一磁盘文件中的一个完整的数据库;    4.数据库文件可以在不同字节顺序的机器间自由的共享;   5.支持数据库大小至2TB;    6.足够小,大致3万行C代码, 250K;   7.比一些流行的数据库在大部分普通数据库操作要快;    8.简单,轻松的API;   9.包含TCL绑定,同时通过Wrapper支持其他语言的绑定。;   10.良好注释的源代码,并且有着90%以上的测试覆盖率;   11.独立:没有额外依赖;   12.Source完全的Open,你可以用于任何用途, 包括出售它;    13.支持多种开发语言,C,PHP, Perl, Java, C#,Python。 基于SQLITE有诸多特性,我在设计该点菜系统时应用的数据库选择了它,它虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库,同时还支持事务处理功能等待。 2.3.3 Linux系统支配的TCPIP协议 TCPIP 是一个网络协议族的名字,协议是所有软件产品必须遵守的、能够保证各种软件产品能够正确通讯的规则。协议还定义了每一部分数据块怎样管理所传输的数据。精确一点说,一个协议定义了两个应用程序或是计算机之间能够进行互相通讯,对于其中的每一个(应用程序或计算机)都保证使用同样的标准。 TCPIP 代表传输控制协议网络协议,它是做为软件的网络组成部件而设计的。每个TCPIP 的协议都有他专门的工作,比如万维网(WWW),发送电子邮件(E-mail),传输文件(Ftp),提供远程登陆服务等。从协议分层模型方面来讲,TCPIP由四个层次组成:网络接口层、网络层、传输层、应用层。   TCPIP协议并不完全符合OSI的七层参考模型。OSI是传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCPIP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。由于ARPNET的设计者注重的是网络互联,允许通信子网(网络接口层)采用已有的或是将来有的各种协议,所以这个层次中没有提供专门的协议。实际上,TCPIP协议可以通过网络接口层连接到任何网络上,例如X.25交换网或IEEE802局域网。TCPIP协议的具有以下3个特点: 1.对数据可靠性的要求:对数据要求高可靠性的应用需选择TCP协议,如验证、密码字段的传送都是不允许出错的,而对数据的可靠性要求不那么高的应用可选择UDP传送。 2.应用的实时性:TCP协议在传送过程中要使用三次握手、重传确认等手段来保证数据传输的可靠性。使用TCP协议会有较大的时延,因此不适合对实时性要求较高的应用,如VOIP、视频监控等。相反,UDP协议则在这些应用中能发挥很好的作用。 3.网络的可靠性:由于TCP协议的提出主要是解决网络的可靠性问题,它通过各种机制来减少错误发生的概率。因此,在网络状况不是很好的情况下需选用TCP协议(如在广域网等),但是若在网络状况很好的情况下(如局域网等)就不需要再采用TCP协议,而建议选择UDP协议来减少网络负荷。 TCPIP协议的运作机制是IP层负责接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP层,相反,IP层也把从TCP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 高层的TCP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。 TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于点对点的通讯。TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。    如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向上传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。 基于TCPIP有诸多特点,它的数据可靠性刚好符合本系统设计的要求数据的安全性,同时它具有很好的网络的安全性,保证餐厅点菜系统能够很好的运行,所以我在设计该系统的时候选择了该协议来实现通信。 TCPIP协议的实现的流程图如下图2-1所示。 图 2-1 TCPIP协议流程图 2.4本章小结 本章主要详细介绍了该点菜系统应用的相关的技术,主要介绍了开发的系统环境Linux系统和用到的数据库SQLITE3,运用到的图形界面开发工具QT,运用到的网络技术TCPIP协议等概念,并且介绍了相关技术的特点。 第3章 系统分析及设计 3.1系统需求分析 随着局域网技术与电子商务的深入发展,餐厅自助点菜系统也在国内外蓬勃发展,并日益深入到人们的生活当中。餐厅自助自助点菜在国外早已成为一种时尚。餐厅每日消费人数的巨大,自助点菜是一种必不可少的工具,而国内的点菜系统还不成熟 ,所以本课题将设计实现一个餐厅自助点菜系统。本系统根据一般餐厅的需要,分析本系统的业务流程如下: 1.服务器负责前台、厨房、数据库管理、点菜终端的通信; 2.点菜终端从数据库获取菜品信息; 3.前台负责查询餐台的空闲状态和结账并打印账单; 4.顾客点菜,并填入数据库; 5.服务器接受点菜信息并发送给后厨; 6.后厨开始按照菜单信息做菜; 7.用户到前台结账; 8.结果被显示给用户,顾客结账。 3.1.1功能需求 用户在客户端点菜,通过局域网传送到服务器,后厨接受从服务器接受到菜单信息,客户在前台结账。同时有个数据库管理界面可以实现菜品信息的管理。根据系统功能的需求,分析了所需要的系统总功能结构如表3-1所示。 表 3-1 功能需求 名称 功能 客户端 设置基础信息,更新菜谱,点菜,结账,打印账单; 服务器 负责各终端间的通信; 3.1.2性能需求 本系统性能要求主要是以下5个方面。 1.系统处理的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足信息处理的需求。 由于餐厅自助点菜系统客户端的点菜对于整个系统的功能和性能完成举足轻重。作为客户自助点菜的模块,其准确性很大程度上决定了系统的成败。在系开发过程中,必须保证系统的准确性。 2.系统的开放性和系统的可扩充性:餐厅自助点菜系统在开发过程中,应该充分考虑以后的可扩充性。例如新增菜品,会员充值等。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成。 3.系统的易用性:餐厅自助点菜系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面。 4.系统的标准性:系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如的数据库操纵界面、作为业界标准的TCPIP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。 5.系统的先进性:目前计算系统的技术发展相当快,做为餐厅管理系统工程,应该在系统的生命周期尽量做到系统的先进。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的工具。 3.2系统开发环境 本系统是基于Linux系统中Qt来设计前台应用系统的可视化界面,而后台部分数据库的实现采用SQLite3来构建。Linux系统采用了可视化的程序设计,具有面向对象的可视化设计工具,结构化的程序设计语言,提供了易学易用的应用程序集成开发环境,支持多种数据库系统的访问,Linux系统中的Qt提供了可视化的界面。用QtCreator可以动态的调整用户风格图形界面,直到满意为止。 3.3系统总体功能模块 根据对餐厅点菜系统需要实现的功能进行需求分析,将本系统的前台划分为前台管理,点菜管理,后厨管理,数据库管理,服务器五个功能模块;系统功能模块如图3-1所示。查询 图3-1 系统总功能模块 餐厅点菜系统的功能模块概要描述如表3-2所示。 表3-2 功能模块描述表 名称 功能 服务器 负责前台,点菜终端,后厨终端间的通信; 前台终端 负责查询餐台空闲信息,顾客结账,并打印账单信息; 点菜终端 设置基础信息,更新菜谱,点菜,加菜,删菜; 后厨终端 接收顾客点菜的菜单信息进行做菜; 数据库管理 负责管理数据库的菜菜品信息; 1.服务器功能:服务器功能是整个系统的传输通道,是系统的重中之重。当顾客点菜客户端与服务器连接后,可通过此将点菜信息发送到后厨。后厨和服务器连接后,可以将做完的菜发送到服务器,服务器将信息发送到点菜客户端和前台。 2.前台终端管理:前台是本系统重要组成部分之一。本模块可以查询当前餐台的空闲信息、接收服务器发送过来顾客点菜的消费菜单信息,并打印菜单给客户。细分的功能模块如图3-2。 图3-2 前台终端模块 3.点菜终端:点菜终端是本系统给顾客的使用的,是本系统的重要组成部分。本模块将用户点菜单菜肴发送到服务器,并将数据信息添加到数据库。细分的功能模块如图3-3所示。 选择菜肴功能是将用户选择的菜肴存与表中,用户可以添加与删除。 点菜信息发送功能是将用户点菜信息以结构体的形式发送到服务器,并添加到相应的数据库中。 图3-3 点菜终端模块 4.后厨终端:后厨终端从服务器接收到顾客点的菜肴,可以继续接受顾客加菜的菜单、按照菜单做菜,并可以询问菜是否需要退菜。细分功能如图3-4所示。 图3-4 后厨终端模块 5.数据库管理:数据库管理管理菜单数据库信息,包括删除菜单列表、添加菜单列表,查询菜单等功能。细分数据库管理功能模块如图3-5所示。 删除菜单列表功能是将删除不做的菜肴信息。 添加菜单列表功能是允许可以添加新的菜肴信息。 查询菜单功能是查询是否有哪道菜肴信息。 图3-5 数据库管理模块 3. 4数据库结构设计 根据对本系统数据的分析,系统的数据库设计了一个表:菜肴信息表。该表用于存放菜肴的信息,包括菜肴的名字、菜肴的类别、菜肴的价格、菜肴的描述。 3.5本章小结 本章主要对该系统设计进行了需求分析、功能分析,最后做出详细设计方案。设计中主要将餐厅点菜系统分为五个模块,每个模块的需求和实现的功能进行了阐述和详细设计过程分析。 第4章 软件设计 软件采用面向对像的设计方法,考虑到对计算效率的要求,采用C++编程语言,开发环境为Linux RedHat 企业版5,服务器编译工具为gcc,其余编程工具为g++编译器,采用C++标准库函数和QT类库。 4.1 数据库表结构设计 本系统数据库中建立了一张菜单信息表,该表详细结构如图表4-1所示。 表4-1 菜单信息表 名称 类型(长度) 空 属性 Id varchar(20) no unique Idd varchar(20) yes Name varchar(20) yes Price varchar(20) yes Imagepath varchar(20) yes About varchar(20) yes 4.2 各功能模块的详细设计 本系统有五个模块组成,分别为server(服务器),前台管理模块,顾客点菜管理模块,后厨管理模块,数据库管理模块等。 4.2.1 服务器管理模块 服务器模块主要是用C语言编写的,主要是为其他模块间的通信。其中主要运用到TCPIP协议通信的。运用到了TCPIP协议函数,首先socket()函数获得套接字描述符,然后用bind()函数将描述符捆绑到IP上,监听listen()函数,其中可以设置客户端的个数。然后就是等待客户端的请求连接用accept()函数,其中运用到了线程,创建线程函数pthread_create()用来处理客户的的请求。主要实现代码如下: if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1) { perror("-------Socket error!-------"); 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 = (sockfd,10) == -1) { perror("-------Listen error!-------"); exit(0); } address_size = sizeof(client_addr); while(1) { int i=0; * 服务器阻塞,等待客户程序建立连接 * if((accefd = accept(sockfd,(struct sockaddr*)&client_addr, &address_size)) == -1) { perror("-------Accept error!-------"); exit(0); } sock_accept[i] =accefd; i++; *创建线程,处理客户端请求* pthread_t tid; pthread_create(&tid,0,run,&accefd); *服务器主程序返回继续等待下一次客户端连接* } close(sockfd); 4.2.2 前台管理模块 前台管理模块主要查看餐台空闲信息,和打印账单两部分组成。餐台空闲信息主要是根据Button组件文本显示判断的是否是空闲状态,空闲时,当顾客来时如空闲点击按钮就connect()触发了槽函数table1(),其中槽函数中用到Button类的成员函数setText(),将button的文本信息设置为“1号有人”。同样,当顾客结账时点击按钮触发槽函数打印账单给顾客查看,同时将Button的文本信息设置为“2人桌”,账单是用QListWidget类来显示。 主要实现代码如下: void foregroundDialog::table1() { QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8")); static bool a = true; if(a) { button1->setText(tr("1号有人")); a = false; } else结帐 { shou(); int i=0; double sum=0; 将客人消费情况添加到账单列表 QListWidget *list = new QListWidget; QString str1 = QString(tr("菜名 价格 数量")); list->insertItem(0,str1); while(menu1[i].num!=0) { char a[50]; memset(a,0,sizeof(a)); sprintf(a,"%d %d ",menu1[i].price,menu1[i].num); list->insertItem(i+1,QString(tr(menu1[i].name)+tr(" ")+tr(a))); sum+=menu1[i].price*menu1[i].num; i++; } QString a; char af[10]; sprintf(af,"%d",menu1[0].buff[1]); a.append(QString("%1").arg(sum)); QString str2 = QString(tr("桌号:")+tr(af)+tr("共计")); list->insertItem(i+1,str2+a); list->show(); 添加当前时间到账单 time_t lt; lt =time(NULL); char aa[80]; memset(aa,0,sizeof(aa)); sprintf(aa,"%s",ctime(<)); list->insertItem(i+2,QString(tr(aa))); button1->setText(tr("1号(2人桌)")); a = true; } 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; server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); server_addr.sin_port = ()的发生,会让点菜界面显示用到QWidget类中的成员show()函数。再send()将开台信息发送到服务器。点击主要实现代码如下: void welcomeDialog::slotOkButton() 开台 { if(star==true) { QString st=numberComboBox->currentText(); tableNumber=st.toInt(); diancaiDialog *dianc = new diancaiDialog; dianc->show(); SeleteList[0].buffer[0]=1; SeleteList[0].buffer[1]=tableNumber; send(sockfd,SeleteList,sizeof(SeleteList),0); star=false; } else {;} } 菜单列表是从数据库列表中获取的,首先用QSqlDatabase类中的addDatabase()成员函数加载数据库驱动,然后用setDatabaseName()成员函数指明的数据库名称,在用open()成员函数打开并获取菜单信息用QLable类组件显示。 主要实现代码如下: QSqlDatabase data = QSqlDatabase::addDatabase("QSQLITE");加载数据库驱动 data.setDatabaseName("database"); 指明数据库名称 打开数据库 if(!data.open()) { QMessageBox::critical(0, QObject::tr("Datebase error"), data.lastError().text()); } QSqlQuery query; query.exec("select *from menubook"); 点菜功能实现主要是当选择按钮按下时,触发的槽函数slotImButton(),实现菜品选择功能,将选择菜的信息添加入已选列表,并存入SeleteList中,分为提交前选菜和提交后加菜两部分。 主要代码实现如下: void diancaiDialog::slotImButton() 选择 { static int n=0; QString listText =imLabel->text(); QString listText1 =im1Label->text(); QString listText2=spinBox->text(); QString text; text =listText1+listText; text +="\t"; text +=listText2; okList->insertItem(n,text); spinBox->setValue(1); okList->setCurrentRow(0); int s =okList->count()-1; 遍历MenuBook,查找与宣传显示相同名称的菜,并将其信息存入 SeleteList或additem for(int j=0;jcount()==0) del=false; else del=true; if(del==true) { QString text =okList->currentItem()->text(); int cou =okList->count(); int row =okList->currentRow(); 获取当前选择项目,并将其从已选列表和SeleteList中删除 QListWidgetItem *item =okList->takeItem(okList->currentRow()); delete item; int f; for(f=cou-row-1;fcount();m++) ipric+=SeleteList[m].pric*SeleteList[m].num; printf("ipric:%d \n",ipric); QByteArray ba=text.toUtf8(); strcpy(additem[0].addnam,ba.data()); additem[0].bufer[0]=4; additem[0].bufer[1]=tableNumber; additem[0].addnum=1; for(m=0;m<6;m++) additem[0].addnam[m]=' '; send(sockfd,additem,sizeof(additem),0); } } else del==false {;} } 当提交按钮按下时,触发的槽函数on_listOkButton_clicked(),实现将选择的菜品信息seletelist结构体send()发送至服务器的功能。 主要代码实现如下: void diancaiDialog::on_listOkButton_clicked() 提交 { QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8")); 将选择的菜发送至服务器 if(pro==true) { SeleteList[0].buffer[0]=2; SeleteList[0].buffer[1]=tableNumber; send(sockfd,SeleteList,sizeof(SeleteList),0); } 将添加的菜发送至服务器 else if(pro==false) { additem[0].bufer[0]=5; additem[0].bufer[1]=tableNumber; send(sockfd,additem,sizeof(additem),0); int ii=0; for(ii=0;additem[ii].addnum!=0;ii++) printf("%s%d\n",additem[ii].addnam,additem[ii].addnum); memset(additem,0,sizeof(additem)); } 计算消费金额 int m; ipric=0; for(m=0;mcount();m++) ipric+=SeleteList[m].pric*SeleteList[m].num; QMessageBox::about(this,"ok",tr("提交完成")); pro=false; } 当结账按钮按下时,触发此槽函数on_listPayButton_clicked(),结算清单,send()发送至服务器。 结账功能代码实现如下: void diancaiDialog::on_listPayButton_clicked() 结帐 { if(pro==true) {;} else { 建立消息框 QDialog *dlg = new QDialog; dlg->setWindowTitle(tr("消费金额")); QString str; str.append(QString("%1").arg(ipric)); str=tr("RMB:")+str+tr("元"); QLabel *label= new QLabel; label->setText(str); QPushButton *btn =new QPushButton(tr("确定")); QVBoxLayout *layout = new QVBoxLayout(dlg); layout->addWidget(label); layout->addWidget(btn); connect(btn,SIGNAL(clicked()),dlg,SLOT(close())); dlg->show(); quitButton->show(); 添加桌号、消费金额 SeleteList[0].buffer[0]=3; SeleteList[0].buffer[1]=tableNumber; SeleteList[0].buffer[2]=ipric; send(sockfd,SeleteList,sizeof(SeleteList),0); } } 4.2.4 后厨管理系统 后厨首先连接服务器,同样连接服务器函数socket(),connect(),厨师点击接受Button触发槽函数slotrec(),槽函数中用TCPIP协议中的recv()函数将顾客点菜信息接收到并用QListWidget类中insertItem()成员函数将菜单显示出,其中用到time_t类将时间显示出并按照其做菜,当做完一个菜时点击做完按钮时将菜单信息删除该做完了菜用QListWidgetItem类中takeItem()成员函数delete删除一行,并将其添加到做完菜单列表中用QListWidget类中的insertItem()成员函数。 主要实现如下: ); btnLayout ->addWidget(clearButton); btnLayout ->addWidget(btn); QHBoxLayout *listLayout = new QHBoxLayout; listLayout->addWidget(list); listLayout->addWidget(finishList); QVBoxLayout *layout = new QVBoxLayout(this); layout->addLayout(listLayout); layout->addLayout(btnLayout); connect(rec,SIGNAL(clicked()),this,SLOT(slotrec())); connect(btn,SIGNAL(clicked()),this,SLOT(close())); connect(finishButton,SIGNAL(clicked()),this,SLOT(on_finishButton_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。 首先用QT中的QSqlTableModel类中的成员函数setTable(),setEditStrategy(),select(),连数据库列表,用QTableView类组件中的setMode()成员函数将数据库列表显示出来。 主要实现代码如下: model =new QSqlTableModel(view); model->setTable("menubook"); model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->select(); view->setModel(model); 当需要删除某一菜肴时,当选择某一行时可以根据QTableView类中的currentIndex().row()成员函数得知,用QSqlTableModel中的revertAll()成员函数将其删除,并且删除时给出QMessageBox提示框提示。 主要实现代码如下: void Widget::on_deleteButton_clicked() { int curRow = view->currentIndex().row(); model->removeRow(curRow);获取当前行 删除当前行 int ok= QMessageBox::warning(this,tr("删除当前行内容!"),tr("确定删除?"), QMessageBox::Yes,QMessageBox::No); if(ok==QMessageBox::No) model->revertAll(); else model->submitAll(); } 当需要添加菜肴信息时,用QSqlTableModel类中的insertRow()成员函数添加信息,同时用setData()成员函数添加菜肴信息数据。 主要实现代码如下: void Widget::on_addButton_clicked() { int rowNum =model->rowCount();获得表的行数 int id=10; model->insertRow(rowNum);添加一行 model->setData(model->index(rowNum,0),id);加入数据 } 当删除、修改数据库内容完后,需要点击提交修改Button,才难保存到数据中,主要用到QSqlTableModel类中的database()mit()成员函数。 主要代码实现如下: void Widget::on_put_inButton_clicked() { model->database().transaction();开始事务操作 if(model->submitAll()) 提交所有更改 model->database()mit(); 提交 else { model->database().rollback();回滚 QMessageBox::warning(this,tr("tableModel"),tr("数据库错误:%1") .arg(model->lastError().text())); } } 4.3本章小结 本章主要介绍本系统的设计实现,每个模块的实现方法流程,同时给出每个模块实现中用到的函数,给出了代码的实现。 第5章 系统测试 5.1测试方法与原则 系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。 5.1.1 黑盒测试 测试方法以黑盒测试为主。从实际情况来说,满足实际项目需要,黑盒测试具有以下5个优点。 1.比较简单,不需要了解程序内部的代码及实现。 2.与软件的内部实现无关。 3.从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题。 4.基于软件开发文档,所以也能知道软件实现了文档中的哪些功能。 5.在做软件自动化测试时较为方便。 5.1.2 测试基本原则 在开发项目系统中,进行系统测试时要遵循的以下5个基本原则。 1.测试工作尽量避免由原开发人员来承担,从而避免软件开发人员因心理上的原因,不愿否定自己成果而总认为自己开发软件没有错误或错误不大。 2.设计测试方案时,不仅包括确定的输入数据,还包括从系统功能出发预期的测试结果,从而避免将一些似是而非的结果当成正确结果。 3.测试用例不仅要包括合理、有效的输入数据,还要包括无效的不合理的输入数据。例如,在该输入日期的地方输入字母或数字,此时如果软件不能做出适当的反映而失控,就不能说明软件是可靠的。 4.测试应从小规模开始,逐步转向大规模。最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。 5.穷举测试是不可能的。即使是一个大小适度的程序,其路径排列的数量也非常大。因此,在测试中不可能运行路径的每一种组合。然而,充分覆盖程序逻辑,并确保程序设计中使用的所有条件是有可能的。 5.2 系统测试 本系统分为五个模块,服务器模块、前台模块、顾客点菜模块、后厨模块、数据库管理模块。下面分别对这五个模块的基本功能测试。 1.服务器模块:启动服务器模块,等待客户端连接。 2.前台模块:顾客到餐厅通过前台招待得知2号桌空闲,顾客可以去2号桌开台。前台的图形界面和功能主要如图5-1所示。 图 5-1 前台模块图 3. 点菜模块:顾客到达2号桌可以看到点菜系统的界面,选择桌号和人数,点击开台,就开台成功进入点菜界面。开台的界面功能如图5-2所示。 图5-2 开台界面图 顾客进入点菜界面,这里只对顾客点菜功能测试,顾客可以查看菜单列表中的菜单,当需要点该菜时点击选择,就将菜肴添加到已选菜单列表中,当点完菜时,点击提交按钮,就将点菜菜单发送到服务器。在这里可以进行删菜和加菜,在这里就不测试了。顾客点菜界面图如图5-3所示。 图 5-2 顾客点菜界面图 4.后厨模块:当后厨点击接收按钮时,就可以接收到刚刚顾客点的菜单,后厨厨师就可以按照菜单做菜,当做完一个菜时就点击做完,则该菜到做完列表中,当菜做完时,厨师可以点击清空,清空菜单列表,点击接受可以接受下个顾客的菜单或者这个顾客添加的菜。后厨界面图如图5-3所示; 图5-3 后厨界面图 5.当顾客需要结账时,点击点菜界面的结账按钮,顾客到前台买单,前台营业员点击该桌代表的按钮就会将菜单信息打印,顾客买单;菜单界面图5-4所示。 图5-4 账单界面图 6. 数据库管理模块:数据库管理模块主要是管理数据库菜单列表,可以添加菜肴信息,删除菜肴信息,并且可以查找是不是有那道菜肴等几个功能,在这我只对添加菜肴信息测试。数据库管理界面图如图5-5所示。 图5-5 数据库管理界面图 5.3 测试小结 通过以上测试可以得知,该系统实现了点菜的基本功能,顾客可以实现点菜、加菜、删菜、后厨可以接收到菜单、数据库可以管理菜单列表。在这里没有实现无线通信,主要局限于局域网,没有移植到ARM版测试,待以后继续完成软件功能测试。 结 论 本文较完整地分析了点菜系统的需求分析、功能需求分析、系统的详细设计和软件设计,完成了一个小型简易的点菜系统。主要工作如下: 1.对Linux系统的基本运用的掌握,Linux系统下的软件的的选择,主要包括Linux系统下的数据库、Linux系统下的图形界面的开发、Linux系统下的通信协议等相关知识及使用。 2.利用QT类库,实现了系统的图形界面的开发,和数据库的基本操作。 3.基于CS架构的广泛应用,本系统运用服务器客户端开发模式,几个模块间的通信都是通过服务连接通信,采用Linux下的TCPIP协议通信可以保证通信的安全可靠性。 综上所述,本文只局限于软件层的设计与开发,没有移植到ARM版上测试,该系统还局限于网线连接通信,所以今后的工作应该在嵌入式系统开发方面和在无线方面的继续研究。 致 谢 本课题及论文是在***老师的悉心指导和帮助下完成的,在设计期间老师帮助我收集文献资料,理清设计思路,指导操作方法,并对我所做的课题提出有效的改进方案。老师渊博的知识、严谨的作风、诲人不倦的态度和学术上精益求精的精神让我受益终生。 本次毕业设计大概持续了半年的时间,现在终于到结尾了。通过我的努力及老师同学的帮助终于完成了,作为我大学四年的一个总结。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都进步了。 同时,我要感谢学校为我们提供了这么好的学习环境,提供实验室和机器,搭建了一个完美的实验平台,为我们安排指导老师,使我们能够在老师的指导帮助下完成设计。对于学校和老师为我的毕业设计所提供的极大帮助和关心,在此我致以衷心的感谢! 最后,感谢同学们对于我生活、学习上的帮助,以及毕业设计论文写作过程中的指导和意见。感谢父母及家人在我求学路上的无微关怀和物质上的支持,使我能够安心的完成学业。 参考文献 [1] 周霞.餐饮业的管理信息系统[J].华南理工大学学报,2005.3:21-34. [2] 黄文.餐饮企业管理[M].北京:中国纺织出版社, 2009.3:34-35 [3] 鸟哥.鸟哥的Linux私房菜基础学习篇[M].北京:人民邮社,2010.6:123-137. [4](英)马修,(英)斯通斯编著,陈健,宋健建翻译.《Linux程序设计》.人民邮电出版社.2007.5:66-78. [5] 由宏颖.操作系统的一匹黑马Linux[J].网络与信息,1998:50-51. [6] 周小松,朱雄军.基于TCP协议的Socket网络编程模式部署及实现[J].软件导刊,2006.9:20-21. [7] Johan Thelin. Foundations of Qt Development[M].Exper’s Voice in Open Source,2007,8:255-257. [8] Matthias Dalheimer,Programming with Qt O’Reilly Media[J].Linux Device Driver,2002,6:123-235. [9] [美]Grant Allen,Mike Owens 著 杨谦,刘义宣,谢志强 译.《SQLite权威指南(第二版)》.2010.2:149-234. [10] 陈永军.什么是TCPIP[J].化工管理,2000.8:2. [11] 李卓恒.LINUX网络编程[M].北京:机械工业出版社,2000.5:4-22. [12] KURE W.GNULinux编程指南[M].北京:北京科海电子出版社,2002.23:52-54. [13] M.Tim Jones.GNULinux Application Programming [M].Charles River Media,2008,4:225-256. [14] 加(Jasmin Blanchette).《C++ GUIQt4编程》(第2版).电子工业出版社.2008.4:35-87. [15] 史蒂文斯,拉戈著,尤晋元,张亚英,戚正伟译.UNIX环境高级编程.第二版.人民邮电出版社.2006:170~186. 附录A Wireless Food Ordering System Based on Web Service Abstract—Current wireless communications enable people to easily exchange information, while web services provide loosely-coupled and platform-independent ways of linking applications across the Internet or Intranet. This paper presents an integration of wireless communication technologies and web services technologies to realize a wireless food ordering system. In this system, it implements wired and wireless data access to the servers and food ordering functions through both desktop PCs and mobile devices such as PDAs over a wiredwireless integrated local area network. To sure the security of the system, the secure web service architecture and some security strategies to ensure mobile communication security are discussed. Web services-based wireless applications on mobile devices provide a means of convenience, improving efficiency and accuracy for restaurants by saving time, reducing errors, etc. Keywords Web Services; Wireless; Food Ordering System; security I. I NTRODUCTION The rapid developments in information technology, particularly in wireless communication and web services technologies, are greatly changing the way people access and work with information. The convenience and powerful functionality offered by mobile devices such as PDAs, themes of one-to-one computing, instant communication and anytime, anywhere information access. While web services provide a technology for service-oriented computing. Web services allow programs written in different languages on different platforms to communicate with each other in a standard way . By integrating these technologies, consistent business models can be implemented on a broad array of devices: not just on mobile devices operating over mobile networks, but also on servers and PCs connected to the Internet. The food ordering process in restaurants requires the coordination of simple tasks. Instruction flows mainly from customers to waiters then to kitchen andor the bar staff, finally to the cashier . In a medium to large and busy restaurant this coordination is a challenge and requires an efficient ordering system. Errors in ordering processes lead to incorrect or out of sequence meal preparation or non-consumable and results in added cost to the business. This paper presents an integration of wireless communication technologies and web services technologies to realize a wireless food ordering system. In this system, it implements wired and wireless data access to the servers and food ordering functions through both desktop PCs and mobile devices such as PDAs over a wiredwireless integrated local area network. The system is based on secure web service architecture and some security strategies to ensure mobile communication security are adopted. Web services-based wireless applications on mobile devices provide a means of convenience, improving efficiency and accuracy. II. W IRELESS LAN AND W EB SERVICES A. Wireless LAN A wireless LAN (WLAN, Wireless Local Area Network) is a flexible data communication system implemented as an extension to or as an alternative for, a wired LAN within a building or campus . Using electromagnetic waves, WLANs transmit and receive data over the air, minimizing the need for wired connections. Thus, WLANs combine data connectivity with user mobility, and, through simplified configuration, enable movable LANs. The IEEE 802.11 group of standards specifies the technologies for wireless LANs. 802.11 standards use the Ethernet protocol and CSMACA (carrier sense multiple access with collision avoidance) for path sharing and include an encryption method, the Wired Equivalent Privacy algorithm. The 802.11a, b, and g standards are the most common for use WLAN to access the Internet through public access points (“ in the office, they may access WLAN through wireless access points. In enterprise environments, WLANs are usually complemented by security mechanisms, such as VPN (Virtual Private Network). Over the last several years, WLANs some markets, including the to centralized the evolution of the Internet is web services, a set of standards that can interconnect systems over a verity of networks. It is an open XML-based technology providing a generic data exchange format and rapidly adopted by many vendors. Web services can easily be built upon existing applications, no matter what the underlying technology is. Because they are expected to interesting subject for the investigation of their possible application in many systems . Web services are a new generation of web application. It combines the advantages of the component-oriented methods and web techniques, and they can describe its own service. It can also publish, locate and transfer modularized application in web. The provided functions of web services may be simple, but it also contains extraordinary complicated business logic. Web services represent a kind of implementation of SOA (Service-Oriented Architecture), and they are the most popular one. In addition, the three operations of SOA can only process when the components of SOA interact. Therefore some standardized techniques are used in web services, including UDDI, WSDL, HTTP, SOAP, and XML and so on. Web services become the best choice for developing application of SOA . III. DESIGN AND I MPLEMENTATION OF THE SYSTEM A. System Architecture In the system, we adopt four-tiered web-based client-server architecture. Figure 1 shows the overview of the system architecture. The system is conceptually composed of six main components: the web server, database server, cash register, mobile context server, mobile user and desktop user. The web server provided relevant information for mobile devices or desktop PCs on a wiredwireless integrated local area network using WSDL (Web Service Description Language) to describe functions and protocols. The web server then transmits to the mobile devices or desktop PCs. The user binds the web server and the WSDL. This enables the web service to be used by correspondence using SOAP (Simple Object Access Protocol). The database server saves all information of the system such as food information, ordering information, client information. The cash register is responsible for cost calculation of the consumer. The mobile context server applies context to the contents by using styles, an attribute override, and templates according to the resources of a given mobile device. Desktop users can ask for services after checking the WSDL of the service from the web server. A desktop on a wired network can be used to browse full contents on one screen shot. When a user requests food information through a wired network, the web server serves the information by connecting to the database server. When a user requests food information through a wireless network, the mobile context server divides the context pages according to the screen size of the mobile device. It also filters the pages according to mobile devices and then browses the adopted content from the context server to the mobile web browser. The mobile context server reconfigures contents offered by the web server. Figure 1 The System Architecture B. Web Service Security Model Web service security can be applied at three levels : · Platformtransport-level (point-to-point) security; · Application-level (customer) security; · Message-level (end-to-end) security. Each approach the characteristics of the architecture and platforms involved in the message exchange. This system focuses on platform- and application-level security, so the two security levels are described. 1.Platformtransport-level (point-to-point) security The transport channel between two endpoints (web service client and web service) can be used to provide point-to-point security as illustrated in Figure 2. Figure 2 Platformtransport-level security In the platform-level model, the client sends an XML format request to the web server. The XML message is not encrypted by the client. When the message is transported in the transport channel, the network encrypts the entire data stream to make sure that the transport is secure. This system uses a tightly coupled Microsoft Windows operating system environment. The Internet Information Server (IIS) provides basic, integrated and certificate authentication. The ASP.NET web service inherits some of the ASP.NET authentication and authorization features. The Secure Sockets Layer (SSL) is used to provide message integrity and confidentiality. 2 .Application-level security With application-level security, the application controls security with custom security features (Figure 3). Figure 3 Application-level security In the application-level security model, for example, an application can use a custom SOAP approach is to pass a ticket (or user name or license) in the SOAP principal object that contains roles. The application can optionally encrypt what it needs to, although this requires secure key storage and developers must alternative technique uses SSL to provide confidentiality and integrity it with custom SOAP . The system uses the SOAP Toolkit 2.0offered by Microsoft, which provides support for internet security based on the IIS security infrastructure to implement the application-level security model. C. The Implementation of the System The whole system was built using the Microsoft .NET framework and .NET compact framework. Server application was implemented by Microsoft ASP.NET based on C#, the database was served by Microsoft SQL server 2000. The context server connected to the web server acted as IIS as the web server. The function modules of this system mainly consist of 5 parts: system management, food management, client management, food ordering management and finance management, as shown in Figure 4. Figure 4 function modules of the system The system management module is responsible for the initial setting of the system, administrator setting, wireless network setting, logs management etc. The food menu management includes setting name, prides, types, state of food, and so on. The client management supervises information of clients, which include the VIP information. The food ordering management is responsible for supervising the food ordering information from wire users and wireless users. The finance management administrates cash, bill, and financial audit of the restaurant. Some user interfaces of wire users and wireless users in this system are shown in figure 5 and figure 6. IV. CONCLUSIONS The mobile devices widely used to provide easily access to the web content. We presented a wireless food ordering system based on web services over a wiredwireless integrated local area network, which implements wired and wireless data access to the servers and food ordering functions through both desktop PCs and mobile devices such as PDAs. The system is based on secure web service architecture and can increase efficiency for restaurants by saving time, reducing errors and by providing higher quality customer service. 附录B 基于Web服务的无线食品点菜系统 摘要:当前的无线通信,使人们轻松地交换信息,而Web服务提供了松耦合和平台无关的方式连接整个Internet或Intranet的应用程序。本文提出的无线通信技术和Web服务技术的集成,实现无线点餐系统。在这个系统中,实现了有线和无线数据访问订购通过台式电脑和移动设备,如超过有线无线综合局域网的掌上电脑功能的服务器和食品。为了确保安全系统,安全的Web服务架构和一些安全策略,以确保移动通信安全进行了讨论。基于Web服务的移动设备上的无线应用提供了一个方便的手段,改善食肆的效率和准确性,节省了时间,减少人为错误,等等。 关键词 Web服务;无线;食品订货系统;安全 I.引言 在信息技术的飞速发展,特别是在无线通信和网络服务技术,极大地改变人们访问信息和工作。如PDA等移动设备所提供的便利和强大的功能,鼓励了很多人来调查使用它们的好处。无线和手持设备比比皆是,作为供应商推销到一计算,即时通信和随时随地的信息访问的共同主题。虽然Web服务提供了面向服务的计算技术。 Web服务允许在不同的平台上,在不同的语言编写的程序在一个标准的方式相互沟通。一贯的经营模式,通过整合这些技术,可以实现一系列广泛的设备上:不只是在经营移动网络的移动设备,但也对服务器和个人电脑连接到互联网。 在餐馆订餐过程简单的任务,需要协调。流入主要来自客户指令到服务员,然后到厨房和或酒吧工作人员,最后收银员。在中大和繁忙的餐厅,这种协调是一个挑战,需要一个高效的订货系统。订购流程中的错误导致不正确或序列准备膳食或非消耗和增加成本的业务结果。 本文提出的无线通信技术和Web服务技术的集成,实现无线点餐系统。在这个系统中,实现有线和无线数据接入服务器和订餐通过台式电脑和移动设备,如通过有线无线综合局域网掌上电脑的功能。该系统是基于安全的Web服务架构,并采取了一些安全策略,以确保移动通信安全。基于Web服务的移动设备上的无线应用提供了一个方便的手段,提高工作效率和准确性。 II.无线局域网和W EB服务 A.无线局域网 无线局域网(WLAN,无线局域网)是一种灵活的数据通信系统延伸或作为替代,建筑物或校园内的有线局域网实现。利用电磁波,无线局域网发送和接收的空气数据,最大限度地减少需要有线连接。因此,WLAN的结合用户移动数据连接,并通过简化的配置,使移动局域网。 无线局域网的IEEE 802.11标准组指定的技术。 802.11标准使用路径共享的以太网协议和CSMA CA(载波侦听碰撞避免的多址接入)和加密方法,有线等效保密算法。这个802.11a,b和g标准,是最常见的家庭无线接入点和大型企业的无线系统。远程用户可以使用WLAN访问互联网,通过公共服务供应商提供的接入点(“热点”)。在办公室时,他们可能会访问WLAN通过无线接入点。在企业环境中,无线局域网的安全机制,如VPN(虚拟专用网络),通常辅之以。 在过去的几年中,无线局域网已经取得了一些市场人气旺盛,包括医疗保健,零售,制造,和学术领域。这些行业都得益于使用手持终端和笔记本电脑传输实时信息集中处理的主机的生产力。今天,无线局域网正在成为更广泛地作为一个通用连接替代了企业客户的广泛认可。 B. Web服务 迅速成为互联网发展的重要技术,是网络服务,一套标准的,可以通过网络真理互连系统。它是一个开放的基于XML的技术,提供了一个通用的数据交换格式和许多厂商已迅速通过。 Web服务可以很容易地建立在现有的应用程序,无论是什么底层技术。因为他们预计将有越来越多的熟悉和接受多个用户之间提供了极大的技术承诺,Web服务是一个有趣的话题调查其可能的应用在许多系统。 Web服务是新一代的Web应用程序。它结合了面向构件的方法和网络技术的优势,他们可以形容自己的服务。它也可以发布,定位和传输网络中的模块化应用。 Web服务提供的功能可以很简单,但它也包含了特别复杂的业务逻辑。 Web服务代表了一种实施SOA(面向服务的架构),他们是最流行的一种。此外,SOA的三个操作只能处理时,SOA的组件交互。因此,一些标准化的技术被用来在Web服务中,包括UDDI,WSDL HTTP,SOAP和XML等。 Web服务成为SOA应用开发的最佳选择。 III.该系统的设计与实现 系统架构 在系统中,我们采用四个层次的基于网络的客户端 - 服务器架构。图1显示了系统的体系结构的概述。该系统的概念组成的六个主要组件:Web服务器,数据库服务器,收银机,移动环境下的服务器,移动用户和桌面用户。 Web服务器提供的有关信息为移动设备或台式电脑,有线无线综合局域网络使用WSDL(Web服务描述语言)来描述功能和协议。该网站的服务器,然后传送到移动设备或台式电脑。用户绑定Web服务器和WSDL。这可以通过使用SOAP(简单对象访问协议)的信件中使用的网络服务。数据库服务器保存的食品信息,订购信息,客户信息,如系统的所有信息。收银是负责为消费者的成本计算。移动环境中的服务器应用上下文的内容,根据一个给定的移动设备的资源,通过使用样式,属性重写和模板。 桌面用户可以从Web服务器后,检查该服务的WSDL服务要求。在有线网络上的一个桌面可以被用于浏览在一个屏幕上拍摄的全部内容。当用户请求粮食信息通过有线网络,Web服务器提供连接到数据库服务器的信息。当用户请求粮食信息通过无线网络,移动环境中的服务器根据移动设备的屏幕大小划分上下文页。它还过滤根据移动设备的网页,然后通过从上下文服务器内容的移动网络浏览器浏览。移动环境中的服务器重新配置Web服务器提供的内容。 图1 系统架构 B.Web服务安全性模型 Web服务安全性,可应用在三个层面: · 平台传输级(点)的安全性; · 应用程序级(客户)的安全性; · 消息级(年底)安全。 每种方法都有不同的长处和短处。该方法的选择是在很大程度上取决于参与消息交换的体系结构和平台的特点。此系统平台和应用程序级安全性的重点,因此,描述了两个安全级别。 1.平台传输级(点)的安全 可以使用的两个端点(Web服务客户端和Web服务)之间的传输通道,提供点至点的安全,如图2所示。 图2平台传输级安全性 在平台级模型,客户端发送到Web服务器的XML格式的请求。 XML消息是不加密的客户端。网络的消息时,在运输通道运输,整个数据流进行加密,确保运输安全。该系统采用紧耦合的微软Windows操作系统环境。互联网信息服务器(IIS)提供基本的,综合性和证书认证。 ASP.NET Web服务继承了某些ASP.NET身份验证和授权功能。安全套接字层(SSL)是用来提供消息完整性和保密性。 2.应用程序级的安全性。 与应用程序级的安全性,应用程序的安全控制与自定义的安全功能(如图3所示)。 图3应用程序级安全性 例如,在应用程序级的安全模型,应用程序可以使用一个自定义的SOAP标头传递用户凭据进行身份验证每个Web服务请求的用户。一个常用的方法是通过在SOAP头一票(或用户名称或许可证)。应用程序具有灵活性,以产生自身的主要对象,其中包含角色。它需要什么,尽管这需要安全密钥存储和开发人员必须有相关的加密API知识的应用程序可以选择加密。另一种方法是使用SSL提供保密性和完整性,自定义SOAP头进行身份验证。该系统使用SOAP工具包由微软,它提供了支持基于IIS安全基础设施,以实现应用程序级安全模型的互联网安全2.0offered。 C.系统的实施 整个系统的建成使用微软。NET框架和.NET Framework精简。服务器应用程序是由Microsoft ASP.NET中实现基于C#中,担任微软SQL服务器2000数据库。上下文服务器连接到Web服务器作为IIS作为Web服务器。主要包括5个部分:系统管理,食品管理,客户管理,订餐管理和财务管理,如图4所示,本系统的功能模块。 系统管理模块是负责系统的初始设置,管理员设置,无线网络设置,日志管理等食物菜单管理,包括设置名称,自豪,类型,状态的食物,等等。客户管理监督信息的客户,其中包括贵宾信息。订货管理的食品,是负责监督食品从有线用户和无线用户订购信息。财务管理下辖的现金,票据,餐厅和财务审计。 图4本系统的功能模块 IV.结论 已被广泛应用于移动设备提供方便地访问网页内容。我们提出了基于Web服务的有线无线综合局域网络,实现有线和无线数据访问服务器和订餐通过台式电脑和移动设备,如PDA功能无线食品订货系统。该系统是基于对安全的Web服务体系结构,可以提高餐馆效率,节省时间,减少人为错误,并提供更高质量的客户服务。 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。 学位论文作者(本人签名): 年 月 日 学位论文出版授权书 本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。 论文密级: □公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议) 作者签名:_______ 导师签名:_______ _______年_____月_____日 _______年_____月_____日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 二〇一〇年九月二十日   毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 二〇一〇年九月二十日 致 谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师赵达睿老师、和研究生助教熊伟丽老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 客户端 服务器端 socket socket recv/recvfrom send/sendto close send/sendto close bind listen accept connect recv/recvfrom 查询餐台信息 结账 打印账单 前台管理模块 服务器 后厨管理模块 删菜询问 接收菜单 做完 顾客点菜模块 点菜 加菜 退菜 开始 结账 前台管理模块 查询餐台信息 打印账单 点 菜 点菜信息发送 点菜终端 选择菜肴 删 菜 加 菜 询问删菜 做 完 接收菜单 后厨管理模块 数据库管理模块 查询菜谱信息 添加菜谱信息 删除菜谱信息 II
/
本文档为【基于linux嵌入式点菜系统的设计_学士学位论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索