摘 要
现在随着电子商务的不断发展,网上商城也越来越贴近我们的生活,它实现了方便,快捷,效率,自动表现力网络最具魅力的地方,快速的交换信息。
本系统给出了网上商城管理系统的开发背景、需求分析与设计以及主要功能模块的实现等内容。第一章是对项目的概述,描述了系统的背景、现状和开发的意义;第二章是对系统的需求分析及概要功能设计,内容包括流程分析和功能结构;第三章描述了系统功能设计,内容包括设计目标和功能的整体描述,功能整体描述是对项目功能的描述,用户功能的描述和管理功能的描述;第四章是系统详细设计,内容包括数据库的详细设计和系统主要功能模块的界面设计及代码。第五章是对该程序总结的结束语。
关键字:网上商城;界面设计;代码
第1章 项目概述
在互联网日益流行的今天,网络已经变得越来越重要,而在网络这个大家庭里,网上购物则是一个热点,网上购物商城的出现,给消费者的消费观念带来了重要的变化。
1.1 序言
此系统的目的是,深入描述“网上购物系统”软件的功能和性能与界面,确定该软件设计的限制和定义软件的其他有效性需求。根据网上购物系统的业务分类、业务操作规程及其数据结构等具体要求,确定了系统性能要求,系统运行支持环境要求,数据项的名称、数据类型、数据规格。
1.2开发及运行环境
系统开发平台:Microsoft Visual Studio 2005。
系统开发语言:C#
系统后台数据库:SQL Server 2005
运行平台:Windows XP / Windows Server 2003
1.3 项目简介
1.3.1系统标识
系统名称:网上商城系统
1.3.2系统目标
该项目的目的是开发一个电子购物网站以及后台管理系统。
在前台实现的基本主要有:
1. 商品选购:用户可按分类方式查找商品,或者通过关键字进行查询
2. 购物车功能:用户在购物车里可以看到商品编号,商品单价以及商品的数量,用户还可以在购物车里对商品进行删除。
3. 查看商品详细情况:用户可以查看有关商品的所有详细信息,包括商品ID、商品类别的ID、商品名字、商品简介、商品重量、商品计量单位、商品图像、市场价格、会员价格、是否是精品、是否热卖以及是否是特价商品。
4. 用户注册:在登记过程中,您将选择会员注册名和密码。您须自行负责对您的会员注册名和密码保密,且须对您在会员注册名和密码下发生的所有活动承担责任。
5. 用户登陆:登录时须填写用户名,密码和验证码。
6. 查看用户的订单信息:可以查看所购买物品的订单ID、数量、商品总金额、合计总金额、运费总费用、配送方式类型和支付方式类型。
7. 修改用户个人信息:操作时用户可对自己的姓名、性别、密码、电话号码、Emails、邮编和详细地址进行修改。
8. 会员充值:选择银行名称、账号、身份证号、密码和充值的钱数。
9. 结款方式:按照顾客提交的订单内容,在承诺配送时限内送达顾客指订交货地点后,双方当面验收商品。顾客可以当面交纳货款的一种结算方式。
后台管理部分主要有:
1. 商店商品管理:添加、修改、删除、查看。
2. 用户信息管理:查看、修改、删除。
3. 订单信息管理:查看订单清单、更新订单付款、出货状态、删除订单
第2章 需求分析
2.1 项目功能
通过实际调查,要求本系统具有以下功能:
1、系统具有良好的人机界面。
2、如果系统的使用对象较多,则要求有较好的权限管理。
3、全面展开商城内所有商品。
4、商品分类显示,方便顾客了解本商城内的商品。
5、查看商城内的交易信息。
6、支持打印功能。
7、系统最大限度地实现易维护性和易操作性。
8、系统运行稳定、安全可靠。
2.2 项目规划
网上购物系统主要由前台会员管理模块和后台管理员模块两部分组成。
1、前台功能模块
前台模块主要用于实现会员注册、登录、修改个人信息、分类查看商品信息、购物、管理购物车、结账和查看各种服务条款等功能。
- 后台管理模块
后台模块主要用于实现后台管理员对会员、商品、订单和系统的管理等功能。
2.3 系统业务流程分析
网上商城购物系统的业务流程如图2-1所示。
图2-1 网上商城系统业务流程图
2.4 系统功能结构
网上商城购物系统前台功能结构图,如图2-2所示。
图2-2 网上商城购物系统前台功能结构图
网上商城购物系统后台结构功能图,如图2-3所示。
图2-3 网上商城购物系统后台功能结构图
第3章 系统功能设计
3.1设计目标
本系统属于小型的数据库管理系统,可以对网上商城购物系统进行全面管理。通过本系统可以达到以下目标:
1、界面设计美观友好,信息查询灵活、方便、快捷、准确,数据存储安全可靠。
2、全面、分类展示商城内所有商品。
3、显示商品的详细信息,方面顾客了解商品信息。
4、设置灵活的打印功能。
5、对用户输入的数据,进行严格的数据检查,尽可能避免人为错误。
6、系统最大限度地实现易维护性和易操作性。
7、系统运行稳定、安全可靠。
3.2 项目功能整体描述
3.2.1 项目功能描述
网上商城的主要参与者是顾客和商场,以及后台管理人员。无论什么类型的网上商城,顾客从网上购物的过程都相似,操作步骤说明如下:
(1)顾客在进行第一次购物之前要进行会员登记。一般要求输入真实的姓名、通讯地址、联系电话、Email地址等基本信息。注册完后,系统会自动生成一个“会员ID”和密码,并在网页上显示出来。顾客一定要记住自己的ID号和密码,为了防止密码泄漏,顾客可以自己修改密码;
(2)进入网上商店,挑选商品。顾客可以按产品类别检索商品,也可以输入产品名称等信息,通配检索数据库,找出所关心的商品;
(3)查看商品细节说明,了解价格、付款及送货方式、购物说明等信息;
(4)选中商品后,输入购买数量并点击“选购”按钮,将商品放入购物车;
(5)选购结束,检查购物车,核实商品和数量是否正确,如有出入,可以重新调整商品和数量,如无误,则去“收银台”结帐。
(6)收银台提交购物清单、选择付款方式及送货方式。完成购物过程。
同样,后台管理人员的操作过程如下:
(1)管理人员输入ID,密码进入管理页面。
(2)管理人员进入管理页面,页面左侧显示去往商店商品查询,添加商品信息,订单信息查询,用户信息查询的链接。
(3)管理人员点击商店商品查询页面:
(4)管理人员点击添加商品信息页面:输入需添加的商品信息,管理人员点击提交向后台数据库提交信息。提交成功的话,页面显示新商品信息提交成功,否则显示数据库操作失败。
(5)管理人员点击订单查询页面:页面显示出已接到订单,其中包括商品名称,商品类别,单价,数量。以及总金额,总数量,下单时间,交货时间,总金额,下单时IP,用户备注,是否付款,是否交货等。
(6)管理人员点击用户信息查询页面:页面显示出用户ID号用户名,真实姓名,联系地址,联系电话。
管理员可以进行用户的删除,查找动作。删除成功后,页面显示删除成功
3.2.2 用户功能描述
用户需要注册成会员用户,需要用户注册使用的功能有:
(1)用户注册。
(2)用户添加商品到购物车的功能。购物车的设计,必须做到清晰、简单和方便。
(3)用户信息的自我管理。用户的注册信息中,用户的地址、联系方式等都是商品配送的重要依据,所以应该允许用户对这些信息进行修改,并使得用户在用户信息中,可以查阅购物详情等信息。
3.2.3 管理功能描述
对网站的管理者来说,分析网站的管理要求,以下功能是必不可少的。
商品登记。将商品的各种信息:商品名、价格、厂家等录入到数据库中,是网站管理中的一项基本的工作。
用户管理。网站应该可以对用户进行诸如删除、查看部分用户信息等功能。 订单管理。这是最重要的管理功能。
管理者应该可以每天清晰的查阅有多少订单生成、每个订单的详情等信息,并了解这个订单的处理情况。
3.3 数据库概要设计
本系统采用SQL Server 2005作为后台数据库,数据库命名为db_NetShop,其中包含11张数据库表。下面分别介绍。
3.3.1 实体及其属性
经过对本系统数据库的分析,得出其实体属性如下,其中主键已用下划线标注:
(1)订单信息表 (订单ID、下订单时间、商品总金额、合计总金额、运费总费用、配送方式类型、支付方式类型、购物会员编号、收货人姓名、收货人联系电话、收货人联系电话、是否已确认、是否已付款、是否已发货、是否已归档、收货人的邮编、收货人的地址、收货人的Emails)
(2)购买商品临时表(购物车ID、商品ID、数量、总价、购物会员ID)
(3)购买商品信息表 (购买ID、商品ID、数量、订单ID、总价、购物会员ID)
(4)配送范围表 (区域ID、区域名、里程)
(5)配送方式表 (配送ID、配送方式、运费总费用、商品类别ID、商品类别名称)
(6)商品类别表 (商品类别ID、商品类别名、种类图像)
(7)商品信息表 (商品ID、商品类别ID、商品名字、商品简介、商品品牌名、商品计量单位、商品图像、市场价格、会员价格、是否是精品、是否热卖、进货日期、是否是特价商品、商品类别名称)
(8)图像信息表 (图像ID、图像名字、图像路径)
(9)系统管理员信息表 (管理员ID、管理员姓名、管理员密码)
(10)用户信息表 (会员ID、会员名、会员性别、会员密码、会员真实姓名、会员电话号码、会员Emails地址、会员所在城市、会员地址、住址邮编、会员充值、会员登录日期)
(11)支付方式表 (付款流水ID、付款方式)
3.3.2 实体属性图
本系统根据前面的设计规划出的主要实体由会员信息实体、商品信息实体、管理员信息实体和订单信息实体。
网上商城实体关系属性如下:
图3-1订单信息实体图
图3-2 商品信息实体图
图3-3 管理员信息实体图
图3-4 会员信息实体图
图3-5商品类别实体图
第4章 详细设计
4.1 数据库详细设计
在网上商城购物系统中,当商品类别信息发生改变时,例如某个商品类别被删除,与其相关联的商品信息也应该被删除,这样才能保证数据的一致性和完整性。
1、tb_OerderInfo(订单信息表)
表tb_OerderInfo用于保存订单的详细信息,结构如表4-1所示。
表4-1订单信息表
字段名 | 数据类型 | 主 键 否 | 说明 |
OrderID | bigint | 是(自增) | 订单ID |
OrderDate | datetime | 否 | 下订单时间 |
GoodsFee | float | 否 | 商品总金额 |
TotalPrice | float | 否 | 合计总金额 |
ShipFee | float | 否 | 运费总费用 |
ShipType | nvarchar(20) | 否 | 配送方式类型 |
PayType | int | 否 | 支付方式类型 |
MemberID | bigint | 否 | 购物会员编号 |
ReceiverName | varchar(50) | 否 | 收货人姓名 |
ReceiverPhone | varchar(50) | 否 | 收货人联系电话 |
IsConfirm | bit | 否 | 是否已确认 |
IsPayment | bit | 否 | 是否已付款 |
IsConsignment | bit | 否 | 是否已发货 |
IsPigeonhole | bit | 否 | 是否已归档 |
ReceiverPostCode | char(10) | 否 | 收货人的邮编 |
ReceiverAddress | varchar(200) | 否 | 收货人的地址 |
ReceiverEmails | varchar(50) | 否 | 收货人的Emails |
2、tb_CartInfo(购买商品临时表)
表tb_CartInfo 用于保存商品订单信息,结构如表4-2所示。
表4-2购买商品临时表
字段名 | 数据类型 | 主 键 否 | 说明 |
CartID | bigint | 是(自增) | 购物车ID |
GoodsID | bigint | 否 | 商品ID |
Num | int | 否 | 数量 |
SumPrice | float | 否 | 总价 |
MemberID | bigint | 否 | 购物会员ID |
3、BuyInfo(购买商品信息表)
表BuyInfo用于保存购买商品信息,结构如表4-3所示。
表4-3购买商品信息表
字段名 | 数据结构 | 主 键 否 | 说明 |
BuyID | bigint | 是(自增) | 购买ID |
GoodsID | bigint | 否 | 商品ID |
Num | int | 否 | 数量 |
OrderID | bigint | 否 | 订单ID |
SumPrice | float | 否 | 总价 |
MemberID | bigint | 否 | 购物会员ID |
4、Area(配送范围表)
表Area用于保存购买商品信息,结构如表4-4所示。
表4-4配送范围表
字段名 | 数据类型 | 主 键 否 | 说明 |
AreaID | bigint | 是(自增) | 区域ID |
AreaName | varchar(50) | 否 | 区域名 |
AreaKM | int | 否 | 里程 |
5、ShipType(配送方式表)
表ShipType用于保存配送商品方式信息,结构如表4-5所示。
表4-5配送方式表
字段名 | 数据类型 | 主 键 否 | 说明 |
ShipID | bigint | 是(自增) | 配送ID |
ShipWay | varchar(50) | 否 | 配送方式 |
ShipFee | float | 否 | 运费总费用 |
ClassNane | varchar(50) | 否 | 商品类别名称 |
ClassID | bigint | 否 | 商品类别ID |
6、tb_Class(商品类别表)
表tb_Class用于保存商品类别信息,结构如表4-6所示。
表4-6商品类别表
字段名 | 数据类型 | 主 键 否 | 说明 |
ClassID | bigint | 是(自增) | 商品类别ID |
ClassName | varchar(50) | 否 | 商品类别名 |
CategoryUrl | varchar(50) | 否 | 种类图像 |
7、tb_GoodsInfo(商品信息表)
表tb_GoodsInfo用于保存商品的详细信息,结构如表4-7所示。
表4-7商品信息表
字段名 | 数据类型 | 主 键 否 | 说明 |
GoodsID | bigint | 是(自增) | 商品ID |
ClassID | bigint | 否 | 商品类别ID |
GoodsName | varchar(50) | 否 | 商品名字 |
GoodsIntroduce | ntext | 否 | 商品简介 |
GoodsBrand | varchar(50) | 否 | 商品品牌名 |
GoodsUnit | varchar(10) | 否 | 商品计量单位 |
ClassName | varchar(50) | 否 | 商品类别名称 |
GoodsUrl | varchar(50) | 否 | 商品图像 |
MarketPrice | float | 否 | 市场价格 |
MemberPrice | float | 否 | 会员价格 |
Isrefinement | bit | 否 | 是否是精品 |
IsHot | bit | 否 | 是否热卖 |
AddDate | datetime | 否 | 进货日期 |
IsDiscount | bit | 否 | 是否是特价商品 |
8、Image(图像信息表)
表Image用于保存商品图像的详细信息,结构如表4-8所示。
表4-8图像信息表
字段名 | 数据类型 | 主 键 否 | 说明 |
ImageID | bigint | 是(自增) | 图像ID |
ImageName | varchar(50) | 否 | 图像名字 |
ImageUrl | varchar(200) | 否 | 图像路径 |
9、Admin(系统管理员信息表)
表Admin用于保存系统管理员的详细信息,结构如表4-9所示。
表4-9系统管理员信息表
字段名 | 数据类型 | 主 键 否 | 说明 |
AdminID | bigint | 是(自增) | 管理员ID |
Admin | varchar(50) | 否 | 管理员姓名 |
Password | varchar(50) | 否 | 管理员密码 |
10、Member(用户信息表)
表Member用于保存用户的详细信息,结构如表4-10所示。
表4-10用户信息表
字段名 | 数据类型 | 主 键 否 | 说明 |
MemberID | bigint | 是(自增) | 会员ID |
Name | varchar(50) | 否 | 会员名 |
Sex | Char(5) | 否 | 会员性别 |
Password | varchar(50) | 否 | 会员密码 |
TrueName | varchar(50) | 否 | 会员真实姓名 |
Phonecode | varchar(20) | 否 | 会员电话号码 |
Emails | varchar(50) | 否 | 会员Emails地址 |
City | varchar(50) | 否 | 会员所在城市 |
Address | varchar(200) | 否 | 会员地址 |
PostCode | char(10) | 否 | 住址邮编 |
AdvancePayment | float | 否 | 会员充值 |
LoadDate | datetime | 否 | 会员登录日期 |
11、PayType(支付方式表)
表PayType用于支付商品方式的详细信息,结构如表4-11所示。
表4-11支付方式表
字段名 | 数据类型 | 主 键 否 | 说明 |
PayID | bigint | 是(自增) | 付款流水ID |
PayWay | varchar(50) | 否 | 付款方式 |
4.2 系统详细设计
4.2.1 添加管理员
下图是添加管理员界面的设计,管理员名和管理员密码不能为空。
图4-1 添加管理员界面
当输入管理员名和管理员密码后,点击“保存”时会弹出一个显示添加成功的窗口,添加的新信息会录入到数据库里。
图4-2 添加成功界面
4.2.2 订单管理
下图是订单管理界面的设计,可按关键字订单号和会员号进行搜索。
图4-3 订单管理界面
该图是按订单号搜索的结果,可以看出它的订单状况是否已付款。
图4-4 搜索后的管理界面
4.2.3 订单信息
下图是订单信息界面的设计,后台管理员可以对订单信息进行“修改”。
图4-5 订单信息界面
点击打印后,会弹出一个打印的窗口,如下图。
图4-6 打印界面
4.2.4 支付方式
下图是支付方式界面的设计,序号是自动编号,管理员可以对支付方式进行修改和删除。
图4-7 支付方式界面
4.2.5 商品管理
下图是商品管理界面的设计,可以根据商品ID和商品名称进行查询。
图4-8 商品管理界面
4.2.6 商品添加
下图是商品添加界面的设计,点击“保存”后,会把所有的数据录入到数据库中,点击“重置”,填入的信息将会被清空。
图4-9 商品添加界面
4.2.7 配送范围
下图是配送范围界面的设计,序号是自动编号。
图4-10 配送范围界面
可按地点名称和公里数进行添加并“保存”,“保存”时会弹出一个提示添加成功的窗口。
图4-11 添加成功提示界面
下图是添加之后的显示界面,可对其修改和删除。
图4-12 添加成功界面
4.2.8 配送方式
下图是配送方式界面的设计。
图4-13 配送方式界面
4.2.9 会员充值
下图是会员充值界面的设计,输入银行的名称,账号,身份证号,密码,会员充值的钱数之后,点击“确定”即充值成功。
图4-14 会员充值界面
第5章 结束语
经过三个星期的努力,终于完成了网上商城系统的设计与实现,在做课题的过程中,发现课题的每个方面要求的都很严格,包括数据库的创建,窗体的设计和程序的编写,尤其是程序,哪怕有一点的错误都不能运行成功。
我们先设计了这个程序所需要的表结构,写出了各个实体之间的关系,画出实体之间的E-R图,让老师看过我们的表和E-R图后,根据我们建的表创建了数据库。然后我们根据对系统的设计进行了分工,每个人负责几个模块,接下来的阶段是根据自己的分工任务,设计界面窗体,表面上看设计窗体挺简单的,但实际操作起来并不是想象中的那样,界面不仅要设计合理,还要考虑其他多方面的因素。
接下来是程序的编写,由于自己的知识不过硬,学的也不是很好,所以在这个过程中难免会遇到问题,就拿属性来说吧,有的只能读而不能写,有的只能写而不能读,而有的只能选择等等这些都是在这个过程中所遇到的问题,但是在老师和同学的帮助下我完成了,这也使我学到了很多知识,受益颇多。编写程序时,我遇到不会或者不懂的地方,就及时的问老师和同学,老师每次都认真的给我讲解,直到我明白后为止,这也使我明白了,当你遇到问题时要立刻问,尽快的把它解决掉。
在运行的过程中,往往会出现一些没有见过的错误,但还是要找到解决问题的办法,这样才能使程序正常的运行,才能正常的实施设计计划,有些窗体控件的顺序应该和数据库中的顺序应该是一致的,在程序编写时也应该和数据库中的一致,不让会出现错误,导致运行失败。
经过这次三级课题实践,我感觉这三个星期学到的东西比我这学期学到的还要多,从中也使我找到了自己的不足,在今后的学习过程中我会更加努力的。我也明白了,在做任何事情之前都要有一个整体的计划,做完这一项在进行下一项,遇到问题要及时处理,这样效果才能更加有效。
感谢我的指导教师赵冬老师对我们课题的一些意见和提出的一些不足,虽然她对我们的要求比较严格,但是在她的指导下我们学到属于我们自己的知识,谢谢赵老师的谆谆教导,在此、对赵老师表示深深地感谢!
预祝赵老师新春快乐,事事顺心,万事如意!