网上书店Word文件下载.docx
《网上书店Word文件下载.docx》由会员分享,可在线阅读,更多相关《网上书店Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
5、客户可在网上进行注册,成为会员
6、客户能查看当前订单和以往订单
7、书店员工能查找客户联系信息
2.3性能需求
1、系统可以对图书的库存进行统计
2、易于维护和扩充
3、系统界面设计友好、操作方便、灵活
4、具有高可靠性和容错能力,不允许系统在工作时间停机,不允许系统丢失图书信息,客户信息
5、具有安全检测机制,非法用户不能使用系统,不能偷看系统信息,不能修改图书,防止随意删改,且能够进行信息备份
6、具有保密机制,各级使用者只能看到允许查看的系统信息
3主要工作原理及关键技术介绍
3.1程序原理技术介绍
1.HTML(HyperTextMark-upLanguage)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。
HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。
HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
CSS(CascadingStyleSheet,可译为“层叠样式表”或“级联样式表”)是一组格式设置规则,用于控制Web页面的外观。
通过使用CSS样式设置页面的格式,可将页面的内容与表现形式分离。
页面内容存放在HTML文档中,而用于定义表现形式的CSS规则则存放在另一个文件中或HTML文档的某一部分,通常为文件头部分。
将内容与表现形式分离,不仅可使维护站点的外观更加容易,而且还可以使HTML文档代码更加简练,缩短浏览器的加载时间。
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言同。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
它是一种动态、弱类型、基于原型的语言,内置支持类。
JavaScript也可以用于其他场合,如服务器端编程。
完整的JavaScript实现包含三个部分:
ECMAScript,文档对象模型,字节顺序记号。
2.存储过程可以提高性能:
数据库可以使用缓存等手段对数据库操作进行优化;
有更好的安全性用户必须得到许可才可以访问存储过程;
更容易维护:
和嵌入代码并且已经部署到客户端的sql语句相比,存储过程更容易维护;
提供了更高的抽象:
客户端被隔离在具体的实现细节之外.;
存储过程可以减少网络故障,因为可以批处理,而不是从客户端发送多个请求.
当存储过程数量越来越多的时候,在众多存储过程中找到想要修改的存储过程是一件麻烦的事;
.如果用嵌入式SQL语句,可以在修改代码时,顺便就修改了数据库操作语句,使用方便。
3.SqlDataSource组件:
它可以连接到任何ADO.NET支持的数据源(如SQLServer、Oracle等),从中检索数据,并使得其他控件(如GridView等控件)可以绑定到数据源
ObjectDataSource控件:
表示具有数据检索和更新功能的中间层对象。
作为数据绑定控件(如GridView、FormView或DetailsView控件)的数据接口,ObjectDataSource控件可以使这些控件在ASP.NET网页上显示和编辑中间层业务对象中的数据
XmlDataSource控件:
提供了绑定内存中或物理磁盘上的XML文档的一种简单方式。
该控件有许多属性,便于指定包含数据的XML文件和用于把源XML转换为合适格式的XSLT转换文件。
还可以提供一个XPath查询,以选择某个数据子集。
AccessDataSource控件:
用来从Access数据库中将数据提取至ASP.NET2.0(.aspx)页面。
这个控件拥有的属性很简单。
AccessDataSource的最重要的属性是DataFile属性,用来指向硬盘上MDB文件的路径。
AccessDataSource拥有的其他属性还有SelectCommand,用来设定一个显示需要返回的结果集(表和列)的语句。
SelectCommand必须使用SQL语法来定义。
sitemapdatasource控件:
页面导航控件,还可以绑定到不同的其他页面控件,比如treeview,menu等,十分灵活,使到能很方便地实现页面导航的不同形式,而且还提供了运行时的编程接口,可以以编程的形式动态实现页面导航控件。
4.CommandField
是一个特殊字段,由数据绑定控件使用以显示执行编辑、更新、取消,删除或选择操作的命令按钮。
执行这些操作的命令按钮可以通过使用下表中显示的属性来显示或隐藏。
根据使用
CommandField
字段的数据绑定控件,该字段会以不同的方式显示。
GridView
控件将
字段显示为一列,默认情况下,当用户在
字段中单击按钮时,将对页面上的所有验证控件执行验证。
BoundField
类以文本显示字段的值。
根据在其中使用
BoundField
对象的数据绑定控件,该对象会以不同的方式显示。
对象显示为一列。
CheckBoxField
类在复选框中显示布尔型数据字段的值。
CheckBoxField
例如,GridView
对象显示为一列,而
DetailsView
控件则将该对象显示为一行。
HyperLinkField
类,为每个已显示的记录显示超链接。
当用户单击超链接时,此人将会被定向到与此超链接相关联的网页。
HyperLinkField
ImageField
类被数据绑定控件用于为所显示的每个记录显示图像。
ImageField
若要显示图像,必须将
对象绑定到包含图像URL的数据源中的字段。
这是通过设置
DataImageUrlField
属性完成的。
可以通过使用DataImageUrlFormatString
属性设置URL值的格式。
每个图像还可以具有与之相关联的备用文本。
当无法加载图像或图像不可用时,将显示此文本。
支持工具提示功能的浏览器还将此文本显示为工具提示。
ButtonField
类为每个显示的记录显示一个按钮。
单击按钮字段中的按钮将引发父数据绑定控件的命令事件。
可以提供命令事件的事件处理程序,以便在单击命令按钮时提供要执行的自定义例程。
TemplateField
类来为每个显示的记录显示自定义内容。
需要显示某个预定义的数据控件字段(如
BoundField)未提供的数据绑定控件中的内容时,使用
类来创建自定义用户界面(UI)。
5.DIV+CSS:
DIV+CSS是网站标准(或称“WEB标准”)中常用术语之一,是区别于传统的HTML网页设计语言中的表格(table)定位方式的一种全新的定位方式。
DIV承载的是结构,而CSS承载的是表现。
样式的调整更加方便。
内容和样式的分离,使页面和样式的调整变得更加方便。
使用统一的表格(table)或框架(frame),使网页的布局一致。
母版页:
又称主控页,是一个以“.master”作为后缀的文件。
在主控页中可以放入多个标准控件并编写相应的代码,同时还给各窗体页留出一处或多处的“自由空间”。
主控页与用户控件之间的最大区别在于,用户控件是基于局部的界面设计,而主控页是基于全局性的界面设计。
用户控件只能在某些局部上使各网页的显示取得一致,而主控页却可以在整体的外观上取得一致。
用户控件通常被嵌入到主控页中一起使用。
3.2关键问题的解决思路
3.2.1如何通过不同书籍信息查找书籍
在用户界面通过GridView控件绑定所有书籍的信息,并且使用存储过程查看书籍信息。
4系统设计
系统设计的任务是:
实现系统分析阶段确定的逻辑模型所规定的系统功能,建立系统的物理模型。
在系统设计中,应遵循以下原则[2]:
1.系统性。
系统是作为一个整体而存在的,因此,在系统设计中,要从整个系统的角度进行考虑,系统的代码要统一,设计规范要标准,传递语言要尽可能一致,对系统的数据采集要做到数出一致、全局共享,使一次输入得到多次利用。
2.经济性。
充分考虑系统的投资/效益比,在满足系统要求的前提下,尽可能减小系统的开销,在系统兼容性和有效性两方面取得合理的折中。
3.灵活性。
在系统设计中,应具有较好的开放性和独立性。
4.可靠性。
在系统设计中,注意对系统安全保密性、检错及纠错能力的设计。
5.安全性。
大型信息系统的安全保障是系统能否正常运行的基本保证,应将系统的安全性作重中之重。
4.1系统总体功能结构图
网上书店系统分为前台和后台两个主要功能模块。
前台模块为用户浏览、使用模块,后台模块为管理员浏览、使用模块。
如图4-1描述了网上图书交易系统的逻辑体系结构:
图4-1网上书店体系结构图
4.1.1系统功能模块划分
对于网民,能吸引住他们的先决条件是网站的整体构思,所以网站的首页提供了一个简洁明快的界面,分为三个模块:
用户管理模块、图书销售系统模块、在线管理系统,如图4-2所示。
以让浏览者能一目了然的知道,自己想要的内容放在哪里,这些内容可以提供给所有的浏览者,内容包括图书查询,热点图书,新书推荐等,这里可以查看所有所需图书信息。
网上书店首页
图书销售系统
在线管理系统
用户管理模块
图4-2网上书店系统功能模块图
4.2系统后台总体功能结构图
对于管理员管理界面而言,根据系统功能的分析,它有的功能应该包括:
对用户的管理(注册会员管理、后台用户管理),对图书管理,对订单的管理等,如图4-3所示:
管理员登陆
用户管理
订单管理
图书管理
浏览图书页面
修改图书页面
添加图书页面
删除图书页面
注册用户管理
后台用户管理
查看所有订单
处理订单信息
图4-3管理员界面的系统功能模块图
4.3系统后台各功能模块功能结构图
4.3.1图书管理模块功能结构图
图书管理模块主要包括图书浏览、图书添加和产品修改三个模块,用以实现图书的更新。
图书管理功能结构图如4-4所示。
图4-4产品管理模块功能结构图
图书浏览
图书修改
图书添加
图书删除
4.3.2订单管理模块功能结构图
订单管理功能模块由两个模块组成:
订单编辑和订单删除,用以及时处理客户的订单信息,删除作废的订单。
订单管理功能结构图如4-5所示。
订单修改
订单添加
订单删除
图4-5订单管理模块功能结构图
4.3.3用户管理模块功能结构图
用户管理模块用以实现删除无效账户功能,该模块只包含删除用户功能一个模块。
如图4-6所示。
用户删除
图4-6用户管理模块功能结构图
4.4系统功能流程图
4.4.1管理员流程图
如同4-7
开始
管理员注册
管理员登录
信息正确?
用户管理
图书管理
订单管理
类别管理
名称管理
会员信息管理
已处理订单
未处理订单
查看
修改
添加
删除
处理订单
Y
N
图4-7管理员访问网站流程图
4.5数据库表结构设计
本系统数据库共设计了六张表分别为:
普通用户表、管理员表、书籍表、书籍种类表、购物车表、订单表。
4.5.1普通用户表:
Accounts
字段名称
字段说明
类型
长度
CustomerName
用户名
Char
10
Password
密码
4.5.2管理员表:
studyuser
Username
userpwd
truename
真实姓名
6
Rank
权限
4
4.5.3书籍表:
Products
ProductsID
编号
ProductsCode
图书编号
ProductType
图书类型
14
ProductIntroductionDate
入库时间
20
ProductName
书名
ProductDescription
简要描述
Varchar
500
ProductDetail
详细描述
3000
ProductSize
图书规格
ProductImageUrl
对应图片
30
UnitPrice
价格
Onsale
是否促销
2
Rating
点击率
4.5.4书籍种类表:
Categrories
Id
4.5.5购物车表:
ShoppingCarts
ShoppingCartID
ProductCode
产品代码
产品名称
Description
产品描述
300
UnitPrice
单价
Quantity
数量
CustomerName
客户名称
BillNo
订单号
4.5.6订单表:
Orders
OrderId
Ordered
订单日期
TotalValue
订单总额
IsActive
是否有效
IsPayment
是否交付
isSend
是否送货
address
通讯地址
40
Postalcode
邮编
Phone
联系电话
16
Email
邮件地址
remark
备注
5系统实现
5.1数据库设计
数据库对于整个信息系统的质量来讲至关重要,不容忽视。
数据库的设计要安全、全面,不能太复杂。
实现代码如下
USEmaster
GO
CREATEDATABASEBookStore
ON
(NAME=olBookStore,
filename='
C:
\programfiles\microsoftsqlserver\mssql\data\BookStore.mdf'
size=4,
maxsize=100,
filegrowth=1)
go
useBookStore
createtable[dbo].[Accounts](
[CustomerName][CHAR](10)NOTNULL,
[Password][CHAR](10)NOTNULL,
PRIMARYKEY(CustomerName))
createtable[dbo].[studyuser](
[Username][CHAR](10)NOTNULL,
[userpwd][CHAR](10)NOTNULL,
[truename][CHAR](6)NULL,
[rank][CHAR](4)NOTNULL,
PRIMARYKEY(Username))
createtable[dbo].[Products](
[ProductID][CHAR](10)NOTNULL,
[ProductCode][CHAR](10)NOTNULL,
[ProductType][CHAR](14)NOTNULL,
[ProductIntroductionDate][CHAR](20)NOTNULL,
[ProductName][CHAR](20)NOTNULL,
[ProductDescription][VARCHAR](500)NOTNULL,
[ProductDetail][VARCHAR](3000)NOTNULL,
[ProductSize][CHAR](6)NOTNULL,
[ProductImageURL][CHAR](30)NULL,
[UnitPrice][CHAR](10)NOTNULL,
[OnSale][CHAR]
(2)NULL,
[Rating][CHAR](6)NULL,
PRIMARYKEY(ProductID))
createtable[dbo].[Categories](
[id][CHAR](6)NOTNULL,
[productType][CHAR](14)NOTNULL,
PRIMARYKEY(id))
createtable[dbo].[ShoppingCarts](
[ShoppingCartID][CHAR](20)NOTNULL,
[ProductName][CHAR](20)NOTNULL,
[Description][VARCHAR](500)NOTNULL,
[UnitPrice][CHAR](10)NOTNULL,
[Quantity][CHAR](4)NOTNULL,
[CustomerName][CHAR](10)NOTNULL,
[BillNo][CHAR](20)NULL,
PRIMARYKEY(ShoppingCartID))
createtable[dbo].[Orders](
[OrderId][CHAR](20)NOTNULL,
[BillNo][CHAR](20)NOTNULL,
[Ordered][CHAR](20)NOTNULL,
[TotalValue][CHAR](10)NOTNULL,
[isActive][CHAR]
(2)NOTNULL,
[isPayment][CHAR]
(2)NOTNULL,
[isSend][CHAR]
(2)NOTNULL,
[address][CHAR](40)NOTNULL,
[Postalcode][CHAR](6)NOTNULL,
[Phone][CHAR](16)NOTNULL,
[Email][CHAR](30)NULL,
[rem