毕业论文 - 计算机专业

上传人:优*** 文档编号:67265322 上传时间:2022-03-30 格式:DOC 页数:121 大小:4.23MB
返回 下载 相关 举报
毕业论文 - 计算机专业_第1页
第1页 / 共121页
毕业论文 - 计算机专业_第2页
第2页 / 共121页
毕业论文 - 计算机专业_第3页
第3页 / 共121页
点击查看更多>>
资源描述
. 本科生毕业设计(论文)论文题目 基于web的在线餐饮网站的设计与实现作者姓名 000专 业 计算机科学与技术指导教师 0002017年6月整理为word格式整理为word格式燕山大学本科生毕业设计(论文)基于web的在线餐饮网站的设计与实现学院:信息科学与工程学院专业:计算机科学与技术姓名:000学号:000指导教师:000答辩日期:2017年6月整理为word格式整理为word格式燕山大学毕业设计(论文)任务书学院:信息科学与工程学院 专业(方向):计算机科学与技术学号000学生姓名000专业班级计算机科学与技术五班题目题目名称基于web的在线餐饮网站的设计与实现题目性质1.理工类:工程设计 ( );工程技术实验研究型( );理论研究型( );计算机软件型( );综合型( )。2.文管类( );3.外语类( );4.艺术类( )。题目类型1.毕业设计( ) 2.论文( )题目来源科研课题( ) 生产实际( ) 自选题目( ) 主要内容1、 实时更新功能2、 餐位推荐及食客分配功能3、 网上支付功能4、 网上点评功能5、 登录功能和订餐功能基本要求1. 在Windows10应用环境下,实验及模型建立程序采用Java+MySQL编写,模型展示平台采用JSP+MySQL编写。2. 实现各种功能,保证网站的正常运行,实现不需要人管理的网上管理系统,实现对餐厅的全方位管理。3. 使顾客有更好的用餐体验 参考资料1孙卫琴.Tomcat与Java Web开发技术详解北京:电子工业出版社,20042赛奎春. JSP信息系统开发案例精选. 北京:机械工业出版社,2006.3李宁.Java Web编程实战宝典.清华大学出版社,2014. 周次14周58周912周1316周17周应完成的内容进行需求分析,数据库设计。完成系统的概要设计和详细设计。系统具体实现,包括编码与测试。进一步调试和完善系统。撰写并进一步完成论文和答辩。指导教师:000职称:讲师 2017年2月28日注:周次完成内容请指导老师根据课题内容自主合理安排。整理为word格式整理为word格式摘 要随着数字化和信息化的日益发展,网络在人们生活的中的比重越来越大,衣食住行是人们的生活方式,而食物正是人们每日的必需品,随着人们生活水平的提高,越来越多的餐厅开始出现,餐饮行业是一个永不凋零的行业,如何使顾客更加方便的品尝美味的食物这一需求促使网上餐饮管理系统出现,而网络的及时和准确的信息传递也正是迎合了餐饮网站的出现,同时越来越多的订餐网站和手机APP涌现而出,因此开发一个好的餐饮网站必将是能够运用到实际中的项目。本文对餐饮管理系统网站的开发从需求分析到最后的编码测试进行了详细的阐述,主要采用JSP+Servlet+MySQL进行开发,在过程中遇到了许多问题,同时对软件工程的重要性有了更深刻的认识,是对餐饮管理系统网站开发的一次尝试,同时在开发过程中进行学习和实践,收获了许多知识和对编程的理解。关键词:餐饮;开发;管理系统;网站整理为word格式整理为word格式AbstractWith the development of digital and information technology, the proportion of network in peoples life is more and more big, basic necessities of life are peoples way of life, and food is the daily necessity of the people. With the improvement of peoples living standard, more and more restaurants are beginning to appear, the catering industry is an industry that will never wither. How to make customers more convenient to taste delicious food, this demand prompted the emergence of online catering management system, and the timely and accurate information transmission of the network also caters to the emergence of catering websites, meanwhile, more and more ordering websites and mobile phone APP are emerging. Therefore, the development of a good catering website is bound to be applied to the actual project.In this paper, the restaurant management system website development, from the demand analysis to the final coding, testing are described in detail, JSP+Servlet+MySQL is mainly used for development. Encountered many problems in the process, but at the same time, I have a deeper understanding of the importance of software engineering, It is an attempt to develop the website of restaurant management system. At the same time, in the development process of learning and practice, I gained a lot of knowledge and understanding of programming.Keywords: Catering; Development; Management System; Website整理为word格式整理为word格式目 录摘 要IAbstractIII目 录V第1章 绪 论11.1 选题的背景11.2 目的和意义11.3 国内外文献综述21.4 主要研究内容2第2章 系统实现技术52.1 JAVA WEB技术52.1.1 使用工具52.1.2 主要内容52.2 SERVLET技术62.3 访问数据库62.3.1 开发工具62.3.2 语言简介72.4 MVC模式72.5 本章小结7第3章 需求分析93.1 可行性分析93.1.1 技术可行性93.1.2 经济可行性93.1.3 操作可行性93.2 项目内容93.3 实体-联系图103.3.1 数据对象103.3.2 联系103.4 本章小结11第4章 数据库表设计124.1 数据库表134.2 数据库表中的数据项13整理为word格式4.2.1 顾客表134.2.2 餐品表134.2.3 餐位表144.2.4 评价表144.2.5 厨师表144.2.6 服务员表144.2.7 订单表144.2.8 历史记录表154.2.9 管理员表154.3 数据库表设计154.4 本章小结18第5章 总体设计185.1 选择设计方案195.2 设计原理分析195.3 功能层次图205.4 功能详解215.5 本章小结23第6章 详细设计246.1 程序流程图设计256.1.1 前台程序流程图256.1.2 后台程序流程图256.2 页面设计266.2.1 登录界面266.2.2 主页界面276.2.3 餐品预定界面276.2.4 餐位预定界面286.2.5 个人中心界面286.2.6 餐品详情界面296.2.7 后台登录界面306.2.8 后台主页界面306.3 小结31第7章 编码设计327.1 基本Java类337.2 方法类337.3 处理SERVLET34整理为word格式7.4 本章小结35第8章 系统测试368.1 登录测试378.2 注册测试378.3 预定餐品测试378.4 预定餐位测试388.5 个人中心测试388.6 后台功能测试388.7 小结39结 论40参考文献42附录1 开题报告44附录2 文献综述46附录3 中期报告48附录4 外文原文52附录5 外文翻译58致 谢62整理为word格式第1章 绪 论1.1 选题的背景随着计算机网络的发展,互联网已经成为当今时代必不可少的工具,人们之间的信息交流变得简单便捷,信息高效迅速的特性不断推动着社会的发展,小到人与人之间的聊天沟通,大到商业、学术交流等各个领域的信息交流,社会发展离不开信息的碰撞,而信息化的发展也离不开互联网的发展。因此,计算机网络技术也不断地开拓创新,互联网不断地升级优化,为满足人们的需求不断地进行网站的开发和开发技术的发展。餐饮类网站也逐渐兴起,如今各式各样的餐饮企业和餐厅依托着网络的信息处理的快速、高效和时代的特性,通过外卖网站,点餐APP等在线网站和手机APP不断地提升着服务水平和质量,而随着生活节奏的加快,广大的消费者也越来越倾向于通过网络进行便捷的消费,如何设计出更加人性化的餐饮网站,以及如何设计功能更加强大和更加全面的后台系统都是需要实际考虑和有待提高的方向。同样是餐饮行业,当前的订餐网站越来越多,人们出行用餐改为了送餐到户,对于足不出户的用餐开始受到人们的青睐,但是餐厅的用餐不仅是多了出行的麻烦,而是减少了人与人的社交文化,改变了人们的生活方式,在这个互联网流行的时代如何设计和开发符合餐厅特色的餐饮网站是使餐饮餐厅追上时代的潮流的关键。1.2 目的和意义通过上述分析,进行餐饮类的网站开发是一个具有实际意义的项目。本系统不仅仅是对顾客可以使用的,也是对餐厅管理人员可以使用的,不仅可以使顾客订餐变得更加方便,也是餐厅的管理人员对餐厅的管理更加直观和方便,用户可以方便的订餐,查看餐品和餐位信息,用餐之后的感受可以通过对相应的餐品或服务员的评论进行反馈,而餐厅的管理者可以登录到后台系统对餐厅的人员和餐品等的信息进行管理,通过查询订单生成纸质订单进行订单的处理,而员工的服务质量也可以通过相应的好评、差评进行反应,系统对信息的自动处理是管理人员省去了很对繁重的工作。现在网上订餐系统颇多,也很流行,但是餐厅的管理系统却很少,本系统结合订餐和管理两大功能,有着更加完善的系统功能,对于在线餐饮行业的发展有着很好地促进作用。整理为word格式1.3 国内外文献综述在线餐饮系统属于开发较早的系统,因为国内外普遍存在的餐饮行业,该系统的研究和应用发展很快,早先,国外的餐饮系统更是发展迅速,但是随着中国的发展,人们生活水平的提高,越来越多的餐饮行业出现,在线餐饮网站也是因此在中国开始发展,同时借鉴或者使用外国的在线餐饮系统,在中国,餐饮在线系统越来越普遍,该系统的研究也越来越成熟。现在中国地网上订餐网站也颇多,如饿了么、美餐网、外卖单、小组饭等等,网上的食物网站越来越多。但是网上订餐企业的业绩并不理想,尚未发现很火爆的网上订餐企业。目前国内外的网上餐厅网站大部分也是关于订餐、订座之类的,无法实现智能化的无人管理,但是随着网上餐厅系统的发展,各式各样的网站的开发,网站的功能也会越来越全面随着餐厅的发展,网上餐厅系统功能也越来越多,餐厅预购、团购、优惠券、积分换礼、特色活动等等各种功能层出不穷,而食物分类更是数不胜数,网上餐厅越来越便利实惠。网上的订餐系统的实地订餐、电话订餐也大大的节省了食客的时间,提供了方便的服务,网络订餐可充通过色彩、图片、说明、设置动画加强了产品了宣传,大大达到了餐饮业的“色型”要求1。实现产品管理方便,起到立竿见影的效果,不用因为更改菜色而重新印刷,同时网上展示的食物图片和介绍也给了食客更直观的印象和喜好。1.4 主要研究内容对于餐饮管理网站,通过进行功能分类,主要分为前台功能和后台功能,前台功能主页分为两个部分,一部分是前台,一部分是用户个人中心。前台的主要功能为:1. 登录功能:通过对用户输入的用户名和密码的正确性检测实现登录,保存用户登录信息。2. 注册功能:通过输入注册信息,如用户名、密码、电话号码,以及对用户名是否存在的检测、密码和再次输入密码是否一致的检测而确定是否能够注册成功,并将注册信息保存到数据库2。3. 首页:实现向不同功能模块的跳转。整理为word格式4. 餐品预定:显示所有餐品,可以按不同条件进行分类查询,可以通过点击餐品进入餐品详情页面显示餐品的详细描述(包括用户的评论),也可以通过点击预定按钮进行餐品预定。5. 餐位预订:显示所有餐位和推荐餐位,通过选择不同的时间段查看相应时间可预订的餐位(即空餐位)。用户中心主要功能为:1. 个人信息模块:分为查看个人信息功能和修改个人信息功能3。2. 订单模块:分为查看订单、添加订单、删除订单和查看历史订单功能。查看订单可以查看已经提交但是没有过期的订单;添加订单可以添加新订单,只有点击添加订单之后才可以添加餐品和餐位,最后提交可以将订单真正提交;删除订单可以将已经预定的订单取消;查看历史订单即查看过期订单。3. 用户等级模块:查看个人等级和提升个人等级功能。4. 评论模块:实现对餐品评论,对服务员的满意程度和厨师满意程度进行评价。以上是用户可以操作的内容的,即前台功能,而对于用户信息、餐品信息、餐位信息和员工信息的管理都属于后台功能:1. 餐品管理:查看所有餐品的信息,实现对餐品信息的删除和修改4。2. 餐位管理:查看所有餐位的信息,实现对所有餐位信息的修改和删除。3. 员工管理:查看所有员工(包括服务员和厨师)的信息,实现对所有员工信息的修改和删除。整理为word格式整理为word格式第2章 系统实现技术2.1 JAVA WEB技术Java web是用于解决Web领域的Java技术总和,本次Java Web技术使用的工具有Myeclipse和Tomcat,下面对这两个工具进行简单的介绍。2.1.1 使用工具Myeclipse是在开源工具eclipse的基础上由Genuitec公司添加上自己开发出来的的插件组合而成的具有强大功能的程序开发工具,而且由于对myeclipse的不断更新,功能越来越完善,越来越强大,此工具主要用于进行Java语言程序的开发,而且此工具上手容易,辅助功能强大,如自动生成class文件和进行执行,不必打开命令行进行手动操作,错误提示和出错原因显示的很详细,同时可以改变编码格式,根据自己的喜好改变代码字体的大小、类型和颜色等,导入一些jar包和项目的方法也很便利,自动提示功能也大大加快了代码的生成效率。因此是一个非常好用的工具。2.1.2 主要内容主要包含css、Jsp、JavaScript和Servlet等内容。css是用于进行Jsp页面开发的辅助工具,是用于界面的优化和界面的布局的层叠样式表,css学习起来简单,主要是对不同标签的style属性进行设置,使用div等标签对页面布局进行设计。Jsp的全称是Java Server Pages,是动态页面开发技术,本质上相当于一个简化的Servlet设计,有成为动态网页技术标准,是在传统的HTML基础上可以插入Java程序而形成的的JSP文件,通过在中添加Java程序使页面设计变得更加简单,与JavaScript的结合使用使其Jsp变得功能更强大,Jsp可以运行于不同的操作系统上,如Linux和Windows。因此Jsp不仅有Java语言简单易用的特点,而且是面向对象的,具有安全可靠和与平台无关的特点5。JavaScript是一种用于Jsp页面进行动态开发的脚本语言,是用来使页面动态显示的语言,主要是通过对Jsp中的标签的属性的控制来实现页面的动态变化,是由Netscape公司的Brendan Eich设计而成的。因为外观相似Java,所以取名为JavaScript。整理为word格式Servlet的全称为Java Servlet,是使用Java编写的服务器端程序,同时也是本次进行后台数据处理和页面显示的主要程序,首先对于页面提交的请求先放到相应的Servlet中,Servlet在调用相应的Java方法对请求进行处理,最后将结果提交到相应的Jsp页面中。2.2 SERVLET技术Servlet是导入特定的Java API包的Java程序,下面简单介绍一下Servlet的生命周期,首先是收到客户端传送过来的请求而加载相应的Servlet类,实例化并通过Servlet的init()方法初始化该Servlet,然后根据不同请求调用相应的doget()方法或者是dopost()方法,此时将调用其中的Java方法进行请求处理,最后返回相应的结果,通过调用destroy()方法销毁Servlet。2.3 访问数据库访问数据库是进行软件开发的重要内容,从进行数据库表项设计开始到在程序中具体使用,对于数据库的具体操作都影响到整个项目的顺利进行,因此选择何种数据库开发工具和对SQL语句的使用都是必不可少的。2.3.1 开发工具本次数据库表的设计和数据存储所用的工具是MySQL,MySQL是目前最流的面向关系型数据库管理系统之一。对于MySQL的图形用户界面采用的是Navicat。虽然与一些大型数据库例如Oracle、DB2和SQL Server相比,MySQL有它的不足之处,但是作为中小型项目开发的数据库还是完全没问题的,而且MySQL是一个开源数据库,免费使用也可以降低项目开发的成本。下面对MySQL的特性进行简单的介绍:1. 采用C和C+编写源代码,通过了多种编译器的测试,代码可移植性好。2. 支持应用于多种操作系统。3. 支持多线程,对于提高CPU资源利用率有很好的效果。4. 开源软件,可以免费使用。5. 提供了用于检查、优化、管理数据库的工具。基于以上特点可以看出,MySQL是个人项目使用工具的极佳的选择,也正是我选择使用MySQL作为数据库的重要参考内容。同时因为所有的数据库原理基本上整理为word格式相同,所以区别也不会太大。2.3.2 语言简介SQL语言又称为结构化查询语言,是用于对数据库进行查询、增添、删除和修改的一种语言,在SQL语言中主要包括五种数据类型:字符型、文本型、数值型、逻辑型和日期型,下面简述本语言的特点:一体化、使用方式灵活、非过程化和语言简介。2.4 MVC模式MVC全名是Model View Controller,分别是模型、视图和控制器的缩写,MVC模式开始是桌面程序的设计模式,M指的是业务层次模型,V指的是用户界面层次的设计,C则指的是控制器层次模型。将业务模型和用户界面进行分离是使用MVC模式的主要目的6。其中的MVC框架是MVC模式的某种框架,MVC程序分为三个核心内容,各自处理各自的内容,如本次开发中的视图层即是Jsp,数据库是本次开发的模型层,Servlet是控制层。下面简单的介绍什么是视图层,什么是模型层,以及控制层的概念。视图层,顾名思义,指的是界面显示的层面,模型层,主要负责的是对数据的管理,例如数据库便是用来对数据库进行管理的工具,但是仅仅有数据库还无法实现与程序的连接,需要导入相应的jar包,书写相应的连接语句,根据不同需要书写不同的SQL语句,然后连接数据库进行查询,因此书写的Java也属于模型层的内容,最后通过控制层将结果打印到视图层。控制层,用于协调视图层和模型层。2.5 本章小结MyEclipse是一个功能强大的IDE工具,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,支持对各种开源产品,比如可以通过导入Tomcat服务器,实现Java Web程序开发,在浏览器上运行自己的程序,与本地的Tomcat服务器进行交互,同时也支持JDBC数据库链接工具。MySQL是一个小型的关系型数据库管理系统,通过JDBC可以在MyEclipse的程序中使用MySQL工具整理为word格式。整理为word格式第3章 需求分析3.1 可行性分析技术可行性分析是指对本次要研发的项目是否切实可行的分析,具有预见性、公正性、可靠性和科学性的特点,基于的可行性分析是项目开发过程中的重要内容,本次可行性分析主要是进行技术可行性、用户可行性和操作可行性三方面的可行性分析8。3.1.1 技术可行性本次采用的的是MVC设计模式,完全可以满足一般的小型项目开发所需要的技术支持,其中对于一些基础的功能可以通过正常编码完成实现,而对于一些无法通过自己的编写代码,或者因为自己的编程水平无法实现的功能可以通过添加相应的插件,也就是导入相应的jar包,使用其中封装好的方法来实现,虽然如此,但是作为一次独立的项目开发经验,自己会尽可能的使用自己编码的方式结合从网上查找的资料来尝试实现这些功能,总之,通过使用Jsp、Servlet和Java基本上可以实现本次项目。3.1.2 经济可行性本次项目开发所使用的工具有一台电脑、在Windows系统下的Myeclipse软件、Tomcat软件、MySQL软件,其中软件可以免费使用的是MySQL,而另外两个软件也可以找到获取途径,电脑是自己的,因此开发的开发成本很小,而开发所得到的经济效益是很可观的,因为一旦项目真的可以投入使用,那么不仅可以得到一笔收益,还是一次很好地项目成果体验,既是项目无法使用,也可以带给自己很多收获,如开发过程中所积累的知识便是一笔无价之宝,最后的成果尽管不尽如人意,但是从客观的角度评价了自己的成果,可以给自己一个新的定位,也带给自己以后努力的方向和动力。3.1.3 操作可行性操作可行性,也就是用户对使用本软件的满意程度,操作难度等的可行性分析,因此操作可行性与技术可行性是分不开的,只有在技术可行性的基础上才可以设计出操作简单,功能强大,智能化程度高的软件。整理为word格式3.2 项目内容项目的操作大体流程为:首先是进入登录界面,此时可以选择登录、注册或者是以游客的身份直接登录主页,登录主页之后根据不同的目的可以查看餐品、查看餐位、后台登录和离开本网站(即关闭页面),如果选择登录网站,则输入用户名和密码通过后台确认登录主页,如果没有账号则可以选择注册一个账号,注册完成功之后会自动返回登录页面。当登录到主页的时候,可以按照不同的目的浏览不同的页面,也可以进入到个人中心页面,在个人中心页面,可以进行个人信息、订单信息、用户类型和评论信息的管理,不同的信息管理模块产生不同的功能,个人信息管理包括查看个人信息和修改个人信息9,密码也是在修改个人信息中进行修改的,订单信息管理包括添加新订单、查看订单和删除订单等功能,用户类型管理包括查看个人类型和提升用户类型,评论管理分别是餐品评论、员工评论,其中员工评论又分为厨师评论和服务员评论,但是员工评论只能进行好评和差评,餐品评论是用户个人的自由评论。以上是用户功能部分的流程,而后台功能部分的流程可以通过主页面跳转到后台登录界面,输入管理员的账号和密码以登录,登录到后台主页之后可以进行顾客信息、餐品信息、餐位信息、员工信息和订单信息的管理,顾客信息的查看、修改和删除,餐品信息的查看、修改和删除,餐位信息的查看、修改和删除,员工信息又分为厨师信息和服务员信息,主要用于管理员工信息和工资的结算,订单信息是来查看当前应立即处理的订单。3.3 实体-联系图3.3.1 数据对象通过第3.2节中的描述,可以大致分出的数据对象为:游客、顾客(即用户)、管理员、厨师、服务员、订单、评论、餐品和餐位。其中游客没有具体属性,顾客至少包含顾客ID、名称、密码等登录时需要的属性,管理员只需要账号和密码,厨师需要名称、基本工资、好评、差评和联系方式等属性,服务员和厨师相同,订单应包含餐品、餐位、时间和顾客ID等信息,评论是对餐品的评论,因此至少应包含餐品名、评论内容,餐品应包含餐品名、餐品描述、餐品价格、餐品类型等内容,餐位应包含餐位ID、餐位是否可用、餐位类型、餐位座位数等内容。整理为word格式3.3.2 联系不同的对象之间是有联系的,通过这些联系可以是项目内部更加统一和协调,下面对各个对象之间的联系进行分析和总结。首先是游客,因为游客没有属性,因此无法与其他对象产生联系,而在实际的网站中,在登录之前的浏览信息也是没有与后台的联系的。顾客,顾客与订单和评论有关,每位顾客可以有多个订单,与订单是一对多的关系,每位顾客可以对多个餐品进行评论,与评论也是一对多的关系,每位顾客可以对多位厨师进行评论,在评论员工方面是一对多的,每位厨师可能为多为顾客制作餐品,同样一位顾客可能吃到多名厨师做的菜,在做菜方面是多对多的关系,每位服务员可以服务多位顾客,每位顾客也可能在每次用餐有不同的服务员进行服务,因此是多对多的关系。管理员,管理员不与任何对象产生联系。厨师,厨师与餐品有关,每位厨师可以做多种菜,因此与餐品是一对多的关系。与顾客的关系已经在顾客中详细分析。员工,员工主要与顾客产生联系,已经在顾客中进行了分析。订单,每个订单中可能产生多个餐品,因此是一对多的关系,但是每个订单只能预定一个餐位,因此与餐卫是一对一的关系,与顾客的关系在前面已经说明。评论,是由顾客进行评论的,每位顾客可以进行多个评论,因此顾客与评论是一对多的关系。餐品,每位顾客可一享用多种餐品,因此与顾客是多对一的关系,每个餐品可以有多个评价,餐品与评价是一对多的关系,每个餐位上可以放置多个餐品,餐品与餐位是多对一的关系。餐位,通过前面的分析,可以知道餐位与顾客是一对一的关系,与餐品是一对多的关系,与订单也是一对一的关系。3.4 本章小结本章主要内容是对本次项目的大体流程进行分析,从中找出数据对象,分析出数据对象具有的属性,然后分析出不同的数据对象之间多具有的联系,其中的联系有四种,即一对一、一对多、多对一和多对多。本章的分析可以为为之后的数据库设计提供需要的表项和每个表中所具有的数据项。同时对于程序的大体流程有了一个初步的把握,对于接下来的总体设计具有一定的帮助。整理为word格式整理为word格式第4章 数据库表设计4.1 数据库表数据库表与前面的数据对象相对应,因此应包含以下几个数据库表:顾客表、餐品表、餐位表、评价表、厨师表、服务员表、订单表和历史记录表。因为后台的登录所需的账号和密码也需要存储,因此在单独设计一个管理员表项。以上九个表项就是接下来进行数据库设计中所需要的表项。4.2 数据库表中的数据项本节分别对不同的表进行分析,找出每个表所需要的数据项,根据相应的数据项来构造出本次项目开发所需要的数据库。4.2.1 顾客表顾客表也就是用户表,是用来存储订餐或者是浏览网站进行其他各种功能的亿注册用户的相关信息的表项,其中应包含的基础数据项是用户名,密码和用户ID,其中用户ID是由系统自动生成,用户名和密码是由顾客自己在注册时设定的13。除了以上包括的基本数据类型,接下来对还应包含的数据项进行分析,顾客与餐厅之间应该有相应的联系方式,但是如果用户不愿透露自己的联系方式,也可以不写,一次可以在设置一个手机号作为联系方式的数据项。对于已经注册的用户,一些用户可能会具有一些额外的功能,这些顾客具有不同的顾客类型,因此可以设置一个用户类型的数据项,为了可以了解用户的信誉,可以设置一个用户信誉的数据项。4.2.2 餐品表餐品表是用来对餐品信息进行管理的数据库表,其中应该包括餐品应当具有的一些基本信息,因此包括餐品名、餐品ID、餐品价格、餐品类型等信息。除了这些基本信息,还应包含一些额外的数据项,这些数据项也是不可或缺的,在用户浏览网站时,最直观的印象还是通过浏览相应的图片获取的,因此可以在添加一个数据项作为相应餐品的图片信息进行保存,例如添加一个餐品图片位置的数据项,同时餐品类型可能会有不同的分类,经过查阅和浏览一些其他的美食类网站,又将餐品类型分为了三个小类型,分别是地方特色、食品特点和口味三类,而每一类中包含了更多的小分类,这样使得用户在查询相应的餐品时可以得到更加准确、更加丰富的餐品。根据餐品是否新近出品的一类食物可以再加入一个是否新品的数据项。为了使顾客更加了解相应餐品的特点,可以再加入一个餐品描述。整理为word格式4.2.3 餐位表餐位表是用来存储和处理餐位信息的数据库表,应包含的基本信息有餐位ID、餐位可供用餐人数、餐位类型、餐位已经被预定的时间列表,餐位类型可以分为三种:是否靠窗、是否单间、是否露天等。4.2.4 评价表评价表是用来存储用户对餐品所做出的评论信息的一个表项,其中应包括顾客ID、餐品名和评价内容,因为评价表不需要每个表项具有唯一的标识,只要知道每一种餐品的即可评价,一次可以不设置评价ID。4.2.5 厨师表厨师表用来存储和处理厨师信息的表项,其中应包含厨师的基本内容,如厨师ID、厨师名、厨师的基本工资等内容,因为顾客可以对厨师进行好评或者是差评,所以还应包含一个好评数据项和一个差评数据项,用于保存用户提交的对于相应厨师的好评和差评,如何为了提供顾客指定相应的厨师为其服务功能,可以为了顾客浏览顾客信息是信息的完整性而提供一个可以看到厨师头像的数据项,对于一些名厨或者是大厨可以提供一个是否为大厨的数据项进行区别,对于不同的厨师可能会有不同的拿手好菜,因此可以提供一个拿手好菜的数据项,比如餐品ID。为了方便与厨师的联系,可以再加入一个联系方式的数据项,例如电话号码。4.2.6 服务员表服务员的存储信息和信息的处理是基于服务员表进行的,服务员表应当包含的数据项包含服务员ID、服务员的基本工资。同时为了反馈顾客的用餐体验,存储用户对服务员的评价,可以再加入好评和差评两个数据项,为了餐厅管理者与服务员可以便利的联系,加入一个用于保存联系方式的数据项,例如电话号码。因为服务员的工作比较简单,没有与餐品等的联系,因此需要的信息比较少,通过以上的数据项就足以保证服务员的所有信息。整理为word格式4.2.7 订单表订单表是用于存储顾客所预定的餐品和餐位的数据库表,也是用于厨师处理订单顺序所需要的表项,因此应包含的基本信息为:订单ID、订单时间、餐品、餐位等基本信息,如果顾客对于厨师也有要求,那么应该再加入一个厨师名称的数据项,为了方便最后的结账,可以再添加一个总价作为多种所预定的餐品的总价的数据项。4.2.8 历史记录表历史记录表是用来存储已经过期的订单表项的,主要是用于顾客查看过往的消费记录,因此包含的数据项为:餐品名称、餐位ID、价格等基本内容,是对于今后餐厅的正常运作影响很小或者是基本没有用的一些信息。主要是为了方便客户,满足客户的更多功能。4.2.9 管理员表管理员表没有具体的功能,主要用于在管理员登录后台系统时验证管理员的账号密码是否正确时所用的,因此可以设计的比较简单,只有一个登录名和密码即可,而且直接在数据库中输入。4.3 数据库表设计表4-1 用户信息表字段名类型长度默认说明gukeIDint5自增用户表主键,设为自增。passwordvarchar10null用户的密码。typeint1not null用户的级别:0为普通、1为VIP。creditint3not null用户的信誉。nicknamevarchar10not null用户的用户名即账号。phonenumbervarchar20null用户的电话号码。表4-2 餐品信息表字段名类型长度默认说明foodIDint3自增餐品表主键,设为自增。foodNamevarchar10not 餐品的名称。整理为word格式nullcoolIDint3not null厨师的ID。 表4-2(续表)picturelocationvarchar20null餐品图片的位置。localcolorvarchar10null餐品的地方特色分类。foodtypevarchar10null餐品的食品特色分类。tastevarchar10null餐品的口味分类。describevarchar255null餐品的描述。NewFoodint1null餐品是否新近出品:0为否、1为是。表4-3 餐位基本信息表字段名类型长度默认说明seatIDint5自增餐位表主键,设为自增。aroomint10null餐位是否单间:0为否、1为是。havewindowint1null餐位是否靠窗:0为否、1为是。outdoorint1null餐位是否露天:0为否、1为是。numberint2null餐位可容纳的人数。useInfIDint6not null餐位可用时间信息表4-4 订单信息表字段名类型长度默认说明orderIDint8自增订单表主键,设为自增。gukeIDint5not null顾客的ID。foodoneNamevarchar10null订单中的第一个订餐。foodtwoNamevarchar10null订单中的第二个订餐。foodthreeNamevarchar10null订单中的第三个订餐。foodfourNamevarchar10null订单中的第四个订餐。foodfiveNamevarchar10null订单中的第五个订餐。cookNamevarchar20null订单中指定的厨师名称。seatIDint3null订单中的座位ID。整理为word格式datedate0null订单的日期。timevarchar20null订单的时间。priceint11null订单的总价。订餐表是一个订单的数据信息表,订单按照餐位和餐品的实际情况进行设计,每个订单表规定最多只能预定五道菜品,一个座位,可以根据自己的喜好选择则或者不选指定厨师为主厨。 表4-5 厨师信息表字段名类型长度默认说明cookIDint3自增厨师表主键,设为自增。cookNamevarchar20not null厨师的名称。salaryint4not null厨师的基本工资。goodint4null厨师的好评。badint4null厨师的差评。phonenumbervarchar20not null厨师的电话号码。bigcookint1null厨师是否为大厨foodIDint1null厨师拿手菜IDpicturelocationvarchar20null厨师个人头像位置表4-6 服务员信息表字段名类型长度默认说明waiterIDint3自增服务员表主键,设为自增。salaryint4not null服务员的基本工资。goodint4null服务员的好评数量。badint4null服务员的差评数量。phonenumbervarchar20null服务员的联系电话。表4-7 历史信息表字段名类型长度默认说明gukeIDint8null历史订单中的顾客ID。foodoneNamevarchar10null历史订单中的第一个餐品。foodtwoNamevarchar10null历史订单中的第二个餐品。foodthreeNamevarchar10null历史订单中的第三个餐品。整理为word格式foodfourNamevarchar10null历史订单中的第四个餐品。foodfiveNamevarchar10null历史订单中的第五个餐品。seatIDint3null历史订单中的座位ID。sumint5null历史订单消费总额。waiterIDint3null历史订单中的服务员ID。cookIDint3null历史订单中的厨师ID。datedate0null历史订单中的日期。timevarchar20null历史订单中的时间。表4-8 评论信息表字段名类型长度默认说明foodNamevarchar10null评论中的食物名称。pinglunvarchar255null评论中的评论内容。 表4-9 管理员信息表字段名类型长度默认说明Managervarchar10not null管理员的登录账号。Passwordvarchar10not null管理员的登录密码。4.4 本章小结通过对数据库表的分析,得到了数据库表的大体结构,最后根据分析的内容得到了数据库表的最终数据项内容,本章做的工作是很重要的一步,对后面进行总体设计和详细设计提供个可供参考的数据库,但是本章也确实需要认真考虑许多因素,因为每一个数据库表中的每一个表项都要根据起具体意义确定长度和是否允许为空。整理为word格式第5章 总体设计5.1 选择设计方案因为本次开发的项目属于一个小型系统,因此可以简化许多问题,比如是否使用框架问题,对于大型项目而言,使用SSH框架可以提高系统开发效率,可以利用许多已经封装好的技术,因此适合公司项目开发,而对于一个个人的项目而言,这样固然可以节省很多力气,但是也会减少许多发现和解决问题的机会,因此选择了使用Jsp+Servlet+Java的开发方式,其中Jsp是用于设计各种页面,Servlet用于使用封装好的Java中的方法处理Jsp页面发出的请求并将处理结果输出,Java的类与数据库中的数据表相对应,并封装SQL方法。这相比于使用SSH框架可能会产生很多问题,但是对于作为一个很好地实践机会是绝对没有问题的。之后就是工具的选择问题,因为前面第2章已经分析过,所以使用的数据库即为MySQL,使用的编码工具为Myeclipse,其中MySQL是免费的开源工具,Myeclipse是用于开发整个项目的工具,使用Myeclipse的原因是因为对此工具的使用比较熟悉,对Myeclipse的各种辅助功能也比较了解。对于功能图和流程图的设计使用的是viso,原因也是工具的熟悉。5.2 设计原理分析1. 为了符合设计原理中的模块化的相关要求,需要将功能模块化,模块化是指把程序分成可以独立访问的模块,每个模块可以完成一定的功能,因此模块化主要是进行Java层次的设计,因此需要设计九个基本类分别用于对应九个不同的数据库表,调用SQL语句将数据库中的数据分别赋值给对应的基本类,将不同数据库表的增、删、改、查通过九个基本类进行实现,对于不同的数据库表的内容的操作也要进行分类封装。2. 抽象化也是设计原理的一个重要因素,在前面第4章已经对项目的操作流程中所具有的对象进行了抽象,分为了九个数据对象,之后对每个对象所具有的属性进行了分析,经过程序编码的过程中对方法的设计,本次项目开发的便是一个具有抽象化的完整对象。3. 逐步求精是一个步步细化的过程,通过前面内容的表述可以看出,一个项目从模糊到逐渐清晰,项目的内容也逐渐细化,随着接下来的详细设计、编码设计和在最后的测试,本项目会逐步求精,逐渐成为一个完整的项目。整理为word格式4. 信息隐藏和独立化,在Servlet层,Java的具体实现方法是隐藏的,只需要知道它的实现功能,而不需要知道它的具体实现细节。5. 模块的独立是系统开发的一个重要内容,也是模块化、抽象化、信息隐藏和局部化的直接结果,模块的独立程度的两个标准是高内聚和低耦合。5.3 功能层次图前台顾客功能图,主要有登录注册、订座、评论、订餐、个人中心模块,其中个人中心可以适当添加新的功能,不同功能模块之间的关系如下图5-1所示。后台功能主要包括餐品、餐位、员工、用户等的信息,如图5-2所示。图5-1 前台功能层次图整理为word格式图5-2 后台系统功能层次图5.4 功能详解登陆功能:输入账号和密码,Jsp页面提交相应的form表单,提交请求到相应的Servlet,在Servlet中得到页面的账号和密码的值,调用Java方法查询顾客信息,与从页面得到的账号和密码的值进行比较,如果找到与数据库中的账号和密码相匹配的值,登陆成功,将用户的账号信息添加到Session中,跳转到主页面进行显示。注册功能:注册功能可以输入基本信息,如用户名、密码、确认密码、电话号码等,如果密码和确认密码的信息不一致,会在下面的状态一栏中显示密码错误,如果没有输入用户名,会显示没有输入用户名的错误提示,未输入密码同样会输入未设置密码的错误,如果显示可注册,那么点击注册按钮会跳转到注册Servlet中,进入Servlet之后,先将页面的请求信息赋值给Servlet中的变量,然后查询数据库,通过判断如果用户名已经存在则回到注册页面并显示用户已存在的信息,否则注册成功,跳转到登录页面进行登录。余座筛选:进入餐位预订页面,显示所有餐位,当选择不同日期和时间,点击查询,跳转到相应的时间筛选方法,将结果显示在页面上。整理为word格式预定座位:当进入餐位预订页面时,对选中的餐位点击预定按钮,如果此时有新建的订单,则将餐位ID保存在相应的餐位Session中,如果尚未存在新建订单,则提示无新建订单,订座失败,并跳转到个人中心页面。订座推荐:订座推荐会根据个人的订单历史记录显示相应的餐位ID,因为订座推荐可以依据的信息只有过往订单中的餐位ID信息,因此只能将此座位座位推荐依据,但是订座推荐中的座位不能预订,因为这些作为是一些固定的座位,可能已经被预定或者正在被使用,此功能只提供一个借鉴的功能。评论模块:评论模块是个人中心得一个子功能,只有登录成功的顾客可以进行评论,这个判断会在进入个人中心时进行,评论可以分为两部分,一是对餐品的评论,二是对员工的评论,对员工的评论有包括对服务员评论和厨师评论,对餐品评论时先选择想要评论的餐品,输入评论内容,然后提交,提交之后后进入Servlet中,在这里调用相应的方法将对餐品的评论和餐品对象存在数据库中,然后返回个人中心,对厨师和服务员的评论只能进行好评和差评,选择相应的厨师或者服务员,选择好评或者差评,点击提交,后台Servlet的处理过程和评论餐品时的后台处理过程类似,只是将相应的好评或者差评通过评论对象添加到相应对象的数据库表中,好评或差评的数量加一,然后返回个人中心页面。订餐模块:首先进入相应的餐品预定页面,将所有的餐品通过查询数据库动态的显示,点击不同的餐品可以进入到相应餐品的详细信息显示页面,在这里可以预定餐品,也可以在餐品预定首页进行预订,预定时的情况和餐位预订一样,如果此时尚未新建订单,则提示预定失败,需要先添加新订单,如果有新订单,则添加到新订单,但是再添加时如果此时餐品预定数量已经达到订单预定上限,则不可预定。个人模块:个人模块可以进行细分,如查看个人信息、修改给人信息、添加订单、查看订单、删除订单、查看历史订单、查看个人用户类型、提升类型,除了上述功能外,评论功能也是在个人中心页面进行的。查看个人信息模块显示个人基本信息,修改个人信息模块可以修改包括密码在内的基本信息,但是不可以修改用户类型、信誉等用户不可操作的信息21,添加订单可以新建一个订单,如果已有新建订单则显示新建订单内已预定的内容,点击提交按钮可以将新建的订单提交到Servlet中,调用相应方法保存到数据库表中,其余几个功能用的方法类似。后台的功能基本类似,下面讲解将主要介绍代表性的功能。整理为word格式添加餐位:添加餐位功能可以输入要添加的新的餐位的基本信息,通过form表单提交到Servlet,Servlet将提交的请求信息通过方法添加到数据库中。查看餐位:查看餐位可以查看所有餐位信息,可以修改和删除具体的餐位,点击删除会直接调用相应的Servlet,在Servlet中根据请求删除的餐位ID使
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!