《网上订餐系统(1).doc》由会员分享,可在线阅读,更多相关《网上订餐系统(1).doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date网上订餐系统(1)网上订餐系统(1)目 录摘要1关键字1引言1(一)研究的背景及意义1(二)订餐系统现状与发展2(三) 结构安排31 相关技术介绍41.1 .Net平台简介41.1.1 .Net概述41.1.2 ASP.Net的优势61.2 SQL Server 2008简介71.2.1 SQL Server 2008概述71.2.2 SQL Server 2008的
2、优势71.3 系统体系结构82 系统分析与设计92.1可行性分析92.2 系统设计目标102.3 系统功能分析112.3.1 系统功能实现112.3.2 系统需求分析123 数据库设计173.1 数据库需求分析173.2 系统概要设计173.2.1 系统概要设计概述173.2.2 订餐系统E-R图183.3 逻辑设计203.3.1 逻辑设计概述203.3.2 数据表的设计203.4 物理设计224 网上订餐系统的实现234.1 功能模块介绍234.1.1 登陆/注册234.1.2 菜单信息浏览244.1.3 订餐服务254.1.4 用户反馈及评分264.1.5 订单处理274.1.6 后台信息
3、管理274.2 核心功能实现294.2.1 用户自定义控件说明294.2.2 信息显示304.2.3推荐指数304.2.4 分页显示算法314.2.5 购物车325 网上订餐系统测试335.1测试目标335.2 测试方法345.3 主模块测试355.3.1登录注册模块355.3.2 订餐服务模块355.3.3 订单处理模块355.3.4 菜单管理模块3554测试总结376 结论376.1 总结376.2 展望38参考文献:38Abstracts39Key Words39致谢39-网上订餐系统摘要随着人们生活水平的提高,对饮食的要求已不仅是解决温饱,很多人在进行紧张工作之余选择享受美食,得到美的
4、精神享受和放松。传统的就餐方式往往会出现人们到餐厅就餐,排队或没有位置的现象。因此,开发出图文并茂,信息能够及时更新与查看的网上订餐的系统就成为了解决上述问题的主要途径。网上订餐是近年来随着网络技术的发展而产生的一种新型的就餐方式。它与传统就餐方式相比,网上订餐拥有很多优势,这样的订餐方式效果很好,既让顾客觉得方便、快捷,又对每个订单的信息保管妥善、处理及时,实现了高度智能化管理。网络订餐方式将成为餐饮业销售的新模式与新的增长点。本文通过对网上订餐进行需求分析,开发出一个基于互联网的B/S模式的网上订餐系统,实现了在线信息浏览,在线订餐与在线订单处理及信息更新和删除等功能。系统的数据库方面,使
5、用关系数据库管理系统Microsoft SQL Sever2008,使系统安全性能更高,同时采用当前正在流行的ASP.Net平台编程,使用户界面更加完美关键字 网上订餐; 互联网; .Net; 订单管理; 信息浏览引言(一)研究的背景及意义俗话说:“民以食为天”,随着人们生活质量的提高,对饮食的要求已不仅是解决温饱需求,很多人在进行紧张工作之余会选择享受美食来享受生活,进而进行放松。餐饮业是一种个性化、多样化的服务产业,随着网络技术的发展和普及,将餐饮服务与个性化、多样化服务的电子商务相结合1,形成了方便、快捷、个性化的网上订餐系统,通过网上订餐系统,顾客不必亲临现场,便可以为自己、家人、朋友
6、聚会等置办一份既营养又实惠的美食。其最大的优势是:图文并茂,信息能够及时在线更新与查看,并有效地解决了传统就餐过程出现的排队,拥挤,信息变更不能及时等现象。这样既节省了时间,又为广大用户提供更多选择。订餐系统基于ASP.Net平台和SQL Server2008数据库开发, 实现了网上订餐系统信息的动态管理,对每个订单的信息保管妥善并且及时处理,实现了高度的智能化。该系统基于B/S(Browser/Server,浏览器/客户端)模式实现,这种结构使得数据只有结果集合在浏览器中显示,数据的处理在服务器进行,用户不用安装客户端,而且由于通过服务器端统一管理数据,易于保证数据的一致性。 (二)订餐系统
7、现状与发展国外: 在外国, 在多年前许多知名品牌就开始了网上订餐服务,如今提供网上订餐服务的商家数目正在急剧膨胀,人们只需一部电脑和一张信用卡,就可全天订座。即便并非名流或常客也不是厨师的朋友照样能与他们平起平坐地享受这种便捷的订餐方式。因此,网上订餐的方式已经被国外的许多家庭所认可。国内:目前我国使用的订餐方式大都还停留在电话订餐的层次上,毋容置疑,电话订餐方便,随时打一个电话就可以预定餐品。但是这种方式还是存在着一些问题,比如这种订餐方式的效率低,并且对信息的保存与更改都需要人工记录,容易遗漏和出错。因此,网上订餐服务在逐渐新起。据了解,在济南、青岛、临沂等地,消费者对订餐服务的需求是很大
8、的,尤其是临沂商城,由于这里有位居全国第二位的专业批发市场群体,许多客商因整天忙于生意而无暇去饭店就餐,因而他们热衷于网上订餐。济南有一午餐网很受消费者的欢迎,由于网站为消费者提供免费的订餐服务,并通过让消费者享受多种优惠的服务,吸引了众多网上订餐者2。总体来说,我国的网上订餐业务还处于形成期,成长空间很大。发展趋势:人们通过上网,预定需要的餐品,这样不仅节约了时间,而且为饭店的订餐管理工作提供了方便,最重要的是,这样的订餐方式效果很好,对每个订单的信息保管妥善并且处理及时,实现了高度智能化管理。因此将来网上订餐服务有望发展成一种非常受欢迎的订餐方式,将成为餐饮业销售的新模式和新的增长点2。(
9、三) 结构安排本文通过对网上订餐系统进行需求分析,开发出一个基于互联网的B/S模式的网上订餐系统;数据库方面,使用关系数据库管理系统Microsoft SQL sever2008,系统安全性能更高,同时采用当前正在流行的ASP.Net平台编程,使用户界面更完美。系统使用面向对象的软件开发思想,按照软件工程的基本步骤进行了系统分析、设计和实现。系统分为前台和后台两部分,其中前台主要是用户进行菜单和相关资讯的浏览,以及订餐,信息反馈和评分等,主要是面向顾客的;后台是对前台数据的维护、设计和订单管理的,主要是面向管理人员。管理人员又分为系统管理人员和订餐管理人员。系统管理人员负责维护和管理网站信息;
10、订餐管理人员负责查看当前形成的新订单与订单明细,并且处理订单。1 相关技术介绍1.1 .Net平台简介 1.1.1 .Net概述订餐系统是基于.Net平台,利用ASP.Net技术开发的。.Net开发平台是从微软Windows DNA(Distributed Network Architecture)衍生而来的。随着三层多层企业信息系统结构的发展与下一代分布式计算模型Web服务的诞生,企业应用中关于平台、框架、语言的竞争也越来越激烈。2000年6月微软公司宣布其.Net战略,并开始对.Net这一全新的概念进行宣传,对其相关产品进行研发。一直以来,.Net给人的感觉比较抽象和笼统,无法给出明确的定
11、义,也许引用微软首席执行官的说法更容易让人理解:“Microsoft .Net代表一个集合,一个环境,可以作为平台支持下一代Internet的可编程结构。”诚然,.Net是一个开发和运行软件的全新平台,便于开发基于Web的应用,其拥有大量的运行库服务以支持用多种编程语言编写的组件,具有跨语言,跨平台的互操作能力。.Net使高度分布式Internet环境下的应用程序开发得到了简化,为XML Web服务与其他应用程序提供了一个高效的安全的开发环境,并全面支持XML。框架结构在NET中的地位非常重要,因此下面进行详细地阐述。.Net Framework是整个.Net平台的基础结构。它由基类库(如AD
12、O.Net和ASP.Net)和通用语言运行库(CLR,Common Language Runtime)组成,如图11所示。图1.1 .Net平台结构图从图中可以了解到.Net开发框架的主要组成部分。首先整个开发框架的基础是通用语言运行库(CLR)及基础类库(BCL);在开发技术方面,.Net提供了全新的数据库访问技术ADO.Net,以及Web开发平台ASP.Net和Windows编程技术Win Forms:开发语言方面,.Net提供了对VB、VC+、C#、Jscript、J+等多种语言支持5;在本系统开发中使用的Visual Studio.Net 2008则是全面支持.Net的开发工具。1.1
13、.2 ASP.Net的优势ASP.Net是一种用于创建内容丰富的动态网站、Web应用程序和XML Web服务的新编程模型。同以往的编程模型相比,这种新编程模型提供了基于组件的架构与开发范例6。ASP.Net提供了下面一些超越以前WEB技术的新特性7:(1)优良性能:ASP.Net在服务器上运行的是经过编译的CLR代码。同以前的技术相比,ASP.Net能充分利用Binding(绑定),及时编译,本地优化,缓冲服务来提高程序的性能。(2)大量工具箱支持:在Visual Studio的开发环境中,ASP.Net具有丰富的工具箱和设计器。如所见即所得的编辑方式,支持拖放的服务器控件,以及动态的配置管理
14、,此外还有许多第三方控件。(3)强大功能和良好机动性:因为ASP.Net是建立在CLR基础上的,所以整个平台的功能与适用性更加适合网络应用程序的开发。ASP.Net可以使用很多种程序语言来编写。此外,CLR的协同工作能力保证以前开发的基于COM的程序,在移植到ASP.Net后,依然可以正常使用。(4)崭新配置管理方式:ASP.Net是一种基于文本格式,等级式的配置系统。一个ASP.Net应用程序只需将必要的程序拷贝到服务器上就可以使用了。对于正在运行中的己编译的代码,也同样可以对其配置进行更改,而不需要重启服务器。(5)可移植性与良好适用性:当ASP.Net的一条线程出现异常情况后,一个新的进
15、程会在它的地方重新建立,继续担负原进程所处理的任务,这就使应用程序能不中断地处理客户的请求。(6)超强扩展性:ASP.Net崭新的结构体系允许开发者开发自己的插件,且ASP.Net下任何一个组件都能够被用户自己开发的组件扩展或替代。1.2 SQL Server 2008简介1.2.1 SQL Server 2008概述本系统选择SQL Server 2008(Standard Query Language,SQL 结构化查询语言)作为数据管理系统。SQL Server 2008是有Microsoft 开发和推广的关系数据库管理系统(DBMS),是一个全面的数据库平台,使用集成的商业智能 (BI
16、)工具,提供了企业级的数据管理。SQL Server 2008 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序8。 1.2.2 SQL Server 2008的优势SQL Server 2008具有很高的性能、处理能力,在企业级支持、商业智能应用、管理开发效率等方面有较强的能力。它提供的集成的数据管理和分析平台,可以帮助组织更可靠的管理来自关键业务的信息、更有效的运行复杂的商业应用;而通过其中集成的报告和数据分析工具,企业可从信息中获得更出色的商业表现力和洞察力。相对于以前的版本,SQL Server 2008拥有以下的重要新
17、特性:(1)支持XML数据类型、XQuery查询;(2)CLR编写数据库对象;(3)UDT:SQL Server 2008里面支持自定义数据类型;(4)Service Broker:提供了一个足够稳定可靠而又高效的异步消息排队队列;(5)ADO.Net 2.0;(6)T-SQL增强:除了一些功能更强的SQL函数,还增加了包括支持异常处理等一些新的内容;(7)数据库镜像(Mirroring):一个针对企业关键应用非常关注可用性而设计的热备方案,可以大大提高SQL Server的高可用性,能在数据库发生故障几秒钟内切换负载到备用系统上;(8)全文索引增强;(9)管理、监控、开发工具的集成和增强;(
18、10)BI的增强和存储引擎的改进。1.3 系统体系结构本网上订餐系统采用了B/S架构的设计体系,B/S结构相对于传统的C/S结构,这种结构使得数据只有结果集合在浏览器中显示,数据的处理在服务器进行,用户不用安装客户端,而且由于通过服务器端统一管理数据,大大简化了WEB应用的开发难度;易于保证数据的一致性9。B/S模式的三层分层模型:第一层表示层。数据表示层为用户接口部分,是用户与系统之间交互信息的界面。它的主要功能是检查用户输入的数据,显示系统输出的数据。它的任务是由Web浏览器向网络上某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需文件资料传送给客户端,客户
19、机接受传来的文件资料并把它显示在Web浏览器上。第二层事务逻辑层。事务逻辑层也称功能层,是应用的主体,位于Web服务器端,它包括应用中全部的业务处理程序。除了输入输出在表示层,数据库在数据层以外,全部的统计、汇总、分析、打印功能存放在功能层。它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。第三层数据库层。数据库层包括数据库管理系统和数据库,数据库管理系统负责管理其数据库,为应用程序提供支持,位于数据库服务器端。任务是接受Web服务器对数据库操作
20、的请求,实现对数据库查询、修改、更新等功能,把运行结果提交给Web服务器。2 系统分析与设计订餐系统无论是在应用的深度还是广度上都是一个逐步发展的过程。开发一个局部系统时要充分考虑到局部系统和整个目标系统之前的相容性和完整性,以利于今后整个系统的建立。从订单处理流程上总体把握系统的设计,在具体的设计实现上围绕三个方面进行展开,即用户、管理者、系统维护者。2.1可行性分析随着经济的快速发展,B2C电子商务越来越受到人们的关注10。订餐类网站,已如雨后春笋般的出现在了个大城市。特别是在公司,企业内部,团体订餐已经成为趋势。同时,随着全国人民的物质、精神和文化生活的高度提高,人们已经不再仅仅停留在吃
21、饱的程度,而是不但要吃饱,还要吃好,并且越来越挑刺,正因为如此网上订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的菜种,品尝不同风格和不同种类的菜品,网上订餐业务在中国有着极大的发展空间和良好的发展前景。当代大学生与白领工作人士作为社会中的重要群体,他们对饮食的要求都在不断提高,饮食在他们生活中起着重要作用。因此,面向大学生与都市白领人士的网上订餐系统的设计有着良好的现实意义。综上分析,决定利用ASP.Net和SQL Server 设计网上订餐系统。ASP.Net可以创建与运用动态、交互的WEB服务器应用程序。SQL Server 2008是一个杰出的
22、数据库平台,具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等11。2.2 系统设计目标在需求分析的基础上,提出了如下的系统设计目标:1系统安全性系统应控制不同用户的使用权限,用户不能越权操作。系统应该确保数据的安全性。同时,用户要求系统具有高度的可靠性,数据的准确性,系统的可恢复性。2可维护性客户会在系统使用过程中不断对系统提出新要求,扩展系统功能,这就要求系统的可升级性必须良好,以满足客户长期实用的要求,并且在用户有新要求的时候可以快速扩展功能。3用户操作系统设计应该人性化,操作简单方便,达到人机友好的目的。4运行速度系统响应时间是衡量系统性能好坏的重要参考。系统要
23、求响应时间短,更新处理迅速,数据转换与传送时间短,后台服务器响应迅速等等。由于系统使用者的特殊性,系统必须高效地响应并且在安全的前提下高效的响应。5界面用户界面应该做到清晰简单一目了然,易于操作。2.3 系统功能分析2.3.1 系统功能实现本系统主要是实现网上浏览菜单、订餐、产生订单等功能的系统。需要实现菜品信息的动态提示、购物车管理、客户信息注册、登录管理、订单处理、信息反馈等模块。需要完成的主要任务如下: 当客户进入网上订餐时,应该在主页面中分类显示最新的菜品信息,以供客户选择所需菜品,同时提供按菜品名称,快速查询所需菜品信息的功能。当客户选择预定某个菜品时,应该能够将对应菜品信息,如:价
24、格、数量记录到对应的购物车中,此时客户可以选择选择其他菜品或是查看自己的购物车,最后,在购物车中填写相应的送餐信息,提交订餐订单后,自动清除以生成订单的购物车中的信息。餐厅服务人员根据订单信息,查看详细订单明细并根据实际情况处理订餐。分析网上订餐系统,制订整个系统框架如下:网上订餐系统后台前台留言信息管理用户信息管理公告信息管理菜单信息管理友情链接管理订单管理在线留言我的订单我的购物车网站公告菜单展示首页图2.1系统整体框架图2.3.2 系统需求分析用于需求建模的方法有很多种,最常用的包括数据流图(DFD)、实体关系图(ERD)和UML三种方式。UML(统一建模语言)是一种定义良好、易于表达、
25、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程12。本系统使用UML中的用例图、活动图、状态图来对需求建模。用例图通过描述“系统”和“活动者”之间的交互活动来描述系统的行为。通过分解系统目标,用例图描述活动者为了实现这些目标而执行的所有步骤。此方法最主要的优点,在于它是用户导向的,用户可以根据自己所对应的用例来不断细化自己的需求。此外,使用用例还可以方便地得到系统功能的测试用例。1.角色分析 分析的第一步是定义用例,以描述系统的外部功能需求。用例分析包括阅读和分析需求说明,此时需要与系
26、统的潜在用户进行讨论。根据上述需求,通过分析,网上订餐角色分为两大类:用户和系统管理员。2.用例分析在确认角色的基础上,确认用例。网上订餐系统中的用例有:用户管理、订单管理、登录系统、菜品信息管理等等。本系统的用户用例图如图2.2所示。进行的操作包括订餐服务、信息浏览、订单管理等。图2.2 订餐用户使用例图管理员分为两类:一类是系统管理员用例图如图2.3所示。管理员进行的操作(后台操作)包括用户管理,信息的浏览、添加、删除、修改等等。图2.3 系统管理员使用例图除了用用例图描述系统需求以外,以下用活动图对系统的主要例进行说明,更具体地描述该用例与角色的交互。1.用户登录图2.5 用户登录用户登
27、录实现为本网站注册用户提供身份确认的功能,保证合法用户的应有权益。而且是否登录也将决定用户能否订餐。用户登录的前置条件是在登录前,用户必须完成“注册”。2.订餐服务图2.6 订餐服务在订餐服务用例中,每个用户都有个购物车,用户可以将自己选定的菜品及其数量放入到购物车中,并且随时可以查看自己预定的菜品的数量和总价格。本用例开始前用户必须登录到系统中。如果用例成功,顾客可以浏览自己购物车中的信息并决定是购买还是删除。3查看历史订单:图2.7 查看历史订单注册用户可以查看自己的历史订单,在历史订单中,可以浏览曾经订购过的菜品,对于已经送餐后的菜品,可以进行评分和信息反馈,不能重复评论,某个菜品在这里
28、的评分会影响其在整个网站中的推荐指数。4.订单处理:图2.8 订单处理处理订单的过程是订餐管理人员参与的,当前台有新的订单生成时,会自动在后台的现有订单列表中显示出来,订餐管理人员可以点击查看未处理的订单,根据实际情况进行处理,或者删除不需要的订单记录。3 数据库设计数据库设计一般分为六个阶段。之前已经完成需求分析,现在需要进行概念设计、逻辑设计和物理设计,本章将叙述这三个阶段的设计思路和设计过程。3.1 数据库需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构以及数据处理流程,组成一份详细的数据字典,为具体
29、设计铺垫13。通过系统功能分析,针对网上订餐需求,总结为:1分为一般用户和管理员用户,只有用户身份才能进行前台订餐,只有管理员身份才能进行后台管理;2订单分成单张订单详情和总订单表,一张订单中含有多个订单明细;3每一道菜品都从属于一种类型。4一个用户可以订购多个菜品。5一个用户对应多张订单表。3.2 系统概要设计3.2.1 系统概要设计概述概要设计是将用户的需求分析得到的结果抽象为信息世界的结构,即概念模型。概念结构独立于数据库的逻辑结构,独立于支持数据库的数据库管理系统,它是现实世界到信息世界的中介,反映了实体与实体的联系,便于用各种数据模型进行转换3.2.2 订餐系统E-R图E-R图为实体
30、-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型14。构成E-R图的基本要素是实体型、属性和联系,其表示方法为,实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型,系统E-R图如图3.1所示。图3.1订餐系统E-R图以下是主要数据表的E-R图:图3.2 用户E-R图图3.3 订单条目E-R图图3.4 订单E-R图图3.5 菜单E-R图3.3 逻辑设计3.3.1 逻辑设计概述数据库的逻辑
31、设计是概念模型向逻辑模型的转化,一般步骤是先将概念结构转化为关系模型,然后将转化来的关系模型向特定DBMS支持下的数据模型转换,最后对数据模型进行优化3.3.2 数据表的设计数据库的主要表详细结构如下:表3.1 订单条目表FieldTypeNullKeyCommentIDIntNoYes标识递增订单IDIntNoNo外键,对应于订单中的“订单ID”菜名Nchar(10)NoNo默认值是“待送餐”数量IntNoNo单价FloatYesNo评分IntYesNo默认为“0分”Back订单YesNo顾客订餐的信息反馈表3.2 订单表FieldTypeNullKeyComment订单IDIntNoYes
32、标识递增用户IDIntNoNo外键,对应于用户表中的“用户ID”订单状态Nchar(10)NoNo默认值是“待送餐”送餐地址Nvarchar(50)NoNo备注Nvarchar(MAX)YesNo订餐姓名Nvarchar(50)NoNo订餐时间DatetimeYesNo金额总价FloatYesNo表3.3 菜单表FieldTypeNullKeyCommentcIDIntNoYes标识递增菜名Nvarchar(50)NoNo价格FloatNoNo菜介绍Nvarchar(MAX)YesNoScidIntYesNo菜系id菜图片Nvarchar(MAX)YesNo存储的是图片的路径推荐Nvarcha
33、r(50)YesNo表3.4 菜分类表FieldTypeNullKeyCommentScidIntNoYes标识递增种类Nvarchar(50)NoNo菜系名系列介绍Nvarchar(MAX)YesNo表3.5 用户表FieldTypeNullKeyComment用户IDIntNoYes标识递增uNameNvarchar(50)NoNo登录名uPwdNvarchar(50)NoNo登录密码真实姓名Nchar(10)NoNo性别Nchar(10)NoNo菜系id联系电话Nvarchar(50)YesNo爱好Nvarchar(MAX)YesNo喜欢口味Nvarchar(MAX)YesNoQQNva
34、rchar(50)YesNoemailNvarchar(50)YesNoStateNvarchar(50)NoNoID是否有效,默认值是“未审核”身份证号Nvarchar(50)NoNo表3.6 养生之道表FieldTypeNullKeyComment介绍IDIntNoYes标识递增标题Nvarchar(50)NoNo内容TextYesNo发布时间DatetimeYesNo默认值是当前浏览器的时间ViewCountIntYesNo浏览次数3.4 物理设计l.数据库存储结构数据库的存储结构要综合考虑存取时间、存储空间利用率和维护代价三方面的因素15。根据逻辑设计的结果,将实体映射为表,将关系映射
35、为外键约束,将属性映射为列,主键唯一表示符映射为主键约束,唯一表示符映射为键约束。由于SQL Server 2005的聚簇功能很强,可以使用不同的技术和多种模式存储多维数据集的数据和聚合。2.数据存放位置采用磁盘阵列存放系统的数据,日常数据放在数据库服务器硬盘上,并进行定期备份,备份数据放在磁盘阵列的另外一个硬盘上。为了加快存取速度,将表数存放在一个磁盘上,而索引文件放在另外一个磁盘上。3. 系统配置通常情况下,系统的配置包括:同时使用数据库的用户数;同时打开数据库对象数;使用的缓冲区长度、个数;时间片的大小;数据库的大小;装填因子;锁的数目等;他们对系统的性能有着显著的影响,因此在实际设计时
36、根据需要进行了初步的设计。4 网上订餐系统的实现4.1 功能模块介绍4.1.1 登陆/注册如图4.1是网上订餐系统的首页,图4.1 网站首页在首页中显示了网站中大部分的信息,通过首页可以跳转的网站中其他的页面,进行相关的操作,登陆模块也是在首页中显示出来的。在登陆系统之前需要注册,如图4.2所示,注册的信息由游客填写,提交注册信息后,需要通过后台管理员对注册信息进行审核,给予审批后,才能登陆系统。图4.2用户注册页面网是订餐服务只有登陆以后才能进行,这样确保了订餐服务的有效性,避免预定后,不履行订单的恶意行为。4.1.2 菜单信息浏览在首页中,可以直接浏览到部分的菜单信息,信息包括了:图片,菜
37、名,价格等。在该网页上也可以查看菜品的详细信息,如图4.3所示。另外,在主页上还根据不同的菜系进行分块展示,同时也可以点击每个分块上的“more”字样查看相关的全部信息列表。例如:点击查看“凉拌系列”的显示结果如图4.4所示。图4.3 菜品详细介绍图4.4 “凉拌”系列信息页面在网站的首页中可以根据用户输入的文字对菜名进行模糊搜索,搜索功能使用户在选择自己需要的菜品时更加便捷和高效。图4.5 搜索4.1.3 订餐服务当用户进行订餐时,系统为用户生成了一个虚拟的购物车, 在用户浏览详细的菜单信息时,如图4.6所示,可以选择数量,然后将此菜品放入购物车中,图4.6 订购菜品数量在订餐过程中,用户可
38、以查看自己购物车中选购的菜品和金额,根据自己的需要可以删除购物车中的菜品,还可以选择继续订餐,在查看购物车时填入相关送餐信息,点击“提交订单”,完成了整个订餐流程。图4.7查看购物车4.1.4 用户反馈及评分用户可以点击主页中“我的订单”查看自己当前订单和历史订单,如图4.8所示:图4.8 “我的订单”页面订单中的每一项都可以点击“评分”,如图4.9所示。图4.9 “评分”页面对于已经评分的餐品,不能重复评分;对于还未送达的餐品,需等到管理员处理订单后才能评分。4.1.5 订单处理后台对订单的处理主要是查看和修改订单状态。订单的处理涉及两张数据表:订单表和订单条目表。在查看订单列表时,绑定的数
39、据是订单表中的数据,当查看订单详情时,在网页中传递“订单ID”作为参数来获取对应的详情列表。在管理员处理订单后,订单表的“订单状态” 改为“已处理”。由于订单列表是写在控件UpdatePanel里的,所以在前台用户提交订单成功后,会自动对数据库执行查询,使后台的订单显示列表中会自动在首行显示出新订单,并且订单状态默认为“待送餐”;该页面中的当前时间是通过设置一个时间间隔为1000ms的Timer的控件,在Timer控件的事件中获取当前浏览器的时间,达到动态显现得效果。图4.10 订单列表管理员可以查看订单详情,根据实际情况处理修改订单状态。4.1.6 后台信息管理后台管理员需要登录后才能进入后
40、台管理,后台首页如图4.11所示。图4.11 后台管理首页通过登陆验证,保证了数据的安全性和保密性。管理员对信息的管理是分别针对数据库中的每一张表进行的。在浏览每张表的信息时带有搜索功能,使得工作效率提高。对于每张表的信息可以添加、删除和修改。但留言表中的信息不能修改,只能回复和删除。由于篇幅有限,以下只给出菜单表的管理截图,图4.12是后台管理系统的首页和菜单信息列表,图4.13是具体的某个菜的编辑或添加页面。图4.12 菜单信息列表图4.13 编辑菜单信息4.2 核心功能实现4.2.1 用户自定义控件说明1. listInfo.ascx该控件是用于在首页中显示不同菜系的介绍信息的,在控件中
41、定义了一个Scid属性,在每次引用控件时,通过设置Scid的值来确定控件该显示那个菜系的信息。2. Nav.ascx 该控件作为导航在页面中引用的,控件的样式和超链接都已经设置好,在需要导航的页面直接引用即可。3. PagingBar.ascx该控件是分页显示控件,在控件中定义了三个属性:CurrentPage,表示当前显示的是第几页,默认值是”1”;PageSize,表示一页显示几条数据,默认值为”10”;RecordCount,是显示信息的总条数,一般是从数据库绑定出的数据总条数来设定其值的。4. scoer.ascx该控件用于显示菜单信息中的推荐指数,控件中定义了一个s属性,通过设定s的
42、值,便可以显示出相应的推荐指数。4.2.2 信息显示菜单信息,养生咨询,留言版等信息的显示是通过绑定数据库中相应表单中数据得到的。当查看其中一项的具体信息时,是通过网页间传递的参数确定的,一般情况下,传递的参数是数据表中的主键值,这样使得信息有确定性。在菜单表的显示中,网页间传递的参数是数据库中菜单表的主键cID,先显示之前,通Request.QueryString“cID”获得主键值后,再从数据库中绑定出相信菜名,价格和介绍信息,并在页面中显示出来。养生咨询,留言板等的信息显示也是这个原理。只是绑定数据的控件不同,得到的显示效果不尽相同。4.2.3推荐指数推荐指数是菜单显示信息中的一个是非常
43、重要意义的信息,其在一定程度上说明菜品的受欢迎程度,可以在顾客选购餐品时提供一个参考建议。上面的内容中已经提到推荐指数的现实是通过设置scoer.ascx控件的s属性。s属性的值是根据每个订餐用户用餐后对菜品的评分动态生成和改变的,该信息没有专门存储于数据库中。图4.14是获取s的值的程序流程图图4.14 推荐指数显示4.2.4 分页显示算法由于网页的布局有限,数据库中的大量信息无法再一张网页上全部显示出来,运用分页显示的技术使得信息按照需要分页显示出来,并且显示效果更加清晰。对于分页显示,在上述内容提到了分页控件PagingBar.ascx,在需要显示的页面引用这个控件,就可以进行分页显示。
44、以下是分页显示实现的算法:/设置分页控件(用到变量: 第几页 每页多少条数据 数据条数) int _currentPage; /当前在第几页int _pageSize = 10; /一页显示的记录数=10int RecordCount /数据条数总共的页数= RecordCount/_pageSize取得待显示页码:获取网页中传递的p参数,默认当前显示页,既p=1;用urlParameter保存网页中传递处p以外的其他参数;设置超链接按钮:if当前不是第一页,设置第一页的链接地址与上一页的链接地址if 当前不是最后一页,设置下一页和未页的链接地址4.2.5 购物车购物车模拟了现实生活中购物的情景,在用户进行订餐时,系统会为用户自动生成一个虚拟的购物车。用户可以往购物车里添加菜品,也可以查看购物车,删除其中不需要的菜品。最后在购物车中填写好订单信息,就可以成功的提交订单。1. 将选定的菜品添加到购物车的流程如下:图4.15 购物车的实现2. 查看购物车的实现图4.16 查看购物车3. 删除数据 购物车列表中的每一行数据后都有“删除”按钮,点击后删除相应的一行数据。此时Session“car”的值应该相应的改变,并重新绑定显示。4. 向数据库填充数据 当用户提交订单时