基于vs环境下网上购书系统学位论文Word文档格式.docx
《基于vs环境下网上购书系统学位论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于vs环境下网上购书系统学位论文Word文档格式.docx(30页珍藏版)》请在冰点文库上搜索。
该功能是为了提高网站对用户的吸引力而设定的。
(6)会员评论:
当用户搜索到某产品时,可以看到会员对该产品的评价。
但是,普通用户不能发表评论。
管理员可以删除会员的评价。
1.3相关技术介绍和环境的配置
1998年,微软公司发布了ASP2.0。
ASP1.0和ASP2.0的主要区别是外部组件。
有了ASP2.0,就可以建立ASP应用了。
微软公司接着开发了Windows2000操作系统。
这个Windows版本带上了IIS5.0及ASP3.0。
虽然到目前Windows已经发展到比较高的版本,但是开发领域中依然采用Windows2000Server.Windows2000包括三个不同的版本即Professional、Server和AdvancedServer.按照默认设置安装Windows2000Server,安装时不用做任何改动,就配置好了ASP的运行环境。
ASP可以使用两中脚本语言:
VBScript和Jscript。
所谓的Jscript语言就是微软版本的JavaScript语言。
ASP包括内置对象,最常用的是五大对象、一个集合和一个文件。
五大对象分别是Response、Request、Session、Application和Server,一个集合是Cookies,一个文件是Global.asa.
ASP最常用的内置组件是操作文件的组件和操作广告的组件。
ASP最强大的功能还是使用外置组件,比如使用外置组件实现文件上传,发送E-mail,等等。
通过ADO数据访问接口可以方便地操作各种数据库。
通过ADO访问数据库有三种标准的访问格式。
此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。
其运行要求和逻辑结构分别如下:
(1)客户端:
Windows95/98/2000/XP,InternetExplorer(IE)等。
(2)服务器端:
WindowsNT/Windows2000,InternetInformationServer(IIS)4.0及其以上版本,IE等;
或者Windows98,PersonalWebServer(PWS),IE等。
(3)数据库:
采用access,运行于服务器端。
2.功能实现方向
2.1功能实现要求
网上书店系统分两个部分,第一部分是面向用户的部分,用户可是实现在线注册、登陆、购书、提交订单等操作,都在这一部分完成;
另一部分是书店管理部分,这部分的内容包括:
管理员对图书的添加、删除、查询、图书种类的管理、订单的处理、管理员的管理、注册用户的管理等。
对于网民,能吸引住他们的先决条件是网站的整体构思,所以网站的首页提供了一个简洁明快的界面,分为三个模块:
用户管理模块、图书销售系统模块、在线管理系统,以让浏览者能一目了然的知道,自己想要的内容放在哪里,这些内容可以提供给所有的浏览者,内容包括图书查询,热点图书,新书推荐等,这里可以查看所有所需图书信息。
对于用户界面管理模块,根据系统功能的分析,它具有的功能应该包括网站页面的查看、图书列表的查看、购物车的使用、和用户功能的具体内容等,对于管理员管理界面而言,根据系统功能的分析,它有的功能应该包括:
对用户的管理(注册会员管理、后台用户管理),对图书管理,对订单的管理等功能。
该图书销售系统主要实现会员管理、图书搜索、购物车、订单查询、图书分类列表、推荐图书和会员评论等功能。
(1)会员管理模块
包括会员登录、注册及个人信息修改。
(2)购物车功能模块
如果会员对某图书感兴趣就可以通过该功能将书放入自己的购物车,这与超市中的购物车有同样的功能。
用户也可以在购物车中查看、添加、删除图书。
(3)订单查询功能模块
通过订单查询功能,会员可以查找到自己的所有订单信息。
(4)图书查找功能模块
通过输入要查询的图书名称就可以查询图书的详细信息(可以增加高级查询功能)。
(5)图书分类列表模块
通过分类商品列表,用户可以很方便地在某类商品列表中查看该类所有的商品信息。
(6)推荐图书模块
通过推荐图书模块,用户可以根据图片链接到图书信息页面进行购买。
3.系统设计
3.1系统架构设计
虽然网上书店系统只实现了网上购书的基本功能,业务也并不复杂,系统是以分层的体系架构形成来实现。
图3-1所示为系统的架构图。
在这个系统架构中,最底层为数据层,即数据库,用于储存系统中用到的数据,本系统使用SQLServer2005来存储数据。
数据访问层从业务层接收请求,利用存储过程或者其他方法从数据层获取数据传回业务层或向数据库写入数据。
该层的实现代码全部封装到DataAccess类中,所有对数据库的操作都由它来完成。
业务层位于用户层和数据库之间,起到桥梁的作用,该层的实现代码全部封装到BusinessFacade类中,该层响应用户层的用户请求,检验用户数据库的合法性,将请求发送到数据访问层,并将数据访问层返回的数据传送给用户层,从而把业务逻辑与用户界面分开。
用户层是提供给用户操作的界面,用户可填写数据,发送请求以及查看需要的信息等。
如获取数据时不对数据库进行数据更新,用户层可以不经过业务层而直接访问数据层获取数据;
如果需要对数据库进行更新,可以通过业务层来实现。
用户层
业务层
数据访问层
数据库
图3-1系统架构
3.2系统功能模块划分
从大的方面来说,该系统分为顾客和管理员两大块。
顾客可以访问的页面有首页(商品展示页面)、商品详细信息页面、购物车页面、注册维护个人资料页面、使用帮助和注销等;
管理员使用的页面包括商品类型维护、商品维护、顾客信息维护、订单处理等。
系统功能页面结构图如图3-2所示。
图3-2系统功能结构
如图所示,是在VS2005运行下的效果图3-3
图3-3效果图
3.3系统数据库设计
网上书店商城的主要功能就是让顾客在网上卖到所需要的商品。
系统数据库首先要有商品表,用来存储商品的相关信息。
商品过多的时候不便于选择和查询,为了对商品进行分类管理,还需要一个商品类型表。
顾客登录到网上书店后,系统需要知道所登录顾客的信息,因此需要一个记录顾客信息的顾客表。
顾客如果选择了某商品,确认购买时,就要下订单,因此用订单表来记录顾客所确认的订单。
叮当的纤细信息即顾客具体买了几种商品,以及每种商品的数量等,需要一个订单详细表。
除此之外,从系统维护和安全性的角度看,只有具有管理权限的用户才能进入系统进行维护和管理,因此需要有一个管理人员表记录管理员的信息。
根据以上分析,制定每个表格的结构信息如下。
3.3.1商品类型表
记录商品类型的相关信息,见表3-1:
表3-1商品类型表
3.3.2商品表
记录商品的相关信息,表3-2:
表3-2商品表
3.3.3顾客信息表
记录顾客登陆名、密码等相关信息,如下表3-3表示:
表3-3顾客信息表
3.3.4订单表
记录顾客购物时所下的订单,如表3-4:
表3-4订单表
3.3.5订单详细表
记录顾客所订下订单的详细信息,即订单里包含的商品,如表3-5所示:
表3-5订单详细表
3.3.6管理员信息表
记录网上书店管理员的登陆名和密码,如表3-6:
表3-6管理员信息表
在系统所建立的表之间,存在一定的联系,如图3-4关系组图所表示。
从图中可以看出各自的关联。
图3-4关系组图
4.系统实现
4.1基本类文件的实现
创建存储过程之后,需要实现调用它们的方法。
系统的架构采用多层模型,包括数据访问层和业务处理层。
本系统面向的对象是所有在线的网上用户,目的是让用户了解本系统如何更直接、更方便的去浏览,去实现购物时所必须要做的流程,实现网上书店员购书的整个过程。
4.2后台系统详细设计
4.2.1总体设计
实际采用的系统图如下图4-1所示:
图4-1系统设计图
这里还有非常重要的一点就是网站的后台管理,现在来看看书店的管理所需要的一些操作,它们是:
新建图书类别;
新增供货商;
新书入库;
增加在库书信息;
改变在库书信息;
查询在库书信息;
查询销售情况;
查询顾客情况;
管理员更改。
注意到上面的分析中有两点:
(1)前台(购书者的角度)的活动与后台(书店管理员角度)的活动是相对独立而且也理应是独立的
(2)后台管理本身的各个活动之间是相对独立的。
因此在画系统图时不必将后台活动考虑进去。
并不是一个活动对应一个页面,要使整个系统运行起来还需要一些支持的页面。
事实上,为了使逻辑和便于管理和修改,也为了避免出现各种微小错误,提倡尽量将各个功能分割开来,写成不同的页面,因此在最后完成的系统中还有很多支持页面。
4.2.2后台系统的实现
在网上书店系统中作为系统的设计者,首先面对的客户就是书店的管理者。
购书者的需求实际上是书店需求的一部分-因此帮助他们分析了这部分需求,也是最主要的,但是先决的需求是管理者对书店系统管理的需求。
在做好后台管理子系统后,在这个基础上来做前台系统,由于数据库里已经有了各种实际的资料(图书),会更加直观;
另外,正如所看到的,后台管理的各个活动之间比较独立,因此从较容易的地方入手。
后台系统的实现的流程图4-2如下所示:
图4-2后台流程图
4.2.3建立数据库的连接
这是一开始写代码就要做的事情;
连接数据库。
其流程图4-3如下:
图4-3连接数据流程图
4.2.4后台管理的控制台
虽然在最后的完成步骤中,要加入一小段代码是否已经登录,现在大可不去管它,先实现管理系统的功能实现再说。
它的界面很简单,如图4-4所示:
图4-4后台登陆界面
后台管理的任务基本上都是对数据的维护和处理,包括商品种类维护、商品维护、顾客信息维护、订单处理等。
对每类数据的维护一般都有列表显示、新增、修改、删除等。
为了便于操作,本系统将这4个功能集中在一个页面上,而不是为4个页面单独实现。
页面上方显示的是商品列表,数据比较多的信息允许翻页并提供搜索功能。
在每行数据的最后一列放置一个图片按钮,单击后显示数据的详细信息,此时可以修改该条记录的内容,然后单击“保存”按钮则增加一条记录。
当需要删除某条记录时,先单击图片按钮使该条记录显示在下方,然后单击“删除”按钮即可删除该记录。
页面上的GridView用来显示商品列表,在GridView中增加一个按钮列,单击对应行的按钮将修行记录显示到页面下方的区内。
在GridView属性设置代码,在商品维护页(goodsEdit.aspx)中包含了上传商品图片的FileUpload控件,为了使其能正常使用,需要将UpdatePanel2控件的UpdataMode属性设置为Conditional。
商品维护页面运行效果如图4-5:
图4-5商品维护界面效果图
4.3母版页与系统登陆
在实现具体功能之前,应该考虑网站的整体效果,即页面的布局方式。
网上书店采用的是拐角型布局。
在网页的上方显示标题“网上书店”,标题以下左侧窄栏是登录窗口和销售排行榜,右侧是主要的功能区域,页面下方是版权信息和联系方式等。
在选定布局方式之后,系统采用母版页来统一整个网站中页面的风格,将所有公用栏目放在母版页上实现,其他需要这些栏目的页面都使用此母版页。
这样可以使栏目得到重用,并且也不需要再去设计页面上公用栏目的布局。
整个系统页面布局采用div和CSS结合的方式来控制,其中的table主要用来显示格式化的数据。
4.3.1母版页页面设计
在项目中添加新项,选择为母版页,修改文件名字为“MasterPage.Master”。
在母版页内添加一个ScriptMaster控件,这是一个很重要的步骤。
因为系统中很多页面用到ASP.NETAJAX技术实现局部刷新,直接把该控件添加到母版页中,其他使用母版也的页面不需要在单独添加ScriptManager控件。
利用div和CSS来设计母版页的布局,在母板页上有几个重要的div,分别为标题图片、中间内容和底部信息。
新建一个样式表文件style.css,定义系统中用到的所用样式。
页面中部左侧的登录窗口及其下方的欢迎文字,运行时不会同时显示,而是根据用户是否登录选择显示,该部分的HTML代码如下:
<
tableborder="
0"
cellpadding="
cellspacing="
style="
margin-top:
20px;
width:
90%"
>
<
%if(!
success){%>
tr>
tdstyle="
height:
30px;
80px"
用户名:
/td>
td>
asp:
TextBoxID="
TextBoxUserName"
runat="
server"
Style="
width:
100px;
"
/asp:
TextBox>
/tr>
密码:
TextBoxPassword"
TextMode="
password"
tdalign="
center"
colspan="
2"
30px"
ImageButtonID="
ImageButtonLogin"
CausesValidation="
false"
Height="
19"
ImageUrl="
/images/btn1.gif"
OnClick="
ImageButtonLogin_Click"
Width="
46"
/>
&
nbsp;
a
href="
/pages/regCustomer.aspx?
Tag=0"
imgalt="
注册"
height="
src="
/images/zc.gif"
width="
/a>
ahref="
/pages/FindPwd.aspx"
忘记密码<
%}else{%>
tdcolspan="
text-align:
left"
%=strCustomerID%>
,欢迎您光临!
br/>
我是店小二,我非常感谢您能光临本店,我将以最优质的产品和公道的价格,竭诚为您服务!
最后祝您购物愉快!
%}%>
/table>
在“<
%”与“%>
”之间的是C#代码,使用if语句来控制显示哪段HTML代码,起到如果登录则显示登录信息,没有登录则显示登录窗口的效果。
这段代码用到了“success”变量,该变量是在母板页对应的.cs文件内声明的一个布尔变量,true表示顾客已经登录到购书商城,false表示还没有登录。
具体的母版设计界面如图4-6:
图4-6母版设计图
4.3.2系统登录
在介绍一个功能时我们总是从数据库设计到页面实现,按照从下到上的方式来说明。
在前面的小节中已经给出存储过程和类文件的实现,但是为了介绍一个完整的功能的实现方式,这里依然个给出了涉及系统登录的存储过程和类中方法的实现。
后面在介绍其他功能实现时,不再重复描述底层的实现内容,而只给出页面实现。
在DataAccess中实现对数据库的访问。
CustomerLogin方法是根据指定的用户名和密码去数据库中查找是否存在该顾客,如果存在返回包含顾客信息的DataSet,如果不存在则返回null。
在顾客输入用户名和密码后,单击“登陆”按钮出发事件,然后调用DataAccess类中的CustomerLogin方法去数据库中查找顾客,根据返回结果来判断是否登录成功。
4.3.3销售排行榜
在登录窗口的下方显示了销量最多的5种商品,称为销售排行榜。
类似于系统登录实现先建立存储过程,然后分别实现DataAccess.cs和BusinessFacade.cs中关于获取销售排行的方法,最后通过在母版页中调用BusinessFacade.cs中的方法在页面上显示排行榜信息。
该功能在页面上展示的排行榜信息是在BusinessFacade.cs中用GetPopGoodsList方法来实现的。
该方法代码如下:
publicstaticstringGetPopGoodsList()
{
//调用DataAccess中的GetPopGoods()访问数据库
DataAccessmyData=newDataAccess();
DataSetds=myData.GetPopGoods();
StringBuilderstrBuilder=newStringBuilder();
if(ds==null||ds.Tables[0].Rows.Count==0)
return"
;
//拼写列表HTML字符串
for(inti=0;
i<
ds.Tables[0].Rows.Count;
i++)
DataRowdr=ds.Tables[0].Rows[i];
strBuilder.Append("
tdwidth=\"
22\"
height=\"
>
imgsrc=\"
/images/point.gif\"
width=\"
12\"
13\"
/>
);
strBuilder.AppendFormat("
14