1、网上图书购物系统_软件设计实践_报告实 训/ 实 验 内 容 与 要 求 通过实现一个完整的软件,体验软件项目开发的工作流程,加深对相关理论知识的理解,提高实际分析设计能力。完成软件的需求分析、架构设计、模块划分并编程实现。指导教师:指 导 教 师 评 语 成绩: 指导教师:_ 年 月 日1需求分析在当下的信息技术时代,消费者大众越来越热衷于阅读书籍,从书籍中获取更多的知识。但是现在的实体书店越来越少了,造成了很多消费者很难购买到图书。而且实体书店有房租、店员工资、库存管理等运营成本,造成了图书的销售价格过高,消费者不愿花费太多的钱在购买图书上,整体导致实体书店经营困难。考虑到现在消费者都有网
2、上购物的习惯,所以开发了这个图书销售系统,方便消费者浏览和购买图书。作为一个图书商城管理系统,不仅要求便于管理,而且要求为用户和管理员提供方便快捷的查找、购买、更改等功能,提高工作效率。商城管理人员可以浏览、查询、删除、修改等操作。具体功能:设计用户的登陆权限和登陆方法。对所有的用户开放浏览购买等功能。用户查看更改自己的用户信息。商城管理人员对信息和数据库进行维护,包括信息的增删改。要进行统一的管理,也要求具有很强的时效性。一方面,对图书的种类和图书的销售情况进行实时掌握;另一方面,要减少内容的重复,做到图书种类的齐全,对书籍进行有效的管理,提高商城管理有效的利用。2详细设计2.1 系统功能本
3、系统主要针对两种用户,一个是消费者,一个是图书管理员。消费者可以进行登录,修改密码,分类浏览、分类模糊搜索(只需要输入关键字就可以搜索出含有该关键字的相关图书)图书信息,支持组合查询,可以将图书名称、作者名、出版社名组合起来进行查询,将需要购买的图书添加进购物车,提交订单,查看订单等功能。 图书管理员也可以进行登录,修改密码,还能添加、修改、删除、查看图书信息与图书类别,对订单进行处理。消费者系统如图2-1所示.消费者系统图2-1管理员系统如图2-2所示。图书管理系统图2-22.2 详细设计1系统登录,要求用户在登录时必须输入正确的用户名和密码。 2注册功能,要求用户在注册时应输入用户名、密码
4、、二次输入密码,其中用户名、密码均不能为空且不能与已存在的用户名冲突。3修改密码功能,用户需要修改密码时。如果用户名、原始密码验证成功,则允许密码重置,否则密码重置失败。4. 图书信息搜索功能,用户可以输入关键字对图书名称进行模糊搜索,支持组合条件查询,可以使用图书名称、作者名、出版社名三者形成组合条件进行查询,搜索成功则展示图书,若搜索不到结果,则提示用户没有此图书。5. 图书信息查看功能,用户可以点击某本图书,查看该图书的基本信息,如图书名称、图书作者、出版社名称。6. 购物车管理功能,消费者找到需要购买的图书后,可以点击相应按钮将其加入到购物车,购物车可同时放入多本不同种类图书,同时在购
5、物车中还能增加、减少图书购买数量。 7. 查看订单功能,用户在登录系统后,可以查看订单状态,订单状态包括已支付,未支付。消费者的主要功能功能如图2-3图2-33数据库设计3.1完整性和安全性系统安全性要求体现在数据库的安全性、信息的安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户拥有不同的视图权限,这样可提供数据库在一定程度上的安全性,在通过分配权限、设置权限级别来区分对待不同的访问对象,来实现对数据库操作的安全要求;系统平台的安全性体现在操作系统安全和网络安全等方面,通过加强系统平台的安全性,才能更好地保证数据库的正常运行工作。完整性要求是,要求系统中的数据的正确性以及相容性
6、。通过建立主、外键,时用约束语句,或是使用触发器和级联更新等。3.2 数据字典数据项是系统的显示单位,即不可再分的单元。本系统的数据定义为:表2-1管理员信息表名字Admin别名管理员描述储存管理员的各项信息定义管理员信息=ID密码备注记录管理员信息表2-2图书信息表名字BookInf别名图书描述储存图书的各项信息定义图书=书号+图书名+作者+出版商+价格+库存+ 类别+图片备注记录图书信息表2-3用户信息表名字User别名消费者描述储存消费者的各项信息定义消费者= ID密码名字+地址+邮箱号+电话备注记消费者信息表2-4订单信息表名字OrderForm别名订单描述订单各项信息定义订单=订单编
7、号+用户号+书号+下单时间+结算价格+图书数量+付款状态备注记录订单信息表2-5充值信息表名字Recharge别名消费者充值描述消费者充值信息定义充值充值编号消费者帐号金额+充值时间备注记录充值表信息3.3物理结构设计数据库在物理设备上的存储结构域存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统,为了一个给定的数据库模型选取一个合适的应用要求的数据结构的过程是数据库的物理设计。数据库的物理设计主要分两步:一步是确定数据库的物理结构,在关系数据库中主要存取方法和存储结构;另一步是对数据结构进行评价。根据题目的要求设计的数据库 的物理结构如下:系统数据库命名为Book数据库中的数据表有:
8、图书信息表,管理员信息表,用户信息表,订单信息表,订单商品信息表;表3-7图书信息数据表字 段 名数 据 类 型 长 度主 键描 述BookId varchar50是图书编号BookNamevarchar50否书名BookAuthorvarchar50否作者BookPressvarchar50否出版社Imagevarchar50否图片地址BookClassvarchar50否 类别Bookpricevarchar50否价格Bookstockvarchar50否库存表3-8管理员信息数据表字段名数据类型长度主键描述AdminIdVarchar50是管理员编号AdminPwdVarchar50否密
9、码表3-9用户信息数据表字段名数据类型长度主键描述UserIdVarchar50是用户编号UserNameVarchar50否昵称UserPwdVarchar50否密码UserTelVarchar50否电话UserAddrVarchar50否住址UserPostVarchar50否邮编表3-10订单信息数据表字段名数据类型长 度主键描 述OrderIdInt是订单号UserIdvarchar50否用户IdBookIdvarchar50否图书标号BookNamevarchar50否书名OrderDateDatetime否时间IsConfirmvarchar50否是否付款ExpenditureMo
10、ney否金额NumberInt50否数量表3-11订单详细信息数据表字段名数据类型长度主键描述Id Int是记录编号UserIdvarchar50是用户编号IMoneySmallmoney否消费记录IdatetimeDatetime否充值时间表3-12用户余额信息表字段名数据类型长度主键描述UserIdVarchar50是用户编号UserBlanceSmallmoney否用户余额4系统实现图书销售管理系统是典型的信息系统,其开发包括后台的数据库的建立、维护以及前台应用程序的开发两个方面:一方面要求建立数据一致和完整性强、数据安全性高的数据库;另一方面要求应用程序具有功能简单、实用。图书管理涉及
11、图书信息、用户信息、系统用户信息等多种数据的管理。管理可分三类:图书信息管理、用户信息管理、和系统用户管理。4.1 用户登录界面输入用户名和密码,经过数据库的验证即可登录到主页面,登陆界面设计不同用户的登陆权限和登陆方法。对所有的用户开放图书的浏览功能。查看自己的信息。用户登录界面如图4-1。图4-1主要代码如下:public partial class _Default : System.Web.UI.Page /创建公共类DBClass一个新实例对象 DBClass dbObj = new DBClass(); protected void Button1_Click(object sen
12、der, EventArgs e) if (this.Username.Text.Trim() != | this.Userpwd.Text.Trim() != ) /定义一个字符串,获取用户信息 string usertest = select * from Users where UserId= + Username.Text + ; DataTable dstTable = dbObj.GetDataSetStr(usertest, tbUsers); /判断用户是否存在 if (dstTable.Rows.Count = 0) useridtest.Text = 该用户不存在; els
13、e string userlogin = string.Format(select * from Users where UserId=0 and UserPwd=1, Username.Text, Userpwd.Text); DataTable dslTable = dbObj.GetDataSetStr(userlogin, tbUsers); if (dslTable.Rows.Count = 0) useridtest.Visible = false; userpwdtest.Visible = true; else SessionUserId = dslTable.Rows00.T
14、oString();/保存用户ID SessionUserName = dslTable.Rows01.ToString();/保存用户名 Response.Write( alert(登录成功!); location=./zhuye2.aspx;); /Response.Redirect(./zhuye2.aspx); else useridtest.Visible = true; useridtest.Text = 用户名不能为空; 4.2用户查看图书界面用户网上购买图书,查看图书信息。如图4-2图4-2主要代码:public partial class zhuye2 : System.We
15、b.UI.Page CommonClass ccObj = new CommonClass(); DBClass dbObj = new DBClass(); protected void Page_Load(object sender, EventArgs e) if (!Page.IsPostBack) getchanpin(); if (SessionUserId != null) LinkButton2.Text = SessionUserName.ToString(); LinkButton2.PostBackUrl = /users/updatainf.aspx; protecte
16、d void LinkButtonPrev_Click(object sender, EventArgs e) this.LabelPage.Text = Convert.ToString(int.Parse(this.LabelPage.Text) - 1); getchanpin(); protected void LinkButtonNext_Click(object sender, EventArgs e) this.LabelPage.Text = Convert.ToString(int.Parse(this.LabelPage.Text) + 1); getchanpin();
17、protected void LinkButtonLast_Click(object sender, EventArgs e) this.LabelPage.Text = this.LabelTotalPage.Text; protected void LinkButtonFirst_Click(object sender, EventArgs e) this.LabelPage.Text = 1; getchanpin(); private void getchanpin() string strSql = getstring(); /string strSql = select * fro
18、m BookInf order by BookId ; DataTable dsTable = dbObj.GetDataSetStr(strSql, tbMember); PagedDataSource obj = new PagedDataSource(); obj.DataSource = dsTable.DefaultView; obj.AllowPaging = true; obj.PageSize = 4; int dpage = Convert.ToInt32(this.LabelPage.Text); obj.CurrentPageIndex = dpage - 1; if(o
19、bj.CurrentPageIndex 0) Response.Write(ccObj.MessageBoxPage(该?用?户已?存?在!?); else string strId = this.TxtName.Text.Trim(); string strname = this.txtPassWord.Text.Trim(); string strAdd = this.TextBox1.Text.Trim(); string strPost = this.TextBox2.Text.Trim(); string strPwd = this.TextBox3.Text.Trim(); str
20、ing strTel = this.TextBox5.Text.Trim(); string strAddSql = insert into Users(UserId,UserName,UserAddr,UserPost,UserPwd,UserTel) ; strAddSql += values( + strId + , + strname + , + strAdd + , + strPost + , + strPwd + , + strTel + ) insert into Balance (UserId,UserBalance) values( + strId + ,0); SqlCom
21、mand myCmd = dbObj.GetCommandStr(strAddSql); myCmd.Connection = strSq; strSq.Open(); myCmd.ExecuteNonQuery(); Response.Write(alert(注册成功|!?);window.location.href=Logind.aspx;); 4.4用户订单界 用户可以查看已支付和未支付订单,如图4-4。图4-4string conbuy = select Expenditure ,Number from OrderForm where OrderId= + TextBox1.Text
22、+ ; DataTable bbTable = dbObj.GetDataSetStr(conbuy, tbOrderForm); if (bbTable.Rows.Count != 0) string combuy = select UserBalance from Balance where UserId= + SessionUserId + ; DataTable bbyTable = dbObj.GetDataSetStr(combuy, tbBalance); float a = float.Parse(bbTable.Rows00.ToString(); float b = flo
23、at.Parse(bbyTable.Rows00.ToString(); if (a b) Response.Write(alert(余额?不?足?!?请?充?值);window.location.href=recharge.aspx;); else SqlConnection strSql = dbObj.GetConnection(); SqlCommand updCmd = new SqlCommand(); strSql.Open(); Response.Write(Sessionbooknum); updCmd.CommandText = declare i int select i = (select Expenditure from OrderForm where OrderId= + TextBox1.Text + ) update Balance set UserBalance= + bbyTable.Rows00+ -i where UserId= + SessionUserId +
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1