基于bs结构的食谱系统_第1页
基于bs结构的食谱系统_第2页
基于bs结构的食谱系统_第3页
基于bs结构的食谱系统_第4页
基于bs结构的食谱系统_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于B/S结构的食谱管理系统-基于ASP.NET 基于B/S架构的食谱管理系统基于ASP.NET技术Based on B / S Architectural of the Recipe Management System摘要【摘要】本题目是以实际需求为基础,旨在为现代人生活提供高品质的,自主的,个性化的餐饮服务。利用ASP.NET技术以SQL Sever 2008作为数据库,使用Visual C#作为编程语言,为大型餐厅,食堂以及个人制作的一个B/S结构食谱管理系统。本统主要包括三大模块:用户模块,食谱模块和饮食小百科模块。主要实现了订餐,餐单原料清单,饮食小百科,用户管理这四个个主题功能。希望本系统能够为用户提供新鲜、健康、具有个性化、信息化的餐饮服务体验。【关键字】:ASP.NET 3.5 食谱管理 数据库 Visual C#Abstract【Abstract】 This subject is based on actual demand; modern life is designed to provide high-quality, independent, personalized catering services. The use of ASP.NET technology to SQL Sever 2008 as a database, using Visual C # as a programming language for large-scale restaurants, canteens, as well as individuals making a B / S structure of a recipe management system. The Commission includes three modules: the user module, modules, and diet recipes Encyclopedia module. The main achievement of the reservation, menu list of raw materials, catering small encyclopedia, the user management functions of these four themes. Hope that this system can provide fresh, health, and informatization catering service experience.【Key words】: ASP.NET 3.5 Recipe management Database Visual C#目录1 绪论11.1课题背景与意义:11.2 课题内容11.3 本文结构22 课题涉及的关键技术32.1 ASP.NET3.5 WEB开发技术32.2 Visual C#高级编程语言42.3 Microsoft SQL Server 2008数据库开发42.4 IIS 互联网信息服务53 食谱管理系统分析与设计63.1系统的总体分析63.2系统的模块化功能描述及建模分析93.2.1 前台功能模块93.2.2 用户注册和登录功能模块103.2.3 配餐功能模块103.2.4 菜肴信息及分类功能模块113.2.5饮食小百科模块123.2.6管理员后台功能模块134 食谱系统的实现154.1 系统开发及运行环境154.2 系统的模块实现164.2.1 ASPNET3WebMenu应用程序组成164.2.2 系统通用类和模块的实现184.2.3 应用程序前台的实现194.2.4菜肴管理的实现254.2.5用户及管理员模块实现294.2.6点餐功能模块324.2.7饮食小百科354.3 数据库设计与实现364.3.1数据库表设计与实现364.3.2数据库关系设计405 网站功能测试及发布445.1测试平台介绍445.2 测试流程及分析445.3 网站发布45结论49致谢50参考文献511 绪论1.1 课题背景与意义:随着因特网的日益普及,网络渐渐成为人们生活中必不可少的组成部分,人们通过网络来获取自己需要的信息咨询,也越来越习惯通过互联网足不出户的买到自己想要的东西,吃穿住行用无所不及。我所做的这个基于ASP.NET技术的B/S结构食谱管理系统,也正是顺应了网络化这个大趋势,将人们如何吃通过网络来解决。随着人们生活水平的提高,科学饮食越来越被重视,大家不再只是要求吃饱吃好,更希望能够吃的健康吃的科学,而我们的网站正是旨在为大众提供一个,可靠,科学而又内容丰富的,能够满足各个人群的不同要求,智能化,人性化的提供餐饮信息服务的饮食指南网站。从技术层面上来讲,基于B/S结构是系统更利于用户的使用以及推广,并且更加便于更新数据,可以通过与用户交流第一时间得到反馈并第一时间修改,而这是传统的单机软件所不能比拟的,而ASP.NET技术是一项被无数次实践验证的成功,稳定而且高效的技术,大到My space、当当,小到个人空间,越来越多的个人和企业使用着这项技术。1.2 课题内容本课题的目的是基于ASP.NET 3.5技术开发实现一个B/S结构的食谱管理系统,该系统主要实现食谱管理,菜肴原料分析清单,饮食小百科以及用户管理等功能,具有较强的实用性,借助本系统,可以为使用者提供详尽的菜肴原料分析方便用户自己动手,通过饮食小百科提供给用户参考食谱,使用户能够更加科学营养的配餐,并为点餐服务提供了一定的支持。本系统最终可以通过IIS发布到网络上,用户可以通过互联网来访问和使用。1.3 本文结构第一章,主要介绍课题背景以其开发意义;第二章,主要介绍本课题所使用到的主要技术(包括ASP.NET 3.5 SQL 、Sever 2008、C#、IIS V5.1);第三章,对本系统进行了功能分析,并根据分析进行了设计;第四章,详细描述了各个模块的实现;第五章,主要对系统的测试与发布进行了介绍。2 课题涉及的关键技术本章主要介绍本课题所使用的主要技术,包括了微软的ASP.NET Web开发技术,Visual C# 高级编程语言,SQL Sever 数据管理系统,以及IIS Web服务器。2.1 ASP.NET3.5 WEB开发技术ASP.NET 是一个由微软开发的统一的 Web 开发模型,它包括只使用尽可能少的代码生成企业级 Web 应用程序所必需的各种服务。ASP.NET 作为 .NET Framework 的一部分提供。在编写 ASP.NET 应用程序的代码时,可以访问 .NET Framework 中的类。并可以使用与公共语言运行库 (CLR) 兼容的任何语言来编写应用程序的代码,这些语言包括 Microsoft Visual Basic、C#、JScript .NET 和 J#。使用这些语言,可以开发利用公共语言运行库、类型安全、继承等方面的优点的 ASP.NET 应用程序。ASP.NET 技术主要包括:页和控件框架、ASP.NET 编译器、安全基础结构、状态管理功能、应用程序配置、运行状况监视和性能功能、调试支持、XML Web services 框架、可扩展的宿主环境和应用程序生命周期管理、可扩展的设计器环境。随着ASP.NET技术的发展,微软继ASP.NET 2.0之后,又推出了ASP.NET 3.5技术。ASP.NET 3.5基于.NET Framework 3.5,并集成了ASP.NET AJAX技术,增加了数据库实体类、LINQ、List View等新技术和新控件,使得开发人员更加容易的开发ASP.NET Web应用程序。主要使用的开发工具是微软自家的Visual Web Developer,它原来作为Microsoft Visual Studio的一个组成部分,之后被独立了出来。本次开发使用了最新的Visual Web Developer 2008 Express Edition。2.2 Visual C#高级编程语言C#是一种编程语言,它是为生成在 .NET Framework 上运行的各种应用程序而设计的。C# 简单、功能强大、类型安全,而且是面向对象的。C# 凭借在许多方面的创新,在保持 C 语言风格的表现力和雅致特征的同时,实现了应用程序的快速开发。Visual C# 是 Microsoft 对 C# 语言的实现。Visual Studio 通过功能齐全的代码编辑器、编译器、项目模板、设计器、代码向导、功能强大而易用的调试器以及其他工具,实现了对 Visual C# 的支持。通过 .NET Framework 类库,可以访问许多操作系统服务和其他有用的精心设计的类,这些类可显著加快开发周期。2.3 Microsoft SQL Server 2008数据库开发SQL Server 是在 Microsoft 的数据平台上发布的数据管理系统,它能够随时随地管理任何数据,可以将结构化、半结构化和非结构化文档的数据(例如图像和音乐)直接存储到数据库中。SQL Server提供一系列丰富的集成服务,可以对数据进行查询、搜索、同步、报告和分析之类的操作。数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,并且可以控制数据而不用管数据存储在哪里。SQL Server允许在使用 Microsoft .NET 和 Visual Studio 开发的自定义应用程序中使用数据,在面向服务的架构(SOA)和通过 Microsoft BizTalk Server 进行的业务流程中使用数据。信息工作人员可以通过他们日常使用的工具直接访问数据。SQL Server提供一个可信的、高效率智能数据平台,可以满足开发和管理的所有数据需求。本次开发使用的是最新版本的SQL Server 2008。2.4 IIS 互联网信息服务 IIS是Internet Information Server的缩写,它是微软公司主推的服务器,用户能够利用Windows建立强大,灵活而安全的Internet和Intranet站点。IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议),FTP(File Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持C#,VBScript,JScript开发软件以及Java,它也支持CGI和Win CGI,以及ISAPI扩展和过滤器。由于本次课题实在Windows XP上完成所以使用系统自带的IIS V5.1。3 食谱管理系统分析与设计本章主要对食谱管理系统从总体到各个细部模块的设计进行了分析和介绍,通过结构化的分析,通过对各个模块进行详尽的分析,为以后的实践打下了良好的理论基础3.1系统的总体分析根据本次课题的任务书的要求以及对课题的基本分析不难看出,食谱管理系统的主要功能首先是菜肴的管理,能够对菜肴进行查询,添加、修改、删除和分类,将这些功能分成两部分来看,一个是菜肴信息后台操作模块,这部分另一个部分是提供给浏览者的前台能够查看菜肴的基本情况。然后是为用户提供配餐功能,能对用户选取的菜肴的做法提供一些参考,并能对菜肴的所需原来进行统计方便用户自己动手。本系统还应该提供一个参考性的饮食小百科,为用户健康科学配餐提供参考。其次还应该有一个用户管理模块,本系统是作成一个网站,必须保证数据库中数据的正确性和安全性,因此必须要划分管理员和一般用户的权限。最后是提供给用户的注册以及登录系统,方便对用户的信息以及配餐进行记录。根据以上的分析,食谱管理系统应该包含以下六个部分:前台功能模块,用户注册和登录模块,配餐功能模块,菜肴分类功能模块,管理员和用户后台页面功能模块,饮食小百科模块。系统功能关系图如下图(图3-1)。图3-2介绍了介绍食谱管理系统 前台功能模块用户注册登录模块 点餐功能模块 菜肴及分类模块管理员用户及后台饮食小百科模块图3-1 系统总体模块设计图食谱系统首页系统登录管理员用户游客添加食谱修改食谱删除食谱用户管理配餐健康助手健康小百科浏览食谱评论菜品图3-2 系统用户界定设计及总体流程设计图了系统的基本用户权限界定以及总体的流程图的设计。3.2系统的模块化功能描述及建模分析本节在系统总体分析的基础上,对每个模块的具体功能进行了介绍,并对各个模块进行了详细的分析。3.2.1 前台功能模块食谱管理系统的前台主要实现前台浏览的功能,主要包括了网站首页、按名称浏览菜肴的页面、按关注度浏览菜肴的页面、按点单次数浏览菜肴的页面、按价格浏览菜肴的页面、按上架时间浏览菜肴的页面以及一个点击菜肴后提供菜肴详细信息并可以评论菜肴的页面。根据以上对前台功能模块的深入分析和描述,其结构图如下(图3-3)前台浏览模块按名称浏览按点击量浏览按分类浏览查看菜肴详情按名称浏览按名称浏览评论菜肴图3-3 前台浏览模块结构设计图3.2.2 用户注册和登录功能模块用户注册和登录功能模块主要是为用户提供功能,主要包括了注册新用户、登录系统,维护个人信息、查看个人信息、修改个人密码和退出系统这6个功能,由于管理员的身份比较特殊,他要能够管理用户信息以及食谱信息,所以管理员的部分单独出来作为一个部分。根据以上对用户系统的分析,本模块的总体结构图如下图(图3-4)用户系统查看个人信息登录系统管理个人信息修改个人密码退出系统注册新用户图3-4 用户注册和登录模块总体结构设计图3.2.3 配餐功能模块配餐模块主要实现查看和管理配餐单的功能,主要包括了添加菜肴到配餐单、查看配餐单中的菜肴、修改配餐单中的菜肴,还有为网上点餐提供的订单功能。其功能结构图如下图所示(图3-5)配餐模块添加菜肴查看餐单管理餐单图3-5 配餐功能模块结构设计图3.2.4 菜肴信息及分类功能模块菜肴信息及分类管理功能模块主要实现菜肴管理的功能,主要包括了添加菜肴、删除菜肴、修改菜肴信息、管理菜肴品论等对菜肴信息的操作,还有对菜肴分类的管理,包括了添加菜肴分类、修改菜肴分类、删除菜肴分类等功能根据以上分析,可以对本功能模块的结构和流程有如下图(图3-6)的设计:菜肴信息及分类管理信息管 理分类管理添加菜肴删除菜肴修改菜肴管理品论添加菜肴分类修改菜肴分类删除菜肴分类图3-6 菜肴信息及分类功能模块结构设计图3.2.5饮食小百科模块饮食小百科模块主要功能在于为用户配餐时提供一些的参考信息,根据对参考程序的研究(卓越食谱软件V4.0)这些信息主要包括了一下几个方面:参考食谱、营养知识、特定人群膳食指南、饮食冲突。其中饮食冲突包括了食物与食物之间的冲突、食物与药物之间的冲突、药物与营养素之间的冲突。根据以上分析,对本功能模块可以有如下图(图3-7)的设计:饮食小百科参考食谱饮食冲突营养知识膳食指南食物-食物食物-药物药物-营养素图3-7 饮食小百科功能模块结构设计图3.2.6管理员后台功能模块管理员后台功能页面主要为管理员提供后台导航功能,主要功能应该包括两部分,一是对食谱的管理,一是对用户的管理。对食谱的管理主要包括了添加、修改和删除操作;对用户的管理主要包括了管理用户的餐单以及管理用户信息的功能。通过以上分析,本功能模块可以有如下图(图3-8)的设计:管理员模块食谱管理用户管理添加条目修改条目删除条目管理用户信息管理用户餐单历史图3-8 管理员后台功能模块结构设计图4 食谱系统的实现 第三章对系统的功能需求进行了详尽的分析,并根据分析提出了设计想法。本章将根据上一章分析的分析和设计思路进行系统的具体化实现,并实现过程进行详细介绍。4.1 系统开发及运行环境 系统的开发和运行需要相应的软硬件环境支持,这是系统实现的基础。本次系统实现的硬件环境是Acer Aspire 5562笔记本,具体硬件环境如下图(图4-1)所示。图4-1 系统实现硬件环境本次系统的实现使用的是ASP.NET 3.5 Web开发技术,软件环境主要使用Microsoft Visual Web Developer 2008 Express Edition作为网站开发工具,用控件以及HTML语言建立前台页面,主要用到的控件包括了:标准控件组中的Button、DropDownList、Image、Panel、Table、TextBox等控件;数据控件组中的GridView、ListView等控件;验证控件组中的RequiredFieldValidator、RegularExpressionValidator等控件;AJAX Extensions控件组中的ScriptManager和UpdatePanel控件。另外还需要添加一个AJAX控件组(控件库文件名称AjaxControlToolkit.dll,通过互联网即可下载到):Ajax Control Toolkit控件组,主要使用其中的TextBoxWatermarkExtender、ValidatorCalloutExtender、UpdatePanelAnimationExtender等控件。数据库方面,使用Microsoft SQL Server 2008作为数据库开发工具,建立了一个由12张表以及数据库关系图等组成的完整的,符合第三范式的数据库。网站发布方面,使用了Windows XP自带的IIS(Internet 信息服务器)作为网站的发布平台。因Windows XP只能使用V5.1版本的IIS,但对于本次设计实现没有什么影响。4.2 系统的模块实现 本系统基于B/S结构开发,使用ASPNET技术,并最终以网站形式发布。系统命名为ASPNET3WebMenu,主要由6个模块组成,下面将详细介绍系统的组成以及各个模块的详细设计和实现过程。4.2.1 ASPNET3WebMenu应用程序组成在Visual Web Developer 2008的【解决方案资源管理器】面板中查看ASPNET3WebMenu应用程序,如下图(图4-2)。应用程序组成的各个元素的具体说明如下。图4-2 ASPNET3WebMenu应用程序组成图Admin目录包含了管理员和后台用户的页面,如AdminIndex.aspx、UserIndex.aspx等。App_Code目录包含了应用程序的组件和数据库实体类等文件,如Order.cs、Category.cs、Foodlist.cs、ASPNET3WebMenuSystem.cs、ASPNET3WebDB.dbml等文件。App_Themes目录包含了应用程序的主题和样式文件,如web.css、web.skin等。Attachment目录包含了用户通过应用程序上传的文件或图片。Category目录包含了应用程序与食谱分类相关的网页,比如添加新分类的AddCategory.aspx、修改分类信息的UpdateCategory.aspx等。Bin目录中包含了ASPNET3WebMenu应用程序引入的程序集,比如前面提到的AJAX插件库文件AjaxControlToolkit.dll就在其中。Food目录包含了应用程序中与应用程序中与菜肴相关的一些网页,如添加菜肴的AddFood.aspx页面、修改菜肴信息的UpdateFood.aspx页面等。Knowledge目录包含了饮食小百科的所有内容,包括了介绍饮食冲突知识的Conflict.aspx页面、参考食谱的ExpMenu.aspx页面等。Order目录包含了餐单和订餐单有关的页面,比如查看个人餐单的ViewFoodlist.aspx页面、查看个人订餐单的MyOrder.aspx页面等。Portal目录包含了与ASPNET3WebMenu应用程序前台有关的页面,例如首页Index.aspx、菜肴查看页ShowFood.aspx等。User目录包含了与用户操作有关的页面,比如登录页面Login.aspx、注册页面Register.aspx等。web.config文件为ASPNET3WebMenu应用程序的配置文件,它配置了数据库连接字符串、引用的程序集等熟悉。Header.aspx和HeaderBlank.aspx为系统的头模块。4.2.2 系统通用类和模块的实现ASPNETWebMenu应用程序的系统通用类和模块设计,包括了系统常量设计、系统通用工具的设计、系统头模块的设计、系统外观设计、Web.config配置文件设计、数据库实体类设计。1.系统常量设计:系统常量是定义在ASPNET3WebMenu上,包括了ASPNET3WEBDBCONNECTSTRING和ALLOWPICTRUEXENSIONLIST。其中,第一个常量从Web.config文件中获取连接数据库的连接字符串;第二个常量定义了本应用程序允许上传图片的后缀名。2.系统通用工具设计:本程序在ASPNET3MenuSystem.cs文件中定义了如下4个通用方法。(1)public static void ListSelectItemByValue(ListControl list,string value),根据Value参数的值和ListItem的Value属性的值设置ListCotrol控件的选择项。(2)public static void ListSelectItemByText(ListControl list,string value),根据Value参数的值和ListItem的Text属性的值设置ListCotrol控件的选择项。(3)public static string CreateDateTimeString(),根据当前时间,创建一个由时间的值组成的字符串。(4)public static void ShowAjaxDialog(Button button,string message),在ASP AJAX Web窗口中,弹出信息框,其中的消息为message参数的值。3系统外观设计:系统外观设计通过web.css和web.skin两个文件来完成。前者定义了Body、Table等样式,后者定义了各个控件的皮肤。4.Web.config配置文件设计:在本文件中主要配置连接字符串和程序引用集,连接字符串配置部分如下所示: 程序引用集配置如下5.数据库实体类设计:ASPNET3WebMenu应用程序为数据库创建了一个名为“ASPNET3WebDB.dbml”的实体类,并将ASPNET3WebMenuDB数据库中的12张表添加到该实体类中。另外还添加存储过程作为实体类中方法方便执行数据操作。其实体类设计代码文件ASPNET3WebDB.designer.cs在建立好ASPNET3WebDB.dbml文件后会自动生成,为了调用需要将它命名为ASPNET3DBBOK作为一个实体类使用。4.2.3 应用程序前台的实现食谱管理系统的前台功能模块主要实现ASPNETWebMenu应用程序前台功能,主要包括应用程序首页Index.aspx、查看菜肴详情页面ShowFood.aspx、菜肴详情页面ShowFood.aspx、按关注度浏览菜肴的页面页面ViewFoodByCount.aspx、按上架时间浏览菜肴的页面ViewFoodByTime.aspx、按售价浏览菜肴的页面ViewFoodByPrice.aspx、按销售量浏览菜肴的页面ViewFoodBySale.aspx。这些页面都保存在ASPNET3WebMenu应用程序的“Portal”目录下(图4-3)。图4-3 Portal目录详情下面主要介绍应用程序首页Index.aspx和菜肴详情页面ShowFood.aspx的实现过程。1应用程序首页Index.aspx实现:应用程序首页Index.aspx它的隐藏代码文件为Index.aspx.cs。它显示菜肴分类以及菜肴的信息,并为用户提供便捷的操作界面。(1)界面设计实现:在Index.aspx页面上创建一个GridView控件和一个TabContainer控件,它们的ID属性的值分别为gvCategory和tcFood。其中gvCategory控件一列表形式显示菜肴分类信息。tcFood是一个ASP.NET AJAX控件,它包括了5个TabPanel控件,分别放置按名称浏览菜肴页面ViewFoodByCount.aspx等5个页面,实现了不同排序方式的浏览功能。Index.aspx页面界面设计如下图(图4-4)图4-4 Index.aspx界面效果图(2)页面后台Index.aspx页面后台功能是由Page_load(object sender,EventArgs e)事件实现。该事件显示菜肴分类及其菜肴信息,具体步骤如下。从地址栏中获取菜肴分类的ID值,并保存在categoryID变量中。如果categoryID变量的值小于或等于-1,则把该变量的值设置为1。调用BindPageData()函数显示当前菜肴分类(由categoryID变量指定)的子分类。运行ASPNET3WebMenu应用程序之后,查看Index.aspx页面,初始化界面如图4-5所示图4-5 应用程序首页2. 菜肴详情页面ShowFood.aspx实现:查看菜肴详情由ShowFood.aspx页面来实现,它的隐藏代码文件为ShowFood.aspx.cs。它显示菜肴的详细信息,如菜肴名称、才要价格、菜肴发布日期、菜肴做法用料,以及菜肴的各个属性和关于本菜肴的评论。同时,该页面还有添加菜肴到餐单的功能。(1) 菜肴详情部分界面设计实现:ShowFood.aspx页面上共包含了一个Image控件、一个Lade控件、一个GridView控件和一个Button控件,它们的ID属性的值分别为imgFood、lbPrice、gvAttibute和btnBuy。其中imgFood控件显示菜肴的图片;lbPrice控件显示菜肴价格;gvAttibute控件以列表形式显示菜肴的属性。btnBuy控件可以将菜肴添加进餐单。ShowFood.aspx页面的设计界面图如图4-6所示图4-6 ShowFood.aspx菜肴信息页面的设计界面图(2)菜肴评论部分界面设计:在ShowFood.aspx页面上创建四个TextBox控件和一个Button控件,他们的ID属性的值分别为tbTitle、tbIP、tbEmail、tbBody和btnCommit。四个TextBox控件分别显示评论用户的信息以及评论内容,btnCommit按钮实现发表评论功能。其设计如图4-7所示图4-7 菜肴评论部分设计(3)后台实现:ShowFood.aspx页面的后台功能由其Page_Load(object sender,Event e)事件实现。该事件显示某一菜肴的详细信息,具体步骤如下。 从地址栏获取菜肴的ID值,并保存在foodID变量中。调用BindPageData(int foodID)函数显示菜肴得详细信息,包括菜肴的名称、图片等信息,以及显示菜肴的属性。调用UpdateviewCount(int foodID)函数更新当前菜肴的被查看数。单击ShowFood.aspx页面中的【加入餐单】按钮将触发Click事件:btnBuy_Click(object sender,EventArgs e).该事件实现添加菜肴到餐单上的功能,具体实现步骤如下:创建Fodlist类的实例food,并设置该实例的属性值。调用Foodlist类的AddFoodToFoodlist(FoodlistFood food)方法将food实例添加到购物车中。点击ShowFood.aspx页面中的【提交】按钮触发Click事件:btnCommit_Click(object sender,EventArgs e)可以完成评论提交过程,其具体实现步骤如下。创建操作ASPNET3WebMenuDB数据库中的ASPNET3WebDBContext类的实例db。创建ASPNET3DBBook.FoodComment类的实例pc,并设置该实例的属性值,如评论的名称等。将pc实例添加到db实例的FoodComment表中,并调用SubmitChange()方法提交到数据库,即实现评论功能运行ASPNET3WebMenu应用程序之后,查看Index.aspx页面,初始化界面如图4-8所示图4-8 ShowFood.aspx页面显示名称为“糖醋鱿鱼”的菜肴的详细情况4.2.4菜肴管理的实现 菜肴管理包括了两个功能模块,一个是菜肴分类的管理模块,一个是菜肴的管理模块,主要实现应用程序中菜肴及其分类的管理。其中,菜肴分类的管理模块包含了添加修改和删除菜肴分类的功能;菜肴管理包括了添加修改和删除菜肴信息的功能。其主要页面包含在两个目录中:Category目录,包含了分类管理;Food目录,包含了菜肴管理。两个目录的具体内容如下图所示(图4-9,图4-10)。 图4-9 Category目录详情 图4-10 Food目录详情 其中,Category目录中AddCategory.aspx页面用来添加新分类,Category.aspx页面用来查看分类树并管理分类树,UpdateCategory.aspx页面用来修改现有分类。Food目录中FoodAttribute.ascx页面用来生成菜肴属性用户控件,AddFood.aspx页面用来添加心的菜肴信息,Food.aspx页面提供查看和管理菜肴的平台,FoodComment.aspx页面用来管理菜肴评论,FoodPicture.aspx页面用来管理菜肴图片,UpdateFood.aspx页面用来修改菜肴信息。 下面以菜肴分类树管理页面Category.aspx和分类修改页面UpdateFood.aspx为例介绍实现过程。其他菜肴及其分类管理页面的设计与实现与之类似,因此不再赘述。1. Category.aspx页面:本页面以表格形式显示分类的分类名称、分类介绍、上级分类等信息,同时还提供了删除、上移和下移分类的功能。它的隐藏代码文件为Category.aspx.cs。(1)界面设计:在Category.aspx页面上创建一个GridView控件和一个Button控件,他们的ID属性值分别为gvCategory和btnAdd。其中gvCategory控件以表格形式显示分类信息。btnAdd控件实现重定向到添加菜肴分类的AddCategory.aspx页面的功能。Category.aspx页面的设计界面如图4-11图4-11 Category.aspx页面设计界面图(2)后台实现:Category.aspx页面初始化功能由其Page_Load(object sender,EventArgs e)事件实现该事件调用BindPageData()函数显示ASP3WebMenuD数据库的Category表中的菜肴分类信息。其中,获得菜肴分类的信息由ASPNET3WebDBDataContext类的Pr_GetCategorys()方法调用Pr_GetCategorys存储过程来实现。(3)事件设计:gvCategory控件还定义了其RowDataBound事件:gvCategory_RowDataBound(object sender,GridViewRowEventArgs e)。该事件为gvCategory控件的每行中的imgDelete控件添加一个提示【删除确认】的对话框。同时gvCategory控件还定义了其RowCommand事件:gvCategory_RowCommand (object sender,GridViewCommandEventArgs e)。当用户点击控件中的四个img控件时,都会触发事件,具体步骤如下。用户点击imgUpdate控件,即e.CommandName属性的值等于“update”时,该事件实现重定向到修改菜肴分类UpdateCategory.aspx页面,并把被修改的分类ID值传递到该页面。用户点击imgUp、imgDown、imgDelete控件,即e.CommandName属性的值等于“up”“down”或“delete”时,该事件实现调整分类顺序或者删除分类的功能。运行ASPNET2WebMenu应用程序之后,查看Category.aspx页面,初始界面如图4-12所示。此时该页面显示ASPNET3WebMenuDB数据库的Category表中的菜肴分类的信息。图4-12 Category.aspx页面显示菜肴分类信息2. UpdateFood.aspx页面UpdateFood.aspx页面提供了修改菜肴名称,菜肴简介等信息,实现了菜肴修改的功能。他的隐藏代码文件为UpdateFood.aspx.cs。(1) 界面设计:在UpdateFood.aspx页面上创建两个TextBox控件、一个FoodAttribute控件和一个Button控件,他们的ID属性值分别为tbName、ucFoodAttribute、tbRemark、btnCommit。其中,tbName和tbRemark控件分别提供用户输入菜肴名称和菜肴介绍。ucFoodAttribute用户控件为用户提供设置菜肴各项值。btnCommit控件实现修改菜肴的功能。UpdateFood.aspx页面的设计界面如图4-13所示。图4-13 UpdateFood.aspx页面设计图(2)页面后台:UpdateFood.aspx页面初始化功能由Page_Load(object sender,EventArgs e)事件实现。该事件首先从地址栏中获取被修改菜肴的ID值,并保存在foodID参数中。然后调用BinPageData(int foodID)函数显示被修改菜肴的基本信息。UpdateFood.aspx页面中的【提交】按钮将触发其Click事件:btnCommit_Click(object sender,EventArgs e)。该事件调用UpdateFood()函数实现修改菜肴功能,具体步骤如下。创建ASPNET3WebMenuDB数据库的ASPNET3WebDBDataContext类的实例db。从db实例中的Food表中获取被改动菜肴重新设置被修改菜肴的菜肴名称和简介。调用SubmitChange()方法执行修改操作,并提交到数据库,即实现修改菜肴的功能。从db实例的FoodAttribute表中获取被修改的菜肴的各项属性。并重新设置调用SubmitChange()方法执行修改操作,并提交数据库,即实现修改菜肴各个属性的值的功能。运行ASPNETWebMenu应用程序后,查看UpdateFood.aspx页面,该页显示修改“糖醋鱿鱼”的信息的情况如图4-14所示图4-14 UpdateFood.aspx页面显示修改“糖醋鱿鱼”的信息4.2.5用户及管理员模块实现本模块主要实现用户用户注册以及对个人信息和个人餐单的管理,还有管理员对菜肴管理,对分类的管理,以及对订单的处理。这些功能主要由包含在User目录和Admin目录得页面进行实现的,这两个目录的详细情况如图4-15和图4-16所示。图4-15 User目录 图4-16 Admin目录其中,User目录中,Login.aspx页面是登陆页面,Logoff.aspx页面是登出页面,Register.aspx页面是注册页面,ShowUserInfo.aspx页面是查看用户信息页面,UpdateUserInfo.aspx页面是修改用户信息页面,UpdateUserPwd.aspx页面是修改用户密码页面。Admin目录中,AdminIndex.aspx是管理员后台操作页面,AdminMenu.aspx是管理员后台操作菜单页面,UserIndex.aspx页面是用户后台操作页面,UserMenu.aspx用户后台操作目录。下面以Register.aspx注册页面为例详细描述本功能模块设计和实现过程。1. 界面设计在Register.aspx页面上创建8个TextBox控件和1个Button控件,他们的ID属性分别为tbName、tbPassword、tbPasswordStr、tbEmail、tbTelephone、tbAddress、tbPostcode、tbRemark和btnCommit。8个TextBox控件分别供用户输入名称、密码、确认密码、地址等信息,btnCommit实现注册新用户功能。Register.aspx界面设计如图4-17所示。图4-17 Register.aspx界面设计图2. 后台实现在Register.aspx页面中点击【提交】按钮,将触发Click事件:btnCommit_Click(object sender,EventArgs e)。该事件实现注册新用户的功能,具体步骤如下。创建操作ASPNET3WebDB数据库的ASPNET3WebDBDataContext类的实力db。创建ASPNET3DBBOOK.User类的实例user,并设置该实例的属性值,如登录名等。将user实例添加到db实例的User表中,并调用SubmitChanges()方法提交到数据库,即实现添加新用户的功能。重定向到首页。运行ASPNET3WebMenu应用程序后,查看Register.aspx页面,初始界面如图4-18所示:图4-18 用户注册页面初始化管理员后台管理目录如图4-19所示图4-19 管理员后台界面4.2.6点餐功能模块点餐模块主要实现设计,查看和管理餐单的功能,主要包括了餐单的组建设计、查看餐单中的菜肴、修改餐单中菜肴以及实现网上订餐。这些功能主要通过Order目录下的页面以及系统通用模块Foodlist.aspx.cs实现,Order目录包含文件如图4-20所示。图4-20 Order目录文件明细其中,AddOrder.aspx是创建订单页面,MyOrder.aspx是查看个人订单页面,OrderManage.aspx是订单管理页面,ViewFoodlist.aspx是查看餐单页面,ViewOrder.aspx是查看订单页面。下面以ViewFoodlist.aspx为例详细介绍本功能模块的设计和实现过程。1. 界面设计在ViewFoodlist.aspx页面上创建一个GridView控件和3个Button控件,他们的ID属性的值分别为gvFood、btnStore、btnAdd和btnCommit。其中gvFood控件以列表形式显示餐单中菜肴。btnStore控件保存用户修改餐单中的菜肴的数量。btnAdd控件重定向到首页。btnCommit控件修改餐单中的菜肴,并重定向到创建并提交订单的AddOrder.aspx页面。ViewFoodlist.aspx界面设计图如图4-21。图4-21 餐单界面设置 2. 后台设计 页面初始化通过Page_Load(object sender,EventArgs e)事件实现。在ViewFoodlist.aspx页面中,gvFood控件还定义了gvFood_RowCommand(object

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论