毕业论文设计餐厅点餐系统的设计与实现.docx
- 文档编号:29659760
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:31
- 大小:1,019.46KB
毕业论文设计餐厅点餐系统的设计与实现.docx
《毕业论文设计餐厅点餐系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业论文设计餐厅点餐系统的设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。
毕业论文设计餐厅点餐系统的设计与实现
餐厅点餐系统的设计与实现
摘要
本设计使用Java语言开发了基于B/S模式的餐厅点餐系统,开发工具是MyEclipse,数据库采用的是SQLServer2008。
系统主要用于餐厅点餐信息管理。
本系统有员工和管理员两个角色。
管理员模块功能主要包括菜品信息管理、员工信息管理、营业信息统计等;员工模块功能主要包括点菜、会员信息管理、餐桌管理、结账等。
系统可以方便用户对餐厅营业信息的管理,能有效提高工作效率。
【关键词】餐厅点餐;管理系统;JSP;SQLServer
Designandimplementationofthe
restaurantorderingsystem
Abstract
ThedesignusesJavalanguagetodeveloptherestaurantorderingsystembasedonB/Sstructure,developmenttoolisMyEclipse,databaseuseSQLServers2008.Thesystemisusedforthemanagementofrestaurantorderinginformation.Thesystemisdividedintotwomodules:
moduleofemployeesandmoduleofadministrators.Theadministratorshavetherightstomanagefoodinformation,employeesinformationandbusinessinformation.Theemployees’rightsincludingorderingfood,managingmemberinformationandtableinformation.Thesystemcanbeconvenientforuserstomanagetherestaurantbusinessinformation,andcanimprovetheefficiencyoftheworkeffectively.
[Keywords]restaurantordering,managementsystem,JSP,SQLServer
1绪论
1.1研究背景
计算机的发明带领人们走入了信息化的社会,它不断的改变着人们的生活和生产方式。
有了计算机的帮助,现在只需要几台机器和一个管理人员就能轻松完成繁琐的工作。
计算机在安全和准确方面也优于人工。
因为计算机在处理工作的时候有着很多优点,所以人们也越来越重视对其的应用。
企业的餐厅点餐系统很多仍然是几年前开发的基于客户端的桌面软件形式的系统,存在着效率低下,使用不便等诸多缺点。
随着科学技术的不断提高,基于WEB的信息管理系统更适合被使用。
如今的网络技术完全可以支撑起一个更加科学合理的信息管理平台,可以为管理者及时的提供的各项信息管理方式。
管理系统近些年来依托着互联网也发展迅速。
被应用在了包括在金融,人事等很多领域。
许多著名的学府都有专门为此设立的学科专业方向。
我国当前的现状是,之前国内许多开发者都把发挥服务器的处理能力作为主要考虑因素,所以很多管理系统使用的是传统的C/S结构。
但是随着发展,开发者逐渐也意识到了传统结构下的模式,在满足了处理能力的同时却忽略了用户在今后使用中容易出现的问题和不便,比如系统的维护升级等。
所以,现在开发者也越来越倾向于使用更加优化的B/S结构[1]。
主要研究内容
本项目结合了用户对信息管理的需求,以真实的工作流程为结构,配合科学的理论体系,设计并开发一个基于B/S结构餐厅点餐系统。
该点餐系统是以简化用户操作、高效处理、节约人力成本为前提。
针对特定的业务流程,结合科学管理的理论,设计并开发了以Myeclipse作为系统的开发平台的餐厅点餐系统,使用了主流的开发结构B/S结构和JAVA开发语言,以SQLServer作为基础数据库。
通过员工和管理员两种角色实现了管理者和使用者职能的区分,在满足了各自功能的前提下,也方便了日常使用和管理。
研究意义
目前,市场上很多基于客户端/服务器端的餐厅点餐系统,随着工作需求的增加,暴露出了很多缺点,比如操作的繁琐,对数据库的更新效率低下等等。
为此,为了能够弥补这些缺点,本文研究了一种基于B/S结构的网络版信息管理系统来解决上述的问题。
无论从操作简便性上,还是操作的效率性上都比先前的系统有着很大的优势。
这种结构的管理系统可能会是今后信息管理系统发展的趋势。
2相关技术
2.1JSP技术简介
JSP是一种动态网页技术标准。
因为JSP技术可以在程序员编写完成后,可以动态的生成界面[2]。
可以灵活方便的响应用户的请求,更加满足了现在社会在Web项目需求大大增加的要求。
加上JSP技术对平台要求的灵活性,越来越受开发者的欢迎。
系统使用的编程语言
Java语言是一种面向对象的程序语言[3]。
因为他较为人性化的从程序员设计程序的角度出发,他在被提出的时候被加以了很多考虑。
无论是他封装、继承、多态的特性,还是他设计的诸多API[6]。
都能帮助程序员更简单灵活的完成编码工作。
2.3B/S结构
B/S结构(Browser/Server是一种削弱了客服端在整个项目中的地位的新结构。
对一些大型的区域网络来说,传统的C/S结构用户的电脑安装的客户端如果出现问题,维修人员需要大量的精力去排查。
而B/S结构可以很好的解决这些问题。
用户的浏览器就是客户端,不再需要安装专门的客户端来使用,维护人员也只需要针对服务器进行管理就能实现高效率的运作[9]。
就针对维护成本方面而言有着绝对的优势。
2.4SQLServer数据库简介
Microsoft推出了关系型数据库SQLServer。
因为有着Microsoft不断发展和投入,近些年来,SQLServer不断升级提高了产品的竞争力,加上数据库本身的简单易用性,因此很受开发者的欢迎。
3需求分析
3.1开发背景分析
信息化社会讲究效率,管理者越来越在意节约人力成本和自动化办公,该点餐系统可以满足餐厅管理者对这方面的需求。
本次要开发的系统无论从效率上,操作的简便程度上还是从日后的维护角度都能够满足工作需要。
用户很容易理解和掌握操作。
因为整个系统模块化划分,可以让以后的维护工作变得更加简单。
3.2功能需求分析
餐厅点餐系统开发的出发点是提高企业的工作效率,把比较繁杂的工作简便化。
如图3-1系统功能图可以划分程序模块。
图3-1系统功能图
菜品信息管理模块:
该模块主要负责管理菜品信息的登记以及管理员对菜品信息的维护,是本管理系统的核心部分,对菜品信息维护包括增加菜品信息、删除菜品信息、修改菜品信息功能。
餐桌管理模块:
该模块主要是让管理员能够对餐桌信息进行操作,可以查看桌餐的状态,修改餐桌的使用情况等等。
就餐信息管理模块:
该模块主要对餐桌点菜和结账的管理。
3.3参与者分析
开发者可以用用例的概念作为解决方案来建立模型,用户需求可以从这个角度来分析描述[9]。
用例模型就是从用户的需求角度出发来设计系统的具体功能。
这样的分析过程对项目初始设计阶段有着很大的帮助。
只有通过软件需求分析,才能为系统总体设计垫定好框架,便于程序员着手编码。
该系统是现代计算机技术和信息分析模型相结合的产物。
用例图可以直观的帮助使用者理解整个项目的职能。
通过以上的分析可以用户和管理员两个角色满足客户的需求,按照所需的职能不同来划分系统,完成不同的功能。
3.3.1用户用例分析
此管理系统的主要功能是登录后对菜品信息和就餐信息的查询操作等功能。
从系统出发来分析,以用户角度来执行不同功能,具体如图3-2所示:
图3-2用户功能分析图
3.3.2管理员用例分析
系统管理员的主要功能是对点餐信息进行管理,图3-3为系统管理员功能分析图。
图3-3系统管理员功能分析图
3.4非功能需求分析
性能需求
为了追求系统的稳定性,要极大程度的降低bug的出现,提高系统对数据库操作的准确性和及时性,为了系统日后能够方便的进行功能的升级和相应的维护,在编排代码时需要将各个代码模块化,分层管理各个功能层。
安全需求
因为一个系统所需要处理的数据可能很大,因此需要能够保证用户在使用时候的响应速度能够安全的处理事务。
同时也要注意避免因为权限限制不足对系统数据库造成的不良影响。
为了更好的保障数据安全,也需要及时的将数据上传备份。
此外,也要把登录时的验证作为重要的一个环节。
可靠性需求
可以从安全和可靠两个角度来分析系统的可靠性[7]。
安全主要考虑数据的安全,要保证用户在操作数据时不会丢失或者有错误情况的出现。
稳定主要考虑系统运行时的平稳,不能有频繁的故障,不能出现无法启动等等故障
运行环境需求
本系统使用地点没有特殊要求,只要简单的计算机配置就可以,具体需要的如表3-1所示:
表3-1需要计算机运行环境
服务器端
客户端
处理器:
Pentium双核以上
操作系统:
windows2000及以上
内存:
1G以上
网络协议:
TCP/IP协议
数据区:
SQLServer2008
浏览器:
IE6以上
4数据库分析与设计
数据库结构组成
本系统包含了表4-1:
管理员信息表、表4-2:
菜谱信息表、表4-3:
餐桌表、表4-4:
分类信息表、表4-5:
会员信息表、表4-6:
员工信息表、表4-7:
预定信息表等,
表的管理图如图4-1所示:
图4-1数据库表关系图
详细有关字段如下所示:
表4-1管理员信息表
字段名
数据类型
长度(字节)
字段含义
是否主键
id
int
4
账号编号
是
username
nvarchar
50
用户名
否
password
nvarchar
50
密码
否
表4-2分类信息表
字段名
数据类型
长度(字节)
字段含义
是否主键
id
int
4
编号
是
fl
nvarchar
50
账号分类
否
表4-3菜谱信息表
字段名
数据类型
长度(字节)
字段含义
是否主键
id
int
4
编号
是
mc
nvarchar
50
名称
否
lb
nvarchar
50
类别
否
pic
nvarchar
150
图片
否
jg
nvachar
50
价格
否
content
text
16
描述
否
表4-4餐桌信息表
字段名
数据类型
长度(字节)
字段含义
是否主键
id
int
4
编号
是
mc
nvarchar
50
名称
否
bz
nvarchar
50
备注
否
zt
nvarchar
50
状态
否
表4-5会员信息表
字段名
数据类型
长度(字节)
字段含义
是否主键
id
int
4
编号
是
username
nvarchar
50
账号名
否
password
nvarchar
50
密码
否
xm
nvarchar
50
姓名
否
sex
nvachar
50
性别
否
dh
nvachar
50
否
表4-6员工信息表
字段名
数据类型
长度(字节)
字段含义
是否主键
id
int
4
编号
是
username
nvarchar
50
账号名
否
password
nvarchar
50
密码
否
xm
nvarchar
50
姓名
否
sex
nvachar
50
性别
否
dh
nvachar
50
否
表4-7预定信息表
字段名
数据类型
长度(字节)
字段含义
是否主键
id
int
4
编号
是
czid
nvarchar
50
餐桌编号
否
xm
nvarchar
50
姓名
否
dh
nvarchar
50
否
4.2系统数据库连接
JDBC驱动把程序对数据库的连接、发送处理请求和响应结果三件事封装了接口,独立于整个管理系统。
这样可以在设计程序之初,不必要去考虑用户会使用什么数据库,等真正到应用的时候只要将修改对应的数据库连接端口。
这样可以大大的提高了程序的可对接性。
因为将数据库连接也作为了一个模块存在,并且JDBC直接调用SQL命令,这样不仅提高了灵活性,也提高了对数据库操作的效率。
本系统通过JDBC连接数据库的源代码如下:
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver";
cnt=DriverManager.getCntection("jdbc:
sqlserver:
//localhost:
1433;DatabaseName=ctzz","grall","jugle123");
startwork=cnt.createStatement();
}
catch(Exceptionex)
{
ex.getMessage;
}
}
publicvoidclose()
{
try
{
//connMgr.freeCntection("java",cnt);
cnt.close();
}
catch(SQLExceptionex)
5系统实现
下面将展示系统中的模块功能和实现,首先我将介绍项目中间的各个文件,如图5-1所示:
图5-1项目总览图
是对管理员登陆、增加、修改、删除操作的封装。
N主要是中的对菜品进行管理的servlet组件。
TestS主要是对菜品的分类、菜品的删除、员工的录入、删除、更新等操作的封装。
包中的A主要是对管理员登陆、修改密码、登陆记录查询等文件的封装。
S主要是系统核心设置组件。
C主要是对数据库查询的分页功能进行封装。
中Common.java是对一些常用方法的封装,比如对输出字符串的过滤等等。
C是声明了代码中的常量。
DBO.java是对数据库连接的封装。
d:
WebRoot为工程视图层代码。
5.1身份验证模块
用户登录系统前,浏览器会呈现账号和密码输入的文本框,并且有选择自己的身份的下拉菜单。
用来检验用户的身份。
系统登录包括员工和管理员两种权限,在填写用户名称和用户密码后,用户提交的表单和提交到后台,通过查询数据库进行比较,如果有相对于的记录就可以通过,相反的就是不通过。
具体的登录流程如图5-2所示:
图5-2登录流程图
用户登录界面效果,如图5-3所示:
图5-3用户登录界面
登录时,当用户在文本框中提交了信息后点击登录,会触发按钮事件checklogin()对用户输入合法性进行验证,然后通过index.jsp中的from表单提交到servlet的访问路径Admin下,然后通过Post方法提交到com.action包下的A中,接着通过创建了Adminbean对象然后连接数据库提取数据库中的信息与session中用户输入的数据进行比较。
如果验证成功就通过servlet响应成功界面。
如果验证不成功就会返回如图5-4的错误提示并且返回到登录页面。
图5-4错误登录信息提示图
用户登录的关键代码如下:
a:
,
method=ygslogin"method="post">中向servlet中的访问路径admin提交了用户输入的信息。
b:
在配置文件web.xml中,根据访问路径找到对应的注册组件AdminAction.
c:
在A中:
if(method.equals("ygslogin")){//
StringuserInfo=request.getParameter("username").trim();
//获取用户在浏览器端输入的username信息
StringpswInfo=request.getParameter("password").trim();
//获取用户在浏览器端输入的password信息
if(nameInfo==null||pswInfo==null){
request.setAttribute("message","对不起,输入错误!
");//给用户提示出错
}
else{
ComBeancomb=newComBean();//创建了一个ComBean对象
Stringrole=request.getParameter("sf");
//获取用户在浏览器选择的角色
if(role=="管理员"){//判断管理员登陆的执行代码
Stringid=comb.getString("Selcetidfromadminwherepassword='"+pswInfo+"'"andusername='"+nameInfo+"'");
//在数据库中查找与输入的信息能配对的信息
if(id=null){
request.setAttribute("message","对不起,没有找到该用户,请检查输入是否正确!
");//给用户提示错误的信息
}else{
session.setAttribute("user",nameInfo);//把信息绑定到seeion上
request.getRequestDispatcher("admin/index.jsp").forward(request,response);//成功后响应给用户界面
}
}
else{
StringroleId=comb.getString("selectidfromygwhereusername='"+nameInfo+"'andpassword='"+pswInfo+"'");
if(roleId=null){
request.setAttribute("message","登录信息错误!
)}
else{
session.setAttribute("user",nameInfo);
request.setAttribute("message","您的操作已经成功!
)}
}
管理员管理模块
管理员成功通过了登录验证后进入页面,如下图所示5-5管理员登录成功页面所示:
图5-5管理员登录成功页面
菜品信息管理功能
如图5-5显示点击左边菜品信息管理可以对菜品进行管理、添加、查询等操作,点击菜品信息管理会得到如图5-6菜品管理操作页面所示:
图5-6菜品管理操作页面
流程如下:
a:
用户在点击添加菜品信息后会出现如图5-7所示的添加界面。
图5-7添加菜品的界面
b:
输入:
if(method.equals("addcp")){//增加
Stringmc=mySmartUpload.getRequest().getParameter("mc");
//获取提交的菜品名称
Stringlb=mySmartUpload.getRequest().getParameter("lb");
//获取提交的菜品类别
Stringjg=mySmartUpload.getRequest().getParameter("jg");
//获取提交的菜品价格
Stringcontent=mySmartUpload.getRequest().getParameter("content1");
//获取提交的菜品描述
SmartFilefile=mySmartUpload.getFiles().getFile(0);
//创建上传的对象
StringfileExt=file.getFileExt();
//获取上传内容
Stringpath="/file";
//上传的路径
count=mySmartUpload.save(path);
intresult=cBeanUp("insertintocp(mc,lb,pic,jg,content)values('"+mc+"','"+lb+"','"+path+"/"+file.getFileName()+"','"+jg+"','"+content+"')");//对cp表进行对应信息的插入
c:
在cp/index.jsp中对查询结果进行表格打印,并且对删除,修改按钮增加了超链接指向:
method=upcp&id=<%=pagelist2.
get(0).toString()%>">修改传递了名称为upcp的方法请求和对应参数。
删除指向了为ComServlet的注册组件ComServlet.java,并且传递了名称为delcp的方法请求和对应的参数。
d:
点击修改在cp/add.jsp中,查询出该条数据并且显示在格式中
e:
表单提交给了servlet的注册路径文件中找到对应的组件N。
if(method.equals("upcp")){//修改
Stringfnumb=mySmartUpload.getRequest().getParameter("id");
//获取菜品的编号
Stringfname=mySmartUpload.getRequest().getParameter("mc");
//获取菜品的名称
Stringfkind=mySmartUpload.getRequest().getParameter("lb");
//获取菜品的类别
Stringfprice=mySmartUpload.getRequest().getParameter("jg");
//获取菜品的价格
Stringfcont=mySmartUpload.getRequest().getParameter("content1");
//获取菜品的描述
SmartFilefile=mySmartUpload.getFiles().getFile(0);
//创建文件上传的对象
StringfileExt=file.getFileExt();
Stringpath="/file";
count=mySmartUpload.save(path);
intorgl=cBeanUp("updatecpsetmc='"+fname+"',lb='"+fkind+"',pic='"+path+"/"+file.getFileName()+"',jg='"+fprice+"',cont
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 设计 餐厅 系统 实现