《基于三层架构的网上书店系统的分析和设计--大学毕业(论文)设计.doc》由会员分享,可在线阅读,更多相关《基于三层架构的网上书店系统的分析和设计--大学毕业(论文)设计.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科毕业论文基于三层架构的网上书店系统的分析与设计目 录摘 要12ABSTRACT13第1章 绪 论141.1 课题来源141.2 课题背景141.3 国内外在该方向的研究现状及分析151.4 使用的开发平台15第2章 系统总体分析和设计162.1 系统功能概述162.2 需求分析162.3可行性分析162.3.1技术可行性172.3.2经济可行性172.3.3实践可行性172.4概要设计172.4.1系统功能模块图182.4.2系统功能模块简介182.5数据库设计与实现192.5.1数据库关系图202.5.2数据库物理设计20第3章 详细设计233.1公共类描述233.1.1图书信息类(bo
2、ok类)233.1.2用户信息类(user类)243.2数据访问层253.2.1数据库操作类(DataBase类)253.2.2数据库连接类(SqlConClass类)263.3业务逻辑层描述273.3.1图书操作类(BookOperator)273.3.2订单信息类(Order)293.4表现层的实现303.4.1用户信息管理303.4.2书籍展示模块313.4.3购物车模块323.4.4图书管理模块33结 论35参考文献36河南大学本科毕业生学士学位论文摘 要随着电子商务的发展,网上购物服务逐渐深入到人们的生活中。网上书店作为其中重要的一部分,给人们的生活带来了很多方便。通过网上书店,人们
3、可以足不出户选购自己所需的图书。该系统主要由前台信息发布网站和后台管理维护系统两部分构成;在支持整个网站的运作功能的基础上,能帮助用户对前台网站进行日常管理和信息发布;本网站主要实现对书籍的展示和销售,对整个网站的设计进行了总体描述,详细介绍了网上书店系统从需求分析、概要设计、数据库设计到详细设计的完成过程。系统用ASP.NET技术实现动态网上书店的开发,充分突出了ASP.NET技术的优越性。另外,使用ASP.NET三层架构技术使得本系统结构灵活、性能更佳。在此,着重论述了购物车和购书管理电子商务的具体功能实现、关键技术的使用。关键词 电子商务;网上书店;购物车第页第1章 绪 论21世纪是电子
4、商务的世纪。电子商务通过大幅度地降低交易成本、增加贸易机会、简化交易流程、提高服务质量、改善物流电子商务网站等,极大地推动了全球经济的发展,并在很大程序上影响着我们的生活方式和工作方式。众所周知,电子商务的存在与发展都离不开商务网络的支持,各种商务网站不仅已经成为现代企业的门户,同时也是企业从事电子商务活动必不可少的基础平台。通过网上图书销售系统的设计来理解如何把一个实体企业网络化,搭建B2C模式的网上交易平台,纵观现在的两大主流开发体系:Microsoft的.NET体系和SUN公司的以J2EE(Java2 Enterprise Edition)为核心的SUN-ONE(SUN Open Net
5、work Environment)战略,无论在哪套体系中,基于WEB的技术都在被逐步渐加强,.NET推出了以ASP.NET为代表的WEB开发技术,而在SUN的Java体系中,则有JSP/Servlet/JavaBean与之相抗衡。本次毕业设计主要采用ASP.NET技术,并综合相关的C#技术,数据库技术和软件工程的理论来完成,其次本系统采用ASP.NET三层架构开发模式增加了系统的灵活性,使得系统可移植性大大提高。1.1 课题背景电子商务活动利用前所未有的方式将顾客、销售商、供货商联系在一起,能将有价值的信息迅速传递给需要的人们。网络技术的成熟,促进了信息技术更加广泛的应用,因此建立网上销售网站
6、充分运用网络技术可满足企业不断增长的供货能力、客户和市场竞争的需求。电子商务网站的建立可使企业在商场上不断取得发展的重要技术,并赢得越来越多的客户。企业也可利用网站和网络触角伸展到客户的家中,架起一座桥梁,以先进的技术渗透于订货、生产、交货、支付甚至售后服务等整个商务过程。网络技术引发企业市场的营销战略发生了极深刻的变化,传统的营销理念走向终结,新型的整合营销得到企业和社会的广泛关注。网络技术增强了企业管理功能,为企业管理提供全新的工具和手段,已成为企业管理的有效手段。它的功能已不单是提高管理效率,而且还将通过管理的科学化和民主化,全面增强企业管理功能。网络经济是用现代信息技术和网络技术,依靠
7、形成的互联网网络进行商务活动,它集金融电子化、管理信息化、办公室自动化于一体。1.2 国内外在该方向的研究现状及分析随着互联网的普及以及近几年来电子商务的发展,网上购物逐渐深入到人们的生活中,给人们带来了极大的便利。其中网上图书销售系统是电子商务时代的一个典型代表。目前我国运作和销售较好的大型网上书店,如当当、卓越和旌旗席殊、中国书网网上书店等,这些网上书店各具优势。在国外,影响较大的网上书店有美国的亚马逊,德国的贝塔斯曼和英国的因特网书店。英国书业界人士分析,未来英国的网上售书将成为图书销售渠道中的主要渠道。1.3 使用的开发平台系统开发环境:Windows XP、Microsoft vis
8、ual studio 2008,数据库:Microsoft SQL Server 2005开发语言:C#语言、ASP.NET、HTML、CSSWEB服务器: Tomcat5.0.19及以上版本客户端运行环境:IE4及以上版本表1-1 开发平台开发环境Windows XP、Microsoft visual studio 2008,数据库Microsoft SQL Server 2005语言C#语言、ASP.NET、HTML、CSSWEB服务器Tomcat5.0.19及以上版本客户端运行环境IE4及以上版本第2章 系统总体分析和设计本章从系统的需求分析、可行性研究、总体设计、数据库的设计等方面入手
9、对整个系统进行了总体的分析说明。经过一系列的分析整合验证了该学校网站系统实现的可行性。同时也给出了整个系统的功能模块图及各模块功能介绍,使得整个系统的整体功能清晰明了。2.1 系统功能概述本学校网站主要包括前台客户端系统和后台书店管理系统两部分,主要是实现网上选课、评估、信息录入等功能的系统。一个典型的网网站包括:新闻信息、介绍信息、留言信息、联系方式、教师介绍等模块,本系统也不例外。2.2 需求分析(1)售前服务本网上书店比传统书店提供更为丰富的书籍信息,如提供图书的出版信息,可供书目、新书信息、新书介绍等。互联网具有交互性的特点,为网上书店有效地整合各种信息创造了条件。首先,网上书店要整合
10、读者与出版社和书店之间的信息,网上书店要让厂家能够及时了解读者的需求动态,也要让读者及时了解出版社的出版动态,而且这种信息交流要做到双向互动;其次,网上书店要整合读者与图书的信息,可以把读者的购书经历及读后感在网上登出,为其他读者提供购书参考。(2)售后服务网上书店只是提供了一个虚拟的卖场,配送服务是网上书店营销服务的一个重要内容。当前网上书店的送货方式主要有三种:一是通过邮局寄送,二是雇用配送公司发送,三是自己组织人员配送。但是由于人力物力有限,在此本系统对售后服务这个模块不做过多设想。2.3可行性分析根据初步调查的结果,可以做出系统开发可行与否的结论。任何一个工程的立项都需要进行项目的可行
11、性研究,这是保证系统能够正常开发的必要环节。信息系统开发项目是一项复杂的高科技系统工程,可行性研究也是必不可少的。2.3.1技术可行性技术方面:在大学期间比较重视C#的学习,并有良好的编程经验。对.NET平台及其开发环境Visual Studio 2008相当熟悉,对Web开发相关经验虽有所欠缺但没有太大问题。有一定的软件工程发面的知识,为项目开发各个环节打下了良好的基础。硬件方面:目前一般各企业的办公室和家庭中,基本都已经配备了性能较好的计算机,完全可以满足所需要的配置。2.3.2经济可行性根据实际情况,对于开发一套培训机构网站,从开发费用,运行费用,都在企业和个人的承受范围之内。然而,使用
12、该培训机构网站所带来的帮助是显而易见的,主要表现在:提高了家长对学校的了解、提高了教师繁琐的工作效率、提高了学生对于各方的信息了解程度。如:学生对教师的评估等。2.3.3实践可行性新形势、新时代的发展要求,使教学机构的发展朝着规范化,标准化,潮流化方向发展。大多数教学机构具备了建立自己的网站平台的基础,学校网站的开发适应了社会发展的趋势,符合教育机构的要求,也加快了科学教育发展的步伐,实践证明,本网站符合实际需要,具有实践价值,具有较强的生命力。2.4概要设计该系统包括前台展示和后台管理两方面的内容,因此概要设计包括前台、后台系统功能模块图以及系统功能功能模块简介。从整体上更加清晰、明了的介绍
13、了本网上书店系统的模块划分和实现功能。2.5数据库设计与实现 相应的数据库主要包括users(用户信息表)、Article(文章信息表)、Prcture(图片信息表)、Download(下载信息表)、Channel(频道信息管理表)、Announcement(公告信息栏表)6张数据库表。该部分主要从数据库关系图、数据库各表实现两方便来描述数据库的设计和实现。2.5.1数据库关系图本小节主要介绍数据库的关系设计。userID是Users实体的主键,ArticleID是Article实体的主键,PhotovoteID是PhotovoteI实体的主键,DownloadID是Download实体的主键
14、,ChannelID是Channel实体的主键,AnnouncementID是Announcement实体的主键。详细的关系图如下图2-5-1所示:(1)user表(2) Article表 (3) Prcture表(4) Download表(5)Channel表(6)Announcement表图2-3 数据库关系图 2.5.2数据库物理设计本小节主要讲述数据的物理模型设计,并给出users、Article、Prcture、Download、Channel、Announcement实体的物理模型。实体的物理模式如下所示:(1) 用户信息表(users表)Users表用来存储会员注册信息,包括用户
15、名、注册邮箱、接收邮件地址等信息。在表2-1中列出了该表中所包含的字段描述信息。表2-1 users表的数据结构字段名称字段类型字段长度是否主键字段描述UserIDInt5YES用户编码,自增长GroupIDvarchar50NO用户组ID,0为未指定UserNamevarchar20NO用户名PassWordvarchar50NO密码QuestiontextNO密码问题Answernchar6NO问题答案Emailnchar11NO电子信箱RealNamenchar11NO真实姓名Sexnchar11NO性别birthdaynchar11NO出生日期IDCardnchar11NO身份证号码O
16、fficeTelnchar11NO办公电话HomeTelnchar11NO家庭电话Mobilenchar11NO手机号码(2) 文章信息表(Article表)Article表是用来保存网站的基本信息有关的数据表,是维护管理文章数据的依据,包括文章的标题,所属类型等详细的信息,在表2-2中列出了该表中所包含的字段描述信息。表2-2 Article表的数据结构字段名称字段类型字段长度是否主键字段描述ArticleIDInt5Yes编码,自增长Tidvarchar50NO对应的栏目IDKeyWordsvarchar20NO文章关键字TitleTypeint50NOTitlevarchar50NO简短
17、标题FullTitlevarchar50NO完整标题IntrotextNO文章导读ShowCommentvarchar50NO是否显示评论链接TitleFontColorvarchar50NO加颜色TitleFontTypevarchar50NOArticleContentvarchar50NO文章内容Authorvarchar50NO作者Originvarchar50NO来源Hitsvarchar50NO点击数(3) 图片信息表(Prcture表) Prcture表是用来保存网站的基本信息有关的数据表,是维护管理图片数据的依据,包括图片的标题,所属类型等详细的信息,在表2-3中列出了该表中所
18、包含的字段描述信息。表2-3 Prcture表的数据结构字段名称字段类型字段长度是否主键字段描述Idint50YES编码,自增ChannelIDvarchar50NOClassIDvarchar50NOInfoIDvarchar50NOVoteTimevarchar50NOUserNamevarchar50NOUserIPvarchar50NOVoteOptionsvarchar50NO(4) 下载信息表(Download表)Download表用来记录客户下载的信息,对上传下载文件的存储信息。在表2-4中列出了该表中所包含的字段描述信息。表2-4 Download表的数据结构字段名称字段类型字
19、段长度是否主键字段描述DownloadIDint5YES自增Tidvarchar50NO目录分类KeyWordsvarchar50NO关键字Titlevarchar50NO下载名称DownSizevarchar50NO大小DownUrlsvarchar50NO下载地址AddDatedatetime50NO更新时间(5) 频道信息管理表(Channel表)Channel表做为对文章,图片,下载等内容进行详细的分类功能,同时能添加模块,实现功能的扩展。在表2-5中列出了该表中所包含的字段描述信息。表2-5 Channel表的数据结构字段名称字段类型字段长度是否主键字段描述ChannelIDint5
20、YES自增ChannelNamevarchar50NO模型名称ModelEnamevarchar50NO存放目录InfoVerificTFvarchar50NO会员审核功能第22页(6) 公告信息栏表(Announcement表)Announcement表做为对学校的最新信息的发布浏览存放功能。在表2-6中列出了该表中所包含的字段描述信息。表2-6 Announcement表的数据结构字段名称字段类型字段长度是否主键字段描述AnnouncementIDint5YES自增Titlevarchar50NOAddDatevarchar50NOAuthorvarchar50NO第3章 详细设计本章主要
21、介绍了网站的详细设计和关键部分具体实现,按照三层架构分层次具体讲述系统各功能模块的实现,并给出必要的参考图片和参考代码。就各个功能模块的操作步骤、功能、注意事项做详细介绍。3.1公共类描述公共类主要用来为各层提供数据支持。该网站包括文章信息类(Article类)、用户信息类(user类)、图片信息类(Prcture类)、公告信息类(Announcement类)、下载信息类(Download类)。该部分以文章信息类(Article类)、用户信息类(user类)为例讲述公共类的实现。3.1.1文章信息类(Article类)该类主要实现对文章信息表各字段的封装及规定个字段属性访问器的访问权限。图3-
22、1为该类的类结构图,表3-1列出了文章信息类的对象属性。图3-1 Article类的类结构图字段名称字段类型字段长度ArticleIDInt5Tidvarchar50KeyWordsvarchar20TitleTypeint50Titlevarchar50FullTitlevarchar50IntrotextShowCommentvarchar50TitleFontColorvarchar50TitleFontTypevarchar50ArticleContentvarchar50表3-1 Article类的对象属性3.1.2用户信息类(user类)该类主要实现对客户信息表各字段的封装及规定各
23、字段属性访问器的访问权限。图3-2为该类的类结构图,表3-2列出了用户信息类的对象属性。图3-2 user类的类结构图表3-2 user类的对象属性属性字段类型描述userNameString用户名userPwdstring用户密码userEmailint邮箱userPostcodedouble用户邮编userphoneint用户手机号码userAddressstring用户地址userCitystring用户所在城市3.2数据访问层该层主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务
24、。主要包括数据库基本操作类(DataBase类)和数据库连接类(SqlConClass类)。3.2.1数据库操作类(DataBase类)该类包含了辽宁经贸培训学校网站对数据库的基本操作方法,包括各种返回类型的sql语句执行方法,是其他类的基类。该类的类结构图如图3-3所示,该类的对象方法如表3-3所示。图3-3 DataBase类的类结构图表3-3 DataBase类的对象方法方法名称属性描述Open打开数据库连接close关闭数据库连接dispose释放数据库资源ExecuteSql执行Sql语句操作ExecuteSqlResult返回查询结果ExecuteSqlDs返回数据集信息Execu
25、teSqlIntValue返回类型为int型的第一行第一列ExecuteSqlObjectValue返回值为Object型的第一行第一列的结果值关键代码:执行sql语句操作代码如下所示:public static int ExecuteSql(string sql) SqlConnection conn = SqlConClass.getConnect(); SqlCommand cmd = new SqlCommand(sql, conn); try conn.Open(); cmd.ExecuteNonQuery(); return 0; catch (SqlException err)
26、throw new Exception(err.Message); finally cmd.Dispose();/释放资源 conn.Close(); 返回值为Object型的第一行第一列的结果值的方法的代码如下:public static object ExecuteSqlObjValue(string sql) SqlConnection conn = SqlConClass.getConnect(); SqlCommand cmd = new SqlCommand(sql, conn); try conn.Open(); object r = cmd.ExecuteScalar(); i
27、f (Object.Equals(r, null) throw new Exception( 查询结果为空!); else return r; catch (SqlException err) throw new Exception(err.Message); finally cmd.Dispose(); conn.Close(); ExecuteSqlResult、ExecuteSqlDs、ExecuteSqlIntValue等方法的具体代码同上所示,在此不再赘述。3.2.2数据库连接类(SqlConClass类)该类中包含了各种数据库的连接方式及数据库连接的测试方法,为该网站中所有的数据库
28、操作提供连接字符串。该类的类结构图如图3-4所示,该类的对象方法如表3-4所示。图3-4 SqlConClass类的类结构图表3-4 SqlConClass类的对象方法方法名称属性描述TestConnet测试数据库连接getConnectWindows方式下的数据库连接getConSql方式下数据库连接关键代码:Sql方式下数据库的连接方法实现代码如下所示: static public SqlConnection getCon(String server, String dataBase, string account, string pwd) SqlConnection cn = new S
29、qlConnection(Data Source= + server + ;Initial Catalog= + dataBase + ;uid= + account + pwd= + pwd); try cn.Open(); catch (SqlException ex) Console.WriteLine(ex.Message); return cn; 数据库连接测试方法的实现代码如下所示:public bool TestConnect() SqlConnection conn = new SqlConnection(); conn.ConnectionString = Data Sour
30、ce=.;Initial Catalog=网上书店;Integrated Security=True; try conn.Open(); return (conn.State = ConnectionState.Open); catch (SqlException err) return false; finally conn.Close(); 3.3业务逻辑层描述业务逻辑层在数据访问层之上,用于访问数据层,从数据层获取数据、修改数据以及删除数据,并将结果返回给表现层。该层主要包括文章操作类(Article类)、图片信息类(Prcture类)、下载信息类(Download类)、用户操作类(Us
31、er类)等实体类。3.3.1文章操作类(Article)该类包含了图书操作的所有方法,包括各种类型的文章信息的添加、删除、修改、查询方法。该类的类结构图如下图3-5所示,对象方法如表3-5所示。图3-5 Article类的类结构图表3-5 Article类的对象方法方法名称属性描述AddNewArticle添加文章DeleteArticleById删除指定的文章信息GetArticleByHits获得热门文章GetArticleByType根据文章类型获得文章信息GetArticleDetail根据文章编码获得文章的相关信息GetArticleTop10获得最新文章信息SetHits更新文章的
32、点击次数关键代码:添加新书方法的实现代码如下所示:public void AddNew Article( Article b) string storename = AddNew Article; SqlConnection conn = SqlConClass.getConnect(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = storename; cmd.Parameters.AddWi
33、thValue( ArticleTitle, b.ArticleTitle); cmd.Parameters.AddWithValue( ArticleAuthor, b.ArticleAuthor); cmd.Parameters.AddWithValue( ArticleType, b.ArticleType); cmd.Parameters.AddWithValue(ArticlePrice, b.ArticlePrice); cmd.Parameters.AddWithValue(inventory, b.Inventory); cmd.Parameters.AddWithValue(
34、ArticleNotes, b.ArticleNotes); cmd.Parameters.AddWithValue(keyWords, b.KeyWords); cmd.Parameters.AddWithValue(ArticleDiscount, b.ArticleDiscount); cmd.Parameters.AddWithValue(ArticlePublisher, b.ArticlePublisher); try conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); catch throw new Exception(添加新书失败
35、); 3.3.2用户信息类(User)用户信息类主要实现了对新注册用户的添加,对相应的类用户做出判断并且查找等各种实现方法。该类的类结构图如图3-6所示,该类中用到的存储过程如表3-6所示。图3-6 user类的类结构图表3-6 user类用到的存储过程存储过程名称属性描述AddNewuser添加新的用户Dealuser处理用户申请信息Deteleuser删除用户信息GetAlluser获得所有的用户信息GetNoDealuser获得所有尚未审核的用户信息Getuser获得指定用户的信息关键代码:添加新用户信息的存储过程实现代码如下所示:private void button1_Click(o
36、bject sender, EventArgs e) string ConStr = Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|data.mdb; OleDbConnection mycon = new OleDbConnection(ConStr); try mycon.Open(); string insert = insert into 用户表(用户名,密码,类别)values; insert += ( + textBox1.Text + , + textBox2.Text + , + textBox3.Te
37、xt + ); OleDbCommand mycom = new OleDbCommand(insert,mycon); DataSet mydata = new DataSet(); OleDbDataAdapter myadapter = new OleDbDataAdapter(mycom); if (textBox1.Text = & textBox2.Text = ) MessageBox.Show(所有项都是必填项,请填完后再单击注册按钮); myadapter.Fill(mydata,user); MessageBox.Show(注册成功!); /myadapter.Update
38、(mydata, user); catch (OleDbException te) MessageBox.Show(te.Message); finally if (mycon.State = ConnectionState.Open) mycon.Close(); 查询实现代码如下所示:/按姓名查找 private void button1_Click(object sender, EventArgs e) string ConStr = Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|db1.mdb; OleDbCo
39、nnection Con = new OleDbConnection(ConStr); string str = select * from user; str += where 姓名 like % + textBox1.Text.Trim() + %; OleDbCommand Com = new OleDbCommand(str, Con); OleDbDataAdapter myda = new OleDbDataAdapter(); myda.SelectCommand = Com; Con.Open(); DataSet myds = new DataSet(); MessageBo
40、x.Show(str); myda.Fill(myds, user); Con.Close(); dataGridView1.DataSource = myds; dataGridView1.DataMember = user; 获得指定用户订单信息的存储过程实现代码如下所示:ALTER PROCEDURE dbo.GetOrderuserid intasselect orders.*,username,case when orderStatus=1 then 处理完毕 else 等待处理end as orderStatus from users,orders,orderDetails where users.userid=orders.userid and orders.userid=userid and orders.userid=orderdetails.userid and orders.orderid=orderDetails.orderid结 论通过本次设计,我对ASP.NET、CSS、JavaSctipt、Html等Web开发语言有了进一步的掌握和了解,使自己的知识和能力有了很大提高。网站设