《数据库原理与应用》课程设计网上书店系统的分析与实现(含源程序)_第1页
《数据库原理与应用》课程设计网上书店系统的分析与实现(含源程序)_第2页
《数据库原理与应用》课程设计网上书店系统的分析与实现(含源程序)_第3页
《数据库原理与应用》课程设计网上书店系统的分析与实现(含源程序)_第4页
《数据库原理与应用》课程设计网上书店系统的分析与实现(含源程序)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、常熟理工学院网上书店系统配套源程序,包运行,联系qq153893706数据库原理与应用课程设计题 目:网上书店系统的分析与实现姓 名: 专 业: 计科 班 级: 指导老师: 1系统简介1.1系统基本功能描述网上书店系统能够实现书店销售的一些流程,并将数据记录在数据库中。功能模块包括:用户登录系统(普通注册会员与后台管理员不同的登录方式);图书销售系统(实现图书的销售,订单的生成);后台管理系统(后台管理员可以对会员、图书进行管理,并处理订单)。总体目标设计一个软件能够合理有序地对书店进行信息化的管理。1.2系统需求分析本网上书店系统总体分为前后两个管理系统:前台管理系统是在internet上接

2、受客户访问的网上书店前台销售管理系统(网站);后台管理系统是在internet内部用于书店的管理员管理的网上书店后台管理系统。本系统的前台销售管理系统实现的功能类似于现实生活中的商店,顾客可以浏览图书,选择图书,购买并支付生成订单。本系统设计的网上购物的过程为,当客户通过internet访问书店的网站时,如果他要购买图书,那么必须先注册成为会员,然后再选择进行会员登录,然后可以把图书放入购物车,通过购物车完成支付生成网上订单。1、通过对系统需求进行分析,我们可以确定系统中有两类用户:后台管理员和普通注册用户(即顾客)。各类用户描述如下:2、管理员:登入,操作图书(图书信息的录入、删除、修改),

3、管理会员,处理订单等3、顾客:注册,登入,搜索图书,下订单。1.2.1业务流程分析1、网上书店的整体规划如下所示:1、管理员与会员采取不同的登录方式以获取不同的权限,进行不同的业务操作。其业务流程图如下所示:1、后台管理系统主要由后台管理员操作。其业务流程图如下所示:4、 图书销售系统业务流程如下所示:1.2.2数据流分析根据业务流程分析,我们可以得到系统的数据流图。(1) 网上书店系统顶层数据流图如下图所示:(2) 网上书店系统第一层数据流图如下图所示:(3) 管理员登录数据流图:(4) 普通用户登录数据流图:(5) 购买过程数据流图:(6) 后台管理数据流图:2 系统设计2.1 数据库设计

4、2.1.1 概念结构设计 前台用户购书系统 前台购书系统中涉及的主要实体及其属性有: (1) 用户信息用户名,密码,用户类别 (2) 图书信息图书编号,图书名,图书简介,出版社,数量,会员价格,市场价格 (3) 订单信息订单编号,图书编号,图书名称,购买数量,单价,折扣率,支付金额,收货人,送货地址,联系电话,邮编,支付方式,快递方式,下单时间,下单者编号 e-r 模型如图 21、22 所示。图 2-1 购书过程实体及其属性 图 2-2 购书过程 e-r 图后台管理员管理子系统 后台管理员管理子系统涉及的主要实体及其属性有: (1) 图书信息图书编号,图书名,图书简介,出版社,数量,会员价格,

5、市场价格 (2) 订单信息订单编号,图书编号,图书名称,购买数量,单价,折扣率,支付金额,收货人,送货地址,联系电话,邮编,支付方式,快递方式,下单时间,下单者编号 (3) 管理员信息管理员名称,管理员密码 (4) 公告信息公告内容,公告标题 (5) 目录信息 目录编号,目录名称 (6) 用户信息 用户名,密码,用户类别 e-r 模型 图 2-3 后台管理过程实体及其属性图 2-4 购书过程 e-r 图网上购书系统总的er图252.1.2 逻辑结构设计根据以上的分析,将 e-r 模型转换成逻辑模型,设计出本系统数据库。根据 需要,设计了 6 个数据表。如下所示: 管理员信息表:该表记录了管理员

6、的相关信息,包括用户名,密码 目录信息表:该表记录了目录的相关信息,包括目录名称,目录编号 图书信息表:该表记录了图书的相关信息,包括图书编号,图书名,图书简介,出版社,数量,会员价格,市场价格,折扣率,是否推荐,是否新品,目录编号,书本型号 订单信息表:该表记录了订单的相关信息,包括订单编号,图书编号,图书名称,购买数量,单价,折扣率,支付金额,收货人,送货地址,联系电话,邮编,支付方式,快递方式,下单时间,下单者编号 公告信息表:该表记录了公告的相关信息,包括公告标题,内容 用户信息表:该表记录了用户的相关信息,包括用户名,密码,问题提示,问题答案,昵称,身份证号,手机号码,座机号,qq,

7、邮编地址,地址,注册时间根据上面的逻辑结构设计,设计相应的表结构如下所示 管理员信息表:该表记录了管理员的相关信息,包括用户名,密码 表结构如下:tb_admin字段说明类型(长度)备注id用于统计总记录数int自动编号(主键)name用户名varchar(50)不为空pwd密码varchar(50)不为空 目录信息表:该表记录了目录的相关信息,包括目录名称,目录编号 表结构如下: tb_class字段说明类型(长度)备注id目录编号int主键(不为空)name目录名varchar(20)无图书信息表:该表记录了图书的相关信息,包括图书编号,图书名,图书简介,出版社,数量,会员价格,市场价格,

8、折扣率,是否推荐,是否新品,目录编号,书本型号表结构如下: tb_commo字段说明类型(长度)备注id用于统计总记录数int主键(不为空)name图书名varchar(50)不为空pics图片名varchar(200)不为空info图书简介text不为空addtime添加日期datetime不为空area出版社varchar(50)不为空model书本型号varchar(50)不为空classid目录编号int不为空brand作者varchar(50)不为空stocks数量int不为空m_price市场价格float不为空v_price会员价格float不为空fold打折率float不为空i

9、svew是否新品int无isnom是否推荐int无订单信息表:该表记录了订单的相关信息,包括订单编号,图书编号,图书名称,购买数量,单价,折扣率,支付金额,收货人,送货地址,联系电话,邮编,支付方式,快递方式,下单时间,下单者编号 tb_form 表结构如下: 字段说明类型(长度)备注id用于统计总记录数int主键(不为空)formid订单编号varchar(50)不为空commo_id图书编号varchar(200)不为空commo_name图书名称varchar(200)不为空commo_num图书数量varchar(200)不为空agoprice单价varchar(50)不为空fold折

10、扣率varchar(50)不为空total支付金额varchar(200)不为空vendee处理人varchar(50)不为空taker收货人varchar(200)不为空address收货地址varchar(200)不为空tel联系电话varchar(20)不为空code邮编varchar(10)不为空pay_method支付方式varchar(20)不为空del_method快递方式varchar(20)不为空formtime下单时间datetime不为空state订单状态int不为空userid下单者编号int不为空公告信息表:该表记录了公告的相关信息,包括公告标题,内容 表结构如下tb

11、_public字段说明类型(长度)备注id用于统计总记录数int自动编号(主键)content公告类容text不为空addtime添加时间datetime不为空title公告标题varchar(50)不为空用户信息表:该表记录了用户的相关信息,包括用户名,密码,问题提示,问题答案,昵称,身份证号,手机号码,座机号,qq,邮编地址,地址,注册时间 表结构如下 tb_user字段说明类型(长度)备注id用于统计总记录数int主键(不为空)name用户名varchar(50)不为空password密码varchar(50)不为空question问题提示varchar(50)不为空answer问题答案

12、varchar(50)不为空realname昵称varchar(50)不为空card身份证号varchar(20)不为空tel手机varchar(20)不为空phone座机varchar(20)不为空qqqqvarchar(10)不为空code邮编varchar(10)不为空address通信地址varchar(200)不为空addtime注册时间datetime不为空isfreeze是否冻结int无shopping订单状态varchar(200)无 根据以上的分析,可以作出各表的关系图,如图 2-6 所示。在建立数据表的过程中应尽量避免冗余,并且在各相关的表之间建立约束,以从数据库本身来避

13、免数据冲突,保持数据的完整性和一致性。图 26 数据库关系图2.2 系统模块设计模块设计的主要方法是结构化方法,主导思想是以系统的逻辑功能设计和数 据流关系为基础,采用“自顶向下,逐步求精”的设计方法,将本系统分解为功 能明确,易于修改,大小适中的模块结构。 本系统主要分为二大模块:网上购书模块,图书后台管理模块。系统各模块功能图如下所示:前台购书模块如上图:27后台管理如上图:2-8系统各模块功能说明:前台设计1、浏览图书模块无论有没有注册帐号,只要登入网站,就可以浏览图书,查看图书相关信息。2、购书模块当读者浏览到相关感兴趣的书籍,想要购买点击购买菜单,系统会提示请登入。有账号的直接登入,

14、登入后加入购物车,根据系统提示会一步步提交相应信息,提交后付完款,生成订单。提交到数据库。3、修改密码当用户感觉自己密码不太安全时,可以重新设定密码,设定密码后,会把信息提交到数据库,将原来的密码字段做出相应修改。下次登入是直接是修改后的密码这也增加了用户的账户安全4、 注销模块当用户登入后,不用购书,只是浏览书籍信息时,不需要登入,为了帐号安全会使用注销模块。当注销后 帐号的信息将从session中清除,这也为用户的帐号安全提供了一些安全保护 后台设计1、登入模块 当管理员需要管理图书处理订单时,必须先登入,当登入后才有权利进入后台管理界面。管理员的帐号在数据库中有一个原始帐号,当管理员登入

15、后会初始化管理员帐号,对管理员的帐号进行管理2、类别管理模块当管理员进入后台管理界面后,对图书的类别进行管理,可以添加,删除图书类别3、图书管理当管理员进入后台管理界面后,对图书信息进行管理,可以查看,添加,删除图书。4、订单管理当管理员进入后台管理界面后,对数据库中的订单信息进行管理,可以处理,删除订单。5、用户管理当管理员进入后台管理界面后,对数据库中的所有用户进行管理,可以查看,删除会员,删除,添加管理员。3.系统实现3.1 实现概况我们的网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。一个典型的网上商城一般都需要实现商品信息的动态展示、购物车管理、客户信息注册登录管理、订单

16、处理等模块。其中大致分为两个登陆模块:用户登陆、管理员登陆;其中还包括图书查询需求当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者住处快速查询所需书目信息的功能;购物车管理需求;当客户选择购买某图书产品时,应该能够将对应图书信息,例如:价格、数量记录到购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对购物订单生成后,应该能够自动清除以生成订单的购物车中的信息;清单处理需求对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记

17、录,以便于网站配货人员依据订单信息进行后续的出货、送货和处理;本系统还实现了两个用户登陆的入口;用户登陆和管理员登陆;用户登陆只可以实现基本的购书情况,例如一些图书分类查询,图书的详细信息,用户自己的基本信息,以及用户本身的收货地址等信息;然而管理员可以进行图书的增加,删除,修改等等操作;3.2 登录模块3.2.1 程序流程图不同的用户在使用该系统时,都要选择不同的登录身份,以取得不同的使用权限。在我们的网上书店首页中有普通用户的登陆入口,同时我们还加入了管理员登陆的入口,其中管理员登陆采用的是控件linkbutton;将此处的管理员登陆跳转到backlogin.aspx这个管理员登陆的界面,

18、这样做方便了用户和管理员的登陆;其中管理员的登陆账号和密码均可在数据库表tb_admin中添加;用户的登陆账号以及密码均保存在数据库表tb_user中;这里的用户的默认登陆账号和密码我们分别设置成了user、user;管理员的默认登陆账号和密码也分别设置成了admin、admin;其中普通用户登陆流程图如下:3 .2.2 关键代码管理员登录子系统的关键页面是backlogin.aspx。这个页面为一个功能模块,根据用户权限的不同,根据自动匹配数据库tb_admin中的用户名,密码来实现管理员的登陆:管理员登陆实现代码: / <summary> / 登录 / </summary

19、> / <param name="sender"></param> / <param name="e"></param> protected void btnlogin_click(object sender, eventargs e) if (this.username.text = "" | this.userpass.text = "") this.lblmanage.text = "用户名或密码不能为空" else adminbll

20、abll = new adminbll(); tb_admin tbmodel = new tb_admin(); tbmodel = abll.getuser(this.username.text); if (tbmodel != null) if (tbmodel.pwd != this.userpass.text) this.lblmanage.text = "用户名或密码不正确; return; else session"tbmodel" = tbmodel; response.redirect("booktypeadd.aspx");

21、 else this.lblmanage.text = "用户名不存在" 普通用户登陆实现代码: / <summary> / 登录 / </summary> / <param name="sender"></param> / <param name="e"></param> protected void imagebutton1_click(object sender, imageclickeventargs e) if (this.username.text =

22、 "") this.lblmanage.text = "用户名不能为空" return; if (this.pwd.text = "") this.lblmanage.text = "密码不能为空" return; user = usbll.getuser(this.username.text); if (user != null) if (user.password = this.pwd.text) this.lblusername.text = ; this.realname.text = u

23、ser.realname; session"user" = user; viewstate"user" = user; httpcookie ck = new httpcookie("user"); ck.value = user.id.tostring(); response.cookies.add(ck); this.linkbutton7.visible = true; stringbuilder str = new stringbuilder(); str.append("<script type='t

24、ext/javascript'>"); str.append(" document.getelementbyid('usermanage').style.display='block'"); str.append(" document.getelementbyid('login').style.display='none'"); str.append("</script>"); page.clientscript.registersta

25、rtupscript(this.gettype(), "key", str.tostring(); else this.lblmanage.text = "用户名或密码不正确; return; else this.lblmanage.text = "用户名不存在" return; 3.3用户购书模块3.3.1 程序流程图用户购书模块是网上书店系统的基础,它除了提供用户注册功能,用户浏览图书大致信息的功能以外还提供了用户下订单,人性化的购物车功能,还实现了支付功能核心母版页面是 index.master;其流程图如下所示:3.3.2 关键代码 用

26、户界面中,提供了图书分类浏览,查看图书详情,购买模块;账户的注销,防止网页保存了密码,注销按钮保证了用户账号的安全性;当然此系统也提供了购物车;会将用户即将购买的书本保存在购物车里; / <summary> / / </summary> / <param name="sender"></param> / <param name="e"></param> protected void imagebutton2_command(object sender, commandeventarg

27、s e) if (session"user" = null) page.clientscript.registerstartupscript(this.gettype(), "key", "<script>alert('您尚未登录不能购买,请登录再购买);</script>"); else tb_user user = (tb_user)viewstate"user" int commid = int.parse(e.commandname.tostring(); tb_commo

28、com = combll.getmodel(commid); if (viewstate"car" != null) datatable dt = (datatable)viewstate"car" datatable dt1 = sc.getshopcar(dt, com); session"car" = dt1; else datatable d1 = new datatable(); datatable dt = sc.getshopcar(d1, com); session"car" = dt; respo

29、nse.redirect("shopingcar.aspx"); 3.4 管理员模块 3.4.1 程序流程图 本页面是管理员登陆后台操作界面之后进行各种管理活动的页面,包括:用户管理(添加用户、查看用户),图书管理(新书上架、图书查看、图书统计),订单管理(订单查看、订单统计),公告管理,在管理员界面也可以返回到一般用户界面,最后一项是退出系统。3.4.2关键实现代码 用户管理:添加用户,本功能不是添加普通客户,而是添加管理员,包括管理员的权限,姓名,性别等一些信息。查看用户,查看的是所有人的用户,包括客户和管理员,以表格的形式方便管理员查看,并且进行分页显示。图书管理:新

30、书上架,发布新书的信息,包括书名,出版社,作者,图片,图书介绍以及价格,这样就会在客户的页面显示新增的图书信息;图书查看:以表格形式展示了所有数据库存在的图书,以及他们的各种信息,并且进行了分页显示;订单管理:订单查看,以表格形式将客户的订单显示出来,并显示是否发货,点击发货按钮,在是否发货一栏下就会自动改成已发货,这样,管理员就可以一幕了然的知道订单的信息了,此表格也进行了分页显示;using system;using system.collections;using system.configuration;using system.data;using system.linq;using

31、 system.web;using system.web.security;using system.web.ui;using system.web.ui.htmlcontrols;using system.web.ui.webcontrols;using system.web.ui.webcontrols.webparts;using system.xml.linq;using bookshopbll;using bookshopmodel;public partial class addbook : system.web.ui.page classbll cbll = new classb

32、ll(); commobll combll = new commobll(); tb_commo tbcom = new tb_commo(); protected void page_load(object sender, eventargs e) if (!ispostback) this.addtime.text = datetime.now.tostring("yyyy-mm-dd"); this.bindbookclass(); / <summary> / 书本类型 / </summary> private void bindbookcla

33、ss() dataset ds = cbll.getlist(""); if (ds.tables0 != null && ds.tables0.rows.count > 0) foreach (datarow row in ds.tables0.rows) listitem item = new listitem(); item.value = row"id".tostring(); item.text = row"name".tostring(); this.bookclass.items.add(item)

34、; / <summary> / 添加书本 / </summary> / <param name="sender"></param> / <param name="e"></param> protected void btnadd_click(object sender, eventargs e) if (this.name.text = "") this.lblmanage.text = "书本名称不能为空" return; if (this.

35、fulimage.hasfile = true) string type = this.fulimage.filename.substring(this.fulimage.filename.lastindexof('.'); string name = datetime.now.tostring("yyyymmddhhssmm"); string path = this.mappath("images/"); this.fulimage.saveas(path + name + type); tbcom.pics = "imag

36、es/" + name + type; else tbcom.pics = "" tbc = this.name.text; tbcom.model = this.model.text; if (this.m_price.text != "") tbcom.m_price = convert.todecimal(this.m_price.text); tbcom.isnom = int.parse(this.isnom.selectedvalue); tbcom.isnew = int.parse(this.isnew.selec

37、tedvalue); tbc = .text; if (this.fold.text != "") tbcom.fold = convert.todecimal(this.fold.text); tbcom.classid = int.parse(this.bookclass.selectedvalue); tbcom.brand = this.brand.text; tbcom.addtime = datetime.now; tbcom.area = this.address.text; if (this.num.text != "

38、;") tbcom.stocks = int.parse(this.num.text); if (this.v_price.text != "") tbcom.v_price = convert.todecimal(this.v_price.text); if (combll.exists(this.name.text) != true) this.lblmanage.text = "书本已存在" else combll.add(tbcom); this.lblmanage.text = "添加成功" 3.5 其他模块简介本

39、系统中所有模块的功能如下所示:(1) 首页:实现将整个系统回到首页信息。(2) 最新图书:列出管理员刚刚添加的一些新书。(3) 购物车:将购买者的即将购买的书导入购物车中,方便用户的浏览和支付。(4) 注销:将普通用户的账号密码注销,返回到登陆界面。(5) 后台管理:根据用户权限的不同,根据自动匹配数据库tb_admin中的用户名, 密码来实现管理员的登陆。(6) 修改个人信息:这个模块是可以修改用户在注册的时候添加的一些个人信息,一旦以后有改动可以在这里修改。(7) 修改密码:用户可以在这里修改自己想要的密码,用户自己需要定期更换密码,以保证用户的安全性。(8) 分类浏览:方便用户查讯自己感

40、兴趣的书籍。(9) 公告:这里是比较人性化的设计,以方便用户知道有什么新书要到了。(10) 后台管理登陆:这里是方便管理登陆的入口。(11) 用户管理:添加用户,本功能不是添加普通客户,而是添加管理员,包括管理员的权限,姓名,性别等一些信息。(12)管理员管理:这里本系统只提供了管理员的删除与添加。(13) 查看用户:查看的是所有人的用户,包括客户和管理员,以表格的形式方便管理员查看,并且进行分页显示。(14) 图书管理:新书上架,发布新书的信息,包括书名,出版社,作者,图片,图书介绍以及价格,这样就会在客户的页面显示新增的图书信息。(15) 图书查看:以表格形式展示了所有数据库存在的图书,以

41、及他们的各种信息,并且进行了分页显示。(16) 订单管理:学生在选课时段内可以及时退课。(17) 订单查看:以表格形式将客户的订单显示出来,并显示是否发货,点击发货按钮,在是否发货一栏下就会自动改成已发货,这样,管理员就可以一幕了然的知道订单的信息了,此表格也进行了分页显示;3.6 系统界面设计3.6.1 系统首页在首页中可以实现用户登录功能,图书查看,最新图书查看,推荐图书,购物车等功能。其界面如下所示:3.6.2 购书主界面购物主要实现页面是shopingcar.aspx,此界面可以显示图书的名称、数量、单价、打折率;其界面如下所示:3.6.3 管理员登陆主界面:此模块提供图书管理员的登陆,主要实现页面为backlogin.aspx;其界面如下所示:3.6.4管理员

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论