




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广西师范大学本科毕业论文(设计)基于的网上订餐管理系统 宁明中波台:韦明万 目 录 内容摘要III第1章 系统分析11.1背景11.2需求分析11.2.1可行性分析11.2.2功能需求分析21.3开发工具3第2章 总体设计42.1设计目标42.2开发及运行环境42.3系统功能结构42.3.1前台功能模块42.3.2后台功能模块52.4系统业务流程分析52.5 E-R图62.6数据字典92.6.1表结构102.6.2表的关系14第3章 详细设计与实现153.1类库设计153.2前台公共模块193.3前台模块193.3.1母版页193.3.2主页203.3.3套餐明细233.3.4新闻分类253.3.5新闻内容浏览263.3.6搜索结果263.3.7公告栏内容273.3.8用户注册283.3.9提交订单293.3.10用户中心303.4后台模块313.4.1母版页313.4.2主页323.4.3添加新闻323.4.4新增套餐333.4.5添加网站公告343.4.6公告管理353.4.7后台管理员管理363.4.8套餐信息管理373.4.9登录373.4.10订单管理393.4.11更新套餐40第4章 系统测试424.1前台功能测试424.1.1登录424.1.2购物流程424.1.3套餐评论454.1.4关键字搜索474.2后台功能测试474.2.1登录474.2.2后台管理员管理484.2.3订单管理494.2.4添加公告504.2.5套餐管理504.2.6文章管理524.2.7友情链接管理53第5章 总结54参考文献55网上订餐管理系统 【内容摘要】如今人们越来越依赖于网购, 原因很简单。它不仅操作方便且可视化了解套餐信息,轻松在线订购,很好的解决电话订餐忙线等实际问题。网上订餐管理系统基于Web模式设计,使用简单又方便;整个架构基于面向对象程序设计,安全性能高,对便于二次开发和易于数据维护;前台主要实现:套餐浏览、新闻浏览、用户注册及修改个人信息、修改购物车及订单信息、关键字搜索等功能。后台主要实现:新闻及新闻分类添加及修改、会员和商家及管理员账户管理、套餐添加、删除、套餐评论管理、订单的确认等功能;整个系统开发于Visual Studio 2010环境下,语言包括ASP.NET、C#、CSS、JavaScript;数据库为SQL Server 2005,成功运行于XP、Win7等操作系统下的IE、火狐、傲游等浏览器。关键字:订餐;外卖;订单;面向对象;网购 II第1章 系统分析 1.1背景在互联网高速发展的今天,很大一部分人群不再只会单纯的到实体店买套餐,人们的消费观念如今已经发生了很大的变化,网购已经不是怎么稀奇古怪的事情。在网络这个大家庭里面,网购已经成为人们日常生活中的一部分,它渗透各个领域,各个行业的人群。这么一个庞大的用户消费者群体,他们追求的重点是方便,快捷。然而当前餐饮业普遍采用的订餐工作方式是客户通过电话与餐厅联系,由餐厅工作人员通过餐饮企业内部的餐饮管理系统实施订餐工作。从某种意义上来讲,这种工作方式仍没有完全脱离手工式工作,工作效率低。同时,从客户订餐需求角度考虑,客户希望能在订餐前了解更多的有关信息,如餐厅能提供的菜的品种,各种菜的风味,菜的直观图片等,而这些信息仅仅从餐厅工作人员的电话中是不可能有全面的了解的,这无疑会给客户的订餐带来不便,同时也影响了餐厅的工作效益和企业的声誉。正是在这样的环境下,网上订餐管理系统应运而生。由此看来设计出网上订餐管理系统可以方便用户在线订餐、新闻浏览、套餐评论、修改个人信息等; 意义在于把所学的知识应用于实践以及解决电话订餐忙线、送餐地址出错等问题。从整个开发过程中了解网上订餐涉及的整个业务流程和网站的开发流程,最后提高个人的开发经验和技术水平。1.2需求分析类似没有调查就没有发言权,要想让用户轻松在线订餐,其中包括很多的环节,使用到很数据。本阶段主要从可行性和功能需求方面入手,做关于网上订餐管理系统的实际调研,了解简单的软件开发流程,收集相关信息,进行需求分析设计。1.2.1可行性分析开发系统,可行性分析是一个不可缺少的环节,有好的分析对以后系统的开发有很大的帮助作用,免得软件做得出来之后不符合用户的需求。技术可行性:熟练应用网页三剑客及Visual Studio2010开发环境;熟悉网站的开发流程,了解B/S架构,有扎实的理论知识基础,如ASP.NET、C#、HTML、SQL、JavaScript、XML;实习期间参与过公司多个网站开发与维护,有一定的自我学习、分析、解决问题的实践经验,加上平时热爱研究web编程技术,能胜任开发此系统。 经济可行性:一直以来有了技术的不断积累,开发此系统已经不再需要购买相关专业书籍,加上学校有庞大的图书馆,里面的书籍足已参考;整个开发过程个人单独完成,不用支付技术人员相关经费;最后一个学期已经没有课程要去教室上,整个宿舍成了一种良好的工作环境,学习氛围浓厚,因为大家把更多的时间和精力投入到了毕业设计的工作中,因此没有场地经费支出;在整个系统开发过程,除了花时间和精力比较多之外,经济方面还是没有大碍,工作进展顺利。其他方面:开发此系统之前,对网上订餐管理系统相关的信息有实际的调查并收集,擅于发现问题;对相关系统的前后台有目的浏览与操作,深入的分析其中的流程。最后,熟悉类似系统的整个开发流程,以及相关专业术语等。1.2.2功能需求分析通过实际调查,要求本网站具有如下功能:(1) 具有良好的人机交互界面;(2) 具有用户注册,登录,修改个人信息等功能;(3) 较好的系统权限管理;(4) 全面展示系统内的所有套餐,套餐选购生成订单,后台订单的受理等;(5) 套餐分类,分区域显示,方便顾客更便捷的浏览自己想要购买的套餐;(6) 用户可以查看当前交易信息并修改自己订单中套餐的数量;(7) 实现易维护、易操作、可扩充、便于二次开发;(8) 系统运行稳定,安全可靠;1.3开发工具网上订餐管理系统在Visual Studio 2010集成开发环境下开发,在ASP.NET平台下使用C#语言为主体,以SQL Server 2005为后台数据库。以下分别对Visual Studio 2010、ASP.NET、C#和SQL Server2005进行简要介绍。Visual Studio 2010是Visual Studio 2008的升级版,由微软公司开发出来的新一代集成开发环境,支持动态网站设计、窗体设计等多种平台设计的工具。它增强和完善了Visual Studio IDE,改进了Visual Basic和C#语言。其也可以可视化编程,编码预提示、自动缩进等功能,入门简单,对于初级程序员来说很好用,所以普遍受到广大用户的青睐 。ASP.NET语言是基于通用语言编译运行的程序,可以运行在多种平台,适应性强,功能强大。它具有简单性、易学性以及高效可管理性等优点。其还可以快速建立客户端和服务端网站,在网站中引用一般处理程序,嵌入特效等,让页面内容丰富多彩,特别适用于大中型系统开发。SQL Server2005是微软公司的关系数据库管理系统。它具有使用方便,可伸缩性好,与相关软件集成程度高等优点。其可以用SQL语句快速查询到数据库记录、建立视图功能、事务处理等。因此,SQL Server2005受到广大用户的信赖,广泛应用于企业的中小型系统。C#也是微软公司发布的一种面向对象的和运行于Microsoft Dot Net Framework之上的高级程序设计语言。其主要特点是面向对象,类型安全,简单易学,快速开发等。使用 C# 设计的组件可以很容易的转换成 Web 服务,且有强大的微软公司做为技术支撑,使其应用更加广泛。第2章 总体设计2.1设计目标网上订餐管理系统属于小型的数据库管理系统,可以对网站内购物系统进行全面的管理,通过本系统可以达到以下目标:(1) 界面设计友好,信息查询灵活、方便、快捷、准备、数据存储安全可靠。(2) 全面、分类展示网站内所有的套餐。(3) 显示套餐详细信息,方便顾客更好的了解套餐信息。(4) 随时查看购物车信息,订单信息,并可供适当修改数据操作。(5) 对用户输入的数据进行严格的数据检验,尽可能的避免人为错误。(6) 系统最大限度的实现易操作、易维护等性能。(7) 系统运行稳定,安全可靠。2.2开发及运行环境(1) 开发平台:Microsoft Visual Studio 2010(2) 数据库:SQL Server 2005(3) 开发语言:C#、ASP.NET、HTML、CSS、JavaScript、XML(4) 运行环境:Windows2003、Windows XP、Windows7(5) 内存128MB以上2.3系统功能结构网上订餐管理系统主要由前台管理模块和后台管理模块两大部分组成,各个模块同时还包含一些子模块,由这些子模块所实现的功能构成一个完整的系统。2.3.1前台功能模块前台主要用于实现会员用户登录、查看并修改个人信息(密码修改、头像上传、联系电话、QQ等)、浏览套餐、对套餐进行评价、加入购物车、管理购物车、浏览文章、在线搜索关键字等功能;提交订单和查看各种服务条款等功能。2.3.2后台功能模块后台模块主要用于实现后台管理员和商家的合法登录之后,可以对订单进行更新状态、删除订单,新闻的增删改查、套餐的增删改查、管理员和会员的增删改查等诸多功能。前后台功能如图2-1所示。图2-1 网站前、后台功能图2.4系统业务流程分析考虑到网站的安全性,在购物或者维护信息,之前必须先要求用户合法登录。如果用户输入非法账号时,将不予登录,直到输入合法账号为止。合法登录用户可以看到自己人的个人信息,如:购物车是否存套餐、收货地址、账户余额、对套餐的评论、已经成功购买的订单记录等,网上订餐管理系统的业务流程如图2-2所示。图2-2 业务流程图2.5 E-R图E-R图描述现实世界概念结构模型的有效方法,很好的帮助用户进行数据库设计。在本系统借助E-R图简单的描述了会员及系统管理员登录流程及各个实体间的联系,使得整个结构清晰明了。(1) 会员是系统重要组成的部分,如果没有会员,那么整个系统预期实现的网上购买套餐功能将随即消失,同时会员的基本信息对商家来说也是很重要的,其属性有:用户名、手机号码、姓名、账号、密码等信息,具体如图2-3所示。图2-3 网站会员实体图(2) 管理员是整个系统数据维护的管理者,如果没有管理员,前台会无法显示相关信息,因为所有的信息来源于管理员从后台的录入。当然一个系统的后台管理员可以是多个,为便于数据的维护,管理员的用户名、密码、姓名、邮箱等属性非常重要,其实体如图2-4所示。图2-4 管理员实体图(3) 作为一个订餐管理系统,主要的套餐有哪些属性和对属性的描述好坏,都会对用户的购买心里产生一定的影响。想要让会员深入的了解其相关的信息,那就要从它编号、状态、类别、名称,描述信息等属性入手。实体图,如图2-5所示。图2-5 套餐实体图(4) 订单是衔接会员和商家的重要桥梁,会员什么时候的订单,订单从包含哪些套餐,付款了多少,收货人地址等等修信息。从一个订单中我们应该知道套餐和会员的重要信息,如:收货人地址ID、金额订单受理状态等等必要的属性,具体如实体图2-6所示。图2-6 订单实体图(5) 订单总表只是对订单信息的一个总概括,为了实现一个订单可以保存多个套餐,还需要设置订单明细,其实体如图2-7所示。图2-7 订单明细实体图(6) 文章作为系统的辅助信息,其提供给用户关于套餐新闻资讯等,其实体如图2-8所示。图2-8 文章实体图(7) 商家作为订单的受理者,会员在前台所下的订单,必须由商家登录系统的后台确认,订单才会生效。同时商家还可以管理自己的个人信息等属性。其实体如图2-9所示。图2-9商家实体图(8) 实体间的关系如图2-10所示,图中知得一个管理员可以管理多个前台的会员账户;前台登录前台主页把自己要买的套餐加入购物车,然后下订单,最终形成购买订单;管理员还可以对商家信息进行简单的维护,订单的管理等功能。图2-10 实体间的关系图2.6数据字典本系统采用SQL Server 2005作为后台数据库。其安全性高,可伸缩性好,使用也比较简单,总体性能良好等优点;从而提高了系统的可移植性,可扩充性,为以后数据库的升级提供了良好的基础。命名为db_EatNetShop.mdf,根据ER图导出16张表格,其数据字典如表1所述。表1 用途表序号表名用途描述1管理员信息表保存管理员的账号、密码、联系电话、邮箱等管理员ID、用户名、密码、手机号码、邮箱、真实姓名、注册时间2会员基本信息表保存会员的账号、密码、邮编、QQ、头像路径等会员ID、用户名、密码、姓名、性别、头像、邮箱、邮编、QQ、手机号码、地址、注册时间、固话3城市信息表保存城市名称城市ID、城市名称4区域信息表保存城市下的区域名称区域ID、区域名、区域邮编、城市ID5商家信息表保存商家的账号、密码、联系电话、邮箱、营业时间等商家ID、店名、地址、固话、描述、邮编、店标、营业时间、区域ID、密码6套餐类别信息表保存套餐的分类名称类别ID、类别名称7套餐信息表保存套餐的名称、价格、销量、描述、供货状态等套餐ID、单位、套餐名、描述、供货状态、单位、图片、起卖时间、类别ID、商家ID8套餐评价信息表保存会员给套餐评论的标题和内容评论ID、标题、内容、会员ID、时间、套餐ID、商家回复ID9商家回复信息表保存回复会员的内容回复ID、标题、内容、商家ID、回复时间10新闻类别信息表保存新闻的类别名称类别ID、类别名称11新闻信息表保存新闻的标题、内容、作者、点击率、发布时间等文章ID、标题、内容、类别、点击率、作者、发布时间12订单状态信息表保存所有的订单的受理状态状态ID、名称13购物车信息表暂存会员有意向购买套餐的编号、数量等,但还未提交生成订单购物车ID、套餐ID、数量、加入时间、会员ID14订单总表保存用户结算购物车生成的订单信息,包含订单号、金额、运送方式订单ID、下单时间、金额、运送方式、收货人ID、状态、完成时间15订单明细表保存订单详细信息,包含套餐的编号、单价、数量、收货地址编号等自动编号、订单ID、套餐ID、数量16收货通用信息表保存会员所有的收货地址信息,包含有姓名、地址、手机、邮编等收货信息ID、姓名、地址、邮编、手机号码、会员ID2.6.1表结构 整个系统用16张二维表的形式保存各种各样的相关数据。为方便数据库的转移列名全部采用了英文单词的编码,同时在说明一栏附了中文名;为保证数据的安全,对数据类型、小数位、标识、主键、允许空、默认值等根据各个表所存放数据做了不相同格式的规定。这些表的诸多属性构造了一张完整的二维表,结构一目了然,更重要的一点是易于对数据表的维护。表2 tb_AdminInfo 管理员信息表序号列名数据类型长度小数位标识主键允许空默认值说明1AdminIDint40是是否编号2UserNamevarchar500否用户名3PassWordvarchar500否密码4Telvarchar200否手机号码5Emailvarchar500否邮箱6TrueNamevarchar500是真实姓名7RegTimedatetime83否getdate注册时间表3 tb_UserInfo 会员基本信息表序号列名数据类型长度小数位标识主键允许空默认值说明1UserIDint40是是否用户编号2UserNamevarchar500否用户名3PassWordvarchar500否密码4TrueNamevarchar500是真实姓名5Sexsmallint20是0性别(0保密,1男,2女)6Photosvarchar1000是头像7PostCodevarchar100是邮编8Emailvarchar500否邮箱9QQvarchar500是QQ10Telvarchar200是手机号码11Telephonevarchar150是固定电话12Addressvarchar1000是地址13RegTimedatetime83否getdate注册时间表4 tb_CityInfo城市信息表序号列名数据类型长度小数位标识主键允许空默认值说明1CityIDint40是是否城市编号2CityNamevarchar500否城市名称表5 tb_AreaInfo区域信息表 序号列名数据类型长度小数位标识主键允许空默认值说明1AreaIDint40是是否区域编号2AreaNamevarchar500否区/县3AreaPostCodevarchar100是区域邮编4CityIDint40否所属于城市ID表6 tb_BusinessInfo商家信息表 序号列名数据类型长度小数位标识主键允许空默认值说明1BusinessIDint40是是否商家编号2BusinessNamevarchar500否店名3Addressvarchar500是商家地址4Telvarchar200否订餐电话5Describevarchar5000是商家简介6Telephonevarchar150是固定电话7PostCodevarchar100是邮编8Logovarchar1000是店标9StratTimevarchar500是08:00营业时间10EndTimevarchar500是20:0011AreaIDint40否商家所属区域ID12RegTimedatetime83是getdate注册时间表7 tb_GoodsClassInfo套餐类别信息表序号列名数据类型长度小数位标识主键允许空默认值说明1ClassIDint40是是否套餐类别ID2ClassNamevarchar500否类别名称3ClassTimedatetime83否getdate创建时间表8 tb_GoodsInfo套餐信息表序号列名数据类型长度小数位标识主键允许空默认值说明1GoodsIDint40是是否套餐编号2GoodsUnitvarchar500是计量单位3GoodsNamevarchar500否套餐名称4Describevarchar3000是描述5GoodsStatebit10否11可供,0不可供6Pricefloat80是单价7GoodsImagevarchar5000是套餐图片8StartTimedatetime83否getdate起卖时间9BusinessIDint40否所属商家ID10ClassIDint40否套餐类别表9 tb_GoodsBbsInfo套餐评价信息表序号列名数据类型长度小数位标识主键允许空默认值说明1IDint40是是否编号2GoodsIDint40否留言的套餐3UserIDint40否会员ID4Timedatetime83否getdate时间5BbsContentvarchar1000否内容6BbsTitlevarchar500否标题7AnswersIDint40是商家回复ID表10 tb_AnswersGoodsBbsInfo商家回复信息表 序号列名数据类型长度小数位标识主键允许空默认值说明1AnswersIDint40是是否回复编号2AnswersTitlevarchar500否标题3AnswersContentvarchar1000否内容4BusinessIDint40否商家ID5Timedatetime83否getdate回复时间表11 tb_NewsClassInfo新闻类别信息表序号列名数据类型长度小数位标识主键允许空默认值说明1NewsClassIDint40是是否新闻类别编号2NewsClassNamevarchar500否类别名称3CreateTimedatetime83否getdate创建时间表12 tb_NewsInfo新闻信息表序号列名数据类型长度小数位标识主键允许空默认值说明1NewsIDint40是是否新闻编号2NewsTitlevarchar500是新闻标题3NewsClassIDint40否新闻类别4NewsContentvarchar5000否新闻内容5Clickint40是0点击率6AuthorIDint40否作者ID7Timedatetime83否getdate发布时间表13 tb_OrderStateInfo订单全部状态信息表序号列名数据类型长度小数位标识主键允许空默认值说明1StateIDint40是是否状态编号2StateNamevarchar500否状态名称表14 tb_ShopingInfo购物车信息表序号列名数据类型长度小数位标识主键允许空默认值说明1ShoppingCartIDint40是否购物车编号2GoodsIDint40否套餐ID3GoodsNumberint40否0套餐数量4ShoppingTimedatetime83否getdate放入购物车时间5UserIDint40否会员ID表15 tb_OrderInfo订单总表序号列名数据类型长度小数位标识主键允许空默认值说明1IDint40是否自动编号2OrderIDvarchar500是否订单编号3OrderTimedatetime83否getdate下单时间4TotalsMoneyfloat80否总金额5EndTimedatetime83是订单受理完毕时间6ShipTypevarchar500是运输方式7ReceiveIDint40是收货人ID8StateIDint40否订单状态表16 tb_OrderDetailsInfo订单明细表序号列名数据类型长度小数位标识主键允许空默认值说明1IDint40是是否自动编号2GoodsIDint40否套餐ID3OrderIDvarchar500否订单ID4Numbersmallint20否数量5CreateTimedatetime83否getdate创建时间表17 tb_ReceiveInfo收货通用信息表序号列名数据类型长度小数位标识主键允许空默认值说明1ReceiveIDint40是是否收货ID2TrueNamevarchar500否收货人姓名3Addressvarchar500否收货人地址4PostCodevarchar100是邮政编码5Telvarchar200否手机号码6UserIDint40否会员ID表18 主外键表序号主键表外键表关键字1tb_BusinessInfotb_AnswersGoodsBbsInfoBusinessID2tb_AreaInfotb_BusinessInfoAreaID3tb_AdminInfotb_NewsInfoAdminID4tb_CityInfotb_AreaInfoCityID5tb_GoodsClassInfotb_GoodsInfoClassID6tb_GoodsBbsInfotb_AnswersGoodsBbsInfoGoodsBbsID7tb_GoodsInfotb_BbsInfo、tb_ShopingInfoGoodsID8tb_NewsClasstb_NewsInfoNewsClassID9tb_NewsInfotb_NewsBbsInfoNewsID10tb_OrderInfotb_OrderDetailsInfoOrderID11tb_ReceiveInfotb_OrderInfoReceiveID12tb_OrderStateInfotb_OrderInfoStateID13UserInfotb_BbsInfo、tb_NewsBbsInfo、tb_ReceiveInfo、tb_ShopingInfoUserID2.6.2表的关系在网上订餐管理系统中,当套餐类别信息发生改变时,例如某个套餐的类别被删除了,与其相关联的套餐信息就应该被删除,这样才能保证数据的一致性和完整性等,因此在本系统数据库中建立了数据表的关系如图2-11所示。图2-11 数据表的关系第3章 详细设计与实现3.1类库设计繁杂的系统功能丰富多彩,种类杂多。为了便于数据维护及功能扩充和让读者清晰的知道系统的结构,为此设计时把同类的数据存放在一个公共类里,多个不同的功能类构成了不同的类库。系统采用面向对象程序设计,正是很好的体现了功能类的归类存放,各个类库结构如图3-1:图3-1 类库结构图其中,BLL(业务层)主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,它为用户层与数据库层建立一座沟通的桥梁。即前台页面显示所需要读取的数据库信息和与用户交互所录入的数据,如用户打开注册页面填写相应注册信息,点击“注册”按钮之后,后台先定义与之对应的数据类型变量来接收前台控件输入的内容,然后通过调用业务层的函数将数据打包传到DAL(数据层);前台想要显示套餐的信息,就需要通过调用业务层的读取套餐信息的函数,业务再调入数据层,数据层执行相关的SQL语句,从数据库中取出该条目所要显示的数据暂存于Model(实体层),最后将实体层与前台页面的控件绑定数据源,才能实现前台页面信息的正常显示。通常系统开发过程中,经常有些模块所实现的功能相类似,但只是传递的参数不一样而已。这样就可以在Common库中定义一个公共函数,如果有多个公共函数,就可以定义不同的类,最后将这些类统一存放在Common库中。本系统以getString(string Text,int n)函数为例,该函数所实现的功能是获取某个字符串所规定的个数,“Text”为字符串类型变量,代表要截取的内容段,“n”为整型变量,代表要显示字符的个数,若调用为getString(中华人民共和国,int 2),获取的就是“中华”二字。其能放在Common里面的原因是有些在标题显示时调用,有些在头条信息的简要描述里调用,这样根据显示数目的不同,改变两个参数即可实现,从而减少了代码的冗余,提高了编程效率。DALFactory抽象工厂库,其功能是创建数据访问的对象工厂,从本质上采用了抽象工厂的设计模式,来支持多种数据访问。利用了ASP.NET的反射机制,通过网站的web.config配置文件来确定使用哪种数据访问实现以对数据的操作。其允许很多实的工厂类从抽象工厂类继承下来, 实际上成为多个简单面向对象程序的综合,从而推广了简单面向对象程序。它的批量生产和快速映射,提高了执行效率。DBUtility库存放不同数据库及连接、打开、取数据功能类;本系统中DbHelper.cs类存放的是连接及操作Sql数据库的一些经过封装好的公共方法;其读取web.config配置文件里面统一设置好的所要连接的数据库类型,便于数据库的切换,提高系统的可移性和数据库的优化升级或者数据转移。IDAL接口库,这是一组接口类集合,其中包括了每个要公开的数据访问方法,但是未实现该方法的功能。为每个数据库产品单独编写的数据访问层都要实现这组接口所定义的方法,也就是规定了在DAL中编写该方法的所要实现功能的具体步骤所包含的代码。IDAL要达到的目的是:实现业务逻辑(BLL)与数据库访问(DAL)的完全分离。Model实体库, 其用作在 SQL Server或者其他数据库实例上创建的所有数据库的模板,暂时的放在从前台输入或者后台读取得来的数据。在Model里面定义了与数据项所对应的数据类型,和读写权限,与数据库中的数据表一一对应。为了保证数据的安全性,各层的引用关系有:用户层引用业务逻辑层;业务逻辑层引用接口层、实体层、数据层的抽象工厂;接口层引用实体层;实体层本身无引用;数据层的抽象工厂引用接口层,通过读取web.config里面所设置的程序集来加载类的实例,并返回给业务逻辑层使用;数据访问层引用实体层、接口层,通过数据层的抽象工厂反射机制来加载程序集来实现接口层所定义的方法。3.2前台公共模块为了减少数据的冗余,提高模块的可重用性,整个系统设计了一个命名为Common公共的类库,用于存放公共的功能类以实现共同的功能;以cuts(string aa, int bb)和ShowMessage(Page tPage,string msg)两个函数为例。前者主要实现的功能为截取内容的一部分来显示,假设前台标题要求显示8个字符串,而数据库中完整的标题却是12个字符串,此时只需在用到的地方调用此函数,将保存完整标题的变量“aa”和截取个数的变量“bb”的具体的值传入取可轻松实现;后者实现的功能为弹出提示框,显示相关信息提示用户下一步如何操作的交互性。变量“tPage”通常为当前页,用“this”代替,变量“msg”为要显示要给用户看的信息,根据实际情况而定。若在单击事件下提示用户“您已经成功加入购物车!”字样,则在该事件下调用为ShowMessage(this,您已经成功加入购物车!)。两个函数的具体编码如下:public static string cuts(string aa, int bb) if (aa.Length = bb) return aa; else return aa.Substring(0, bb); public static void ShowMessage(Page tPage,string msg) tPage.ClientScript.RegisterStartupScript(tPage.GetType(), alert, alert( + msg + );history.go(-1);); 3.3前台模块3.3.1母版页前台的母版页(MasterPage.master),它很好地实现界面设计的模块化,公共部分的代码只需写一回就可以实现多处通用,优化了很多的代码量。界面布局也统一化,修改时只需在Css或者主题文件中做相应的修改即可实现。使用母版页可以集中处理页的通用功能,如:在母版页面中布局并实现好了页面头尾功能,页面的中间只根据不同的需求另外布局,但是总体布局还是一致的,从而提高了工作效率。图3-2中,页面的最上面部分有简单的前台用户登录功能,若喜欢本网站可以将其直接设置为主页或者添加到本地计算机的收藏夹,关键字搜索信息等。图3-2 前台模板页此页面布局文件为master.css,其定义了母版页的CSS样式。另外CSS相对表格的好处就是布局样式表与页面独立存在。页面内容不变的情况下,只需要修改层叠样式表文件,就可以实现多种不同的排版,让界面符合不同的实际,界面丰富多彩。同时此页面的信息大多都是从数据库中读取出来再绑定到前台页面,其部分代码如下:Master.cs文件的部分绑定数据的方法; /绑定友情链接前10条最新的记录rptLinkBind.DataSource = tb_HyperlinkInfoBll.Gettb_HyperlinkInfo(10); rptLinkBind.DataBind(); /绑定城市列表的前10条最新的记录 rptCityBind.DataSource = tb_CityInfoBll.Gettb_CityInfo(); rptCityBind.DataBind(); CityShow.js文件的实现鼠标滑上时显示切换城市模块,鼠标移出进隐藏切换城市列表模块; function ShowDiv() /显示切换城市一栏层 document.getElementById(listCity).style.display = block; function HiddenDiv() /隐藏切换城市一栏层 document.getElementById(listCity).style.display = none; 3.3.2主页主页是(index.aspx)整个系统的亮点,内容呈现丰富多彩又显得有层次感,其布局符合人性化设计。最上头部分有用户登录、注册、忘记密码、加入收藏、设为主页、关键搜索、菜单栏、按分类及区域和排序等功能;中间主要是显示套餐的简单信息,点击其进入到套餐的详细描述页面。中间的右边部分是网站的公告、资讯文章等;主页的底部先是友情链接,接着在其下方显示会员服务条款,版权信息等。简洁明了的页面,却呈现出丰富的信息来,激发用户的兴趣,使用户过目难忘。效果图如下图3-3 图3-3前台主页主页布局文件为Index.css,其页面布局文件在原有母版Master.css的基础上增加了中间显示的CSS样式,两个样式结合就可以呈现出丰富多彩的主页来。页面为了实现数据在不同的表绑定到前台的时候又需要保持数据的一致性,为此使用Repeater数据绑定控件的ItemCommand事件。 / 用记可以用鼠标简单的点击按所大区域查找套餐,就可列出套餐信息,简单方便,代码为: protected void AreaID_OnItemCommand(object sender, RepeaterCommandEventArgs e) / 绑定事件里面获取行的 GetGoodsID if (e.CommandName = GetAreaID)/分类各个按钮 rptAreaBind.DataBind();/重新绑定区域的数据 int id = Convert.ToInt32(e.CommandArgument); rptGoodsBind.DataSource = tb_GoodsInfoBll.tb_GoodsInfoByAreaID(id);/根据用户点击的区域按钮获取所有的本区域的套餐 rptGoodsBind.DataBind(); / 当点击按销量降序时,列出套餐的信息,销量可以从高到低,低到高排列 protected void rptGoodsBindBySalesNumber_Click(object sender, EventArgs e) rptGoodsBind.DataSource = tb_GoodsInfoBll.tb_GoodsInfo(SalesNumber, desc);/套餐信息按销量降序 rptGoodsBind.DataBind(); 3.3.3套餐明细套餐明细页面(GoodsDetails.aspx)为用户购买前必须进入的页面。它给了用户一个清晰界面,深入的了解了此套餐的“描述”、“原料”、“做法”和商家的一些信息等且只有此页面才有将想要购买的套餐加入购物车功能。另外,如果用户已经购买过此套餐,或者对此套餐有疑问时还可以在评论区
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西南宁上林县白圩镇中心卫生院招聘村卫生室公共卫生服务协助人员5人考前自测高频考点模拟试题及答案详解(网校专用)
- 班组安全培训教育
- 2025内蒙古工业大学招聘20名博士学位事业编制工作人员模拟试卷及答案详解(考点梳理)
- 2025北京大兴区妇幼保健院临时辅助用工招录岗位12人模拟试卷及答案详解(有一套)
- 2025广东省高校毕业生三支一扶计划招募3000人模拟试卷附答案详解(典型题)
- 2025年春季中国邮政储蓄银行合肥市分行校园招聘模拟试卷(含答案详解)
- 2025辽宁沈阳地铁集团有限公司所属公司拟聘用人员考前自测高频考点模拟试题有完整答案详解
- 非晶硅薄膜制备-洞察与解读
- 2025湖南省中南林业科技大学第一批招聘21人模拟试卷(含答案详解)
- 2025年四川天府银行社会招聘模拟试卷及完整答案详解一套
- 2025年产业政策调整下人工智能在医疗行业的应用可行性研究报告
- 建筑装修工程质量监督管理制度
- 不锈钢栏杆施工全流程方案
- 2025住院医师规范化培训院内师资培训考核测试题附答案
- 《一定要争气》(第2课时) 课件 小学语文部编版三年级上册
- 血透室护士手卫生
- USP232-233标准文本及中英文对照
- 部编版八上语文名著《红岩》问答题精练(教师版)
- 2025-2026学年人教精通版四年级英语上册(全册)教学设计(附目录)
- 2025年秋期人教版2年级上册数学核心素养教案(校园小导游)(教学反思有内容+二次备课版)
- 全科医学健康教育
评论
0/150
提交评论