网上订餐系统的理论基础和设计思想
毕 业 设 计 说 明 书
课题名称 网上订餐系统 号
学生姓名
院 系 专 业 班 级 学
指导教师:
年 月 日
计算机与软件学院
毕业设计(论文)诚信承诺
我谨在此承诺:本人所写的毕业论文《网上订餐系统》,系本人完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释与说明,若有不实,后果由本人承担。
承诺人(签名):
年 月 日
摘 要
论文主要探讨“网络订餐系统”的理论基础和设计思想,根据系统的开发过程和系统的功能实现为主线来论述数据库管理软件的开发过程。主要阐述以软件工程理论作为系统开发的理论基础,以客户机/服务器模式的关系型数据库作为后台,以专业数据库开发语言作为实现手段的数据库管理软件的开发过程分析和理论研究。
本系统是基于Jsp的网页式设计,企业可以通过一台服务器与多台客户机相连接,通过后台数据库的建立与设置,软件界面的设计与实现,程序的编写与调试等几个阶段来完成对订餐管理系统的开发。
本论文详细地介绍了开发系统的具体步骤,以及应用的技术,以配图例的方式详尽说明,并在文中对一些源程序作了详细的解释。
关键词:Web;JspAbstract
This dissertation mainly discussed the basic theory and designation of “Making Restaurant Reservation on web”, and the developing procedure according to system developing procedure and function realization. The essay also mentioned database management software's developing procedure analyse and theory study by using software project theory as the theoretic basis of system developing , the C/S model relating database as the background and the professional database as the developing language applying method.
This system is according to Jsp web page type design, the business enterprise can connect with each other with several customer's machine through a server .By building and setting up background database, designing and applying software
interface, programe writing and debugging, developed “House Agency Management Information System”.
This dissertation introduced the specific steps in developing the system ,as well as the technical skill applied, presented with graphics and specific instruction and some source code has been explained particularly.
Keywords: Web;Jsp;Making Restaurant Reservation on web Management
Information ;目 录
1 绪论 1
1.1 开发背景 1
1.2研究意义 1
1.3 JSP的运行原理 1.4 系统的运行环境 2 系统分析 4
2.1 需求分析 4
2.1.1 任务概述 4
2.1.2 需求描述 4
2.1.3 面向的用户群体 2.2 开发环境 5
2.3 功能分析 5
1
3
5
2.3.1 系统用例图 5
2.3.2 系统业务流程分析 7
3数据库设计 9
3.1 数据库E-R图 9
3.2 数据库表的设计 10
4 系统详细设计 12
4.1 系统架构层次 12
4.2 系统模块设计 12
4.2.1 总体模块功能描述 12
4.2.2 用户模块功能描述 13
4.2.3 菜式模块共描述 14
4.2.4 留言板模块功能描述 15
4.2.5 后台管理员模块功能描述
15
5 系统实现 17
5.1 用户注册 17
5.2 用户登录 18
5.3 在线订餐 19
5.4 购物车 21
5.5 订单管理 24
5.6 留言板 25
6 系统测试 26
6.1 单元测试 26
6.2 功能测试 26
6.2.1 系统管理模块的功能测试 6.2.2 菜肴管理模块 27
6.2.3 订单管理模块 27
27
6.2.4 购物车模块 27
6.2.5 留言板模块 27
致 谢 28
参考文献 29
1 绪论能足不出户,轻松闲逸地实现自己订购餐饮和食品(包饭、菜、盒饭便当等)餐饮业是一种个性化、多样化的服务产业。随着网络技术的发展和普及,将餐饮服务与个性化、多样化服务的电子商务相结合,形成了方便、快捷、个性化的网上订餐系统,通过网上订餐,顾客不必亲临现场,便可以为自己、家人、朋友聚会等置办一份既营养又实惠的美食。其最大的优势在于:图文并茂,信息能够及时更新和在线查看,并有效地解决了传统就餐过程出现的排队,拥挤,信息不能及时更新的现象。这样既节省了时间,也可以为广大用户提供更多选择”.jsp”文件编译成Java Class文件。当Servlet引擎接收到请求后,如果设置了使用最新的JSP,它就会去找JSP文件,检查该文件在上次编译后是否改动过。如果改动过,就会重新编译生成新的Servlet,最终将请求转交给编译好的Servlet引擎执行。如图1.1所示:
图1.1 JSP运行原理
在编译时如果发现JSP文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译成功,则所转换产生的Servlet代码被编译,然后该Servlet被JSP引擎加载到内存中。此时JSP引擎还请求了jspInit 方法的执行,并对此Servlet初始化。JspInit 方法在Servlet的生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该JSP文件的请求,服务器将检查该JSP文件自最后一次被存取后是否经过修改。如果没有修改,则将请求交还给还在内存中的Servlet的jspService 方法,执行回复操作。由于Servlet始终驻于内存,所以响应是非常快的。Jsp页面在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件了,所以速度非常得快。
1.4 系统的运行环境
要运行Jsp,需要有支持Jsp的服务器。这里分2种情况:一种是自身就支持Jsp的服务器,如Weblogic,JSWDK等;而另一种则是在不支持Jsp的服务器上安装Jsp引擎的插件,如在IIS,Apache等服务器上安装WebSphere,tomcat等插件。其中主流服务器是Weblogic和tomcat.
Weblogic是一款功能强大的服务器软件,配置比较简单,而且Jsp的扩展功能较多,附带了数据库的JDBC驱动程序。,支持JHTML 一种与Jsp十分相似的技术 ,是目前市场占有率最高的服务器。不过,Weblogic的运行情况不太稳定,使用它调试Jsp文件,出现语法错误或者数据库连接错误时,Weblogic就有可能崩溃。
Tomcat服务器是Apache Group Jakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。Tomcat服务器的兼容性很好,如WebLogic服务器采用其为Web服务器引擎,Jbuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。不足之处是它的配置比较麻烦,而且有一些安全性的问题没有解决。但是Tomcat服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。本系统就是用该服务器的。
2 系统分析
2.1 需求分析
2.1.1 任务概述
综合应用主流Jsp技术,Struts Web框架技术,数据库技术,软件测试技术,网站部署与发布等技术,遵从IT企业生产性项目的软件产品生命周期开发工程模型或敏捷开发及
持续集成模型,应用软件工程相关工具,完成网上订餐系统。
根据系统说明书进行新系统的物理设计,提出一个由一系列模块和元素组成的新系统设计方案。通常分为总体设计和详细设计两个阶段。
总体设计阶段的主要任务是:系统模块结构的设计、系统整体框架设计。
详细设计阶段的主要任务是:数据库设计和数据文件的设计、编码设计、输入/输出设计、模块逻辑设计、包的设计、各模块类的设计等。
在该项目中系统被分为四大模块:菜色展示购物车1 菜色展示系统
展示系统是一套基于数据库平台的即时发布系统,可用于各类的展示、添加、修改和删除等。网站管理员可以管理简介、价格、图片等多类信息。浏览者在前台可以浏览到的所有资料,如价和详细介绍等信息。2 购物车
购物车能够帮助顾客通过存放的信息,将们列在一起,并提供商品的总共数目和价格等功能,方便顾客进行统一的管理和结算。
搜索系统
商品搜索在网站中也是一项很重要的功能,主要帮助用户快速地找到想要购买的。可以利用数据库和信息检索技术为用户提供商品及其他信息的查询功能。
后台管理
后台管理在考虑管理操作简便的同时,要提供强大的管理模式,包括管理员角色的设置,商品管理订单管理网站基本信息管理等。本系统所面向的用户群分为网上者、网站管理人员两种。网上者网站管理人员客户端软件操作系统:Windows 2000 / XP /ista、Win7
浏览器:IE6.0及以上版本、FireFox等
服务器端软件操作系统:Windows 2000 Server或更高版本Web服务器:Tomcat数据库产品:SQL Server 2000网上系统图
图2.1 网上系统图
图2.2 系统业务流程图
3数据库设计
3.1 数据库E-R图
根据数据库表的设计,绘制网上订餐系统的数据库E-R图,见图3.1所示:
图3.1 数据库E-R图
3.2 数据库表的设计
此在线订餐系统采用SQL Server 2000数据库管理系统。首先用户需要在SQL Server 2000中建立一个数据库,将其命名为EDinner,然后根据数据库的逻辑结构分析创建7张数据表。
1.用户表(Users):用于存放注册用户和管理员的记录,见表3.1所示。
表3.1 My-Users表结构
2.购物车表 OrderList :用于存放顾客所购买的菜肴信息,见表3.2所示。
表3.2 OrderList表结构
菜肴信息表 CMenu :用于存放初始的菜肴信息,见表3.3所示。
表3.3 CMenu表结构
订单表(Korder):用于存放订单数据,见表3.4所示。
表3.4 Korder表结构
分店表 Area :用于存放分店的信息数据,见表3.5所示。
表3.5 Area表结构
帮助文件表 CHelp :用于存放用户指南之类的数据,见表3.6所示。
表3.6 CHelp表结构
留言表 Cmemo : 用于存放用户留言的信息,见表3.7所示。
表3.7 Cmemo表结构
4 系统详细设计
4.1 系统架构层次
该网络订餐系统通过三层架构层次来实现,以确保系统运行的可靠性和安全性,下面是层层之间的关系,如下图4.1所示:
图4.1 系统架构层次
4.2 系统模块设计
4.2.1 总体模块功能描述
该系统主要分为前台用户、游客,后台管理员权限,根据对顾客网上订餐系统业务流程的分析,已看出顾客点菜主要涉及到一些数据库的逻辑和程序应用逻辑。
顾客登录网上订餐系统进行菜单浏览、顾客注册为会员。会员对自己的个人信息进行更改,比如送餐地址和。以及账户密码。顾客对已选的菜单进行更改选择的数量或者取消选择。当顾客确定订餐完毕后,顾客将其提交只服务器后台点餐系统,并生成订单。生成订单后,进入付款页,可以多数量购买,价格要跟着数量增加,可以增删菜品。管理员在后台登录后,可以创建新的管理员。管理员可以对餐厅网上订餐系统上的菜单进行添加、删除和修改,比如更改菜单的图片,价格,菜单的描述,更换新品,添加新菜,每周更新一次菜谱等。管理员对菜单进行管理,确定订单的生成。管理员根据不同的属性来查询订单,比如生成日期或者编号等,系统功能模块结构图如图4.2所示:
图4.2 系统功能模块结构图
4.2.2 用户模块功能描述
用户功能:
网站用户可以进行注册行为,输入资料提交至hillMan数据库的user1表之中。注册成功之后,直接登录。
用户可以进行登录行为,登录后会根据其先前注册的资料,验证用户的合法性,并跳转到指定页面上。
用户资料修改是为用户更改个人信息所提供的窗口,用户只有登录网页后才有权限修改个人资料信息。
用户访问网上订餐系统时,可以注册或登录,然后进行相关的订餐操作,操作流程如下图4.3所示:
图4.3 用户功能结构图
4.2.3 菜式模块共描述
菜式:
用户通过使用购物车程序,可以使得网上购物更方便、更快捷。用户要购买商品,首先要将其放人购物车。同时用户还可以查看,修改购物车里的商品数量,系统将自动计算
商品总价格等等。
菜式列表供用户选择所需的菜式,将其加入购物车,注册用户可以下订单,如下图4.4所示:
图4.4 菜式功能结构图
4.2.4 留言板模块功能描述
留言板:
访客可以进入留言板,根据相关主题进行留言,注册用户可以创建新帖,如下图4.5所示:
图4.5 留言板功能结构图
4.2.5 后台管理员模块功能描述
后台管理员:
管理菜式的添加,删除,修改,订单的删除,修改,留言的删除,用户的查看,如下图4.6所示:
图4.6 后台管理员功能结构图
5 系统实现
5.1 用户注册
用户信息包括用户名、用户密码,,联系地址,点击“注册”,如果用户没输入必要的字段,就会提示用户输入,完成注册。
用户注册页面设计如图5.1所示:
图5.1 用户注册图
首先把reg.jsp文件的表单属性设置成 form name \"form2\" method \"post\" action \"add.jsp\" ,再用JSP中request对象的getParameter方法获得FORM表单信息。具体代码如下:
%
Class.forName
\"com.microsoft.jdbc.sqlserver.SQLServerDriver\" .newInstance ;
String url \"jdbc:microsoft: Edinner\";
String user \"sa\";
String password \"\";
Connection conn DriverManager.getConnection url,user,password ;
Statement stmt conn.createStatement
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE ;
String name String request.getParameter \"uname\" ;
String psw String request.getParameter \"passWord\" ;
String phone String request.getParameter \"phone\" ;
String address String request.getParameter \"address\" ;
String sql \"insert into users UserName,psw,U_Phone,U_Address,Power values '\"+name+\"','\"+psw+\"','\"+phone+\"','\"+address+\"',2 \";
stmt.executeUpdate sql ;
response.sendRedirect \"ok.jsp\" ;
%
5.2 用户登录
用户登陆模块实现用户登陆功能,它验证用户提交的用户名和密码是否被授权,如果登录名为空,会提示请输入用户名,如果密码没输入或输入错误,会输入密码为空或错误,并根据访问权限为用户提供相应的业务功能。
用户登页面设计如图所示5.2所示:
图5.2 用户登录界面设计
用户只有登录系统后才能订餐。登录时,用户需要在login.jsp页面中输入用户名和密码并提交到check.jsp中。check.jsp核实用户名和密码正确后,才允许用户登录,正确登录后用户就可以查询菜肴信息拉。
这里是用Session对象的setAttribute方法设定指定名字的属性值,同时用request对象的getParameter方法获得用户名以及密码,代码如下:
% …………
session.setAttribute \"login\
…………
String name String request.getParameter \"uname\" ;
String psw String request.getParameter \"passWord\" ;
String sql \"select * from My_Users where UserName '\"+name+\"' AND PassWord '\"+psw+\"'\";
ResultSet rs stmt.executeQuery sql ;
%
获取到用户名和密码后,将它与用户表中的用户名和密码进行核对,如果一致则是合法用户,可以登录进入showmenu.jsp页面,如果不是则返回login.jsp主页重新输入。
%
if !rs.next
response.sendRedirect \"login.jsp\" ;
else
//session.setAttribute \"login\
if rs.getInt \"Power\" 1
session.setAttribute \"login\
else if rs.getInt \"Power\" 2
session.setAttribute \"login\管理员,2 客户
session.setAttribute \"username\
response.sendRedirect \"showmenu.jsp\" ;
%
5.3 在线订餐
用户登录系统后,就可以购买美味了。购买时,用户需要查看都有哪些菜,这就需要一个菜单列表列出店中所有的菜肴。列表对应的是showmenu.jsp页面,主要内容有菜名、说明、图片、价格。进入详细介绍页面后,用户可以选择份数来订购了,订餐页面设计如图5.3所示:
图5.3 菜肴展示图
在列表页面中单击“图片”超链接,可以查看菜肴的详细信息。每份菜肴还需要提供“添加到购物车”的按纽,以便用户能够方便地购买,菜肴详细介绍如下图5.4所示:
图5.4 菜肴详细介绍图
5.4 购物车
用户查看购物车对应的是shoplist.jsp页面。此页面提取当前用户的所有订单列表,用户可以在该页面上修改自己的购物车,将自己不想买的菜删除,用户查看购物车如下图5.5所示;
图5.5 购物车管理图
代码实现如下:
orderInfo.jsp页面 %
String uname String session.getAttribute \"username\" ;
%
form action \"order.jsp\" method \"post\" onSubmit \"return check \"
table cellspacing 1 cellpadding 4 width \"92%\" height \"100\" border 0
align \"CENTER\" bgcolor \"#c0c0c0\"
tr bgcolor \"#dadada\"
td colspan \"5\" height \"25\" align center font color \"#000000\" 请确认支付和配送信息
tr bgcolor \"#ffffff\"
td width \"22%\" align \"RIGHT\" font color \"#000000\" 订 餐
人:
td colspan 4 width \"78%\" % uname%
input type \"hidden\" name \"cname\" value \" % uname% \"
font id \"us\"
tr bgcolor \"#ffffff\"
td width \"22%\" align \"RIGHT\" font color \"#000000\" 送货地址:
td colspan 4 width \"78%\" input type \"text\" name \"address\"
length \"200\" onBlur \"address \"
font id \"addr\"
tr bgcolor \"#ffffff\"
td width \"22%\" height \"31\" align \"RIGHT\" font
color \"#000000\" :
td colspan 4 width \"78%\" height \"31\" input type \"text\"
name \"tel\" length \"13\" onBlur \"telcalled \"
font id \"telmsg\"
tr bgcolor \"#ffffff\"
td width \"22%\" align \"RIGHT\" font color \"#000000\" 应付金额:
td colspan 4 width \"78%\"
人民币: % new DecimalFormat \"0.00\" .format session.getAttribute \"total\" % 元
font id \"money\"
tr bgcolor \"#ffffff\"
td width \"22%\" height \"31\" align \"RIGHT\" font
color \"#000000\" 配送方式:
td colspan 4 width \"78%\" height \"31\"
table width '100%' border '0' cellpadding '3' cellspacing '1'
bgcolor '#c0c0c0'
tr bgcolor '#ffffff'
td align 'center' width '100' 送餐上门
font color '#000000' 10元起送
tr bgcolor \"#ffffff\"
td width \"22%\" height \"31\" align \"right\" font
color \"#000000\" 订单附言:
td colspan 4 width \"78%\" height \"25\" textarea name \"notice\"
rows \"6\"
tr bgcolor \"#dadada\"
td colspan \"5\" height \"12\" align \"center\" input type \"submit\"
value \"确认以上信息无误,提交\" 如果购买的菜超过两份,则系统将其金额累加,代码如下:
%
ResultSet rs1 stmt.executeQuery sql1 ;
float n 0;
while rs1.next
String m rs1.getString \"Prince\" ;
n+ Float.parseFloat m ;
%
font color \"#000000\" 总金融 % n %
%
图5.6 订单管理页面
5.6 留言板
用户登陆后,可以再留言板发表自己的看法,也可以在此给我们留言,留言板页面如下图5.7所示:
图5.7 留言板界面
6 系统测试
6.1 单元测试
黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。
黑盒测试主要采用的技术有:等价分类法、边沿值分析法、错误推测法和因果图等技术。1.划分等价类并编号,如表6.1所示:
等价类划分 等价类 有效等价值 无效等价值 用户名 一到二十长度的字符
串 空字符超过二十长度的字符串 的字符串
表6.1 等价类划分表
密码 一到二十长度的字串 空字符超过二十长度
2.设计测试用例,以便覆盖所有有效等价类。测试数据用户名为“chenlin”密码为“fastkk”,测试数据有效,覆盖的有效等价类、。
3.为每一个无效等价类设计一个测试用例
测试数据用户名:“”密码:“xxxxxxxxxxyyyyyyyyyyzzz”,测试数据无效,覆盖的有效等价类、。
测试数据用户名:“xxxxxxxxxxyyyyyyyyyyzzz”密码:“”,测试数据无效,覆盖的有效等价类、。
测试数据用户名:“”密码:“”,测试数据无效,覆盖的有效等价类、。
测试数据用户名:“xxxxxxxxxxyyyyyyyyyyzzz”密码:“xxxxxxxxxxyyyyyyyyyyx”,测试数据无效,覆盖的有效等价类、。
6.2 功能测试
6.2.1 系统管理模块的功能测试
在此模块中,系统管理员用户登陆后能进行查看、增加、删除、更改、查询、非系统管理员用户权力有限,不能进行这个模块的功能。
6.2.2 菜肴管理模块
在此模块中,系统管理员可以对菜肴项目进行添加,删除操作。
6.2.3 订单管理模块
在此模块中,信息管理员用户登陆后能进行查看、处理订单记录。
6.2.4 购物车模块
在此模块中,用户登陆后能进行查看、删除购物车中的内容。
6.2.5 留言板模块
在此模块中,用户可以留言,并查看所有的留言。
致 谢
在本次毕业设计实践中,指导老师在做人、敬业、创新思维等方面,均给予我极大的帮助,使我很受启发。本系统功能还不是十分的完善,但基本上能完成用户在网上订餐。其主要功能有用户登录,菜单查询,购物车,以及订单处理等功能。界面简单明了,易操作。
通过毕业设计我学到了很多新知识,个人能力得到很大的提高。在设计中经常遇到种种困难与挫折,这个时候我总是联系导师,他不但给予我的很多的鼓励,而且在设计上提出了很多正确的建议和善意的批评。总之,我的毕业设计的顺利完成离不开他们的帮助,在此,我对他们表示衷心的感谢!
不过对我来说,由于时间有限,也包括我们的知识水平有限,系统中有不足之处,还请各位老师指导指正。
参考文献萨师煊王珊数据库系统概论 北京高等教育出版社,200.2.
[2]程志艳,张亮,马建红,《JSP实用简明教程[M]》, 北京杨学瑜,王志军,刘同利JSP入门与提高 北京清华大学出版社,2002.3黄理JSP轻松开发WEB网站北京希望电子出版社2003.11.
[5]刘彬,《JSP数据库高级教程[M]》,北京[6] 吴其庆著JSP网站设计经典教程北京冶金工业出版社.20014.
[7] 潘郁主著电子商务数据库技术北京北京大学出版社.20025.
[8] 蒋瀚洋李月军,庞娅娟SQL Server 2005数据库管理与开发教程[M].,北京人民邮电出版社2009.7
[9]孙卫琴,李洪成《Tomcat 与 Java Web 开发技术详解》电子工业出版社,20036
[10]孙一林,彭波《Java数据库编程实例》清华大学出版社,2002[11]耿祥义,张跃平《JSP实用教程》,2003.5
JSP语法分析器
Java编译器
类载入器
JSP
parser
Java
complier
Class
loader
JSP引擎
Servlet引擎
JSP
engine
Servlet
engine
服务器扩展
Server
extension
响应(Response)
Web Server
请求(Request)
Client
客户端
失败
成功
注册额
浏览菜肴
游客
用户管理
查看订单
是
否
菜谱管理
订单管理
管理菜系
登陆
订餐
管理员
用户
密码验证
用户
显示留言
在对应主题下发表留言
显示创建的主题
登录后创建主题
留言板
查看菜的详细信息
订单
填好用餐时间和地点确认后生成订单
购物车
选择用户所需的菜式,加入购物车
菜单
用户进行相关操作导向的页面
根据选项可以对用户信息进行修改,查看购物车,查看订单,或者退出
进入登陆后的页面
登录
登录页面
注册
进入注册页面
用户
管理用户
管理菜肴
订单管理
管理留言板
管理模块
更新信息
在线订购
我的订单
用户模块
网上订餐系统
Class
逻辑层
业务层
数据库
Db
xxx.jsp
Dao层
Service 层
Servlet层
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务