网上订餐系统实验报告.docx
《网上订餐系统实验报告.docx》由会员分享,可在线阅读,更多相关《网上订餐系统实验报告.docx(35页珍藏版)》请在冰豆网上搜索。
![网上订餐系统实验报告.docx](https://file1.bdocx.com/fileroot1/2023-6/9/4fe31f4e-3d5e-4fb7-9b93-bcf0a211cfeb/4fe31f4e-3d5e-4fb7-9b93-bcf0a211cfeb1.gif)
网上订餐系统实验报告
网上订餐系统
实验报告
目录1
摘要1
Abstract2
第一章前言3
1.1开发背景与研究意义3
1.1.1本课题的开发背景3
1.1.2本课题的研究意义3
1.1.3本课题的开发目标3
1.2课题调研分析与可行性分析3
1.2.1本课题的调研分析3
1.2.2本课题的可行性分析4
第二章系统需求分析5
2.1性能需求分析5
2.2系统用例图5
第三章系统设计7
3.1系统总体结构设计7
3.2数据库设计9
3.2.1概念设计9
3.2.2数据结构10
3.3系统开发技术13
3.3.1系统开发环境及开发工具13
3.3.2系统运行环境13
3.4设计到的技术要点14
3.4.1session的使用14
3.4.2ADO.NET技术14
3.4.3文件上传16
第四章详细设计17
4.1系统模块详细设计17
4.2登陆模块的流程图17
4.3顾客模块详细设计17
4.4管理员模块详细设计19
第五章系统实现22
5.1系统安装手册22
5.1.1系统配置22
5.1.2实施方案22
5.2系统运行与操作指南22
第六章结论28
6.1系统主要特色与优点接受28
6.2系统不足与改进方案28
致 谢30
译文33
摘要
本文分析了小型餐饮店管理与发展的现状和面临的问题,发现传统的服务模式已经不能适应市场发展的需求。
随着网络技术的发展和普及,方便、快捷、个性化的网上订餐服务正在进入人们的生活。
针对这类问题,结合当代科技发展的最新成果,本文构思规划了一套最贴切的服务模式,为餐饮店铺提供区域网络门户,适应不同的客户群。
本设计是一个基于互联网的B/S模式的网上订餐系统,能为客户提供网络选择浏览菜品介绍、点菜订餐、送餐等服务。
并为管理员提供一个智能的服务平台实现顾客信息与顾客订单的管理,从而提高了服务的质量。
本文从系统需求、系统设计、代码实现几方面介绍了整个软件开发过程,其开发平台为Microsoftvisualstudio2005,主要开发语言有C#,JavaScript。
关键词:
订餐系统订单管理C#B/S模式
第一章前言
1.1开发背景与研究意义
1.1.1本课题的开发背景
21世纪,全球网络化,科技在突飞猛进。
我们的生活同网络通信息息相关。
计算机已经普及到我们社会和经济生活中的各个领域。
人们进行信息交流的深度与广度不断增加,这使得我们的服务,管理也应该跟上时代的步伐去前行。
电子商务在此得到极大地普及与发展。
餐饮业在电子商务中还处于形成的初期;传统的饮食业中,大都是以实际门面的形式来进行宣传与交流的。
作为网络普遍化的社会,这还缺少了一些更为现代化的元素。
餐饮业是一种个性化、多样化的服务产业,而电子商务则最能体现个性化,多样化服务的商务方式。
而且现在大部分电子商务都体现为像大企业服务,结合餐饮这个特殊的行业,终将还发展为向小区域小店铺服务的模式。
以最贴切的方式,最灵便的服务进入各个网络社区,进入人们的生活。
1.1.2本课题的研究意义
针对餐饮业大背景下的问题与方向,我们可以察觉到在餐饮服务这个大行业中尚有我们可为的地方。
本平台提供适合不同人群,最贴切的服务。
我们将通过网络平台,去体现服务质量,去创造效益。
我们应当抓住,中小店铺,提供区域化餐饮服务这一理念;为它们提供最贴切的服务;把它体现在我们电子商务服务上来,融合到我们软件开发的产品中来;去建立起特色鲜明的订餐网站,以取得最大的经济效益。
综上所述,即采用更先进、更高级的技术手段来设计和开发餐饮服务系统,采用更科学、更合理的方法来解决餐饮服务系统的问题,将为其带来更新的活力,餐饮服务系统也将朝着更准确、更高效的趋势发展前进。
1.1.3本课题的开发目标
开发出一个适合餐饮行业,能够满足用户需求的系统。
设计并实现一个基于ASP.NET的订餐系统,该系统应具备的功能有:
用户权限管理、浏览功能、订单功能等。
1.2课题调研分析与可行性分析
1.2.1本课题的调研分析
传统是用人工的方式来进行店铺的各项管理,比如手工进行记录,人工进行顾客个人信息,顾客订餐,订餐信息的管理,口头通知或者是通过移动电话等方式进行关于交易的信息传递与交流,拿最平常的费用统计管理来讲,光是每个顾客的个人消费就是一道令人费解的过程,而在当今计算机技术不断发展的今天,这些问题可以轻而易举的通过计算机和网络来完成,不仅方便快捷,而且简单,易操作。
同时对于店铺里的文件管理,过去也多数是以纸质材料进行保存,这样查询起来不仅麻烦不方便,保密性比较差,而且容易磨损,不易保存,另外时间一长,将会产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
如果采用电子文档的方式进行保存,不仅查询起来方便,而且安全性比较高,只有有权限的人才可以看得到,只要多备份几个,而且多处备份也更容易。
可以保存很多年,不会发生像传统的纸质材料保存所出现的受潮等一些损坏。
1.2.2本课题的可行性分析
1.技术可行性
本系统使用.NET技术进行开发,编程语言使用C#、ASP.NET是Microsoft开发的使用于构建、管理Web页面的技术,它的特点主要是:
简化网页的编辑工作,提供代码与设计视图分离,使得代码更容易编写、修改与维护;不仅能使用Script语言,还可以使用编译式语言,如本系统所采用的C#,不同的动态网页制作技术还可以使用不同的编程语言;由于ASP.NET代码是预先编译过的,所以运行起来要比ASP的直译方式快。
所以ASP.NET是实现本系统的最佳技术,它是完全可行的。
此外.NETFramework2.0框架作为微软公司已经比较成熟的产品,现在有越来越多的企业及技术人员选择它来作为开发平台。
因此,在技术上.NET是完全可以胜任这个平台的开发。
2.经济可行性
由于本项目的特殊性,无需投入额外的设备购买及人员培训费用,所以在经济上本系统的开发是可行的。
此外系统对开发的需求以及软硬件要求都不是很高,所以在软硬件的支出上十分有限。
因此,本系统在任何一台连接Internet的机器上都可以运行,有很高的经济可行性。
按上述两方面进行可行性分析、研究后,我们认为该项目在技术上是可行的,在经济上也是没问题的,所以完全可以进行开发。
3.操作可行性
在操作上对开发人员的要求并不高,WindowsXP操作系统我们已经非常熟悉,而Visual.Studio.Net也是相对容易上手的可视化的编程语言,通过自学完全可以掌握。
4.法律可行性
本系统没有侵犯个人隐私和个人责任方面的问题,使用本系统不会引起法律方面的纠纷问题,所以开发本系统具有法律可行性。
综上所述,本系统的开发是符合现在的实际情况的,并具有一定的实用意义。
在技术、经济、操作上,法律上都可以看到此系统的可行性,并且很具有其实现的必要。
第二章系统需求分析
随着网络技术的发展和普及,方便、快捷、个性化的网上订餐正在进入人们的生活。
目前,网上订餐业务还处于形成期,成长空间还很大。
订餐网站是一个基于互联网的B/S模式的网上订餐系统,能为客户提供网络选择餐厅、浏览菜品介绍、点菜订餐、送餐等服务。
这有助于提高管理水平,不仅高效,还使的原本繁重的管理变得简单
2.1性能需求分析
该系统在性能功能应达到如下要求:
1.操作简单,界面友好:
完全空间式的页面布局,使得菜品、咨询等信息录入的工作更简单:
另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。
对常见类似的网站的管理的各个方面:
基本信息录入、浏览、删除、修改、搜索等方面都大体实现,用户对菜品的预定以及支付方式;
2.即使可见:
对客户预定餐饮信息的处理(包括录入、删除)将立即在首页的对应栏目显示出来,达到“即时发布,即时见效”的功能
3.系统运行应该快速、稳定、高效和可靠;
4.在结构上应该具有很好的可扩展性,便于将来功能的扩展和维护。
2.2系统用例图
通过对系统的需求分析,系统的基本功能已经大体确定。
整个系统的用例图分为两个部分,顾客用例图,管理员用例图,分别见图2-1和图2-2.
顾客用例图:
图2-1顾客用例图
管理员用例图:
图2-2管理员用例图
第三章系统设计
3.1系统总体结构设计
根据第一、二章所做的定义及分析,本课题在此基础上利用和SQLServer2005技术构建基于Web数据库的开发的、信息共享的、动态的交互式平台,该平台可以在基于Windows2005/XP/2003系统构建的局域网或Internet上使用。
在总体结构上是采用B/S模式设计,各类商品信息和数据库中的信息在服务器端,采取中心数据库SQLServer统一存放和组织,顾客及系统管理人员在客户机一端,无须任何配置工作,只须使用浏览器向Web服务器代理提出请求,服务代理通过中间组件与数据库链接,把请求服务的内容以Web页面形式通过浏览器反馈给各类用户。
本系统面向顾客,管理员两种身份的用户,整个系统的功能模块(见图3-1),整个系统将围绕这个模块进行开发工作,整个系统主要由以下几个子模块组成:
顾客模块(见图3-2),管理员模块(见图3-3)。
图3-1可以宏观的了解整个系统所涉及到的各个功能模块,以及这些模块所要实现的功能。
图3-2介绍了顾客模块所涉及到的流程和要实现的功能。
图3-3介绍了后台管理员模块所要实现的各种功能。
图3-3管理员模块数据流程图
3.2数据库设计
3.2.1概念设计
通过分析,系统总共有两种角色,分别是顾客,管理员。
分别见图3-4和图3-5。
顾客的E-R图如图3-4:
管理员的E-R图如图3-5:
图3-5管理员模块E-R图
3.2.2数据结构
数据结构是计算机存储、组织数据的方式。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
通常情况下,精心选择的数据库可以带来更高的运行或者存储效率。
表3-1Admin表
字段名
描述
类型
长度
是否允许为空
是否为主键
AdminID
管理员ID
bigint
8
否
是
Admin
管理员用名
varchar
50
否
否
Password
密码
varchar
50
否
否
表3-2Area表
字段名
描述
类型
长度
是否允许为空
是否为主键
AreaID,
地址
Bigint
8
否
是
AreaName
地址名
Varchar
50
否
否
AreaKM
地址距离
Varchar
50
否
否
表3-3BuyInfo表
字段名
描述
类型
长度
是否允许为空
是否为主键
BuyID
购买ID
bigint
8
否
是
FoodID
美食号
varchar
50
否
否
Num
数量
varchar
50
否
否
OerderID
订单号
varchar
50
否
否
SunPrice
总价
varchar
50
否
否
MemberID
顾客ID
varchar
50
否
否
表3-4Class表
字段名
描述
类型
长度
是否允许为空
是否为主键
ClassID
类别号
bigint
8
否
是
ClassName
分类名称
varchar
50
否
否
CategoryUrl
分类图片路径
varchar
50
否
否
表3-5FoodInfo表
字段名
描述
类型
长度
是否允许为空
是否为主键
FoodID
文件号
bigint
8
否
是
ClassID
文件类型
bigint
8
否
否
FoodName
上传路径
varchar
50
是
否
FoodIntroduce
上传者
ntext
16
是
否
FoodUrl
上传时间
varchar
50
是
否
Maketprice
市场价格
float
8
是
否
MemberPrice
会员价
float
8
是
否
Isrefinement
是否精品
bit
1
是
否
IsHot
是否热销
bit
1
是
否
AddDate
添加时间
datetime
8
是
否
IsDiscount
是否打折
bit
1
是
否
表3-6Image表
字段名
描述
类型
长度
是否允许为空
是否为主键
ImageID
图片ID
bigint
8
否
是
ImageName
图片名
varchar
50
是
否
ImageUrl
图片径
varchar
200
是
否
表3-7Member表
字段名
描述
类型
长度
是否允许为空
是否为主键
MemberID
会员ID
bigint
8
否
是
Name
用户名
varchar
50
是
否
Sex
性别
bit
50
是
否
Password
密码
varchar
50
是
否
TrueName
真实姓名
varchar
50
是
否
Questions
密保问题
nvarchar
50
是
否
Answers
密保
nvarchar
50
是
否
Phonecode
电话
varchar
20
是
否
Emails
Email
varchar
50
是
否
City
区域
varchar
50
是
否
Address
地址
varchar
200
是
否
AdvanePayment
预付费
float
8
是
否
LoaDate
注册时间
datetime
8
是
否
表3-8shopCart
字段名
描述
类型
长度
是否允许为空
是否为主键
CartID
购物车ID
bigint
4
是
是
FoodID
食物ID
bigint
50
是
否
Num
数目
Int
50
是
否
SumPrice
总价
float
50
是
否
MemberID
会员ID
bigint
50
是
否
表3-9OrderInfo
字段名
描述
类型
长度
是否允许为空
是否为主键
OrderID
订单ID
bigint
8
否
是
OrderDate
文件类型
varchar
50
否
否
TotaPrice
总价
varchar
50
否
否
MemberID
会员ID
bigint
8
否
否
ReceiverName
收货人
varchar
50
否
否
ReceiverPhone
收货人电话
varchar
50
否
否
IsConfirm
是否确认
bit
1
是
否
IsPayment
是否已付
bit
1
是
否
IsConsignment
是否已发货
bit
1
是
否
IsPigeonhole
是否已归档
big
1
是
否
RecerverAddress
收货地址
varchar
50
是
否
receiverEmails
收货email
varchar
200
是
否
3.3系统开发技术
3.3.1系统开发环境及开发工具
开发工具对一个系统的成败具有决定性作用。
由于本系统是应用于网络的,因此,本系统选择了ASP.NET技术进行开发,同时,选用SQLSever2005作为系统后台数据库,开发中用到的主要开发工具有MicrosoftVisualStudio.NET2005、DreamweaverMX2004,具体如表3-10所示:
表3-10系统开发工具及软件用途表
开发工具名称
软件用途
MicrosoftVisualStudio.NET2005
工程管理、代码编写及调试
SQL-Server2005
建立系统的后台数据库
DreamweaverMX2004
静态页面的设计、制作
3.3.2系统运行环境
1.硬件环境:
服务器端:
配置为1024M内存,CPU为Pentium2.93GHz,硬盘容量为160G的微机。
通信网络:
Internet网
2.服务器端:
操作系统:
Windows2003/NT/XP/
数据库服务器:
SQLSERVER2005
Web服务器:
Internet信息服务5.1或以上版本
Microsoft.NETFramework版本:
.NETFramework2.0
3.客户端:
操作系统:
Windows9X/2005/XP/2003
浏览器:
InternetExplore6.0或以上版本
推荐分辨率:
1024*700
3.4设计到的技术要点
3.4.1session的使用
Session是什么呢?
简单来说就是服务器给客户端的一个编号。
当一台WWW服务器运行时,可能有若干个用户浏览正在运行在这台服务器上的网站。
当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个Session,用以标识这个用户的唯一身份。
这个Session是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。
这个唯一的Session是有很大的实际意义的。
当一个用户提交了表单时,浏览器会将用户的Session自动附加在HTTP头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给Session所对应的用户。
试想,如果没有Session,当有两个用户同时进行注册时,服务器就是通过Session来判断到底是哪个用户提交了哪个表单的。
在本次的系统设计过程中基本每个页面都使用了Session技术,它在设计中的地位是举足轻重的。
3.4.2ADO.NET技术
ASP.NET引入了新的声明性数据绑定语法,这种非常灵活的语法允许开发人员不仅可以绑定到数据源,而且可以绑定到简单属性、集合、表达式,甚至可以从方法调用返回的结果。
数据绑定技术的方便之处在于,当某一个数据源和一个数据显示控件绑定在一起之后,每当数据源发生变换的时候,数据显示控件将自动的跟随数据源变化。
当然数据绑定控件并不仅仅为了数据显示控件服务,任何一种符合数据绑定规范的控件都可以绑定到一个数据源。
数据绑定的概念,使开发者可以有层次地将控件属性绑定到数据容器的值上,位于<%…%>代码块中的代码只有父控件容器中的DataBind方法被调用时才会被执行。
DataBind()是页面和所有服务器控件的方法,当在一个父控件中调用该方法时,它将连接到控件的所有子控件上。
DataBind()通常又PageLoad事件调用,它与ASP中Response.Write()方法有很多不同之处。
在本系统的设计过程中,大量使用了数据绑定技术,如DropdownList的绑定,DataGrid的绑定。
比如在搜索功能上所涉及到的代码:
publicvoidbindSearchType()
{
stringsql="selectdistinctsearchType,typefromtb_Search";
DataSetds=dataOperate.getDataset(sql,"tb_Search");
ddlSearchType.DataSource=ds.Tables["tb_Search"].DefaultView;
ddlSearchType.DataTextField="searchType";
ddlSearchType.DataValueField="type";
ddlSearchType.DataBind();
bindKey();
}
//自定义方法绑定关键字下拉列表
publicvoidbindKey()
{
//获取当前选择的信息类型的表名
stringtype=ddlSearchType.SelectedValue.ToString();
stringsql="selectsearchKey,keywordfromtb_Searchwheretype='"+type+"'";
//调用数据库操作类中getDataset方法并获取返回的数据集
DataSetds=dataOperate.getDataset(sql,"tb_Search");
//绑定关键字类别的DropDownList控件的数据源
ddlKeyType.DataSource=ds.Tables["tb_Search"].DefaultView;
//绑定关键字类别DropDownList控件文本的字段名
ddlKeyType.DataTextField="searchKey";
//绑定关键字类别DropDownList控件值的字段名
ddlKeyType.DataValueField="keyword";
ddlKeyType.DataBind();
bindTerminal();//调用自定义方法是否显示到达地文本框
}
protectedvoidddlSearchType_SelectedIndexChanged(objectsender,EventArgse)
{
bindKey();
}
//显示到达地文本框
publicvoidbindTerminal()
{
//判断关键字类型是否选择了出发地
if(ddlKeyType.SelectedValue.ToString()=="Start")
{
txtTerminal.Text="";//清空到达地文本框
labTerminal.Visible=true;
txtTerminal.Visible=true;
}
Else
{
labTerminal.Visible=false;
txtTerminal.Visible=false;
}
}
protectedvoidddlKeyType_SelectedIndexChanged(objectsender,EventArgse)
{
bindTerminal();
}
//搜索按钮
protectedvoidbtnSearch_Click(objectsender,EventArgse)
{