范文一:网上订餐毕业论文
毕业论文
题目:
网上订餐系统的设计与实现 系 别: 物联网工程学院 专 业: 计算机应用技术 学 号: 姓 名: 指导老师: XXXX 年X 月X 日
前言
21世纪是个互联网的时代,2015年7月23日,中国互联网络信息中心(CNNIC)在京发布了第36次全国互联网发展统计报告。报告显示,上半年我国共新增网民1894万人;截至2015年6月,互联网普及率为48.8%,我国网民总数已达6.68亿人。其中中国手机网民规模达5.94亿,较2014年底增加3679万人。随着2003年淘宝的诞生,于是网上购物便成了大家的追捧。所以,大家都喜欢呆在家,玩着手机,网购。如果累了,就直接打电话叫外卖。没有图片,只有菜名和价格。只能凭感觉去点。于是,我根据这一现象,开发了这套网上订餐系统。通过实际的演练,效果非常的好,取得了一定的价值,让客户有了更多的选择空间,可以在家慢慢的选择自己想要的食物。
摘要
从客户的需求出发,针对客户目前的订餐现状进行了调查分析,设计了一套实用的网上订餐系统,实现了网上订餐、在线付款等功能。
通过对以上目标的分析,经过认真的筛选,所以本系统我选择采用ASP.NET 技术作为创建应用程序的方式,以C#作为编程语言,采用SQL Server 数据库作为后台数据库。
论文按照网上订餐的理念对本系统的进行了开发。首先对系统开发背景、开发平台、系统分析进行了描述;其次是系统设计,其中包括了数据库设计和主要模块流程图。同时,论文还对系统中各个功能模块给出了详细的说明,对相关信息系统的开发具有较好的参考意义。
关键字:Microsoft SQL Server 2005、C#、ASP.NET 、网上订餐系统
Abstract
From the customer demand of current customers ordering of the investigation and analysis of the status quo for design a set of practical online ordering system, complete system can be achieved online ordering and other functions.
Through the analysis of the above objectives, after careful screening, so this system I choose to use ASP.NET technology as a way to create the application, C# as the programming language, using Server SQL database as the background database.
According to the concept of the online meal ordering system are designed. First of all, the system development background, development platform, system analysis are described, followed by the system design, which includes the database design and the main module flow chart. At the same time, the paper also gives a detailed description of each function module in the system, which has a good reference value for the development of the related information system.
Key Words:Microsoft SQL Server 2005、C#、ASP.NET 、Online meal ordering system
目 录
前言 ................................................................... I 摘要 .................................................................. II Abstract ............................................................. III 目 录 ................................................................. IV
第一章 课题背景 ........................................................ 1
第二章 开发平台 ........................................................ 2
2.1 ASP.NET简介 .................................................... 2
2.2 SQL Server简介 ................................................. 3
2.3 C#简介 .......................................................... 3
第三章 系统分析 ........................................................ 4
3.1总体目标 ........................................................ 4
3.2可行性分析 ...................................................... 4
3.3 业务流程分析 .................................................... 4
3.4 功能需求分析 .................................................... 4
3.4.1功能需求 ................................................... 4
3.4.2功能结构图 ................................................. 5
第四章 系统设计 ........................................................ 6
4.1 数据库设计 ..................................................... 6
4.1.1数据库概要说明 ............................................. 6
4.1.2数据库概念分析 ............................................. 6
4.1.2数据库逻辑设计 ............................................. 6
4.2主要模块流程图 .................................................. 8
4.4.1后台 ....................................................... 8
4.4.2前台 ....................................................... 9
第五章 系统实现 ....................................................... 11
5.1 系统主界面 ..................................................... 11
5.2 菜单信息维护界面 ............................................... 12
5.3 订单审核 ....................................................... 15
5.4 用户注册 ....................................................... 18
5.5 购物车 ......................................................... 21
5.6 用户订单 ....................................................... 22
结束语 ................................................................ 25
致谢 .................................................................. 26
参考文献 .............................................................. 27 前言 ............................................................................................................................................................ I 摘要 .......................................................................................................................................................... II Abstract .................................................................................................................................................. III 目 录 ....................................................................................................................................................... I V
第一章 课题背景 ..................................................................................................................................... 1
可行性分析总共分为管理可行性、设备可行性、经济可行性这三大部分。首先,先要说的是管理可行性,现在上网的人越来越多,所以大家对电脑的基本操作与维护是完全没有任何问题的。其次,就是设备可行性,运行本系统只需要一台电脑,本系统支持Windows XP 。
最后,就是经济分析,此系统是对外开放的,任何人都可以在本系统中进行免费注册。 .... 4
3.4.1 功能需求 ....................................................................................................................... 4
3.4.2 功能结构图 ................................................................................................................... 5
第四章 系统设计 ..................................................................................................................................... 6
4.1.1 数据库概要说明 ........................................................................................................... 6
4.1.2 数据库概念分析 ........................................................................................................... 6
4.1.3 数据库逻辑设计 ........................................................................................................... 6
4.4.2 前台 ............................................................................................................................... 9
第五章 系统实现 ................................................................................................................................... 11
致 谢 ....................................................................................................................................................... 26
第一章 课题背景
现在是互联网飞速发展的时代,我们也迎来了4G 的时代,上网速度越来越快,上网的人也越来越多。大家都喜欢在网上购物、看电影、看新闻等,从而就有很多人喜欢宅在家里上网,玩着玩着就忘记时间,饿了就叫外卖。
首先,目前有很多的商家还是以实体店的生意为主,随着信息化时代的迅速发展,所以单单只靠实体店的生意是不行的。以后,都是网络的时代了。所以,我们现在也非常需要一种用网络来进行买卖的平台。于是,我就利用互联网提供的平台,从而开发了这套网上订餐系统。
第二章 开发平台
2.1 ASP.NET简介
ASP.net 是一种建立在通用语言上的程序构架,能被用于一台Web 服务器来建立强大的Web 应用程序。ASP.net 提供许多比现在的Web 开发模式强大的优势。
其结构是一个三层系统:UI 层、业务逻辑层和数据层:
1. UI 层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户。
2. 业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求处理结果发给浏览器。它由Web 表单、FULL TB1L Web Services和组件服务组成,其中Web 表单是ASP.NET 应用程序的核心所在,它是向客户呈现数据和信息的基础,也是响应和处理客户与显示的Web 表单交互生成的信息和数据的基础。
3. 数据层是通过ADO.NET 操纵数据为事务逻辑层提供数据服务,如存储数据操作结果、返回数据检索结果等。
可以使用ASP.NET 网页作为Web 应用程序的用户界面及后台逻辑部分。ASP.NET 网页在任何浏览器或客户端设备中向用户提供信息,并使用服务器代码来实现应用程序逻辑。ASP.NET 有下列特点:
1. 基于Microsoft ASP.NET技术。在该技术中,服务器上运行的代码动态地生成到浏览器或客户端设备的网页输出。
2. 兼容所有浏览器或移动设备。ASP.NET 网页自动为样式、布局功能呈现正确的、符合浏览器的HTML 。此外,还可以将ASP.NET 网页设计为在特定浏览器(如IE 7.0)上运行并利用浏览器特定的功能。
3. 兼容.NET 公共语言运行库所支持的任何语言,其中包括Microsoft Visual Basic 、Microsoft Visual C#、Microsoft J#。
4. 基于Microsoft .NET Framework 平台,它提供了Framework 的所有优点,包括托管环境、类型安全性和继承。
5. 具有灵活性,可以在开发的时候向页面添加用户创建的控件和第三方控件。
2.2 SQL Server 简介
SQL Server 是一个完全只吃Web 的数据库产品,提供了对可扩展标记语言(FULL TB1L)的核心支持以及在Internet 上和防火墙外进行查询的能力。它给数据的管理与分析带来了很大的灵活性。允许用户在快速变化的环境中从容适应最新的环境,以获得竞争优势。
从数据管理和分析的角度来看,将原始数据转化为商业智能和充分利用Web 带来的机会是非常重要的。作为一个完备的数据库和数据分析包。SQL Server 加快了新一代企业级商业应用程序的开发进程。并可为企业赢得核心竞争优势起到先锋效应。
2.3 C# 简介
C#是一个简洁、变量类型安全的面向对象的编程语言,开发人员可以使用它来构建在.NET Framework上运行的各种安全、可靠的应用程序、C#语言自C/C#演变而来,其中“#”为4个“+”组合,也就是说,可以把C#看成“C++++”。
C#是Microsoft 为.NET 平台量身定做的新的程序语言,它拥有如Visual Basic 一样的简单易用性,同时具备C++的强大功能。C#简化和现代化了C++在类、名字空间、方法重载和异常处理等领域的使用。在C#中,摒弃了许多C++中令人难以学懂或容易出错的功能,如指针、多种继承等。C#也借鉴了Java 语言的许多优点,并且对Java 语言的一些不足进行了改进。
C#的新功能包括严格的变量类型安全、版本控制、垃圾收集等,所有这些功能都瞄准了开发面向组件的软件。C#支持现有的网络编程新标准,如:HTML 、FULL TB1L 和SOAP 等,从而成为一流的网络编程工具,C#能够消除大量的程序错误,这归于它的自动内存回收机制和安全变量类型。C#具有良好的扩展性和交互性,内置了对组建对象模型(COM )和基于Windows 系统API 的支持。这一切都使得C#成为一种强大、高效和灵活的编程语言。
第三章 系统分析
3.1总体目标
网上订餐系统是用于客户在线订餐,它将实现以下的目标:
1、增加新的客户源,从而提高业绩
2、提升知名度
3.2 可行性分析
可行性分析总共分为管理可行性、设备可行性、经济可行性这三大部分。首先,先要说的是管理可行性,现在上网的人越来越多,所以大家对电脑的基本操作与维护是完全没有任何问题的。其次,就是设备可行性,运行本系统只需要一台电脑,本系统支持Windows XP 。最后,就是经济分析,此系统是对外开放的,任何人都可以在本系统中进行免费注册。
3.3 业务流程分析
网上订餐系统是由管理员功能和会员功能组成的。管理员可以对自己网站里的菜单信息进行维护,也可以对会员信息进行管理与维护,可以对会员的金额进行充值。在生成的订单里可以进行管理与审核。会员可以在网站上进行注册,然后选择自己喜欢的菜单,把它放到购物车里,最后,可以对此次的订单,进行修改或付款。
3.4 功能需求分析
3.4.1 功能需求
本系统实现了在线发布菜单信息与购买的功能,具体功能如下:
在后台管理系统中,管理员可以对菜单信息进行维护,也可以在线的添加与删除菜单类别。对订单信息进行管理与审核。对会员进行管理与维护,也可以对会员进行充值。
在前台管理系统中,我们可以免费注册会员和修改自己的信息。也可以浏览菜单信息,可以将选中的菜单放入购物车,也可以查看或修改购物车里的信息,之后可以选择生成订单。最后,可以在线支付。 3.4.2 功能结构图
图3.1 功能模块图
第四章 系统设计
4.1 数据库设计
4.1.1 数据库概要说明
在开发网上订餐系统中,我采用了Microsoft SQL server 2005作为数据库开发平台,该软件具有信息存储容量大、方便对信息进行修改、查询、删除等优点。本系统的数据存储是以一个名为EmporiumShoping 数据库为基础的,数据库里有4张表,分别是管理员信息表、会员订单表、会员信息表和菜单信息表。
4.1.2 数据库概念分析
根据上述对系统分析、业务流程分析和功能结构图等,然后根据上面的设计规划出了总体的E-R 图:
图4.1 E-R图
4.1.3 数据库逻辑设计
4.4 主要模块流程图
4.4.1 后台
①菜单类别维护
图4.2 菜单类别维护
②菜单信息维护
图4.3 菜单信息维护
③订单审核
图4.4 订单审核
4.4.2 前台
前台购物
图4.5 前台购物
第五章 系统实现
5.1 系统主界面
可以再IE 浏览器里面运行本系统,随后出现本系统的主界面,其中包括会员登录及注册、购物车,菜单列表,菜单信息四大部分。如图:
图5.1 系统主界面
代码如下:
public void BindMENU() {
DataTable cdxx = new DataTable();
if (Request.QueryString["menu number"] == null) {
//显示全部的菜单信息
cdxx = DataBase.Get_Table("select * from menu"); } else {
//显示指定类型的菜单信息 cdxx = DataBase.Get_Table("select * from menu where menu number="
+ Request.QueryString["menu number"].ToString()); }
PagedDS page = new PagedDS(); page.DS = cdxx.DefaultView; page.AP = true; page.PS = 8;
int cp;
if (Request.QueryString["page"] != null)
cp = int.Parse(Request.QueryString["page"]); else
cp = 1;
page.CurrentPageIndex = cp - 1;
Label4.Text = "当前页:" + cp.ToString(); if (!page.IsFirstPage) {
if (Request.QueryString["menu number"] == null) HyperLink2.NavigateUrl = "Index.aspx?page=" + Convert.ToString(cp - 1); else
HyperLink2.NavigateUrl = "Index.aspx?menu number=" + Request.QueryString["menu number"].ToString() + "&page=" + Convert.ToString(cp - 1); }
if (!page.IsLastPage) {
if (Request.QueryString["menu number"] == null) HyperLink3.NavigateUrl = "Index.aspx?page=" + Convert.ToString(cp + 1); else
HyperLink3.NavigateUrl = "Index.aspx?menu number=" + Request.QueryString["menu number"].ToString() + "&page=" + Convert.ToString(cp + 1); }
Dl1.DS = page; Dl1.DataBind();
}
5.2 菜单信息维护界面
第一部分主要是对菜单信息的维护。它展示菜单信息列表,我们可以进行添加 修改 和删除菜单信息。如图:
图5.2 菜单信息列表界面
图5.3 菜单信息编辑页面
代码如下:
protected void Baocun_Click(object sender, EventArgs e) {
//判断信息是否正确
if (this.Tb1.Text.Trim() == "") {
Page.ClientScript.RegisterStartupScript(this.GetType(), "info", "");
return; }
//将相关的图片上传到@"Image\"路径下 string Fn = ""; string Fn1; string Picture;
Picture = Server.MapPath("..") + @"\"; Picture = Picture + @"Image\";
if (this.File1.PostedFile.Fn != "") {
string[] temp = this.File1.PostedFile.Fn.Split('.'); string strHzm = "." + temp[temp.Length - 1];
Guid tp = Guid.NewGuid(); Fn = tp.ToString() + strHzm;
Fn1 = Picture + tp.ToString() + strHzm; this.File1.PostedFile.SaveAs(Fn1); if (Session["img1"] != null) {
if (File.Exists(Picture + Session["img1"].ToString()))
{
File.Delete(Picture + Session["img1"].ToString());
} } }
//根据标志判断是添加还是修改的操作,然后保存菜单信息 if (Request.QueryString["ID"] != null) {
if (Fn == "") {
DataBase.ExecSql("update menu set tb1='" + Tb1.Text +
"', price=" + this.Tb2.Text.Trim() + ",menu='" + this.Tb3.Text.Trim() + "',supplier='" + this.Tb4.Text.Trim() + "',menu number=" + this.Dropdownlist2.SelectedValue + " where number=" + Request.QueryString["ID"]);
}
else
{
DataBase.ExecSql("update menu set tb1='" + Tb1.Text + "',price=" + this.Tb2.Text.Trim() + ",menu='" + this.Tb3.Text.Trim() + "',supplier='" + this.Tb4.Text.Trim() + "',menu number=" + this.Dropdownlist2.SelectedValue + ",file tb1='" + Fn + "' where number=" + Request.QueryString["ID"]);
}
}
else
{
DataBase.ExecSql("insert into menu(tb1,file tb1,menu,supplier,menu number,price) values('" + this.Tb1.Text.Trim() + "','" + Fn + "','" + this.Tb3.Text.Trim() + "','" + this.Tb4.Text.Trim() + "'," + this.Dropdownlist2.SelectedValue + "," + Tb2.Text + ")");
}
Page.ClientScript.RegisterStartupScript(this.GetType(),
"info", "");
}
5.3 订单审核
第二部分可以查看下单的客户的订单信息,我们可以对订单进行确认。以下是用户信息表和菜单信息表。如图:
图5.4 订单审核
图5.5 订单详细信息
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//根据显示的订单编号 查询 显示订单主表内容
DataTable cdxx = new DataTable();
cdxx = DataBase.Get_Table("select * from order where number='" + Request.QueryString["ID"].ToString() + "'");
if (cdxx.Rows.Count > 0)
{
this.Tb1.Text = cdxx.Rows[0]["number"].ToString(); this.Tb2.Text = cdxx.Rows[0]["member1"].ToString(); this.Tb3.Text = cdxx.Rows[0]["zsl"].ToString();
this.Tb4.Text = cdxx.Rows[0]["total"].ToString();
this.Tb15.Text = cdxx.Rows[0]["ddrq"].ToString();
}
//控制订单使用权限
if (cdxx.Rows[0]["order"].ToString() != "")
{
this.Baocun.Visible = false;
}
cdxx = DataBase.Get_Table("select * from member where member1='" + this.Tb2.Text.ToString() + "'");
if (cdxx.Rows.Count > 0)
{
this.Tb6.Text = cdxx.Rows[0]["money"].ToString();
}
//显示订单明细表内容
cdxx = DataBase.Get_Table("select * from order,menu where order.number=menu.number and order.number='" +
Request.QueryString["Id"].ToString() + "'");
this.Gw1.DS = cdxx;
this.Gw1.DataBind();
}
}
protected void Baocun_Click(object sender, EventArgs e)
{
if (Convert.ToDecimal(this.Tb4.Text) >
Convert.ToDecimal(this.Tb6.Text))
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "info", "");
return;
}
//确认当前的订单信息
DataBase.ExecSql("update order set order='同意预定' where number='" + Request.QueryString["ID"].ToString() + "'");
DataBase.ExecSql("update member set money= money - " + this.Tb4.Text + " where member1='" + this.Tb2.Text.ToString() + "'");
Response.Redirect("DDList.aspx");
}
5.4 用户注册
第三部分主要是让客户在我们网站进行注册。用户在注册信息时,首先判断账号名、真实姓名、证件号码等是否为空,还有输入密码和确认密码是否相同。然后把后面带有红色*的框内都填好。然后,点击注册。如图:
图5.6 用户注册
代码如下:
if (Tb1.Text.Trim() == "")
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "info", "");
return;
}
if (Tb1.Text.Trim() == "Administrator")
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "info", "");
return;
}
if (this.Tb5.Text.Trim() != this.Tb6.Text.Trim())
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "info", "");
return;
}
if (Session["UserID"] == null)
{
DataTable cdxx = new DataTable();
cdxx = DataBase.Get_Table("select * from member where member1='" + this.Tb1.Text.Trim() + "'");
if (cdxx.Rows.Count > 0)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "info", ""); return;
}
}
string initial = "0";
if (this.Tb9.Text.Trim() != "")
initial = this.Tb9.Text.Trim();
string grade = "普通会员";
if (Convert.ToDecimal(initial) >= 500)
grade = "VIP会员";
if (Session["UserID"] == null)
{
//将新注册的会员信息更新到数据库当中
DataBase.ExecSql("insert into
member(member1,password,gender,full
tb1,address,telephone,birthday,Email,initial,money,id card no,grade) " + " values('" + this.Tb1.Text.Trim() + "','" + this.Tb5.Text.Trim() + "','" + this.txtgender.SelectedValue + "', " + " '" + this.Tb2.Text.Trim() + "','" + this.Tb3.Text.Trim() + "'," +
" '" + this.Tb4.Text.Trim() + "','" + this.Tb7.Text.Trim() + "'," +
" '" + this.Tb8.Text + "'," + initial + "," + initial + ",'" + Tb10.Text.Trim() + "', '" + grade + "')");
}
else
{
//更新当前的会员信息
if (this.Tb5.Text.Trim() != "********")
{
DataBase.ExecSql("update member set password='" + this.Tb5.Text.Trim() + "'," +
" full tb1='" + this.Tb2.Text.Trim() + "',address='" + this.Tb3.Text.Trim() + "', grade = '" + grade + "', " +
" telephone='" + this.Tb4.Text.Trim() + "',birthday='" + this.Tb7.Text.Trim() + "'," +
" email='" + this.Tb8.Text + "' where member1= '" + Session["UserID"].ToString() + "'");
}
else
{
DataBase.ExecSql("update member set " +
" full tb1='" + this.Tb2.Text.Trim() + "',address='" + this.Tb3.Text.Trim() + "', grade = '" + grade + "', " +
" telephone='" + this.Tb4.Text.Trim() + "',birthday='" + this.Tb7.Text.Trim() + "'," +
" email='" + this.Tb8.Text + "' where member1= '" + Session["UserID"].ToString() + "'");
}
}
Session["UserTb1"] = this.Tb2.Text.Trim();
Session["PersonType"] = grade;
Session["UserID"] = this.Tb1.Text.Trim();
Page.ClientScript.RegisterStartupScript(this.GetType(), "info",
""); 功!
5.5 购物车
第四部分主要显现的是购物车里的未生成的菜单信息列表及此次购物菜单的总金额和总数量。对此订单可以进行删除,也可以返回菜单信息表继续进行购物或者下单。如图:
图5.7 购物车
代码如下:
//将购物车的菜单信息显示在当前列表中
DataTable cdxx = new DataTable();
cdxx = DataBase.Get_Table("select * from shopping,menu where shopping.number=menu.number and shopping.member1='" +
Session["UserID"].ToString() + "'");
if (cdxx.Rows.Count <>
cdxx.Rows.Add(cdxx.NewRow());
this.Gw1.DS = cdxx;
this.Gw1.DataBind();
//算出购物车里数量与价格
cdxx = DataBase.Get_Table("select sum(shopping.sl),sum(shopping.sl * menu.price) from shopping,menu where shopping.number=menu.number and shopping.member1='" + Session["UserID"].ToString() + "'");
if (cdxx.Rows.Count > 0)
{
this.Label2.Text = cdxx.Rows[0][0].ToString();
this.Label1.Text = cdxx.Rows[0][1].ToString();
}
5.6 用户订单
第五部分是将用户选好的菜单进行付款的环节。一旦生成订单,则就可以对订单进行修改。如果付款的钱不够买食物的话,则将不能付款。如图:
图5.8 用户订单
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
// 用户初始化界面
if (!Page.IsPostBack)
{
DataTable cdxx = new DataTable();
cdxx = DataBase.Get_Table("select * from shopping,menu where shopping.number=menu.number and shopping.member1='" +
Session["UserID"].ToString() + "'");
this.Gw1.DS = cdxx;
this.Gw1.DataBind();
this.Gw1.Columns[1].Visible = false;
cdxx = DataBase.Get_Table("select * from member where member1='" + Session["UserID"].ToString() + "'");
if (cdxx.Rows.Count > 0)
{
this.Tb5.Text = cdxx.Rows[0]["money"].ToString();
}
//算出购物车里数量与价格
cdxx = DataBase.Get_Table("select
sum(shopping.sl),sum(shopping.sl * menu.price) from shopping,menu where shopping.number=menu.number and shopping.member1='" +
Session["UserID"].ToString() + "'");
if (cdxx.Rows.Count > 0)
{
this.Tb3.Text = cdxx.Rows[0][0].ToString();
this.Tb4.Text = cdxx.Rows[0][1].ToString();
}
//初始化显示控件内容
this.Tb1.Text = Guid.NewGuid().ToString();
this.Tb2.Text = Session["UserID"].ToString();
this.Tb6.Text = DateTime.Now.Date.ToShortDateString();
this.LinkBt2.Attributes.Add("onclick", "return confirm('订单生产后,就无法在修改信息了,您确定要生产此次的订单吗?');");
}
}
protected void LinkBaocun_Click(object sender, EventArgs e)
{
Response.Redirect("GwcList.aspx");
}
protected void LinkBt2_Click(object sender, EventArgs e)
{
if (Convert.ToDecimal(this.Tb4.Text) >
Convert.ToDecimal(this.Tb5.Text))
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "info", ""); return;
}
if (this.Gw1.Rows.Count > 0)
{
for (int i = 0; i < this.gw1.rows.count;="">
{
string aa = "insert into order(number,number,sl,je) values('" + this.Tb1.Text + "'," +
Convert.ToInt32(this.Gw1.Rows[i].Cells[1].Text) + "," +
Convert.ToDecimal(this.Gw1.Rows[i].Cells[4].Text) + "," +
Convert.ToDecimal(this.Gw1.Rows[i].Cells[3].Text) *
Convert.ToDecimal(this.Gw1.Rows[i].Cells[4].Text) + ")";
DataBase.ExecSql("insert into order(number,number,sl,je) values('" + this.Tb1.Text + "'," +
Convert.ToInt32(this.Gw1.Rows[i].Cells[1].Text) + "," +
Convert.ToDecimal(this.Gw1.Rows[i].Cells[4].Text) + "," +
Convert.ToDecimal(this.Gw1.Rows[i].Cells[3].Text) *
Convert.ToDecimal(this.Gw1.Rows[i].Cells[4].Text) + ")");
}
//把订单里的信息保存
DataBase.ExecSql("insert into
order(number,member1,zsl,total,ddrq) values('" + this.Tb1.Text + "','" + Session["UserID"].ToString() + "'," + Convert.ToDecimal(this.Tb3.Text) + "," + Convert.ToDecimal(this.Tb4.Text) + ",'" + this.Tb6.Text + "')"); //把购物车里的记录删掉
DataBase.ExecSql("delete from shopping where member1='" + Session["UserID"].ToString() + "'");
Response.Redirect("Index.aspx");
}
}
结束语
通过这次的毕业设计,我从中了解了很多关于系统设计的知识。对设计系统这方面有了全面的认识。
在设计系统和撰写论文的过程中,我翻阅了很多关于系统这方面的资料,并且看了很多关于饮食这方面的系统。我的论文首先讲了关于系统设计的理论方面,理论部分包含了它的概念、内容、功能等。然后,我又根据软件工程的要求,对网站系统进行了需求分析、概要设计、详细设计、编程这几个方面进行了分析。最后,初步创建了一个模拟版的网上订餐系统。虽然说系统是模拟版的,但是把脑子里想的实现了。我相信以后完全可以把模拟板做成现实版的。
最后与数据库的连接,我成功的完成网上订餐系统。这个系统有两个操作系统,一个是前台操作系统,另一个是后台操作系统。前台操作系统的操作是这样的:首先,通过IE 浏览器的打开。随后,就可以看到首页。首页有菜单信息、会员注册,购物车等。注册会员后,就可以在网站里选择你要的菜单,然后把它放入购物车,可以生产订单。后台操作系统的操作是这样的:登陆账号,然后可以对菜单信息、订单信息、会员信息等进行修改与维护。
因为设计时间有限,所以这个系统还不是特别的完善。因此还有好多的地方需要改进的。随着时代的快速发展,网上订餐也会发展的越来越好。这篇论文写得不是特别的好,难免会有些不足的地方,恳请各位老师批评与赐教。
致 谢
我的毕业设计就要结束了,在这个时候,我想感谢帮助我的人。因为,有了你们的帮忙,我的毕业设计才能完成,才能做得更好。
首先,我要感谢我的导师,在我论文的写作当中她给我很多帮助,在我论文的整个写作过程中,从组织到内容,自始至终指导着我。她非常有耐心的给我解答我所遇到的问题,也非常认真的给我纠正论文中的错误。正是因为她,所以我的论文才能完成。在此我想对她说:“老师,辛苦了!非常感谢您。”我还要感谢在大学里所有任教过我的老师们,谢谢你们的培养。今后,我一定会越来越好。
通过做毕业设计,我把我在大学里所学到的知识都用上了。我通过不断的努力与研究,还有老师的指导,解决了所遇到的所有问题。今后,如果再遇到的这类的问题,我就可以自己解决了。
我的大学生活就要结束了,在此,我特别感谢我的学校,因为有你,我才能体会到这温暖而美好的大学时光。因为有你,我才能再这三年里学到好多的知识。因为有你,我才能认识好多的小伙伴。
最后,再次感谢那些帮助过我的老师和小伙伴们,非常感谢你们!
参考文献
[1] 塞奎春主编, 宋坤,李严,等编著. SQL Server 数据库开发实例解析. 北京:机械工业 出版社,2006.1
[2] 武新华编著.ASP.NET+SQL数据库安全精粹. 西安:西安电子科技大学出版社,2007.2
[3] 余金山,林慧编著. SQL Server2005/2005数据库开发实例入门与提高. 北京:电子工业出版社,2005.11
[4] (美)Powell.R. (美)Weeks.R. 著. 袁鹏飞译. C#和.NET 架构. 北京:人民邮电出版社,2002.4
[5] 萨师煊,王珊. 数据库系统概论(第三版). 北京:高等教育出版社,2000.2
[6] 新华编著, ASP.NET 3.5宝典,北京:电子工业出版社,2009.1
[7] 王建华等编著,ASP.NET 2.0动态网站开发技术与实,北京:电子工业出版社,2007.7
[8] 张公忠主编. 现代网络技术教程. 第2版. 北京:电子工业出版社,2004.1
[9] 邵鹏鸣,张丽编著. 北京:清华大学出版社,2012.8
[10] 王昊亮,李刚,等编著.Visual C#程序设计教程. 北京:清华大学出版社,2003.9.1.4
范文二:网上订餐系统毕业论文-Java
分院名称:
学生学号:
长春师范学院
本科毕业论文(设计)
(理工类)
题 目: 专 业: 计算机科学与技术 作 者 姓 名: 指导教师姓名: 指导教师职称:
年 月
长春师范学院本科毕业论文(设计)作者承诺保证书
本人郑重承诺:本篇毕业论文(设计)的内容真实、可靠。如果存在弄虚作假、抄袭的情况,本人愿承担全部责任。
论文作者签名:
日期: 年 月 日
长春师范学院本科毕业论文(设计)指导教师承诺保证书
本人郑重承诺:我已按有关规定对本篇毕业论文(设计)的选题与内容进行指导和审核,坚持一人一题制,确认由作者独立完成。如果存在学风问题,本人愿意承担指导教师的相关责任。
指导教师签名:
日期: 年 月 日
摘 要
二十一世纪是信息化、知识化的世纪,随着社会的进步、计算机应用的快速发展和网络应用的不断扩大,并使传统的订餐形式得到了极大的扩充,使人们订餐更加的方便。基于Web 的网上订餐系统,它是一种基于计算机网络的网上订餐形式,它的出现,大大地扩充了现行的订餐方式,使餐饮摆脱了空间上和时间上的束缚,不管谁,只要会上网,都可以坐在电脑前面,方便地进行网上订餐,可以看成是对餐饮业的一次革命。通过网上订餐系统,可以在家中或办公室为自己订一份既营养又实惠的美食。本文就是基于此目的实现一个网上购餐系统。
本系统是用户实现网络交易的一种方式。设计和实现了一个B/S结构的网上订餐系统,重点论述了系统的功能与实现、数据流程及存储。包括会员管理、餐品信息介绍、网上订餐、用户留言、系统用户管理以及后台数据库管理等。本文先是对系统的需求分析做了详细的介绍,然后对系统的概要设计进行了阐述并重点介绍了网上订餐系统各功能模块的具体设计和实现。
本系统是在MySQL 数据库、Java 语言和MyEclipse 平台技术实现的。既拥有良好便捷的前台操作界面,也有稳定的后台支持。系统旨在提供一个可供操作、功能完全、特色突出的网上订餐系统。
关键词:网上订餐系统 JA V A MySQL SSH2
Abstract
Twenty-first century is a informational knowledgeable century. With the rapid development of society, the use of the computer application and the network application, the traditional order form of meals has been greatly expanded, making life more convenient. Online meal ordering system based on Web is such a computer network based on the online meal ordering form which has greatly expanded the existing order way. No matter who, as long as with the Internet, can sit in front of the computer, ordering a meal conveniently online. It is a kind of revolution of daily life. Online meal ordering system can be used in the home or office to buy a nutrition and affordable food for someone .Based on this,this article implements an online meal system.
The system is the user a way for network transactions. the on-line meal ordering system of the B/S structure is designed and implemented, it emphatically elaborates the function and implementation of system, data flow and storage such as the member management, information introduction of order, the on-line meal ordering, user information, system user management as well as the administration of backstage database. This article analyzes the system requirements, and makes a detailed introduction, and then highlighted the design and implementation of the online meal-order system.
The system is implied by MySQL database, Java language and MyEclipse . It not only has good prospects of friendly interface, and also a stable background support. The system is designed to provide an operable, fully functional, feature prominent system for online meal ordering.
Key Words: Online ordering system JA V A MySQL SSH2
目 录
承诺保证书 . .............................................................................................................................. I 摘 要 ..................................................................................................................................... II ABSTRACT ......................................................................................................................... III
第一章 绪 论 . ....................................................................................................................... 1
1.1 本课题的来源及研究意义 ..................................................................................... 1
1.1.1 本课题的来源 ............................................................................................... 1
1.1.2 课题的研究意义 ........................................................................................... 2
1.2 订餐系统概述 . ......................................................................................................... 2
1.2.1 订餐系统的发展历史 .......................................................................................... 2
第二章 相关开发技术 ........................................................................................................... 3
2.1 J2EE 设计平台 ........................................................................................................ 3
2.2 MYSQL . ................................................................................................................... 3
2.2.1 MYSQL 简介................................................................................................. 3
2.2.2 MYSQL 优势................................................................................................. 3
2.3 STRUTS2 . ................................................................................................................ 4
2.3.1 STRUTS2简介 . ............................................................................................. 4
2.3.2 STRUTS2框架结构 ..................................................................................... 4
2.4 SPRING.................................................................................................................... 4
2.4.1 SPRING 简介 ................................................................................................ 4
2.4.2 SRING 核心机制 .......................................................................................... 5
2.5 HIBERNATE ........................................................................................................... 5
2.5.1 HIBERNATE 简介 . ....................................................................................... 5
2.5.2 HIBERNATE 核心接口 . ............................................................................... 5
第三章 需求分析 . ................................................................................................................... 6
3.1 网上订餐需求分析 ................................................................................................. 6
3.1.1 功能需求分析 ............................................................................................... 6
3.2 系统架构分析 . ......................................................................................................... 7
3.3 可行性分析 . ............................................................................................................. 7
第四章 系统设计 . ................................................................................................................... 8
4.1 系统设计目标 . ......................................................................................................... 8
4.1.1 系统安全性 ................................................................................................... 8
4.1.2 可维护性 . ....................................................................................................... 8
4.1.3 用户操作 . ....................................................................................................... 8
4.1.4 运行速度 . ....................................................................................................... 8
4.1.5 界面 . ............................................................................................................... 8
4.2 用户类别功能设计 ................................................................................................. 9
4.2.1 订餐用户功能 ............................................................................................... 9
4.2.2 餐馆管理员功能 ........................................................................................... 9
4.3 总体设计 . ............................................................................................................... 10
4.3.1 用户登录 . ..................................................................................................... 10
4.3.2 订餐服务 . ..................................................................................................... 11
4.3.3 订餐处理 . ..................................................................................................... 11
4.4 数据库设计 . ........................................................................................................... 12
4.4.1 数据库设计概述 ......................................................................................... 12
4.4.5 数据库模型 ................................................................................................. 15
第五章 系统实现 . ................................................................................................................. 16
5.1 登陆和注册 . ........................................................................................................... 16
5.2 菜单信息浏览 . ......................................................................................................... 16
5.3 订餐服务 . ................................................................................................................. 17
5.4 用户反馈 . ................................................................................................................. 17
5.5 订单处理 . ................................................................................................................. 17
5.6 餐馆信息管理 . ......................................................................................................... 18
5.7 程序相关 . ................................................................................................................. 18
结 论 . ............................................................................................................................ 19
参考文献 . ............................................................................................................................... 20
致 谢 .................................................................................................................................... 21
第一章 绪 论
网上订餐就是互联网的深入应用。用户通过互联网,能足不出户,轻松闲逸地实现自己订购餐饮和食品(包括饭、菜、盒饭、便当等)的一种网络订餐形式。随着食天下网上订餐平台的兴起,网上订餐已经逐渐成为了白领阶层中的一种潮流了。
网上订餐一般都会集中在一个时段,这会给餐饮企业制造出订餐的高峰时段,订餐者的需求在很多时候会得不到满足,这种不如意,诞生的总是网上订餐“无保障”,“线上看,线下订”正好能帮助改变这种会衍生恶性循环的效应;
通过线下电话联系和沟通,订餐者会对送餐时间能适当把控,这样也就心里有数,在这样的情况下,餐饮企业和用餐者在口头协商的前提下,能达成一种双方都能接受的协议,网上订餐用户一般都不会产生不满情绪,这能抵消消费者的不满情绪。
想实现网上订购,这些网上订餐的形式应该很难,其中原因主要就是餐饮行业普遍存在的信息化意识薄弱,这让网上订餐成为实在的瓶颈,短时期内这是很难突破的,这也是为什么现在真正能实现网上订餐、并能被广泛接纳的网上订餐行为,依然离不开电话直接订购的主要原因。
网上订餐,想正真实现“网上订,网上付”的正规化,还需要很长的一段时日。
1.1 本课题的来源及研究意义
1.1.1 本课题的来源
随着网络技术的发展和普及,Internet 已成为人们获取有关信息和相互交流的重要途径之一,越来越多的机构和组织开始利用网络资源传递、发布、收集和管理信息。这对各种类型的网络提供一次很大的机遇与挑战,特别是通过网络进行信息交互的这种活动,更使网络的经营方式充满了活力和机动性[1]。
基于B/S模式的JA V A 网上订餐系统是应用于网络交流领域的系统,它的主要特点有:
(1) 通用性:网上订餐系统具有良好的界面,适合推广给所有用户,能够给用户提供良好的服务。
(2) 便捷性:本系统最大的特点就是方便快捷,用户使用本系统可以足不出户就享受到优质服务,在现代人们的生活中很适用。
人们对于订餐的要求是能够减少排队等待的时间,此系统的设计正是为了迎合大家的这种需求,可以让用户节约许多的时间,提高了生活效率[2]。
1.1.2 课题的研究意义
网上订餐系统为人们的生活提供了方便快捷的消费方式:
1. 顾客去餐厅消费不用需要排队点餐,可以方便的打开我们的网站,选择自己喜欢的餐厅,浏览餐厅的菜单,进行网上点餐,省去了很多的时间。
2. 对于餐厅,可以扩大自己的销售领域,通过我们的网站可以很好的做广告。每个餐厅有它自己的主页,管理自己的主页;餐厅不仅仅在某个商业小区经营,餐厅还可以给顾客提供送外卖服务,这样就大大地方便了那些宅男宅女们,不用再买那些快餐似的垃圾食品,还能很好地享受到可口的饭菜。通过这种方式,餐厅的营业范围将大大地提高,营业额必然会上升。
本系统针对所有用户群体,建立了客户端及服务器端。主要解决的问题包括:
(1) 对于使用界面,需要人性化,能够给用户一种温馨与简易的感觉;
(2) 系统应能够及时响应用户的请求,并及时提供帮助。
本系统开发的意义在提供给用户方便快速的订餐服务,满足用户的需要,解决传统订餐方式的不足。
1.2 订餐系统概述
1.2.1 订餐系统的发展历史
随着互联网用户的增多,工作节奏的加快,网络订餐成为众多年轻网民及白领人士生活中的一部分。大众点评网、豆丁网等网站的成立,为众多办公楼、工作繁忙的白领解决了吃饭问题。
网络订餐的手段和方式分类,目前餐饮业主要通过以下三种方法开展:
1.通过餐饮网站订餐。这种订餐方式主要通过专门的网站实现订餐,用户通过网络实现对餐馆的查询及餐馆的菜谱查询和预定服务,相应企业给予通过网站订餐的顾客相应的优惠。
2.通过及时的通讯工具(QQ ,MSN 等)的网络订餐。这种餐饮企业往往不具备建立网站订餐系统的资金与技术实力,主要通过及时的通讯工具(QQ ,MSN 等)的实现订餐。这种餐饮企业往往是区域性的,主要分布在居民小区及学校周边,规模一般较小。
3.通过电子邮件的网络订餐。这种订餐方式主要是在相应餐饮企业举办大型酒席时,顾客提供给餐饮企业餐单时使用。因为使用邮件订餐有时间差,而且要收发邮件略显麻烦,所以目前较少使用。
综上,第一类订餐方式使用最为广泛,网站建立较容易 成本低,但对于传统店面餐饮收效甚微,无法成为主要的利润来源。其余两类有网络订餐的实质,但仅作为目前网络订餐的辅助手段[3,4]。
第二章 相关开发技术
2.1 J2EE 设计平台
J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)是一套全然不同于传统应用开发的技术架构,它包含许多组件,主要可以简化并且规范应用系统的开发及部署,进而提高可移植性、安全与再用价值[5]。
目前,Java 2平台它有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro 版(Java 2 Platform Micro Edition,J2ME )、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE )、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE )。J2EE 它是一种利用Java 2平台来简化企业的解决方案的开发、部署和管理等相关的复杂问题的体系结构。J2EE 技术的基础是核心的Java 平台或Java 2平台的标准版,J2EE 它不仅巩固标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA 技术及能够在Internet 应用中保护数据的安全模式等等,同时提供了对 EJB (Enterprise JavaBeans)、Java Servlets API、JSP (Java Server Pages)以及XML 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构[6]。
2.2 MySql
2.2.1 MySql 简介
MySQL 它是一个小型关系型数据库管理系统,MySQL 它还是一种关联数据库管理的系统,关联数据库将数据保存于不同的表中,而不是将所有数据内容放在一个大仓库内。这样就提高了速度和灵活性。MySQL 的是SQL “结构化查询语言”。SQL 它是用于访问数据库中的最常用标准化语言。MySQL 软件采用了GPL (GNU 通用公共许可证)。由于它体积小、速度快、总体拥有成本低,特别是开放源码这一特点,许多中小型网站为了降低网站总体成本就选择了MySQL 作为网站数据库[7,8]。
2.2.2 MySql 优势
(1)它是使用C 和C++编写,并使用了众多的编译器进行测试,保证了源代码的可移植性;
(2)支持AIX 、HP-UX 、NovellNetware 、Linux 、Mac OS、OpenBSD 、Solaris 、Windows 、FreeBSD OS/2 Wrap等多种操作系统;
(3)为多种编程语言都提供了API 。这些编程语言包括C 、C++、Java 、Perl 、PHP 、Ruby 、和Tcl Eiffel等;
(4)既能作一个单独的应用程序应用在客户端服务器网络环境中,还能作为一个库而嵌入到其他的软件中提供多种语言支持,常见的编码如中文的GBK 、BIG5,日文种的Shift 、JIS 以用作数据表名和数据列名;
(5)提供了TCP/IP、ODBC 和JDBC 等许多种数据库连接方法;
(6)它还提供了用于管理、检查、优化数据库的操作的管理工具;
(7)可以处理有上千万条记录的大型数据库[9]。
2.3 struts2
2.3.1 struts2简介
Struts 2它是Struts 的下一代产品,是融合了struts 1和WebWork 的技术,在它们基础上合并的全新的框架。其全新的Struts 2的体系结构与Struts 1的体系结构有着巨大差别。Struts 2它是以WebWork 为核心,采用了拦截器机制来处理用户的请求,这样的设计让业务逻辑控制器能够与Servlet API完全脱离,因此Struts 2可以理解成WebWork 的更新产品。虽然从Struts 1到Struts 2有着根本性的变化,但是相对于WebWork ,Struts 2它的变化还是很小[10]。
2.3.2 struts2框架结构
当Web 容器收到 请求(HttpServletRequest )后,它将请求传递给一个标准的过滤链包括(ActionContextCleanUp )过滤器,然后经过Other filters(SiteMesh ,etc) ,再然后需要调用FilterDispatcher 这个核心控制器,然后它再调用ActionMapper 确定请求来自哪个Action ,ActionMapper 返回一个收集Action 详细信息的ActionMaping 的对象。接下来FilterDispatcher 它将控制权派给ActionProxy ,ActionProxy 调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息文件(struts.xml),然后创建ActionInvocation 对象,ActionInvocation 在调用Action 之前它会依次的调用所用配置的拦截器(Interceptor N ) 一旦执行结果后返回结果字符串ActionInvocation 负责查找结果字符串对应的结果集(Result)然后执行这个Result 。 Result 会调用一些模版(JSP )来表页面,随后拦截器(Interceptor N) 会被执行(顺序和Action 执行之前相反) 最后响应(HttpServletResponse)它会被返回在web.xml 中配置的那些过滤器和核心控制器(FilterDispatcher )中[11,12]。
2.4 spring
2.4.1 spring 简介
它是为了解决企业应用程序开发的复杂性而由Rod Johnson创建的。框架的主要好处之一就是它的分层架构,分层架构可以允许使用者选择使用哪一个组件,同时并
为 J2EE 应用程序开发提供集成的框架。Spring 使用基本的JavaBean 来完成从前只可能是由EJB 来完成的事情。但Spring 的用途不仅局限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 的应用都可以从Spring 中受益颇多[13]。 2.4.2 sring 核心机制
控制反转模式(依赖性注入)的基本概念是:不为创建对象,但是描述创建它的方式。在代码中不直接和对象和服务连接,而是在配置文件中来描述哪一个组件它需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 它是负责将其联系在一起。在典型的 IOC 场景中,是容器创建了所有对象,并且设置必要的属性来将它们连接在一起,决定什么时间去调用方法[14]。
2.5 hibernate
2.5.1 hibernate 简介
Hibernate 它是一个开放源代码的对象关系映射框架,它是对JDBC 进行了非常轻量级的对象封装,使Java 程序员能够随心所欲的使用对象编程思维来操纵数据库。 Hibernate 它可以应用在任何使用JDBC 的场合,既能够在Java 的客户端程序使用,也能够在Servlet/JSP的Web 应用中使用,最有意义的是,Hibernate 它能够在应用EJB 的J2EE 架构中取代CMP ,来完成数据持久化的重任[15]。 2.5.2 hibernate 核心接口
Session 接口它是负责执行被持久化对象的CRUD 操作(CRUD的任务是完成与数据库的交流,包含了许多常见的SQL 语句) 。但是,需要注意的是Session 对象是非线程安全的。并且Hibernate 中的session 不同于JSP 应用中的HttpSession [16]。这里当使用session 这个术语时,其实指的是Hibernate 中的session ,在以后会将HttpSession 对象称为用户session 。
SessionFactory 接口它是负责初始化Hibernate 的。它既可以充当数据存储源的代理,还负责创建Session 对象。在这里还用到工厂模式。但需要注意的是SessionFactory 它并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory 就够,但是当需要操作多个数据库时,可以为每个数据库都指定一个SessionFactory 。
Configuration 类它是负责配置并启动Hibernate 的,创建SessionFactory 对象的。在Hibernate 的启动过程中,Configuration 类的实例它先定位映射文档位置、读取配置,然后创建SessionFactory 这个对象[17]。
Transaction 接口它是负责事务的相关操作。它是可选的,同时开发人员也可以设计编写自己的底层事务处理代码[18]。
第三章 需求分析
3.1 网上订餐需求分析
3.1.1 功能需求分析
本系统主要是实现网上浏览菜单、订餐、产生订单等功能的系统。需要实现菜品信息的提示、购物车管理、客户信息注册、登录管理、订单处理和信息反馈等内容。需要完成的主要任务如下:当客户进入网上订餐时,应该在订餐页面中显示相应的菜品信息,来供客户去选择所需要的菜品,同时还提供按菜品名称,快速查询所需要菜品信息的功能。当客户选择预定某个菜品时,应该能够将对应菜品信息,如:价格、数量记录到对应的购物车中,此时客户可以选择选择其他菜品或是查看自己的购物车,最后,在购物车中填下相应的送餐信息,提交订餐的订单后,自动清除以生成订单的购物车中的信息。餐厅服务人员根据订单信息,查看详细订单明细并根据实际情况处理订餐。
分析网上订餐系统,制订整个系统框架如图3-1:
图3-1系统整体框架图
目前,用于需求建模的方法有很多,最常见的是包括数据流图(DFD)、实体关系图(ERD)和UML 三种方式。UML (统一建模语言)是一种建模语言,它的特点是良好的定义、表达能力突出、具有多重功能。软件工程中的一些方法和技术也都应用在其中。从软件需求分析开始就有了很多的应用,并且贯穿始终。本系统使用UML 中的用例图、活动图、状态图来对需求建模。代码的编写是以最终的类图和对类图的补充说明文档为基础的。
通常都是先画用例图和分析用例。然后把用例图中的actor 去除,其余的名词中的大多就是类了,再根据具体情况斟酌就可以画类图。类图并非一下子画完的,可以在一开始先画出一些必要的成员变量和成员函数,再分析业务逻辑,并且可以开始画
状态图、活动图和协作图、顺序图,在画这些图的时候对业务逻辑就会有更多的认识。但这时也会发现类图中的一些漏洞,然后再去补充类图。
3.2 系统架构分析
本网上订餐系统采用了B/S架构的设计体系,B/S结构相对于传统的C/S结构,
它的这种结构能使得数据只有结果集在浏览器中显示,数据的处理在服务器中进行,然后用户就不用安装客户端了,而且因为通过服务器端统一管理数据,很大程度降低了开发WEB 应用的难度;易于保证数据的一致性。
B/S模式的三层模型:
第一层表示层。用户接口部分它就是数据的表示层,会把用户和系统连接起来传递信息。它能够实现对输入的数据进行检查和对外输出的数据的功能,以便显示出来。当某个Web 浏览器需要获取资源,对一个服务器要申请服务时,服务器会在验证了用户信息以后,把所需的文件资料都传送给客户端,其采用的是HTTP 协议传送,文件资料就能够被用户接收了并且可以显示在浏览器上。
第二层事务逻辑层。事务逻辑层是应用的主体,它也可以被叫做功能层,业务处理程序基本上都是在这一层中。统计、汇总、分析、打印功能等等这些功能都是在功能层。申请的方式是通过SQL 向数据库来进行操作,根据具体的需求和用户的特殊要求,来链接程序使用数据库中的数据,处理之后的数据会从数据服务器转到web 上的服务器,最后客户端从web 服务器上得到数据。
第三层数据库层。数据库层是由两部分组成,一部分是数据库管理系统,另一部分是数据库,各个部分独自处理它的任务,任务是它对数据库进行处理,对数据库的操作,例如增删改查等,web 服务器能够获取最后的结果。负责管理其数据库的事数据库管理系统,提供给应用程序各种各样的服务,数据库管理系统处在数据库服务器端[18]。
3.3 可行性分析
随着中国人民的物质、精神和文化水平的不断提高,人们已不再仅是停留在吃饱的程度,而是不但要吃饱,更要吃好,并且越来越挑刺。正是基于此目的,网上订餐业务的出现,迎合了这些人的需求,他们不但省去了自己做饭的麻烦,还能寻找和发现新的菜品,品尝不同风格及不同种类的菜品。网上订餐业务在中国有着良好的发展空间和不错的发展前景。
综上,我们决定利用JA V A 和MySQL 来设计网上订餐系统。JA V A 可以创建与运用动态、交互的WEB 服务器应用程序。MySQL 是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等[19]。
第四章 系统设计
4.1 系统设计目标
4.1.1 系统安全性
对于不同的用户有着不同的权限,系统对于他们有良好的区分。同时保证了数据的安全性。可靠准确的数据、可恢复性的系统都是必须的。 4.1.2 可维护性
在使用系统的过程中,会碰到很多新的要求,有时候还要对新的内容进行扩充,因此在设计系统时一定要考虑到,设计出来的系统是否能满足实际的应用,并能随时添加新的功能。管理员会不定时对系统进行更新,如新功能的开发和数据的维护等。 4.1.3 用户操作
设计的目标中应该有能够使用户使用方便,操作简洁明了,这样才能更好让系统发挥其的作用。本系统中对用户有着很明确的操作指示,我们可以在网页中浏览系统并为用户提供给的任何服务,例如查看菜品信息,个人信息,密码修改以及个人发表的信息等。 4.1.4 运行速度
系统响应时间对于系统是至关重要。想到每位用户都不喜欢传统订餐方式等待的长远时间,后台会不断提高系统的运行速度,来争取在第一时间满足用户的订餐需求。对于管理员,需要注意的是在提高响应时间的时候,务必不能忘记系统的安全性。
系统的速度,主要与浏览器与服务器之间的网络通信速度以及服务器在处理事务时的运行速度。对此,应该选择网络连接更加快速,子链接较少的优质线路对服务器线路进行铺设,其次是在编程过程中减少对数据库的访问,加快访问速度,事务处理逻辑更加合理化,减少不必要的计算冗余。 4.1.5 界面
人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。用户界面设计是屏幕产品的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。用户界面是用户与程序沟通的唯一途径,要能为用户提供方便有效的服务。 用户界面设计的三大原则是:置界面于用户的控制之下、减少用户的记忆负担、保持界面的一致性。详细说来有以下几点。
1. 简易性
界面的简洁是要让用户便于使用、便于了解、并能减少用户发生错误选择的可能性。
2. 用户语言
界面中要使用能反应用户本身的语言,而不是游戏设计者的语言。 3. 记忆负担最小化
人脑不是电脑,在设计界面时必须要考虑人类大脑处理信息的限度。人类的短期记忆极不稳定、有限,24小时内存在25%的遗忘率。所以对用户来说,浏览信息要比记忆更容易。
4. 一致性
是每一个优秀界面都具备的特点。界面的结构必须清晰且一致,风格必须与游戏内容相一致。
5. 清楚
在视觉效果上便于理解和使用。
4.2 用户类别功能设计
4.2.1 订餐用户功能
图4-1 订餐用户功能图
4.2.2 餐馆管理员功能
图4-2 餐馆管理员功能图
4.3 总体设计
4.3.1 用户登录
图4-3 用户登录流程图
用户登录实现为本网站注册用户提供身份确认的功能,保证合法用户的应有权益。而且是否登录也将决定用户能否订餐。用户登录的前置条件是在登录前,用户必须完成“注册”。流程如下:进入网站首页之后,会看到一个登陆页面,只有在注册之后才能使用本系统,注册之后,后台会收到相关信息,只有用户名和密码正确才能登陆成功。
4.3.2 订餐服务
图4-4 订餐服务流程图
在订餐服务用例中,每个用户都有个购物车,用户可以将自己选定的菜品及其数量放入到购物车中,并且随时可以查看自己预定的菜品的数量和总价格。本用例开始前用户必须登录到系统中。如果用例成功,顾客可以浏览自己购物车中的信息并决定是购买还是删除。 4.3.3 订餐处理
图4-5 订单处理流程图
当用户提交已订的菜单或想取消已订的菜单时,都会在前台自动生成;处理订单的过程是订餐管理人员参与的,当前台有新的订单生成时,会自动在后台的现有订单列表中显示出来,订餐管理人员可以点击查看未处理的订单,根据实际情况进行处理,或者删除不需要的订单记录。具体流程如下:对于用户,在生成订单之前,可以随意
浏览菜单信息,并选择是否订购及提交之前是否删除;对于管理员,可以查看用户生成的订单信息,并在确认用户收到所订购的菜之后,有权删除该用户的订单。
之前已经完成需求分析,现在需要进行概念设计、逻辑设计和物理设计,本章将叙述这三个阶段的设计思路和设计过程。
4.4 数据库设计
4.4.1 数据库设计概述
概要设计的主要任务是把需求分析得到的DFD 转换为数据和软件结构。软件结构在设计时需要完成的任务是:把按功能的不同模块划分、确立层次结构及相互调用、接口与人机间的联系。数据的结构特性的确定、数据特征的全部描述和数据库的详细设计。显然,经过概要设计之后,就建立了一个系统的逻辑模型,该模型不受具体的计算机影响[20]。
4.4.2 数据库表的设计
数据库的主要表详细结构如下:
表4-2 餐馆表:restaurant
表4-3菜系表 :cookstyle
表4-4菜品表 :dishes
表4-5评价表:discuss
表4-7公告表:notice
表
4-8送餐时间表:sendtime
表
4-9订餐时间表:pretime
4.4.5 数据库模型
数据库各表关联关系图4-6所示:
图4-6 数据库模型图
15
第五章 系统实现
5.1 登陆和注册
首页为url 为“/index”,处理方法为IndexAction 中Index(),如图5-1所示:
图5-1 网站首页展示图
非登录用户在网站之内浏览饭店以及饭店菜品信息,但还无法订餐
网上订餐服务只有登陆以后才能进行,这样确保了订餐服务的有效性,避免预定后,不履行订单的恶意行为。
5.2 菜单信息浏览
在菜单信息中,可以直接浏览到全部的菜单信息,信息包括了:菜名,价格等。在该网页上也可以查看菜品的详细信息。如图5-2所示:
图5-2 订餐界面图
当用户点击订购 若还没有登录,则跳转到登陆页面,若已登录。在右侧会有小购物车提示用户,如图5-3所示:
16
图5-3 购物篮图
(此购物车在未登录状态时是不显示的)
点击确认可以进入购物车进行订单的最后处理 ,点击清除,可以消除已经订购的菜品
5.3 订餐服务
当用户进行订餐时,系统为用户生成了一个虚拟的购物车,在用户浏览详细的菜单信息时,将此菜品放入购物车中。
在订餐过程中,用户可以查看自己购物车中选购的菜品和金额,根据自己的需要可以清空购物车中的菜品,还可以选择继续订餐,在查看购物车时填入相关送餐信息,点击“提交订单”,完成了整个订餐流程。
5.4 用户反馈
用户可以给饭店进行评论和评分,如图5-4所示:
图5-4 用户信息反馈图
5.5 订单处理
用户下单后,可以在我的账户中查看订单,并对未完成的订单做完成处理,如图5-5所示:
图5-5 订单确认图
17
5.6 餐馆信息管理
餐馆管理员需要登录后才能进入餐馆后台管理。餐馆登陆成功后会跳转至餐馆管理页面,如图5-6所示:
图5-6 餐馆信息管理图
这里可以对餐馆中的信息进行操作例如对菜品的增加等
点击订单产看连接可以看到已下单的菜单,这个菜单包含本店需要做的菜品并有送餐地址,点击确认订单后,将不再显示在此订单表中。
5.7 程序相关
程序为降低耦合度,采用多层衔接,其中action 调用service ,service 调用dao.impl ,dao.impl 实现dao ,dao 中定义对model 的操作。如图5-7所示:
图5-7 程序构架图
Action :包中包含了所有的action 类
Dao :包含事务处理的接口
Dao.impl:dao的实现类
Model :包含实体类
Service :调用Dao.impl 降低耦合,能更好得实现系统的延展与维护
Util :包含一些用到的工具类,例如中文编码设置
18
结 论
该课题是利用J2EE 技术,它是基于B/S模式开发实现的网上订餐系统,在分析、研究网上订餐课题的基础上,对系统的组织结构、数据流程、用户需求等内容都进行了详细的调查分析。在设计的过程中,综合运用了在学校中所学的各种知识,将知识互相融合,特别是软件工程以及JAVA 等设计有着密切联系的知识。在实际的运用中,加强了自己的动手能力以及分析问题和解决问题的能力,把将学习来的理论运用到实际操作中。
在设计中,按照实际用户的需求,功能模块通过做出用例图来描述出来,并且各个功能模块的活动流程的阐述它是利用了活动图, 设计出相配合的数据库。在详细设计过程中,首先编写了一个数据库操作层——DAO 层,以后进行数据库操作时直接调用即可,简化了编码的工作量,减少很多繁复的操作;确定每个页面之间的调用关系以及各个功能模块中的页面数。重点在信息浏览页面,购物车和订单管理的设计与实现中。在编写代码的过程中,遇见了很多问题,例如:信息的显示,数据的连级删除等。最后,我们是通过上网查阅资料和多次修改、测试后解决了这些问题。最终对整个系统进行了功能测试,系统运行正常,基本达到了设计的效果。
目前已经有不少订餐网站在网络中盛行,并被人们接纳;网上订餐系统已成为如今电子商务中的一个重要的应用领域,它使得订餐人与餐厅之间能进行互动,足不出户,订购自己喜爱的菜品。餐厅它也可以在网络上查看订单,根据自己的营销策略来定价,并进行宣传,增加饭店菜品销量并提高饭店收入。目前,本系统的功能还比较简单,在未来的使用过程中,无论从平台的建设、系统的开发、功能的完善还是系统的维护上,都还需要进行进一步的完善。
参考文献
[1] 谢希仁. 计算机网络[M].北京:电子工业出版社, 2008.
[2] 耿祥义, 张跃平. JSP实用教程[M].北京:清华大学出版社, 2003.
[3] 龙马工作室.ASP+Access网站开发实例精讲[M].北京:人民邮电出版社.2007.
[4] 廖疆星等.Access 2002数据库开发指南[M].北京:冶金工业出版社.2001.
[5] 孙一林, 彭波. Java数据库编程实例[M].北京:清华大学出版社, 2002.
[6] 朱红, 司光亚. JSP Web编程指南[M].北京:电子工业出版社, 2001.
[7] 萨师煊, 王珊. 数据库系统概论[M].北京:高等教育出版社, 2002.
[8] 张海藩. 软件工程导论(第5版)[M].北京:清华大学出版社, 2008.
[9] 孙涌. 现代软件工程[M].北京:北京希望电子出版社, 2003.
[10] 刘增杰, 张少军. MYSQL 5.5从零开始学[M].北京:清华大学出版社, 2012.
[11] 耿祥义, 张跃平. JAVA2实用教程(第二版)[M].北京:清华大学出版社, 2004.
[12] 计磊, 周伟. J2EE整合应用案例[M].北京:人民邮电出版社, 2007:12-90.
[13] 侯文永. J2EE企业计算平台[J].北京:计算机应用研究, 2000:38-39, 42.
[14] 陈刚. Eclipse从入门到精通[M].北京:清华大学出版社, 2005:416-417.
[15] 祝定泽, 张海. My SQL核心内幕[M].北京:清华大学出版社, 2009:23-45.
[16] 曾东,曾文权. Web开发技术-ASP[M].清华大学出版社.2007.
[17] 赵家俊. 数据库应用基础[M].电子工业出版社.2006.
[18] 裴拯. ASP实用教程[M].北京理工大学出版社.2005.
[19] 王园辉.ASP 数据库开发实例解析[M].北京:机械工业出版社.2004.
[20] 李小丹. JSP技术手册[D].北京:中国电力出版社, 2002:1-465.
致 谢
本文从选题、构思、提纲拟订、资料收集、论文写作及修改至最后定稿,历时将近半年,在这段时间内,杨威老师为我们的课题倾入了大量的心血,给予了我们的丰富的建议和悉心的指导。毕业设计临近尾声,我们对杨老师表示衷心的感谢。她是一位非常优秀的年轻老师,知识丰富,严谨负责,做事态度非常认真,她优良的风范深深地影响着我们,让我拥有了正确的学习态度和对科学的严谨态度,让我顺利地完成了毕业设计。
另外,我要感谢学院使我学到了很多知识,让我顺利完成本科学业。同时也非常感谢所有关心过我、帮助过我的领导、老师和同学们。我会继续努力,争取在学业上更攀一层高峰。
最后向那些所有支持鼓励和曾经帮助过我的人表示由衷的谢意!
范文三:网上订餐系统毕业论文
开封大学
毕业设计(论文)
题 目 __ 网上订餐系统 学生姓名 专业班级 学 号 院 (系) 指导教师(职称) 完成时间 2014 年04月11日
目 录
论 文 摘 要 .......................................................................................................... 4
一、引言 ..................................................................................................................... 5
二、系统概述 .............................................................................................................. 6
(一)可行性分析 . ................................................................................................ 6
(二)需求分析 .................................................................................................... 7
1. 用户需求分析............................................................................................... 7
2. 管理员需求分析 ........................................................................................... 7
3. 系统用例图 .................................................................................................. 7
(1)用户用例图 .......................................................................................... 7
(2)管理员用例图 ....................................................................................... 8
(三)功能描述 .................................................................................................... 8
三、系统总体设计 . ...................................................................................................... 9
(一)系统设计 .................................................................................................... 9
1. 逻辑结构分析............................................................................................... 9
2. 功能模块划分............................................................................................... 9
3. 系统流程概述............................................................................................. 10
4. 系统主要类图............................................................................................. 11
(二)系统流程 .................................................................................................. 12
1. 前台界面 . ................................................................................................... 12
2. 后台界面 . ................................................................................................... 13
(三)数据库设计 . .............................................................................................. 13
1. 数据库的概念设计 ..................................................................................... 13
(1)管理员实体 ........................................................................................ 13
(2)用户实体 ............................................................................................ 13
(3)餐品实体 ............................................................................................ 14
(4)订单实体 ............................................................................................ 14
(5)系统总E-R 图 .................................................................................... 15
2. 数据库的逻辑设计 ..................................................................................... 15
3. 数据库的物理结构设计 .............................................................................. 16
(1)用户信息表(userinfo) ......................................................................... 16
(2)管理员信息表(admininfo) ................................................................... 16
(3)餐品信息表(canpininfo ) ................................................................. 17
(4)订单信息表(orderinfo ) ................................................................... 17
四、系统详细设计与实现 .......................................................................................... 18
(一)运用平台或环境 ....................................................................................... 18
(二)实现主要技术简介 .................................................................................... 18
1.JavaServer Pages (JSP)技术 . ................................................................... 18
2. 最佳JSP 应用服务器Tomcat . ................................................................... 19
3.JDK 配置 ................................................................................................... 19
4.Myeclipse 简介 .......................................................................................... 19
5.SQL Server 2005 简介 ............................................................................. 20
6.Servlet 简介 . .............................................................................................. 20
(三)数据库的连接 ........................................................................................... 21
(四)系统详细设计(界面设计) .......................................................................... 22
1. 用户登录界面............................................................................................. 22
2. 用户注册界面............................................................................................. 23
3. 用户查看购物车界面 . ................................................................................. 24
4. 用户生成订单界面 ..................................................................................... 26
5. 管理员修改餐品信息界面 . .......................................................................... 28
(五)实现方法 .................................................................................................. 29
1. 系统配置 . ................................................................................................... 29
2. 页面设计 . ................................................................................................... 29
3. 用户管理 . ................................................................................................... 29
五、结束语 . ............................................................................................................... 30
致谢 .......................................................................................................................... 31
参考文献 ................................................................................................................... 31
网上订餐系统的设计与实现
论 文 摘 要
网上订餐系统是用户实现网络交易的一种方式。设计和实现了一个B/S结构的网上订餐系统,着重论述了系统的功能与实现、数据流程及存储。包括餐品信息介绍、网上订餐、用户登录、用户注册、以及对订餐车的操作,包括将餐品加入购物车和从购物车中将餐品删除等功能, 当用户决定订购后, 可以点击购物车中确认订购一项, 生成订单提交给后台数据库, 用户也可以查询自己订单的状态查看是否订单应经被受理等。使用图文并茂(功能代码及截图)的方式,对整个网上订餐系统功能模块的实现方法进行阐述和分析。本系统主要是针对那些具备计算机管理工作条件的餐饮企业助其快速开发一个界面友好、与客户交互方便的网上订餐系统, 以拓展餐饮企业的服务对象, 增加信息流通量, 减少人工干预, 提高信息反馈速度。它能够实现普通用户通过互联网订餐,节省购餐时间等功能。其前台运用JavaScript 技术、servlet 、jsp 开发语言, 实现用户订餐页面友好的界面互动,主要通过SQL Server 2005、Tomcat 、jdbc 等实现数据库的连接。
关键词 网上订餐系统 SQL Server 2005 jsp servlet
网上订餐系统的设计与实现 XXX
(XX 大学 XXXX学院 XXXXX专业)
一、引言
人类的文明始于饮食,西汉司马迁在《史记·郦生陆贾列传》中写道:“王者以民人为天,而民人以食为天”。可见饮食在人类生活中占有十分重要的地位。离开饮食将无法生存,当然也就谈不上社会的存在和各种文化现象的发展。人类的饮食文明,经过生食、熟食、烹饪三个阶段。随着社会的发展,食物种类的丰富,人们开始注重食物的色、香、味、形,烹调方法上也有了千变万化,在中国的烹调技艺上,发展出了“炸、炒、熘、爆、炖、煸(bian )、煮、焖、烤、烧、扒、烩、煎、涮、蒸等多种制作方法,并形成了“鲁菜、苏菜、粤菜、川菜、浙菜、闽菜、湘菜、徽菜八大菜系,餐饮已作为一个行业存在于现代文明社会中,成为国民经济的重要组成部分。
二十一世纪是信息化、知识化的世纪,随着社会的进步、计算机应用的迅猛发展和网络应用的不断扩大,使传统的订餐形式得到了极大的扩充,使人们订餐更加的便捷。基于Java Web的网上订餐系统,就是这样一种基于计算机网络的网上订餐形式,它的出现,大大地扩展了现行的订餐方式,使餐饮摆脱了空间上和时间上的约束,无论谁,只要会上网,都可以坐在电脑前面,方便地进行上网订餐,可以说是对餐饮业的一次革命。相比传统的订餐方式,网上订餐系统的主要优点是:
便捷性。网上订餐系统使用非常方便,只要是能够上网的地方,人们都能够轻松使用系统的所有功能。在传统的订餐方式中,顾客要么是到餐馆去,但是由于可能工作忙而没有时间去餐馆,这样餐馆就失去了一名顾客,而打电话,也会有一定的费用。而使用了网上订餐系统后,这些问题都没有了。
可扩展性。而今网络技术突飞猛进,发展迅速,新技术的产生速度是以前的数十倍。网上订餐给顾客留下非常深刻的视觉印象,增加潜在的订餐顾客。所以可以肯定地说,网上订餐的前景是非常广阔的,可扩展性非常的好。
因此,开发一个餐馆信息系统是十分必要的,通过前台的菜品信息展示,通过购物车的模式形成餐饮企业的电子商务平台,通过后台整合餐饮的供应链,提高其在信息化条件下的管理水平,对现在激烈竞争的餐饮行业中求发展的餐饮企业来说,无疑是一个福音。
二、系统概述
本系统的全称为网上订餐系统, 系统的设计目的是为了满足消费者只要通过互联网就可以足不出户的订购自己喜欢的餐品, 改变传统的商业交易方式, 让消费者在互联网上就可以进行交易, 实现网上购买餐品, 同时也提高了各个餐饮店的利润, 并方便了饭店对餐饮的管理.
(一) 可行性分析
随着全国的物质、精神和文化生活的高度提高,人们已经不再仅仅停留在吃饱的程度,而人民是不但要吃饱,还要吃好,并且越来越挑剔,也正因为如此,网上订餐业务的出现,正好迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的菜种,品尝不同风格和不同种类的菜品,网上订餐业务在中国有着极大的发展空间和良好的发展前景。
网上订餐业务的兴起,折射出餐饮业善抓机遇、抢占利润第二落点的经营理念,同时也显示出消费者在日常所需中,运用网络观念的意识正逐渐增强。但比起如今火爆的网上购物,网上订酒店住宿等服务,网上订餐服务在一些餐饮企业中仍未引起足够的重视,对于消费者来说,许多人对这一新兴业务尚缺乏了解,这种现象,在一些中小城市表现较突出。对于广州、北京、上海等大城市,由于网上订餐服务起步较早,一些餐饮
企业的网上经营已逐步走上正轨,其网上订餐的经营份额已占一定比例,给先行一步涉足网上订餐的企业带来滚滚财源。
综上所述,决定运用Java 和SQL Server 2005设计网上订餐系统。Java 可以创建与运用动态、交互的WEB 服务器应用程序。SQL Server 2005是一个杰出的数据库平台,具有功能强大,安全可靠等优点。
(二) 需求分析
随着中国互联网的兴起,中国网名应经有几亿多,越来越多的人,尤其是白领、蓝领,越来越喜欢在网络上订餐,网上订餐更加直观,餐厅利用互联网,既可以在互联网上宣传自己的餐厅,又可以为自己赚取更大的利润额。
1. 用户需求分析
用户的需求主要包括:用户登录、用户注册、对餐品的浏览、对餐品信息的详细了解、把想订购的餐品放入购物车、如果确定订购则生成订单。
2. 管理员需求分析
管理员的需求主要包括:管理员登录、管理员注册、对用户订单的管理、对餐品信息的修改与删除、对其他管理员的信息的管理、对会员信息的管理。
3. 系统用例图
(1)用户用例图
用户的主要成员是社会工作人员,其次是学生或家庭人员,他们可以通过注册获得一个账户,用于本系统的登录,那么用户在此系统中的功能有哪些呢?首先,无论是用户还是管理员都需要使用自己的用户名和密码登录本系统,以此来保证系统的安全性。然后用户就可以浏览本系统中的所有餐品并可以查看每个餐品的详细信息,可喜欢的餐品放入购物车中,选择结束后可在购物车中生成餐品订单,也可以删除各个餐品。通过以上分析,画出的用户用例图如下图所示:
图1:用户用例图
(2)管理员用例图
管理员作为系统的维护者,随本系统所能做的操作有:可以对用户信息进行管理,具体操作是对用户信息进行删除;管理员也可以对餐品信息进行更改与删除工作;对对用户所下的订单进行送餐处理;也可以通过一个管理员进行注册新的账户,对系统中其他管理员信息科进行更改和删除工作。通过以上分析,画出的管理员用例图如下图所示:
图2:管理员用例图
(三) 功能描述
系统采用B/S模式来实现客户端对服务器端的调用,所谓B/S模式即浏览器/服务器模式,数据库采用SQL Server 2005数据库开发工具, 开发工具采用Dreamweaver ,采用 JavaScript的脚本进行编程。 本系统基于Java Web 技术,只要能连接Internet ,就能访问本系统。本系统能够提高餐饮企业的管理效率,降低餐饮企业运营成本,填补了国内空白,符合当前低碳生活的主题,为世界环境的发展做出了卓越的贡献。
三、系统总体设计
(一) 系统设计
系统设计主要包括:逻辑结构分析、功能模块划分、系统流程概述、系统用例。具体设计如下:
1. 逻辑结构分析
Web 站点系统的体系结构大致可分为三层逻辑结构,即浏览器—Web 服务器—数据库服务器(Browse —Web Server—DB Server)。其中Web 服务器又被细分为前端和后端两部分。三层结构将用户界面、应用逻辑和数据管理三者之间彻底分离,彼此独立,各司其职。用户端通过URL 与Web 服务器建立网络连接,将Web 服务器上的信息下载到客户端浏览器上进行访问。而应用逻辑层则通过JDBC 和数据库服务器进行数据交换。如下图:
图3:Web 站点系统体系结构图
2. 功能模块划分
本系统设计的目标是实现网络订餐,该系统能够实现用户的登录与注册,简便的商品查看,购物车式的商品选购,用户生成订单,在系统的后台,管理员可以处理用户订单,对用户进行操作,并可以对商品信息进行管理。
系统需要提供的主要功能如下:
*用户登录后可以浏览商品信息,也可以注册账户成为会员
*管理员可以对商品进行更改与删除操作
*管理员可以对用户进行删除操作
*管理员可以对用户订单进行送餐操作
*用户可以对想要订购的餐品进行下定单操作 *用户可以查询餐品的详细信息 具体显现如下图所示:
图4:系统设计图
3. 系统流程概述
在前台本系统需要用户先进行登录,登录成功后用户可以查询网站内所有餐品的信息,如果想进一步了解餐品,也可以点击商品旁的详情,查看餐品的详细信息,用户如果想要订购餐品,则可以在餐品旁的订购处点击订购,订购完成后可以在购物车中对所选定的餐品进行删除与生成订单的操作,订单生成后用户完成所有订餐流程。在后台,管理员需要先登录才可以对用户、餐品、订单等进行管理,否则不可以对后台进行操作。
具体的前台/后台系统流程如下两图所示:
4. 系统主要类图
图5:后台流程图
图6:前台流程图
图7:用户类图和管理员类图
图8:餐品类图和订单类图
(二) 系统流程 1. 前台界面
用户需要先登录,登录成功后可以查看所有公布的餐饮信息,也可以查看餐品的详细信息,加入购物车,并进行选购,当查看购物车时,如果有些餐品不想定购了,也可以将此餐品从购物车中删除,或清空购物车,如果想要订购则可以点击生成订单。如果还没有账户,你可以先进行注册,然后再进行登录。
2. 后台界面
管理员需要先进行登录,登录成功后,可以进行对会员的管理、其他管理员,以及餐品的信息的管理,并且可以对会员进行删除操作,对餐品可进行更改其信息以及删除操作,对管理员可进行删除操作,也可以进行订单查询,对订单做出相应的处理。
(三) 数据库设计 1. 数据库的概念设计
数据库的概念设计是根据需求分析的结果,将用户对数据的需求综合成一个统一的概念模型,它是整个数据库设计的关键。设计时,根据局部的E-R 图得到系统数据库总体的E-R 图。概念模型是从现实世界到计算机世界的一个中间层次,是现实世界到信息世界的一种抽象,它不依赖于具体的计算机系统。概念模型的表示法最常用的是实体-联系方法,也称为E-R 模型,E-R 图中包括以下三大要素:矩形,表示实体(集);椭圆,表示实体的属性;菱形,表示实体(集)之间的联系。
网上订餐系统使用SQL Server2005存放数据,本系统涉及到的实体主要有用户、管理员、餐品信息、订单信息等,下面将主要介绍几个实体的属性和个实体之间的关系。
(1)管理员实体
在管理员实体中,主要涉及的属性有:管理员名、管理员密码、真实姓名、email 、教育程度、工作性质、家庭地址、身份证号、性别,根据这些信息可以画出管理员信息的E-R 图,如下图所示:
图9:管理员实体图
(2)用户实体
在用户实体中,主要涉及的属性有:用户名、用户密码、真实姓名、email 、教育程度、工作性质、家庭地址、电话号、性别,根据这些信息可以画出用户信息的E-R 图,如下图所示:
图10:用户实体图
(3)餐品实体
在餐品实体中,主要涉及的属性有:餐品名(canpinname )、餐品简单描述(canpindescription)、餐品详细描述(canpindetaildescription)、餐品价格(canpinprice)、餐品图片(canpinimange),根据这些信息可以画出餐品信息的E-R 图,如下图所示:
图11:餐品实体图
(4)订单实体
在订单详细实体中,主要涉及的属性有:订单号(oid )、客户姓名(custname )
、
用户名(username)、送餐地址(address)、所订购的餐品(canpinlist)、餐品总价格(totalprice)、订餐时间(orderdate),根据这些信息可以画出订单信息的E-R 图,如下图所示:
图12:订单实体图
(5)系统总E-R 图
图13系统总E-R 图
2. 数据库的逻辑设计
逻辑数据模型反应数据在计算机中的存储结构,例如:存储介质的物理块、指针和索引等。每个逻辑数据模型在实现时,都有其对应的物理数据模型。物理数据模型不仅与具体的数据库管理系统有关,而且与计算机系统的硬件和操作系统有关。网上订餐系统的数据模型如下所示。
管理员(管理员名,密码,真实姓名,email ,地址,身份证号,学历,主要工作,性别)
用户(用户名,密码,真实姓名,email ,地址,电话号码,学历,工作,性别) 餐品(餐品名,餐品简单描述,餐品详细描述,餐品价格,餐品图片)
订单详表(订单号,客户姓名,用户名,送餐地址,餐品,总价格,订餐时间) 3. 数据库的物理结构设计
数据表设计主要是进行数据库的物理设计,及数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合数据需求,分析各个数据之间的关系,按照DBMS 提供的功能和描述工具,设计出规模适当、正确放映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。
(1)用户信息表(userinfo)
用户登录时需要输入用户名和密码,所以用户数据表中必须包含用户名(username)、密码(password)两个信息,同时在信息表中还可以有其他的用户信息,比如:用户的email 、真实姓名(realname)、性别(sex)、电话号码(idnum)、地址(address)、学历(education)、工作(professional)。从这些功能上我们可以将数据库表设计如下表所示:
表1 用户信息表
(2)管理员信息表(admininfo)
管理员登录时需要管理员名和密码,所以管理员数据表中必须包含管理员名(adminname)、密码(password)两个信息,还可以有其他的管理员信息,比如:管理员的email 、真实姓名、性别(sex)、身份证号(idmun)、地址(address)、学历(education)、(professional)。从功能上数据库表设计如下表所示:
表2 管理员信息表
(3)餐品信息表(canpininfo )
餐品信息表主要是用于描述餐品的信息,如:餐品的名称(canpinname),餐品的简单描述(canpindescription),餐品的详细描述,以及餐品的图片。餐品的信息表详细描述如下表所示:
表3 餐品信息表
(4)订单信息表(orderinfo )
订单信息表主要是用于描述用户订购餐品所生成的订单信息,用于管理员处理用户订购信息的主要来源,因此,在订单信息表中应该存在以下几条记录,以方便餐品店对用户订购餐品做出正确的处理,如:订单号(oid)、客户名(custname)、用户名(username)、订购餐品列表(canpinlist)、餐品总价格(totalprice)、订餐时间(orderdate)、送餐地址(address)。因此,订单信息表详细描述如下表所示:
表4 订单信息表
四、系统详细设计与实现
(一)运用平台或环境 操作系统:Window 7操作系统 数据库:Microsoft SQL Server 2005 网络通信协议:TCP/IP 支持软件:tomcat 、Myeclipse (二)实现主要技术简介 1.JavaServer Pages (JSP)技术
在可发JSP 规范的过程中,Sun 公司与许许多多主要的Web 服务器、应用服务器和开发工具供应商,还有各种各样富有经验的开发团体进行合作。最后找到了一种平衡了应用和页面开发的具有可移植性和易用性的开发方法,JSP 技术特征在多个方面加速了动态Web 页面的开发:1、将内容的生成和显示分离,使用JSP 技术,Web 页面开发人员可以使用HTML或者XML表示来设计和格式化最终页面。2、强调可重用的组件,绝大多数JSP页面依赖于可重用的,跨平台的组件来执行应用程序所要求的更为复杂的处理问题。开发人员能够共享和交换执行普通操作的组件,或者发布这些组件使更多的使用者或者客户团体能够使用。3、采用标识简化页面开发,Web 页面开发人员不会都是熟悉脚本语言的编程人员。JSP 技术封装了许多功能,这些功能是容易使用的、同时与JSP 相关的XML 标识中进行动态内容的生成时需要的。通过开发定制化标识库,JSP 技术室可扩展的。由于JSP 页面的内置脚本语言是基于Java 编程语言的,并且所有的
JSP 页面都能被编译成为Java Servlet ,JSP 页面就具有Java 技术的所有好处,包括健壮的存储管理和安全性。
2. 最佳JSP 应用服务器Tomcat
大多数人都喜欢讲Apache Tomcat当作JSP 应用服务器使用。有人可能会说,它之所以受欢迎是因为这个服务器是免费喝开放源代码的,但是真正的原因远不止这些。Apache Tomcat 能够受欢迎,不仅是工作性能非常好,还有没有初始的开发成本开销等有力的竞争元素,单着不是决定因素。Tomcat 结构非常合理,更由于Tomcat 是Apache 组织的产品,这个组织有着雄厚的技术更新力量,并且Tomcat5.0很好的支持了JSP2.0规范,因此有着很好的发展前景。
Tomcat 是一个免费的开源的Servlet 容器,它是Apache 基金会的Jakarta 项目中的一个核心项目,由于Apache ,Sun 和其他一些公司以及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和Jsp 规范总能在Tomcat 中得到体现。Tomcat 被JavaWord 杂志的编辑选为2001年度最具创新的java 产品,可见其在业界内的地位。
Tomcat 不仅仅是一个Servlet 容器,它也具有传统的Web 服务器功能:也处理Html 页面,但是与Apache 相比,它的处理静态Html 的能力就不如Apache 。
JDK 是Sun 公司的JAVA 应用程序和组件的开发环境,是编译、测试工具,也是提供JAVA 程序的JAVA 虚拟机平台,是调试和运行JSP 所不可缺少的工具。
3.JDK 配置
JDK(Java Development Kit)是一切java 应用程序的基础,可以说,所有的java 应用程序是构建在这个之上的。它是一组API ,也可以说是一些java Class。
安装好JDK 后,还需要在环境变量中进行对应的配置,主要进行以下配置: 在系统变量—环境变量中:首先,新建变量名:JAVA_HOME,其值为:C:\Program Files(86)\Java\jdk1.5.0_12 第二,新建变量名:CLASSPATH ,其值为:.; C:\Program Files(86)\Java\jdk1.5.0_12\jre\lib 第三:编辑变量名:PATH ,在其值的最前面加上:C:\Program Files(86)\Java\jdk1.5.0_12;%PATH%;
4.Myeclipse 简介
Eclipse 最初是IBM 的一个软件产品,前期投入了4000万美金。2001年11月, IBM宣布将其捐给开放源码组织Eclipse.org 。目前Eclipse 的市场占有率已经超过了
Borland 公司的JBuilder ,成为Java 开发平台中的主流。 Eclipse的设计思想是:一切皆为插件。它自身的核心是非常小的,其它所有的功能都以插件的形式附加到该核心上。 Eclipse中三个最吸引人的地方:一是它创新性的图形API ,即SWT/JFace,在此之前,我曾经用过Java 的AWT/SWING来开发Windows 应用程序,AWT/SWING其界面客观地讲不够美观,而且界面响应速度比较慢;而SWT/JFace则大大改善了Java 在这方面的能力。二是它的插件机制。三是利用它的插件机制开发的众多功能强大的插件。
MyEclipse 企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse )是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE 的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML 、Struts 、JSF 、CSS 、JavaScript 、SQL 、Hibernate 。
5.SQL Server 2005 简介
Microsoft SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
Microsoft SQL Server 2005 是用于大规模联机事务处理 (OLTP)、数据仓库和电子商务应用的数据库平台;也是用于数据集成、分析和报表解决方案的商业智能平台。
SQL Server 2005 引入了一些“Studio”帮助实现开发和管理任务:SQL Server Management Studio 和 Business Intelligence Development Studio。在 Management Studio 中,可以开发和管理 SQL Server 数据库引擎 与通知解决方案,管理已部署的 Analysis Services 解决方案,管理和运行 Integration Services 包,以及管理报表服务器和 Reporting Services 报表与报表模型。在 BI Development Studio 中,可以使用以下项目来开发商业智能解决方案:使用 Analysis Services 项目开发多维数据集、维度和挖掘结构;使用 Reporting Services 项目创建报表;使用报表模型项目定义报表的模型;使用 Integration Services 项目创建包
6.Servlet 简介
Servlet 是JavaEE 架构中的关键组成部分,JavaEE 是基于分布式和多层结构的企业级应用开发规范和标准。
Servlet 技术是Sun 公司提供的一种实现动态网页的解决方案,它是基于Java 编程语言的Web 服务端编程技术,主要用于在Web 服务器端获得客户端的访问请求信息并动态生成对客户端的响应信息,此外,Servlet 技术也是JSP 技术的基础。
Servlet 是Web 服务器端的Java 应用程序,它支持用户交互式地浏览和修改数据,生成动态的Web 页面。Servlet 与普通Java 程序相比,只是输入信息的来源和输出结果的目标不一样,通常普通java 程序所能完成的大多数任务,Servlet 程序都可以完成,Servlet 具有的特点为:高效、方便、功能强大、良好的可移植性。
(三) 数据库的连接
本系统使用的SQL Server 2005数据库,使用Servlet 和Jsp 技术,其中使用JDBC 连接数据库的方法为:
db.properties 属性文件
DBUtil.java 文件
(四)系统详细设计(界面设计)
1. 用户登录界面
用户进入网站时,需要先进行登录才可以浏览到餐品信息,当用户没有输入用户名或密码时,点击登录将会弹出提示框,提示用户输入用户名和密码,具体表现如图13所示,当用户名和密码均输入正确时,则进入网站,如图14所示:
主要代码:
图15:用户登录
主要代码: HttpSession session = request.getSession();
String name= request.getParameter("username1");
String pass=request.getParameter("password1");
UserInfoDao udao = new UserInfoDao();
UserInfo u = udao.findByKey(name);
if (u==null ){
request.getRequestDispatcher("MyJsp.jsp").forward(request,
response); }
else if (!u.getPassword().equals(pass)){
request.getRequestDispatcher("index.jsp").forward(request,
response); }
else if (u.getQuanxian()==1){
request.getRequestDispatcher("dongjiezixun.jsp").forward(request
, response);}
else {
ShopCart mycart = new ShopCart(); session.setAttribute(name,mycart); session.setAttribute("username", name); session.setAttribute("userInfo", u);
request.getRequestDispatcher("a.jsp").forward(request, response);}
2. 用户注册界面
当用户没有账户时, 可以注册一个账户, 在注册账户时, 用户应该认真填写里面的信息, 当用户必须填写的一些信息出现错误时, 界面将会出现如下图所显示的现象, 用户只有正确填写这些信息才可以获得一个账户.
图16:用户注册界面
主要js 代码为:
document.getElementById("userinfo").innerHTML=¨"用户名可以使用";
return true;}
else{
document.getElementById("userinfo").innerHTML="<>
color=blue>用户名长度至少6位,且由字母、数字、下划线组成";
return false; } }
function checkpassone(){
var pone = document.myform.passone.value;
if(pone.length>=8){
document.getElementById("passoneinfo").innerHTML="密码符合要求
";return true;}
else{
document.getElementById("passoneinfo").innerHTML="<>
color=blue>密码长度至少8位";
return false;} }
function checkpasstwo(){
var pone = document.myform.passone.value;
var ptwo = document.myform.passtwo.value;
if(pone==ptwo){
document.getElementById("passtwoinfo").innerHTML="密码一致";
return true;}
else{
document.getElementById("passtwoinfo").innerHTML="<>
color=blue>密码输入不一致";
return false;}}
function checkemail(){
var em = document.myform.email.value;
var regem = new
if(regem.test(em)){
document.getElementById("emailinfo").innerHTML="邮箱格式正确";
return true;}
else{
document.getElementById("emailinfo").innerHTML="<>
color=blue>邮箱格式不正确";
return false; } }
checkusername()&checkpassone()&checkpasstwo()&checkemail()} RegExp("^[A-Za-z0-9]+\@([A-Za-z0-9])+(\.([A-Za-z0-9])+)+$");
3. 用户查看购物车界面
当用户点击删除时, 可以删除单个餐品, 餐品数量减一; 当用户点击继续添加时, 可以再次加入一个餐品, 餐品数量加一; 当用户点击清空购物车时, 购物车中餐品将全部清
空; 当用户点击继续购物时, 将返回到餐品列表; 当用户点击确认订购时, 将跳转到生成订单界面.
图17:购物车
showCart.jsp 中主要代码为: <% String user = (String) session.getAttribute("username");
ShopCart canpinmap=(ShopCart) session.getAttribute(user);
%><%
Collection canpinname = canpinmap.getCart();
Iterator itor=canpinname.iterator();
while (itor.hasNext()){
ShopCartItem sitem = (ShopCartItem)itor.next();
CanpinInfo item = (CanpinInfo)sitem.getCanpin();
href="shopcartservlet?operation=removeItem&canpinname=<%=item.getCanpinname()%>">删除
href="shopcartservlet?operation=addItem&canpinname=<%=item.getCanpinname()%>">继续添加
%>
继续购物
清空购物车
确认订购
购物车主要代码:ShopCartServlet.java
else if (operation.equalsIgnoreCase("removeItem")){ this .doRemove(request,response); return ;} this .doClear(request, response);}}
else { public void doAdd(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
HttpSession session=request.getSession(false ); String user = (String) session.getAttribute("username"); String cn = request.getParameter("canpinname"); CanpinInfoDao cdao = new CanpinInfoDao(); CanpinInfo can = cdao.findByKey(cn); cartmap.add(cn, can);
doBrower(request,response);}
void doRemove(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException{
HttpSession session=request.getSession(false ); String user = (String) session.getAttribute("username"); ShopCart cartmap=(ShopCart) session.getAttribute(user); String cn = request.getParameter("canpinname"); cartmap.remove(cn);
} ShopCart cartmap=(ShopCart) session.getAttribute(user); doBrower(request,response);
void doClear(HttpServletRequest request, HttpServletResponse
response) throws ServletException,IOException{
HttpSession session=request.getSession(false ); String user = (String) session.getAttribute("username"); ShopCart cartmap=(ShopCart) session.getAttribute(user); cartmap.celar();
doBrower(request,response); }
void doBrower(HttpServletRequest request, HttpServletResponse
response) throws ServletException,IOException {
String path = "showCart.jsp";
request.getRequestDispatcher(path).forward(request, response);
}
4. 用户生成订单界面
用户在购物车中点击确认订购后, 如果用户选择了餐品则将会出现生成订单界面, 如果用户没有订购任何餐品, 则会跳转到出错界面, 在订单界面用户可以更改客户姓名和送餐地址, 当填写结束后点击提交就可以将订单提交到后台数据库中, 再由管理员进行处理.
图18:订单界面
orderdeal.jsp 中主要代码如下:
OrderDealServlet.java 中主要代码为
Collection items = sc.getCart();//获取购物车中商品集合
Iterator it = items.iterator();//遍历该集合
while (it.hasNext()){
ShopCartItem sci = (ShopCartItem)it.next(); CanpinInfo cinfo = sci.getCanpin(); str=str+cinfo.getCanpinname() + " " ; Order ord = new Order(); ord.setOid(oid); ord.setCustname(custname); ord.setUsername(username);
ord.setCanpinlist(str); ord.setAddress(address); ord.setOrderdate(new Date()); OrderDAO oDAO = new OrderDAO(); } ord.setTotalprice(totalprice);
oDAO.ainsert(ord);//增加记录到订单表}
String path = "orderconfirm.jsp";
request.getRequestDispatcher(path).forward(request, response);
5. 管理员修改餐品信息界面
管理员在登录后可以对餐品信息进行管理, 其中包括对餐品的删除操作和对餐品信息的修改操作, 当用户点击修改时, 将出现修改界面, 在用户修改结束后, 餐品修改后的信息将会显示到界面中并保存到数据库中.
图19:修改前餐品信息
图20:修改时餐品信息
图21:修改后餐品信息
修改餐品信息主要界面代码:
show1.jsp
canpinup.jsp
CanpindealUpdate.java
(五)实现方法
1. 系统配置
安装MyEclipse 5.1.1 GA ,在系统环境变量中配置好路径,再安装SQL Server2005数据库,安装jdk 和Tomcat
2. 页面设计
系统页面使用JSP 做前台页面的设计与美化处理,后台使用servlet 、DAO 层、DBUtil 等做页面跳转处理和连接数据库,进行后台页面管理。
3. 用户管理
用户需要先进行登录才可以对餐品进行订购与查询,如果还没有账户,可以先注册新的账户,在进行登录,查询、订购餐品、查看自己的购物车中的餐品,并且可以对购物车中的餐品进行订购和删除功能。
五、结束语
这次的毕业设计,对我来说是极为重要的一次设计。在学习了三年的计算机应用后,我一直没有什么机会可以真正的实践一下,了解一下自己的实力, 自己真正学到了什么, 又到底有哪里不足,哪些地方需要改进。在做这个毕业设计的过程中,我遇到了这样那样的问题,突然间发现自己掌握的知识太过于琐碎,或许只知道单方面的制作,却不会真正的应用到实际中,在做毕业设计的时候,发现好多东西都是自己当时懂得却不会实际应用的东西,通过这次的毕业设计,让我学到可许多的知识,更准确的说是让我更加牢靠以及通顺的掌握和应用了以前学过的却很散的知识。
此次的毕业设计,我做的是网上订餐系统,在系统中需要实现用户对商品的一些简单操作, 比如将用户将想要的餐品加入到购物车中、查看餐品的详细信息、以及从购物车中删除所订购的商品或者继续添加餐品, 当用户打算订购餐品后点击确认订购可以转到生成订单页面,同时用户也可以查询自己的订单的状态, 查看订单是否已经被受理, 如果不想订购了也可以删除订单。后台普通管理员可以对用户进行删除操作也可以对用户进行冻结和解除冻结操作,对餐品可以进行更改餐品信息和删除餐品的操作,对用户下的订单可进行删除订单和受理订单操作,而总管理员除了能够进行以上几个操作外, 还可以对普通管理员的信息进行修改和删除操作. 想要实现这些操作其中就需要涉及到对数据库的使用和设计,为此,我在上面花了很长时间,大二学习SQL Server 2005的时候,当时只是单纯的在其运行软件中单方面的写一些代码查看运行结果,并没有与其他技术有什么关联的连接,而现在却需要在DAO 层等文件中引用到数据库,一时之间还有点不知所措,还好在老师的指导之下,慢慢熟悉并掌握了数据库的使用方法,实现了对数据库的增删查改等操作!
俗话说:工欲善其事必先利其器,熟悉掌握一种工具的使用是非常有必要的。通过此次的毕业设计,我发现自己有太多的不会,太多的不足,太多的知识需要从课本运用到实际中。感谢此次的毕业设计,给了我一个机会,让我更加熟练地掌握变成技术。同时感谢我的辅导老师,让我能够认识到系统中的那些不足,使得我的系统更加的完善,直到我顺利的完成了此次的毕业设计!
30
致谢
经过一个月的忙碌和工作,本次的毕业设计已经接近尾声了,做为一个在校毕业生毕业设计,由于经验和只是的匮乏,使得设计难免有许多考虑不够周全的地方,如果没有指导老师的监督指导,以及同学们之间的相互帮助和讨论,想要顺利的完成此次的毕业设计是比较难的。
在这次的毕业设计中信息工程学院给我提供了很好的环境,老师们也很慷慨的给予了我很多帮助,尤其是我的指导老师皇甫大恩从设计的初期到论文的完成,都提出了很多宝贵的意见和建议。本次的毕业设计使用我所学的专业,虽然我实现的功能不是很全面,但是也不是很简单。还好老师给了我很大的支持,给了一些相关的技术资料,提供了良好的设计思路。因此,真的很感谢我的指导老师以及我的任课老师,由于他们的指导和传授使得我能够顺利的完成此次的毕业设计。
然后还要感谢大学三年来所有的老师,为我大写计算机应用专业知识的基础,同时感谢我的同学们,正是因为有了他们的支持和鼓励,此次的毕业设计才能够顺利完成。最后感谢我的母校—开封大学这几年来对我的大力栽培!
参考文献
(1) 丁振凡《Java 语言实用教程》北京邮电大学出版社,2008年1月
(2) 邵峰晶《Java SE程序设计高级教程》电子工业出版社,2010年8月
(3) 张磊、丁香乾《Java Web程序设计》电子工业出版社,2011年12月
(4) 曲培新、庞永庆《Java 项目开发案例精粹》电子工业出版社,2010年6月
(5) 李钟蔚《Java 项目开发实例自学手册》人民邮电出版社,2008年9月
(6) 窦万峰《软件工程及实践》电子工业出版社,2011年7月
(7) 吕凤顺《SQL Server数据库基础与实训教程》清华大学出版社,2006年9月
(8) 孙俊国、李淑娟《网页设计与制作》南京大学出版社,2007年4月
31
范文四:网上订餐系统-毕业论文
毕 业 论 文
网上订餐系统
摘 要
民以食为天。餐饮业是一种个性化、多样化的服务产业,电子商务则是最能
凸显个性化、多样化服务的商务方式。随着网络技术的发展和普及,方便、快捷、
个性化的网上订餐正在进入人们的生活。目前,网上订餐业务还处于形成期,成
长空间还很大。趁势而入,建立起特色鲜明的订餐网站,必有“钱”途。网上订
餐是餐饮行业一种新型的营销方式。
本订餐系统设计运用VC++与SQL SERVER 2000相结合而成,是一个可基于互联网的C/S模式的网上订餐系统,着重论述了系统的功能与实现、数据流程及
存储。包括管理员管理、员工管理、客户管理、菜品信息介绍、网上订餐以及订
餐情况打印等,使用图文并茂(功能代码及截图)的方式,对整个网上订餐系统
功能模块的实现方法进行阐述和分析。
关键词:网上订餐系统 SQL VC++
I
目 录
1 前言 .................................................................................................................... 1
1.1 研究目的及意义 .............................................................................................. 1 2 需求分析............................................................................................................. 2
2.1 概述 ................................................................................................................. 2
2.2 用户分析 .......................................................................................................... 2
2.3 项目功能需求 .................................................................................................. 3 2.4 用户界面需求 .................................................................................................. 3 2.5 运行环境 .......................................................................................................... 3
2.6 系统开发的可行性分析 ................................................................................... 3 2.6.1 技术可行性 ................................................................................................... 4 2.6.2 经济可行性 ................................................................................................... 4 2.6.3 社会可行性 ................................................................................................... 4 2.7 开发工具介绍 .................................................................................................... 4 2.7.1 Visual C++ 介绍 ........................................................................................... 4 2.7.2 Microsoft SQL Server 2000 介绍 ................................................................. 5
3 概要设计............................................................................................................. 6
3.1 需求规定 .......................................................................................................... 6
3.2 基本设计概念和处理流程 ............................................................................... 7 3.3 系统总框架图 .................................................................................................. 7 3.4 系统功能 .......................................................................................................... 8
3.4.1 管理员功能 ................................................................................................... 8 3.4.2 员工功能 ....................................................................................................... 9
3.4.3 客户功能 ....................................................................................................... 9
3.5 UML建模 ...................................................................................................... 10
3.5.1 用例图 ......................................................................................................... 10
3.5.2 时序图 ......................................................................................................... 12
3.6 数据库设计 ...................................................................................................... 15
3.6.1 系统E-R图设计 ......................................................................................... 15
II
3.6.2 系统表设计 ................................................................................................. 18
3.7 数据库连接 .................................................................................................... 20
4 系统详细设计 ................................................................................................... 20
4.1 功能模块的业务流程与基本代码: ............................................................. 20
4.1.1 管理员功能 ................................................................................................. 20
5 用户手册与测试 ............................................................................................... 25 5.1 用户手册 .......................................................................................................... 25
5.1.1 登录界面 ..................................................................................................... 25
5.1.2 注册界面 ....................................................................................................... 25
5.1.3 管理员选择界面 ......................................................................................... 26 5.1.4 管理管理员界面 ......................................................................................... 27 5.1.5 管理员工帐号界面 ..................................................................................... 27 5.1.6 员工选择界面 ............................................................................................. 28 5.1.7 查看订餐情况界面 ..................................................................................... 29 5.1.8 客户选择界面 ............................................................................................. 29 5.1.9 用户订餐界面 ............................................................................................. 30 5.2 系统测试 ........................................................................................................ 31
5.2.1 注册测试 ..................................................................................................... 31
5.2.2 登录测试 ..................................................................................................... 31
5.2.3 管理员帐号管理测试.................................................................................. 33 5.2.4 员工帐号管理测试 ..................................................................................... 35 5.2.5 查看订餐情况测试 ..................................................................................... 37 5.2.6 客户帐号管理测试 ..................................................................................... 38 5.2.7 测试结论 ..................................................................................................... 40
6 结束语 .............................................................................................................. 40
参 考 文 献 ..................................................................................................... 42
Abstract ................................................................................................................... 43
致 谢 .............................................................................. 44
仲恺农业工程学院毕业论文(设计)成绩评定表 .................. 45
III
1前言
随着Internet的迅猛发展,当今社会已进入网络时代,计算机网络已经成为
社会和经济发展的强大动力,由此带来了人们生活的生活习惯的改变。
随着人们生活水平的提高,人们对自己的饮食也渐渐的注重起来,很多人在
进行紧张工作之余会选择享受美食进行放松。但很多时候会出现这样的情况,人
们到餐厅就餐,会出现排队或没有位置的现象;还有就是有的人懒得出去,想在
自己的家里就能享受到美味的食物。这样就出现了订餐这样的做法。
现在进行网上订购的系统层出不穷,前几年首先出现了商品订购的系统、其
次出现网上定火车票、机票的系统等。对于网上订餐的定制还是比较少见的,这
样的系统发展潜力大,发展范围广泛。现在出现的网上订餐系统完成的功能并不
突出,但是在界面的设计方面还是很新颖别致的,比较吸引广大的客户。对于功
能的实现方面还存在不足,很多的需求并没有很好的实现,造成了很多的功能并
不能使用或使用几率很小的功能浪费现象。现在普遍使用的订餐方式是电话预
订,这种预订方式简洁,方便,错误率也比较低,但是由此引发的一些不良现象
也比较多,主要是订餐后出现餐厅并没将信息记录在案,这样的订餐就没有了意
义,另外这种订餐方式只是进行电话的预订,很可能会出现订餐但是不履行订单
也不进行订餐取消的现象,订餐人员对订餐信息不了解就会进行相关信息的询
问,这样就在一定程度上造成了时间的浪费,餐厅人员会在同一天反复重复相同
的信息,造成了人力资源的浪费。
这样开发出图文并茂,信息能够及时更新和查看的网上订餐系统就成了解决
上述问题的主要途径。研究并开发这样的一款网上订餐系统就具有了重要的意
义。
现在我国使用的订餐方式还停留在电话订餐的层面上,但是不容置疑的是,
电话订餐方便,随时打一个电话就可以预订餐品。但是这种方式也存在这一些问
题,这些问题或多或少的影响着餐厅的运营,进行网上订餐还是近几年来发展起
来的新型订餐方法,人们通过上网,对餐品进行预订,这样不仅节约了时间,也
为餐厅的订餐管理工作提供了方便??
1.1研究目的及意义
1
不会占线:用餐时间,生意好一点的餐厅电话是很难打通的,一些顾客被迫
做出其他选择,网上订餐则不存在这个问题。
信息准确丰富:客户可以在网上查看菜谱、浏览菜的照片、观看菜的介绍以
及价格,下单是还可以写上自己的特别要求,口味等;电话订餐传递的地址、品
种等信息有时会误记,导致来回奔波,或者送错了品种等等。网上订餐由顾客进
行文字输入或选择,准确性大大提高。
不易遗忘:顾客经常会找不到菜单、记不得电话、但容易记得住网址、,上
网之后菜单也不是问题了。
适合白领的工作方式:很多坐办公室的人都喜欢上网,网上订餐正好满足他
们的工作方式,可以悄悄地下单,不需要在电话上嚷嚷。
早做准备:及时得到订单让厨房有足够时间准备事务。
多种订餐方式:使餐厅拥有多种不同的订餐方式。
任意时间下单:每天24小时、每周7天,没了没人接电话的烦恼。
提高餐厅的形象:网上订餐带来的方便会在顾客中形成较好的口碑,网络的
应用也会提高餐厅的形象,从而吸引更多的顾客。
时代的潮流:现在,各行各业迟早都是要信息化的,为什么不跟上时代的潮
流呢?
2需求分析
2.1概述
需求分析是指在充分了解客户情况,包括客户生产、财务及管理流程后,
与客户一起讨论对系统的具体要求,针对其现行体制中的不足及目前所需的信
息,制定出一套用户对系统的需求方案。需求分析是完全以企业的需要及实际情
况为出发点,因此为企业合理地选择系统提供了基本保障。需求分析按照由顶至
底、由大到小、由粗到精的过程来进行。需求分析是整个实施过程中至关重要的
一步,是否制定出合理的客户需求决定了以后整个系统实施的成败。
2.2 用户分析
网上订餐系统的使用者主要有三种:系统管理员、餐厅员工、客户。
系统管理员:网上订餐系统的系统管理者,进行系统的日常维护,并进行日
常的管理,并按照餐厅的意愿,对菜谱和员工的信息进行各种管理,比如添加、
2
修改、删除、更新等。
餐厅员工:餐厅是网上订餐系统的投入者,也是订餐系统的拥有者;所以餐
厅员工可以前台查询和对后台根据需要进行管理
客户:网上订餐系统的主要使用者,他们是餐厅的顾客,能进行基本功能的
使用和操作,但是不能对系统进行管理。
通过调查,网上调查系统的客户具有一下特征:
a 主要居住或工作在离餐厅不太远的地方
b 主要是工作繁忙者或单身人士
c 能够经常上网的人
d 有喜事等特殊情况的人群
2.3 项目功能需求
管理员功能:登录系统、查询管理员帐号、添加管理员帐号、修改管理员帐
号、删除管理员帐号、查询员工帐号、添加员工帐号(有权限)、修改员工帐号
(有权限)、删除员工帐号(有权限)。
员工功能:登录系统、查询员工帐号、添加员工帐号(有权限)、修改员工
帐号(有权限)、删除员工帐号(有权限)、查询订餐情况、删除订单、打印订单。
顾客功能:注册帐号、登录系统、修改密码、修改地址、进行订餐操作。
2.4 用户界面需求
系统人机界面操作友好,本系统外界界面具有简洁性和友好性等特点,但又
不失独特的页面风格,界面采用引入的图片温馨暖格调的色调,优雅大方,系统
内部结构采用框架布局,使整个系统看起来更有层次感,在用户功能操作上,设
计简单方便,符合了现代化管理系统的界面要求。 2.5 运行环境
P4系列、AMD K9以上系列等PC台式机和便携式电脑;
运行时占用内存:?100MB;
所需硬盘空间:?100MB;
软件平台:中文Windows98以上系统;
VC++、SQL数据库的电脑。
2.6 系统开发的可行性分析
3
2.6.1 技术可行性
VC++和SQL数据库这两个开发工具到现在已经运用了很多年了,它们的技
术到现在已经相当成熟。
本系统所要设计的功能难度不大,加上有指导老师的指导和查找相关参考文
献,各功能模块在技术上完全是可以的实现。就开发的实际情况来看,技术上是
可行的。
2.6.2 经济可行性
本订餐系统所需要的硬件和软件都是目前广泛使用的,如软件件运行环境
windows98以上系统、数据库SQL Server 2000、编程语言VC++等等,都可以通过网上、图书馆等各种渠道得到,不需要再花费大量的资金去购买高成本的设备,
大大提高了在设计过程中的工作效率,且投入使用后,便于后期工作的维护,因
此,本系统在经济上是可行的。
2.6.3 社会可行性
该系统符合现有的法律、法规和政策方面的限制,没违背当今社会的道德标
准,社会可行性通过。
2.7 开发工具介绍
2.7.1 Visual C++ 介绍
C++是从C语言发展而来的,而C语言的历史可以追溯到1969年。 在1969年,美国贝尔实验室的Ken Thompson为DEC PDP-7计算机设计了一个操作系统
软件,这就是最早的UNIX。接着,他又根据剑桥大学的Martin Richards设计的BCPL语言为UNIX设计了一种便于编写系统软件的语言,命名为B。B语言是一种无类型的语言,直接对机器字操作,这一点和后来的C语言有很大不同。作为系统软件编程语言的第一个应用,Ken Thompson使用B语言重写了其自身的解释程序。 1972—1973年间,同在贝尔实验室的Denis Ritchie改造了B语言,为其添加了数据类型的概念,并将原来的解释程序改写为可以在直接生成机器代
码的编译程序,然后将其命名为C。1973年,Ken Thompson小组在PDP-11机上用C重新改写了UNIX的内核。与此同时,C语言的编译程序也被移植到IBM 360/370、Honeywell 11以时VAX-11/780等多种计算机上,迅速成为应用最广
泛的系统程序设计语言。 然而,C语言也存在一些缺陷,例如类型检查机制相
对较弱、缺少支持代码重用的语言结构等,造成用C语言开发大程序比较困难。
4
为了克服C语言存在的缺点,贝尔实验室的Bjarne Stroustrup博士及其同事开始对C语言进行改进和扩充,将“类”的概念引入了C语言,构成了最早的C++语言(1983)。后来,Stroustrup和他的同事们又为C++引进了运算符重载、引
用、虚函数等许多特性,并使之更加精炼,于1989后推出了AT&T C++ 2.0版。随后美国国家标准化协会ANSI(American National Standard Instiute)和国际标准化组织ISO(International Standards Organization)一起进行了标准化工作,并于1998年正式发布了C++语言的国际标准ISO/IEC:98-14882。各软件商推出的C++编译器都支持该标准,并有不同程序的拓展。 C++支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目,从开发时间、费用到软件
的重用性、可扩充性、可维护性和可靠性等方面,C++均具有很大的优越性。同
时,C++又是C语言的一个超集,这就使得许多C代码不经修改就可被C++编译通过。
2.7.2 Microsoft SQL Server 2000 介绍
Microsoft SQL Server 2000 是Microsoft 公司继SQL Server 6.5和SQL Server 7.0以后,在新千年推出的又一改进的新版关系型数据管理系统。它能
使用户快捷地管理数据库和开发应用程序。SQL Server 2000 使用了先进的数据库结构,与Windows DNA紧密集成,具有强大的Web 功能,它可以利用高端硬
件平台以及最新网络和存储技术,可以为最大的Web站点和企业应用提供优良的
扩展性和可靠性,使用户能够在Internet 领域快速建立服务系统,为占领市场
赢得宝贵的时间。同时,SQL Server 2000 还为用户提供了重要的安全性功能的
增强,为用户的数据安全提供了可靠的保证。另外,SQL Server 2000 在数据库服务器自动管理技术方面处于数据库领域的领先地位,它可以使用户免去繁琐复
杂的工作量,从而有精力处理更重要的问题,使用系统在商业战略上占得先机。
SQL Server 2000 系统之间之所以成为目前流行的大型商用数据库系统,有
着其深刻的内在因素,这与它鲜明的特点是分不开的:
1.与Internet 的高度集成
SQL Server 2000与其它Microsoft Back Office 产品紧密集成,在安全、
事件浏览、Windows NT 服务程序、性能监视器、多处理器支持、索引服务器等
方面充分利用了它们的长处,形成了自己独特的优势。
5
SQL Server 2000 数据库引擎提供完整的XML 支持。它还具有构成最大的
Web站点的资料存储组件所需的可伸缩性、可用性和安全功能。 2.高伸缩性和适应性
同一SQL Server 2000数据库引擎运行在Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server、Windows 98 和Windows Millennium Edition 上。还运行在Windows NT 4.0版的所有版本上。
SQL Server 2000 与Windows NT和Windows 2000故障转移群集共同支持不
间断地将故障即时转移到备份服务器。
3.企业级数据库功能强
SQL Server 2000关系数据库引擎支持当今苛刻的数据处理环境所需的功
能。数据库引擎充分保护资料完整性,同时将管理上千个并发修改数据库的用户
的开销减到最小。
4.易于安装和使用
SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站
点上安装、部署、管理和使用SQL Server 的过程。SQL Server 2000还支持基于标准的、与Windows DNA集成的程序设计模型,使SQL Server 2000数据库和资料仓库的使用成为生成强大的可伸缩系统的无缝部分。 5.具有决策支持的资料仓库
SQL Server 2000提供了数据转换服务、联机分析处理(OLAP)、数据挖掘支持、English Query、Meta Data Services 等等工具,以便对数进行析取、分
析汇总资料并对数据库的设计提供帮助。
3 概要设计
3.1 需求规定
管理员功能:登录系统、查询管理员帐号、添加管理员帐号、修改管理员帐
号、删除管理员帐号、查询员工帐号、添加员工帐号(有权限)、修改员工帐号
(有权限)、删除员工帐号(有权限)。
员工功能:登录系统、查询员工帐号、添加员工帐号(有权限)、修改员工
帐号(有权限)、删除员工帐号(有权限)、查询订餐情况、删除订单、打印订单。
客户功能:注册帐号、登录系统、修改密码、修改地址、进行订餐操作。
6
3.2 基本设计概念和处理流程
订餐系统主要要求对用户和订餐情况进行添加、删除、修改等。其中:
(1)管理员对管理员帐号和员工帐号进行管理,操作导入数据库;
(2)员工对员工帐号和订餐情况进行管理,操作导入数据库;
(3)客户进行注册客户帐号、更新帐号、订餐操作,操作导入数据库。
管理员信管理员信息息处理
处理后的管理员信息员工信息管理员
员工信息
处理处理后的员工信息员工信息
数据存储员工订餐信息登录订餐信息订餐信息处理打印
客户客户信息客户信息
处理
图3-1 系统数据流图
3.3 系统总框架图
本订餐系统主要包括三大模块:第一部分是管理员模块,在这个模块中又分
成管理员帐号管理模块和员工帐号管理模块;第二部分是员工模块,在这个模块
中又分成员工帐号管理模块和订餐情况管理模块;第三部分是管理员模块,在这
个模块中又分成客户帐号管理模块和订餐情况管理模块。
7
网上订餐系统
管员客理工户员模模模块块 块
图3-2 网上订餐系统总框架图
3.4 系统功能
3.4.1 管理员功能
以管理员身份登录后,可以执行的功能:
管理员功能
管理员管理 员工管理
管管管管员员员员理理理理工工工工员员员员信信信信信信信信息息息息息息息息查添修删查添修删询加改除 询加改除
图3-3 管理员功能结构图
管理员管理:用于管理员对管理员信息进行查询、添加、修改以及删除。
8
员工管理:用于管理员对员工信息进行查询、添加、修改以及删除(该功能
需要权限密码)。
3.4.2 员工功能
以员工身份登录后,可以执行的功能
员工功能
订餐管理 员工管理
员员员员订订订
工工工工餐餐餐
信信信信信信信
息息息息息息息
查添修删查打删询加改除询印除
图3-4 员工功能结构图
员工管理:用于管理员对员工信息进行查询、添加、修改以及删除(该功能
需要权限密码)。
订餐管理:用于对客户的订餐信息进行查看、打印删除的操作,打印操作会
使系统生成一张记录表。
3.4.3 客户功能
以客户身份登录后,可以执行的功能:
9
客户功能
客户管理 订餐
客客客订订客订
户户户餐餐户餐客进息密地姓日时地内户行查码址名期间址容注订询 修修记记记记记册餐 改改录录录录录
图3-5 客户功能结构图
客户管理:用于客户对客户信息进行注册、修改以及进行订餐操作。
订餐管理:用于客户对客户信息订餐操作进行确定,系统进行记录。
3.5 UML建模
3.5.1 用例图
用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了
一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的
功能行为进行建模。
用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用
于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,
并使开发者能够实现这些元素。
用例图说明:
用例参与者 10 管理员模块用例: 信息查询信息查询 信息删除信息删除 图3-6 管理员模块用例图 员工模块用例: 信息查询信息查询 信息删除 图3-7 员工模块用例图 客户模块用例: 11 客户姓名记录 订餐日期记录信息注册 订餐操作订餐内容记录 图3-8 客户模块用例图 3.5.2 时序图 时序图(Sequence Diagram)用来显示对象之间的关系,并强调对象之间消息 的时间顺序,同时显示了对象之间的交互。 时序图中包括如下元素:类角色,生命线,激活期和消息 1,类角色(Class Role) 类角色代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象 代表类角色。类角色一般代表实际的对象 2,生命线(Lifeline) 生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部 中心都有一条垂直的虚线,这就是对象的生命线,对象间 的消息存在于两条虚 线间。 3,激活期(Activation) 激活期代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上 的窄的矩形代表活动期。它可以被理解成C语言语义中一对花括号“{}”中的 内容 4,消息(Message) 12 消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信 息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信 息进行通信 管理员登录验证系统权限验证数据库 登录 验证失败 重新登录 验证成功 返回验证消息 管理员帐号管理 操作录入数据库 返回记录消息 返回管理信息 员工帐号管理 权限验证 操作录入数据库 返回录入信息 返回管理信息 退出系统 返回退出信息 图3-9-1 管理员操作时序图 13 员工登录验证系统权限验证数据库 登录 验证失败 重新登录 验证成功 返回验证消息 员工帐号管理 权限验证 操作录入数据库 返回记录消息 返回管理信息 订餐情况管理 操作录入数据库 返回录入信息 返回管理信息 退出系统 返回退出信息 图3-9-2 员工操作时序图 14 客户登录验证系统数据库 登录 验证失败 重新登录 验证成功 返回验证消息 客户帐号管理 操作录入数据库 返回记录消息 返回管理信息 订餐 操作录入数据库 返回录入信息 返回订餐信息 退出系统 返回退出信息 图3-9-3 客户操作时序图 3.6 数据库设计 3.6.1 系统E-R图设计 在本系统中,主要涉及的实体集有“管理员” ,“员工” ,“客户” ,“订 餐信息” ,就“管理员”实体集而言,涉及的主要信息(属性)有:管理员帐 号、管理员密码、管理员姓名。对于“员工”实体集,涉及的主要信息(属性) 有:员工帐号、员工密码、员工姓名、员工工号、员工职位等。对于“客户”实 体集,涉及的主要信息(属性)有:客户帐号、客户密码、客户姓名、客户地址 等。“订餐信息”实体集,涉及的主要信息(属性)有:客户姓名,订餐日期, 订餐时间,客户地址、订餐内容等。 管理员和管理员、员工之间既存在着一对多的关系,也存在着多对一的关系, 例如,一个管理员可以对多个员工的信息进行操作(包括浏览、查询、修改、添 15 加、删除),同样,一个员工的信息也可以被多个管理员进行操作,具体的E-R图如下: 帐号 帐号 密码 n 管理员表 管理员表 密码 姓名 n 管理 n 姓名 m 工号 管理 m 管理员 管理 职位 n m 帐号 1 n 用户 员工 登录 密码 n m 客户 姓名 管理 m m n 日期 管理 订餐 管理员表 n 时间 n 用户表 地址 内容 帐号 密码 姓名 地址 图3-10 系统E-R图 管理员实体及其属性: 16 管理员表 帐号 密码 姓名 图3-11 管理员实体图 员工实体及其属性: 员工表 帐号 密码 姓名 工号 职位 图3-11 员工实体图 客户实体及其属性: 客户表 帐号 密码 姓名 地址 图3-11 客户实体图 17 订餐实体及其属性: 订餐表 客户姓名 订餐日期 订餐时间 客户地址 订餐内容 图3-12 订餐实体图 3.6.2 系统表设计 要实现本次的网上订餐系统的所有功能,共需要设计4个表,它们分别是:管理员信息表、员工信息表、客户信息表、订餐信息表。 本系统的设计所使用的数据库是SQL server 2000。这些表的具体设计如下所示: (1)管理员信息表 该表主要是保存管理员的相关信息,包括管理员的帐号、密码、姓名。该表 结构如表1所示 表1 管理员信息表 序列名 数据类型 长小标主允默认值 说明 号 度 数识 键 许 位 空 ? ? 1 管理员帐号 char 12 0 记录管理员帐号 2 管理员密码 char 8 0 记录管理员密码 3 管理员姓名 char 8 0 记录管理员姓名 (2)员工信息表 18 该表主要是保存员工的相关信息,包括员工的帐号、密码、姓名、工号、职 位。该表结构如表2所示 表2 员工信息表 序列名 数据类型 长小标主允默认值 说明 号 度 数识 键 许 位 空 ? ? 1 员工帐号 char 12 0 记录员工帐号 2 员工密码 char 8 0 记录员工密码 3 员工姓名 char 8 0 记录员工姓名 4 员工工号 char 8 0 记录员工工号 5 员工职位 char 8 0 记录员工职位 (3)客户信息表 该表主要是保存客户的相关信息,包括客户的帐号、密码、姓名、地址。该 表结构如表3所示 表3 客户信息表 序列名 数据类型 长小标主允默认值 说明 号 度 数识 键 许 位 空 ? ? 1 客户帐号 char 12 0 记录客户帐号 2 客户密码 char 8 0 记录客户密码 3 客户姓名 char 8 0 记录客户姓名 4 客户地址 char 30 0 记录客户地址 (4)订餐信息表 该表主要是保存订餐的相关信息,包括订餐的客户姓名、订餐日期、订餐时 间、客户地址、订餐内容。该表结构如表4所示 19 表4 订餐信息表 序列名 数据类型 长小标主允默认值 说明 号 度 数识 键 许 位 空 ? ? 1 客户姓名 char 12 0 记录客户姓名 2 订餐日期 char 8 0 记录订餐日期 3 订餐时间 char 8 0 记录订餐时间 4 客户地址 char 30 0 记录客户地址 5 订餐内容 char 200 0 记录订餐内容 3.7 数据库连接 为了方便用户打开数据库,而不必在每个页面都写连接数据库语句,本系统 对连接数据库进行了封装,当使用时只需要在调用文件添加数据库名:如Sql sql("dingcanxitong"); 封装文件: void Sql::OpenDB() //打开数据库 { CString Connection = "DRIVER={SQL Server}; SERVER=(local); Database="+DBName; Database.OpenEx(Connection); } 4 系统详细设计 4.1 功能模块的业务流程与基本代码: 4.1.1 管理员功能 20 管理员 管理员管理 员工管理 信息查询 信息查询 信息通过 信息添加 信息修改 信息修改 信息删除 信息删除 图4-1 管理员功能图 (1)管理员管理 (a)信息查询: 流程图: 触发事件 连接数据库 获取数据 m_grid1.SetItem Text 显示管理员信 息 关闭数据库 图4-2 管理员流程图 21 实现该功能核心代码: void guanli::OnOK() { // TODO: Add extra validation here m_grid1.DeleteAllItems();//清空表中信息 sql1.OpenDB(); sql1.OpenRec("select * from guanliyuan order by 管理员帐号 desc"); while(!sql1.IsEOF()) { m_grid1.InsertItem(0,""); m_grid1.SetItemText(0,0,(CString)sql1.GetRecordset("管理员帐号")); m_grid1.SetItemText(0,1,(CString)sql1.GetRecordset("管理员密码")); m_grid1.SetItemText(0,2,(CString)sql1.GetRecordset("管理员姓名")); sql1.MoveNext(); } sql1.CloseDB(); } (b)信息添加 流程图: 触发事件 输入添加内容 各项内容是否为空 Y N 添加成功 结 束 图4-3 信息添加流程图 实现该功能核心代码: void guanli::Onadd() { // TODO: Add your control notification handler code here UpdateData(TRUE); if (m_glzh.IsEmpty()||m_glmm.IsEmpty()||m_glxm.IsEmpty()) { OnOK(); AfxMessageBox("三项都不能为空!"); 22 } else { CString sql = "insert into guanliyuan values('"+m_glzh+"','"+m_glmm+"','"+m_glxm+"')"; //数据库操作 sql1.OpenDB(); sql1.ExecuteSql(sql); sql1.CloseDB(); OnOK(); AfxMessageBox("添加成功!"); } } (c)信息修改 流程图: 触发事件 输入修改内容 是否符合修改条件 Y N 修改成功 结 束 图4-4 信息修改流程图 实现该功能核心代码: void guanli::Onupdate() { // TODO: Add your control notification handler code here UpdateData(TRUE); if (m_glmm.IsEmpty()||m_glxm.IsEmpty()) { OnOK(); AfxMessageBox("密码和姓名都不能为空!"); } else { CString str = m_grid1.GetItemText(m_grid1.GetNextItem(-1,LVNI_SELECTED),0); CString sql = "UPDATE guanliyuan SET 管理员密码='"+m_glmm+"',管理员姓名='"+m_glxm+"' where 管理员帐号='"+str+"'"; //数据库操作 23 sql1.OpenDB(); sql1.ExecuteSql(sql); sql1.CloseDB(); m_grid1.DeleteItem(m_grid1.GetNextItem(-1,LVNI_SELECTED)); OnOK(); AfxMessageBox("修改成功!"); } } (d)信息删除 流程图: 选择要删除的项 触发事件 删除数据库中的 相关内容 删除ListControl 中的相关内容 显示删除后的 信息 关闭数据库 图4-5 信息删除流程图 实现该功能核心代码: void guanli::Ondelete() { // TODO: Add your control notification handler code here //找到你所点击的那行 CString str = m_grid1.GetItemText(m_grid1.GetNextItem(-1,LVNI_SELECTED),0); //删除数据库中的那行 CString sql = "delete from guanliyuan where 管理员帐号='"+str+"'"; //数据库操作 sql1.OpenDB(); sql1.ExecuteSql(sql); sql1.CloseDB(); //ListControl操作 24 m_grid1.DeleteItem(m_grid1.GetNextItem(-1,LVNI_SELECTED)); OnOK(); } 5 用户手册与测试 5.1 用户手册 5.1.1 登录界面 图5-1 登录界面图 5.1.2 注册界面 25 图5-2 注册界面 5.1.3 管理员选择界面 用管理员身份登录后: 图5-3 管理员选择界面 26 5.1.4 管理管理员界面 图5-4 管理管理员界面 5.1.5 管理员工帐号界面 27 图5-5 管理员工帐号界面 5.1.6 员工选择界面 以员工身份登录系统后: 28 图5-6 员工选择界面 5.1.7 查看订餐情况界面 图5-7 查看订餐情况界面 5.1.8 客户选择界面 以客户身份登录系统后: 29 图5-8 客户选择界面 5.1.9 用户订餐界面 30 图5-9 用户订餐界面 5.2 系统测试 5.2.1 注册测试 当客户按规定输入完注册信息时,出现注册成功提示。 图5-10 注册成功提示 5.2.2 登录测试 当用户没按规定选择或输入登录信息时,会出现相关提示。 31 图5-11 登录提示1 图5-12 登录提示2 32 图5-13 登录提示3 5.2.3 管理员帐号管理测试 以管理员身份登录系统 图5-14 管理查询图 33 图5-15 添加管理员帐号图 图5-16 管理员信息修改图 34 5.2.4 员工帐号管理测试 以员工身份登录系统 图5-17 员工查询图 35 图5-18 员工管理权限图 36 图5-19 添加员工帐号图 5.2.5 查看订餐情况测试 要以员工身份登录系统,才能使用该功能。 37 图5-20 订餐情况查询图 图5-21 订餐情况打印图 5.2.6 客户帐号管理测试 以客户身份登录系统才能使用该功能。 38 图5-22 客户修改密码图 图5-23 客户修改地址图 39 图5-24 成功订餐图 5.2.7 测试结论 经过测试,本订餐系统的功能能够基本上得到实现,基本上满足能不同用户 的功能、性能上的需求,提示信息比较完善,一般的错误操作和输入异常都有提 示信息。 由于时间有限,不能非常详细地对本系统做测试及写完整的测试流程,所以 测试的准确性可能会受到影响。 6 结束语 经过几个多月的知识准备、系统开发和论文撰写过程,我终于完成了此次 毕业设计,毕业设计在这里告一段落了。通过这次毕业设计,我基本掌握VC++ 技术、SQL Server 2000数据库技术和Visio等知识,对软件工程的流程有了更深的理解,对系统的设计与开发也有了更深一层认识,也对饮食方面有了一定的 了解。 40 毕业设计的目的是大学本科教学计划中的重要一环,是对学生知识综合应用 和实际操作能力的考察,通过毕业设计,不仅能够培养学生独立自主地去完成一 个项目的能力,而且也能促使学生发挥个人创造力、创新性,大大提高学生的综 合能力水平,更好地将理论联系实际,用所学的知识去解决实际问题。 在这次毕业设计的过程中,我学到了很多东西的同时确实也遇到了不少的困 难和挫折,由于该系统的封装性比较高,所以很容易出现遗忘某些地方或某些代 码无法运行的情况,后来通过上网查询资料,查询书籍,询问老师同学等方法, 最终将问题都意义解决了,达到了预定的目标。 常言道:当你学得越多,你就觉得你的知识越浅薄。在这次毕业设计中我深 深地体会到了这句话的深刻含义。在毕业设计刚开始时,自己感觉还挺好的,但 是越到后面就越感觉到自己的知识的不足和一门计算机语言的深刻内涵!认识到 一个系统所涉及的方面是那么的广泛,你不仅要了解你的工具,也要了解你的系 统的用户,更要了解系统所涉及到的商业知识。就如我的订餐系统,我不仅要去 了解VC++、SQL、Visio等工具,还要去了解餐厅的运作是如何的,去了解顾客 的反应等等。 做完这个系统,可以说是让我感到了无比高兴。让我认识到了自己的路还有 很长,最重要的是让自己少走一些弯路。 虽然本系统算是完成了,但还存在着很多不足和欠缺的地方,说是网上系 统,其实只不过是网上的缩小版本,很多功能尚未实现,为了更好地完善本系统, 在以后的时间里,本人会秉着认真学习的态度,继续钻研,若大家有什么好的意 见和建议可以认真地向我提出,争取把该系统尽量完善,使其更具价值。 41 参 考 文 献 1.宋坤 刘锐宁 李伟明 《Visual C++ 开发技术大全》 人民邮电出版社 2.宋坤 刘锐宁 李伟明 《Visual C++ 程序开发范例宝典》 人民邮电出版社 3.宋坤 刘锐宁 李伟明 《Visual C++ 数据库系统开发完全手册》 人民邮电出版社 4.宋坤 刘锐宁 李伟明 《Visual C++ 数据库开发案例精选》 人民邮电出版社 5.宋坤 刘锐宁 李伟明 《MFC程序开发参考大全》 人民邮电出版社 6.萨师煊 王珊 《数据库系统概论》 高等教育出版社 7.李师贤 李文军 周晓聪 李宏新 林瑛 《面向对象程序设计基础》高等教育出版社 8.中国美食网 http://www.zhms.cn/ 9.昵图网 http://www.nipic.com/ 10.CSDN网 http://www.csdn.net/ 11.百度知道 http://zhidao.baidu.com/ 42 The System of Meal Order on Internet Cao Zhile (College of Computer Science and Engineering, ZhongKai University of Agriculture &Technology, GuangZhou,510225,China) Abstract Civilians' top priority is food. The catering industry is a personalized, diversified services industry, E-commerce is the most prominent character-based, diversified services' business approach. With the development of network technology and universal, convenient, personalized online reservation is entering people's lives. At present, the online meal order business is still in growing, is still much room for growth. Opportunity to get to build a distinctive system of meal order on internet, then money is coming. Meal order on internet a new type of Catering. Design the system to use VC + + and SQL SERVER 2000 by the combination. The system of meal order on internet is an Internet-based B / S mode on-line reservation system, information introduction of order, manager information, employee information, clientele information, the on-line meal ordering, print the on-line meal ordering information and backstage database. We elaborate and analyze the entire implementation methods of the on-line meal ordering system function module with function code and pictures. Key words:meal order on internet;sql;VC++ 43 网上订餐系统 摘 要 随着市场、经济的全球化,越来越多的企业认识到提高企业的竞争力,选 择信息化是必由之路。本文论述的订餐系统是针对餐饮娱乐业而设计的一种商 务服务网站。其主要功能是完成外卖的前期和辅助工作,即通过网络进行定餐 和对服务进行评价。而餐饮工作流程的其他部分如送外卖、付款等后期工作依 旧采用传统方式。 微软的ASP平台作为新一代的互联网平台,提供了支持未来计算的高效的 Web服务开发工具。利用ASP平台进行订餐系统的开发是此类系统未来开发的 趋势之一。本文所设计的系统在ASP平台上进行开发,采用ASP技术,进行 了编码,并使用Acess进行数据库设计,基本实现了预定的目标,建立起一个比 较完整的外卖系统。其特点是方便快捷的操作方式,简单易懂的管理方法,因 此对于企业和用户来说,都是一种新型的、节约型的系统。 关键词:网上订餐系统; ASP; acess; 网页设计 I 洛阳师范学院2010届本科毕业设计 Abstract As the market, economic globalization, more and more enterprises realize: to improve the competitiveness of enterprises, selection of information is the only way. In this paper, the ordering system is designed for restaurants, entertainment and a business services website. Its main function is to complete the preparatory and auxiliary work take-away, that is set by the network to evaluate the food and service. The other part of the restaurant, such as work flow delivery to the late payment and other traditional methods still work. Microsoft's ASP platform as a new generation of the Internet platform, provides support for the future of computing and efficient Web services development tools. Ordering system using ASP platform development is the trend of future development of such a system one. This system is designed for development in the ASP platform, using ASP technology, encoded, and use the Acess to database design, essentially achieving the goal, to build a more complete take-away system. It features convenient mode of operation, easy to understand methods of management, so for enterprises and users, is a new, economical system. Keywords : Online Ordering System ; ASP; acess II 网上订餐系统 目 录 第一章 研究背景和意义 ............................................................................................... 1 1.1 前言 ......................................................................................................................... 1 1.2 研究目的及意义 .................................................................................................... 1 第二章 网站需求分析 .................................................................................................... 3 2.1 概述 ....................................................................................................................... 3 2.2 用户分析 ............................................................................................................... 3 2.3 项目功能需求 ....................................................................................................... 3 2.4 用户界面需求 ....................................................................................................... 3 2.5 开发和运行、调试环境选择专业 ..................................................................... 4 2.6 系统开发的可行性分析 ...................................................................................... 4 2.6.1 技术可行性.................................................................................................. 4 2.6.2 经济可行性.................................................................................................. 4 2.6.3 社会可行性.................................................................................................. 4 2.7 开发工具介绍 ....................................................................................................... 4 2.7.1 ASP介绍 ....................................................................................................... 5 2.7.2 acess介绍................................................................................................... 5 2.8 网站功能模块分析 .............................................................................................. 7 2.9 网站功能模块设计 .............................................................................................. 7 第三章 网站的设计与实现 ......................................................................................... 10 3.1 数据库设计 ......................................................................................................... 10 3.1.1 数据库需求分析 ....................................................................................... 10 3.1.2 数据库逻辑结构设计 ............................................................................... 11 3.1.3 数据库结构的实现 ................................................................................... 14 3.2 功能模块代码设计 ............................................................................................ 14 3.2.1 管理员登陆功能代码简介....................................................................... 14 3.2.2 会员注册页面功能 ..................................................................................... 16 3.2.3 首页的推荐菜单功能代码简介 .............................................................. 17 3.2.4 餐品公告功能代码简介 ........................................................................... 18 第四章 测试 .................................................................................................................. 19 4.1 测试环境 ............................................................................................................. 19 III 洛阳师范学院2010届本科毕业设计 4.2 程序问题 ............................................................................................................. 19 第5章 工作总结与展望 ............................................................................................. 20 5.1 工作总结 ............................................................................................................. 20 5.2 今后工作展望 ..................................................................................................... 20 参考文献 ........................................................................................................................... 21 致谢 ................................................................................................................................... 22 IV 网上订餐系统 第一章 研究背景和意义 1.1 前言 随着Internet的迅猛发展,当今社会已进入网络时代,计算机网络已经成 为社会和经济发展的强大动力,由此带来了人们生活的生活习惯的改变。 随着人们生活水平的提高,人们对自己的饮食也渐渐的注重起来,很多人 在进行紧张工作之余会选择享受美食进行放松。但很多时候会出现这样的情 况,人们到餐厅就餐,会出现排队或没有位置的现象;还有就是有的人懒得出 去,想在自己的家里就能享受到美味的食物。这样就出现了订餐这样的做法。 现在进行网上订购的系统层出不穷,前几年首先出现了商品订购的系统、 其次出现网上定火车票、机票的系统等。对于网上订餐的定制还是比较少见 的,这样的系统发展潜力大,发展范围广泛。现在出现的网上订餐系统完成的 功能并不突出,但是在界面的设计方面还是很新颖别致的,比较吸引广大的客 户。对于功能的实现方面还存在不足,很多的需求并没有很好的实现,造成了 很多的功能并不能使用或使用几率很小的功能浪费现象。现在普遍使用的订餐 方式是电话预订,这种预订方式简洁,方便,错误率也比较低,但是由此引发 的一些不良现象也比较多,主要是订餐后出现餐厅并没将信息记录在案,这样 的订餐就没有了意义,另外这种订餐方式只是进行电话的预订,很可能会出现 订餐但是不履行订单也不进行订餐取消的现象,订餐人员对订餐信息不了解就 会进行相关信息的询问,这样就在一定程度上造成了时间的浪费,餐厅人员会 在同一天反复重复相同的信息,造成了人力资源的浪费。 这样开发出图文并茂,信息能够及时更新和查看的网上订餐系统就成了解 决上述问题的主要途径。研究并开发这样的一款网上订餐系统就具有了重要的 意义。 现在我国使用的订餐方式还停留在电话订餐的层面上,但是不容置疑的 是,电话订餐方便,随时打一个电话就可以预订餐品。但是这种方式也存在这 一些问题,这些问题或多或少的影响着餐厅的运营,进行网上订餐还是近几年 来发展起来的新型订餐方法,人们通过上网,对餐品进行预订,这样不仅节约 了时间,也为餐厅的订餐管理工作提供了方便。 1.2 研究目的及意义 不会占线:用餐时间,生意好一点的餐厅电话是很难打通的,一些顾客被 迫做出其他选择,网上订餐则不存在这个问题。 1 洛阳师范学院2010届本科毕业设计 信息准确丰富:客户可以在网上查看菜谱、浏览菜的照片、观看菜的介绍 以及价格,下单是还可以写上自己的特别要求,口味等;电话订餐传递的地 址、品种等信息有时会误记,导致来回奔波,或者送错了品种等等。网上订餐 由顾客进行文字输入或选择,准确性大大提高。 不易遗忘:顾客经常会找不到菜单、记不得电话、但容易记得住网址,上 网之后菜单也不是问题了。 适合白领的工作方式:很多坐办公室的人都喜欢上网,网上订餐正好满足 他们的工作方式,可以悄悄地下单,不需要在电话上嚷嚷。 早做准备:及时得到订单让厨房有足够时间准备事务。 多种订餐方式:使餐厅拥有多种不同的订餐方式。 任意时间下单:每天24小时、每周7天,没了没人接电话的烦恼。 提高餐厅的形象:网上订餐带来的方便会在顾客中形成较好的口碑,网络 的应用也会提高餐厅的形象,从而吸引更多的顾客。 时代的潮流:现在,各行各业迟早都是要信息化的,为什么不跟上时代的 潮流呢? 2 网上订餐系统 第二章 网站需求分析 2.1 概述 需求分析是指在充分了解客户情况,包括客户生产、财务及管理流程后, 与客户一起讨论对系统的具体要求,针对其现行体制中的不足及目前所需的信 息,制定出一套用户对系统的需求方案。需求分析是完全以企业的需要及实际 情况为出发点,因此为企业合理地选择系统提供了基本保障。需求分析按照由 顶至底、由大到小、由粗到精的过程来进行。需求分析是整个实施过程中至关 重要的一步,是否制定出合理的客户需求决定了以后整个系统实施的成败。 2.2 用户分析 网上订餐系统的使用者主要有三种:系统管理员、客户。 系统管理员:网上订餐系统的系统管理者,进行系统的日常维护,并进行 日常的管理,并按照餐厅的意愿,对菜谱等信息进行各种管理,比如添加、修 改、删除、更新等。 客户:网上订餐系统的主要使用者,他们是餐厅的顾客,能进行基本功能 的使用和操作,但是不能对系统进行管理。 通过调查,网上调查系统的客户具有一下特征: a 主要居住或工作在离餐厅不太远的地方 b 主要是工作繁忙者或单身人士 c 能够经常上网的人 d 有喜事等特殊情况的人群 2.3 项目功能需求 管理员功能:登录系统、查询管理员帐号、添加管理员帐号、修改管理员 帐号、删除管理员帐号、订单的管理、添加新的菜单、客户留言的处理功能。 顾客功能:注册帐号、登录系统、修改密码、修改地址、进行订餐操作。 2.4 用户界面需求 系统人机界面操作友好,本系统外界界面具有简洁性和友好性等特点,但 又不失独特的页面风格,界面采用引入的图片温馨暖格调的色调,优雅大方, 3 洛阳师范学院2010届本科毕业设计 系统内部结构采用框架布局,使整个系统看起来更有层次感,在用户功能操作 上,设计简单方便,符合了现代化管理系统的界面要求。 2.5 开发和运行、调试环境选择专业 1.开发工具:acess 2000,Microsoft Visual Studio 2005。 2.运行环境: Windows 2000 Professional 或Windows 2000 Server 或 Windows 2000 Advance Server 或 Windows XP Professional 或更高版本,其中Windows 2000 系列需要安装Service Pack 2.0。 3.调试环境:服务器端在执行ASP语言编写的网页前,必须先安装IIS服 务器(Internet Information S信息服务管理器5.0)。客户端只要是普通的浏览器即可,如Internet Explorer 5.0 或更高版本。 2.6 系统开发的可行性分析 2.6.1 技术可行性 ASP和acess数据库这两个开发工具到现在已经运用了很多年了,它们的 技术到现在已经相当成熟。 本系统所要设计的功能难度不大,加上有指导老师的指导和查找相关参考 文献,各功能模块在技术上完全是可以的实现。就开发的实际情况来看,技术 上是可行的。 2.6.2 经济可行性 本订餐系统所需要的硬件和软件都是目前广泛使用的,如软件件运行环境 windows98以上系统、数据库acess和ASP等等,都可以通过网上、图书馆等各种渠道得到,不需要再花费大量的资金去购买高成本的设备,大大提高了在 设计过程中的工作效率,且投入使用后,便于后期工作的维护,因此,本系统 在经济上是可行的。 2.6.3 社会可行性 该系统符合现有的法律、法规和政策方面的限制,没违背当今社会的道德 标准,社会可行性通过。 2.7 开发工具介绍 4 网上订餐系统 2.7.1 ASP介绍 ASP是一套微软开发的服务器端运行的脚本平台,ASP 内含于 IIS当中,目前IIS最高版本为5.0版本。 通过 ASP 我们可以结合HTML网页、ASP 指令和ActiveX 元件建立动态、交互且高效的WEB服务器应用程序。同时,asp也支持VbScript和JavaScript等脚本语言,默认为VbScript。 ASP是经过服务器解析之后再向浏览器返回数据,所以有了 ASP 就不必担心客户的浏览器是否能运行你所编写的代码。因为所有的程序都将在服务器端 执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,服务器仅 将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大 提高了交互的速度。 2.7.2 acess介绍 Microsoft Access 2000是一种关系型数据库管理系统 (RDBMS)。 Access数据库是Microsoft Office 2000套件的Professional版和Developer版的一个组件,不需要单独安装。 与其他关系型数据库一样,MS Access充当“后端”,它的任务是存储数 据。除此之外,通过使用MS Access,用户还可以创建“前端”或一种对用户 友好的、颇受欢迎的数据访问方式。 Access数据库具有以下的特点: 1、功能比较单一,不提供数据发布、分布式事务处理等操作,因此比 Access数据库需要的内存和磁盘资源要少; 2、Access数据库一般用于桌面应用程序,不适用于大型的企业级应用; Access应用程序的可执行文件为:MSACCESS.EXE,并且该文件的位置与PowPoint、Excel等都在同一个目录下,例如Office 2003,在目录...[Office安装目录]\Office10下可以找到该文件。要运行Access,可以双击文件MSACCESS.EXE,也可以在“开始”菜单上以快捷方式启动,启动后的界面如下 图: 5 洛阳师范学院2010届本科毕业设计 Access数据库 我们先打开一个已经存在的数据库看看,如下图所示: Access数据库的对象 可以看出,Access数据库由七个对象组成:表、查询、窗体、报表、页、 宏以及模块。 —数据库中的数据主要存储在“表”中; —“查询”帮助用户检索基于某些条件的特定数据; —“窗体”帮助用户创建用于输入、修改和操纵数据的用户界面; 6 网上订餐系统 —“报表”以某种格式显示一个或多个表中的数据,数据可以直接从表中 提取,也可以是字段经过某些计算的结果,报表还提供良好的打印效果; —“宏”和“模块”有用来计算、在应用程序中导航以及打印报表等操 作; —“页”有提供给浏览器web页的形式查看数据库中的数据。 2.8 网站功能模块分析 管理员功能:登录系统、添加新的餐品、查看修改餐品、订单的管理和删 除、添加店铺页面的公告,修改店铺页面的公告,注册用户的管理,管理员用 户权限的添加和修改,已经管理员登陆密码的修改。 客户功能:注册帐号、登录系统、进行订餐,订单的查询,客户建议留言 操作。 订餐车:提取客户提交的餐单,自动计算出总价,输入资料,生成订单。 餐店的公告:及时更新店铺的新闻和信息。 订单查询:针对注册会员,可以查找会员的历史订单。 我要建议:客户可以给我店留言,留言可以收集到数据库中。 健康饮食:是我店针对季节,公布的一些健康的生活方式和饮食方法。 2.9 网站功能模块设计 本订餐系统主要包括两大块:第一部分是管理员模块,第二部分是管理员 模块。 7 洛阳师范学院2010届本科毕业设计 网上订餐系统 管客理户员模模块 块 图3-2网上订餐系统总框架图 管理员功能:以管理员身份登录后,可以执行的功能。 管理员功能 管添注订理加添单员和加册的权修和用管限改修户理的新改和添的的店删加餐铺管除和品公理 修告 改 图3-3管理员功能结构图 客户功能:以客户身份登录后,可以执行的功能。 8 网上订餐系统 客户功能 订 单客进用的户行户查注订留询 册餐言 图3-5客户功能结构图 9 洛阳师范学院2010届本科毕业设计 第三章 网站的设计与实现 3.1 数据库设计 设计数据系统时应该首先充分了解用户各个方面的需求,包括现有的以及 将来可能增加的需求。数据库设计一般包括如下几个步骤: ※ 数据库需求分析 ※ 数据库逻辑结构设计 3.1.1 数据库需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数 据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数 据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。 仔细分析调查有关网上订餐需求的基础上,将得到如下图所示的 本网站所处理的数据流程图: 管理员信息 管理员 管理员信息处理 处理后 餐品信登录 息 店铺信 数据储息 存 订单操作 客户 客户信息 客户信息处 理 图3-1系统数据流图 在本系统中,主要涉及的实体集有“管理员(admin)”,“客户(user)”,“订餐信息(oders)”“菜单(product)”“留言(notify)”“店铺公告 (news)”。 “管理员”实体集而言,涉及的主要信息(属性)有:admin管理员用户名、UserPassword管理员密码。 10 网上订餐系统 “客户(user)”实体集,涉及的主要信息(属性)有:username用户名、useremail用户邮箱、UserSex用户密码、address客户地址,relationPhone用户电话,adddate注册时间,LastLogin登录时间,realname姓名,address送餐地址,UserSex性别。 “订餐信息(oders)”实体集,涉及的主要信息(属性)有:orderid订单编号,username用户名,productnum产品数量,goods产品名称,total总价,state订单状态,address收货人地址,realname收货人真实姓名,usertel收货人电话,remark订单备注,getdate收获日期,idate订购日期。 “菜单(product)”实体集,涉及的主要信息(属性)有title菜单名称,price价格,sortid所属菜系,picfile菜单图片,idate发布日期,isRecomen推荐菜单。 “留言(notify)”实体集,涉及的主要信息(属性)有newsname留言标题,newscontent留言内容,reply回复内容,addname留言人姓名,adddate留言日期。 “店铺公告 (news)”实体集,涉及的主要信息(属性)有title标题,typeid咨询类型 0 公告 1 餐饮文化健康知识,detail文章内容,idate文章添加时间,hits访问次数。 3.1.2 数据库逻辑结构设计 要实现本次的网上订餐系统的所有功能,共需要设计6个表,它们分别是:管理员信息表、客户信息表、菜单信息表、订餐信息表、留言表、店铺公 告表。 本系统的设计所使用的数据库是acess。这些表的具体设计如下所示 表1 管理员信息表(admin) 序号 列名 数据类型 长度 可否为空 默认说明 值 1 admin char 50 否 用户名 2 UserPassword char 50 否 密码 表2 客户信息表(user) 序列名 数据类长度 允许空 默认说明 号 型 值 11 洛阳师范学院2010届本科毕业设计 1 Username char 50 否 客户名字 2 useremail char 50 是 客户邮箱 3 UserSex 长整型 50 是 客户性别 4 UserPassword char 50 是 客户密码 5 relationPhone char 50 是 客户电话 adddate date 6 50 是 注册时间 7 LastLogin date 50 是 登录时间 8 address char 100 是 送餐地址 9 realname char 50 是 真实姓名 表3 订餐信息表(oders) 序列名 数据类长度 允许空 默认值 说明 号 型 1 orderid char 50 否 订单编号 2 username char 50 是 用户名 3 productnum 备注 是 产品数量 4 goods 备注 是 产品名称 5 total 数字 长整型 是 0 总价 6 state char 50 是 订单状态 7 address char 50 是 收货人地址 8 realname char 50 是 收货人真实姓名 9 getdate char 50 是 收货人备注 10 getdate date 是 收货日期 11 idate date 是 订购日期 12 usertel char 50 是 收货人电话 表4菜单(product)表 序列名 数据类长度 允许默认值 说明 12 网上订餐系统 号 型 空 1 title char 50 否 菜单名字 是 2 price 数字 长整型 0 价格 是 3 sortid char 50 所属菜系 是 4 picfile char 30 菜单图片 是 5 idate date 发布日期 是 6 isRecomend char 50 推荐菜单 表5留言(notify)”实体集 序号 列名 数据类长度 允许空 默认值 说明 型 1 newsname 否 留言标题 char 50 2 newscontent 是 留言内容 char 100 3 reply 是 留言回复 date 50 4 addname 是 留言人姓名 char 50 5 adddate 是 留言人日期 date 50 表6店铺公告 (news)表 序号 列名 数据类型 长度 允许空 默认值 说明 1 title 50 否 公告标题 char 2 typeid 是 0 咨询类型 数字型 3 detail 100 是 文章内容 char 4 idate 是 添加时间 date 5 hits 20 是 访问次数 char 13 洛阳师范学院2010届本科毕业设计 3.1.3 数据库结构的实现 利用Acess数据库,先建立一个“订餐网”的数据库,名称为Fooun的数 据库,以便管理本网站中的所有数据。 打开fooun数据库,使用向导分别创建6个表,并输入相关信息。 3.2 功能模块代码设计 在这一节我们将详细介绍这个网站在页面模块中调用的主要页面和页面模 块的代码。 3.2.1 管理员登陆功能代码简介 这个模块主要用到login.aspx页面,实现运行后如下图: dim username,UserPassword,comeurl,passcode username=FormatSQL(replace(trim(request.form("username")),"'","")) UserPassword=md5(FormatSQL(replace(trim(request.Form("UserPassword")),"'",""))) passcode=Cint(request.form("passcode")) comeurl=request.servervariables("HTTP_REFERER") if comeurl="" then comeurl="index.asp" end if if username="" or UserPassword="" then response.Write "" conn.Close set conn=nothing response.end 14 网上订餐系统 end if set rs=server.CreateObject("adodb.recordset") rs.Open "select * from [user] where UserPassword='"&UserPassword&"' and username='"&username&"' " ,conn,1,3 if not(rs.bof and rs.eof) then if UserPassword=rs("UserPassword") then response.Cookies("Fooun")("username")=trim(request.form("username")) Response.Cookies("Fooun").Expires = Now()+1 rs("LastLogin")=now() rs("UserLogins")=rs("UserLogins")+1 rs.Update rs.Close set rs=nothing conn.Close set conn=nothing response.redirect comeurl else response.write "" rs.Close set rs=nothing conn.Close set conn=nothing response.end end if else response.write "" rs.Close set rs=nothing conn.Close set conn=nothing 15 洛阳师范学院2010届本科毕业设计 response.end end if 3.2.2 会员注册页面功能 这个模块主要用到reg.aspx页,运行后是下面的页面: elseif strAct="save" then set Urs=conn.execute("select count(*) from [user] where username='"&trim(request.form("username"))&"'") if int(Urs(0))>0 then response.Write "" response.End() else set rs=server.CreateObject("adodb.recordset") rs.open "select * from [user]",conn,1,3 rs.addnew rs("username")=trim(request.form("username")) rs("UserPassword")=md5(trim(request.form("UserPassword"))) rs("useremail")=trim(request.form("useremail")) rs("realname")=trim(request.form("realname")) rs("UserMobile")=trim(request.form("UserMobile")) rs("address")=trim(request.form("address")) 16 网上订餐系统 'rs("commpany")=trim(request.form("commpany")) rs("adddate")=now() rs("LastLogin")=now() rs.update rs.close set rs=nothing response.Cookies("Fooun")("username")=trim(request.form("username")) Response.Cookies("Fooun").Expires = Now()+1 response.Write "" response.End() end if end if 3.2.3 首页的推荐菜单功能代码简介 <% set rs=conn.execute("select top 10 * from product where isRecomend=1 order by id desc") if not rs.eof then n=1 while not rs.eof %> src="<%=rs("picfile")%>" width=120> <%=rs("title")%> 价格:¥<%=rs("price")%>.0 onClick="dinner.bookMain('<%=rs("title")%>',<%=rs("price")%>,1,<%=rs("id")%>)" src="images/btn_buy.png"> <% if n=5 then %> 17 洛阳师范学院2010届本科毕业设计 <% end if %> <% n=n+1 rs.movenext wend end if rs.close %> 3.2.4 餐品公告功能代码简介 <% dim sql sql="select top 8 * from news where typeid=0 order by id desc" set rs=conn.execute(sql) if not rs.eof then while not rs.eof %> href="view.asp?id=<%=rs("id")%>" target=m_iframe><%=rs("title")%> <% rs.movenext wend rs.close%> 18 网上订餐系统 第四章 测试 4.1 测试环境 经过测试,本订餐系统的功能能够基本上得到实现,基本上满足能不同用 户的功能、性能上的需求,提示信息比较完善,一般的错误操作和输入异常都 有提示信息。 由于时间有限,不能非常详细地对本系统做测试及写完整的测试流程,所 以测试的准确性可能会受到影响。 4.2 程序问题 1.程序在运行时,数据库的连接会经常出现异常或数据库默认登录用户登 录失败,我通过上网查询资料,并向其他同学请教,解决了数据库方面常 见的问题。 2.在开发旅游新闻板块的过程中,有些参数的传递出现问题,但通过向老 师请教和同学讨论,也很好的解决了。 19 洛阳师范学院2010届本科毕业设计 第5章 工作总结与展望 5.1 工作总结 经过几个多月的知识准备、系统开发和论文撰写过程,我终于完成了此次 毕业设计,毕业设计在这里告一段落了。通过这次毕业设计,我基本掌握ASP 技术、Acess数据库技术等知识,对软件工程的流程有了更深的理解,对系统 的设计与开发也有了更深一层认识,也对饮食方面有了一定的了解。 毕业设计的目的是大学本科教学计划中的重要一环,是对学生知识综合应 用和实际操作能力的考察,通过毕业设计,不仅能够培养学生独立自主地去完 成一个项目的能力,而且也能促使学生发挥个人创造力、创新性,大大提高学 生的综合能力水平,更好地将理论联系实际,用所学的知识去解决实际问题。 在这次毕业设计的过程中,我学到了很多东西的同时确实也遇到了不少的 困难和挫折,由于该系统的封装性比较高,所以很容易出现遗忘某些地方或某 些代码无法运行的情况,后来通过上网查询资料,查询书籍,询问老师同学等 方法,最终将问题都意义解决了,达到了预定的目标。 5.2 今后工作展望 常言道:当你学得越多,你就觉得你的知识越浅薄。在这次毕业设计中我 深深地体会到了这句话的深刻含义。在毕业设计刚开始时,自己感觉还挺好 的,但是越到后面就越感觉到自己的知识的不足和一门计算机语言的深刻内 涵!认识到一个系统所涉及的方面是那么的广泛,你不仅要了解你的工具,也 要了解你的系统的用户,更要了解系统所涉及到的商业知识。就如我的订餐系 统,我不仅要去了解ASP技术、Acess数据库技术等工具,还要去了解餐厅的 运作是如何的,去了解顾客的反应等等。 虽然这次毕业设计已接近尾声,但我会在毕业后的闲暇时间里,上网查阅 更多的资料,将网上订餐系统做的更加完善,争取早日实现本网站的商业化运 作,实现方便广大用户的最终目的。 20 网上订餐系统 参考文献 [1]马增友. ASP网站设计与开发技能实训教程.科学出版社 [2]胡标. ASP网络编程技术与实训教程.人民邮电出版社 [3]赵传启.叶卓映,郭军.中文版Access 2003宝典.电子工业出版社 [4]IT部落.http://edu.itbulo.com/zhuanti/access2000/ [5]网易学院.http://tech.163.com/special/00091PDS/aspnet.html [6]中国美食网.http://www.zhms.cn/ [7]百度知道.http://zhidao.baidu.com/ 21 洛阳师范学院2010届本科毕业设计 致谢 值本系统完成之际,衷心感谢我毕业论文的指导教师姚慧丽老师。她严谨 的治学精神,精益求精的工作作风,不厌其烦为我解疑释惑的态度,深深地感 染和激励着我。 在搜集有关资料的过程中,很多人无私的提供了资料数据,并指导我使用 和操作,使本系统得以顺利完成,在此对他们表示感谢。 22范文五:网上订餐系统设计-毕业论文
<%=year(rs("idate"))&"-"&month(rs("idate"))&"-"&day(rs("idate"))%>