软件课程设计——B2C网上购物商城设计报告.doc_第1页
软件课程设计——B2C网上购物商城设计报告.doc_第2页
软件课程设计——B2C网上购物商城设计报告.doc_第3页
软件课程设计——B2C网上购物商城设计报告.doc_第4页
软件课程设计——B2C网上购物商城设计报告.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

软件课程设计 B2C网上商城的实现参 与 人:张鑫 U200913878 周晨 U200913881 谢金水 U200913863所在班级:通信0904 班指导教师:江国星 二一二年二月35(本课程设计由张鑫、周晨、谢金水三人合作共同完成。其中张鑫负责完成网站的总体规划、概要设计以及后期课程验收PPT演示;谢金水负责完成网站需求分析、数据结构算法实现以及后期网站展示PPT的制作;周晨负责完成数据库的制作、页面设计以及设计文档的编写。网站源程序由三人共同编写完成。特此说明。)目录第一章 需求分析21.1引言21.1.1编写目的21.1.2背景21.1.3定义21.1.4参考资料21.2任务概述21.2.1目标21.3需求规定31.3.1功能需求31.3.2性能需求31.4运行环境规定31.4.1设备31.4.2支持软件41.5系统设计分析4第二章 系统设计52.1总体功能设计52.2详细设计62.2.1 系统模块介绍62.2.2系统模块程序流图 人员信息管理 商品呈现模块 购物车模块 商品管理模块 订单管理模块92.2.3系统模块需求分析10第三章 系统测试实现和界面效果113.1用户模块测试113.2管理员模块测试14第四章 程序设计源代码164.1顾客注册功能的实现164.2人员信息的维护174.3商品呈现功能的实现204.4购物车功能的实现214.5商品信息管理功能实现254.6订单信息管理功能实现30心得体会33第一章 需求分析1.1引言1.1.1编写目的本需求说明书将就网站在构建前所需达到的要求进行归纳性的需求分析,以便在开展工作前广泛征求意见和建议,为以后的程序设计打好坚实的基础。本需求的预期读者是与网站开发有联系的决策人、项目承担者、开发组成人员、辅助开发者、软件验证者。1.1.2背景B2C网上购物商城。本学期课程设计项目。 1.1.3定义1.1.4参考资料 /view/fd910643336c1eb91a375de1.html 1.2任务概述1.2.1目标开发目标能够基本实现课设要求的网站的基本功能1.3需求规定 1.3.1功能需求l 游客可以浏览网站l 用户注册l 用户登录l 用户能够浏览网站l 提供搜索引擎,使用户能根据特定的条件对所需商品进行搜索l 用户能对自己的注册资料进行修改l 用户下订单购买商品l 用户处理订单l 用户查看订单处理步骤l 管理员登录l 管理员权限:商品管理(添加/删除商品、商品类别管理、商品信息处理)、管理用户资料、管理订单、处理订单l 用户可随时修改自己的密码和其他个人信息l 管理员在线编辑,管理工作轻松随意1.3.2性能需求u 性能 本系统的用户在每次访问该站点时都应能体验到始终如一的性能u 可靠性 本系统要求应用程序在任何时刻都能够精确数据的能力,比如保持数据的原子性、持久性和一致性等u 可用性 系统应处于开启和运行状态,且应无任何故障u 可扩展性 系统应既能向上扩展又能向外扩展u 可管理性 系统应有一个管理界面,用于对用户、订单等相关信息进行修改1.4运行环境规定1.4.1设备a. 一台586以上的微机及兼容机b. 内存128M(实际2.0G内存)c. 14寸LED显示频1.4.2支持软件d. Windows 98 以上操作系统e. WPS 2012 应用软件1.5系统设计分析首先,我们需要描述的是系统的总的体系结构。在系统的概要设计中我们采用结构化设计。我们首先将整个系统划分为几个小问题,小模块。在系统中,我们把系统分为两大块,用户的前台使用和管理员的后台管理。在设计阶段中,我们从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念模式从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低。第二章 系统设计2.1总体功能设计 根据网站设计需求分析,我们把本购物系统分为以下几大模块:人员信息管理、商品呈现、购物车、商品管理、订单管理。如图所示。注册顾客信息人 员 信 息 管理模块 顾客信息维护管理员信息维护订单查询显示商品添加添加购物信息订单处理更新删除商品购物清单信息显示分类快捷展示商品商品查询商 品 管 理模块B2C系统商 品 呈 现 模块购 物 车 模块订 单 管 理模块2.2详细设计2.2.1 系统模块介绍 文件名 功能 文件名 功能Default.asp商品展示EditProduct.asp商品信息编辑AddUser.asp注册登录Left.asp注销退出ChangePassword.asp密码修改OrderList.asp订单详情CheckOut.asp结账付款OrderModify.asp订单状态修改GoodsDetail.asp各种商品详细资料Product.asp商品模块UsersDetail.asp用户详细资料Top.asp即时更新显示AdminIndex.asp管理员目录UserManege.asp用户管理AdminManage.asp管理员操作2.2.2系统模块程序流图 首页 登录 用户注册 合法 用户 搜索商品 购买商品 订单 确认 修改订单 付款以下依次列出人员信息管理、商品呈现、购物车、商品管理和订单管理5大模块的详细设计流程。 人员信息管理人员信息管理是用来实现B2C网上购物系统的顾客在线注册、顾客信息管理和管理员信息管理等3个功能。人员信息管理模块的流程如图所示。 用户注册 用户登录 否是是 搜索购物 会员管理 是否管理员 商品呈现模块商品呈现模块的功能是将系统中的商品在网站首页显示出来,提供多种供用户查询自己所需商品的方法。流如图所示。 结束 开始 设置检索条件 显示符合条件的商品 购物车模块网上购物车模块实现顾客的购物过程,提供类似于超市中小购物车的功能,用来搜集顾客选中的商品,一块结账。并实现比商场的传统购物车更方便的功能:顾客可以多次购物,购物车会记录下每次顾客选中的商品,下次登录时可以继续购物,多次一块结账,而不需要像逛超市一样,每次要重新推一个空的购物车重新选购。网上购物车模块流程如图所示。否是 是否继续购买 结束 商品呈现 商品查询 开始 购物车结账 商品管理模块商品管理模块的功能是录入要销售的商品信息,如名称、种类、价格、图片等信息,然后对录入的商品进行修改、删除等维护操作。商品管理模块流程如图所示。 开始否是 结束 是否维护 录入商品 商品查询 删除或修改商品 订单管理模块订单管理模块的功能是查询客户订单,核对订单信息,对订单进行处理。订单管理模块流程如图所示。否否是是 订单归档 是否已收货款 结束 是否发货 核对订单信息 按客户或订单编号检索 开始 2.2.3系统模块需求分析网上购物系统的需求,由用户、管理人员两个方面。电子购物网站可简单的划分为2个部分,如图所示。 主页 管理人员 用户管理人员的管理功能网站管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对商品信息、购买者信息管理和统计查看及维护。商店管理员可以浏览、查询、添加、删除、修改、统计商品的基本信息,如图所示。 用 户 注 册 用 户 登 录 购 物 车 用 户 注 销 商 品 更 新 管理人员 用 户 管 理用户的管理功能用户者的需求是查询商店所存的商品、个人购买情况及个人信息的修改。用户可以在系统中实现注册、浏览商品、搜索查询商品、下订单、处理订单等功能。用户的管理功能划分如图所示。 统 计 信 息 订 单 资 料 购 物 资 料 修 改 密 码 收 货 资 料 个 人 资 料 用户管理第三章 系统测试实现和界面效果 各项设置完成后,确定整个系统准确无误,我们在本地计算机运行网站后出现系统界面进行测试,以下是测试的界面效果和功能模块截图。3.1用户模块测试v 系统模块主页面在主页面中我们可以看到网站的Logo、登录窗口、商品的分类链接、条件搜索栏、购物车链接等。v 用户注册 点击左上角登录窗口下方“注册”按钮,我们进入用户注册界面。用户注册表栏的项目包含用户名、密码、重复密码、联系电话、Email五个项目。全部填写完成后点击“提交”即可完成注册。注册信息保留在数据库中。v 登录界面 登录界面位于主页面左上角Logo正下方,将刚才注册的用户名和密码或已有用户名和密码输入后即可完成登录,登录成功后欢迎界面如图: v 购物车界面 用户登录并浏览商品,点击要购买的商品图片下的“购买”,即可成功将物品放入购物车,购物车界面如下: 此时若想结束购买,点击“结账”按钮,即可下订单,此时按要求输入地址、联系方式、邮编等基本信息,即可完成对商品的购买,等待发货。3.2管理员模块测试v 系统后台界面 在登录窗口以管理员身份登录,用户名admin初始密码000,即可进入后台管理界面,对订单、商品、人员进行相关的管理。后台界面如下:v 商品管理 点击进入商品管理,即可进行对商品的添加、删除等操作,商品添加包含商品的名称、类别、计量单位、价格、商品图片的上传以及商品信息的描述等项目,图片如下:v 订单管理点击订单管理进入相关管理界面,即可对用户提交的订单进行状态变更和删除的操作,订单所包含的名目已详细给出,包括购买商品信息,购买人信息,收款人信息,订单状态等。如图所示: v 用户管理点击进入人员管理界面,即可对系统进行维护,以及对注册用户信息进行管理,包括删除注册的用户,如图所示: 经过我们对所设计的B2C购物系统各模块的实际测试和体验,知道其功能基本齐全,无设计硬伤,无异常错误,总体上满足设计要求。第四章 程序设计源代码4.1顾客注册功能的实现/*顾客的注册功能,包括基本信息的录入,以及确认提交*/ protected void btnSubmit_Click(object sender, EventArgs e)stringsql=insertintoUSER(ID,NAME,PASSWORD,PHONECODE,EMAILS ,ADVANCEPAYMENT,ROLE) values(ID,NAME,PASSWORD,PHONECODE,EMAILS,ADVANCEPAYMENT,ROLE); SqlParameter parameters = new SqlParameter7; SqlParameter id = new SqlParameter(ID, SqlDbType.Char); DateTime tempTime = DateTime.Now; id.Value = tempTime.ToString(yyyyMMddhhmmss); parameters0 = id; SqlParameter name = new SqlParameter(NAME, SqlDbType.VarChar); name.Value = this.txtUserName.Text.Trim(); parameters1 = name; SqlParameter password = new SqlParameter(PASSWORD, SqlDbType.VarChar); password.Value = this.txtPassword.Text.Trim(); parameters2 = password; SqlParameterphoneCode= new SqlParameter(PHONECODE, SqlDbType.VarChar); phoneCode.Value = this.txtPhone.Text.Trim(); parameters3 = phoneCode; SqlParameter email = new SqlParameter(EMAILS, SqlDbType.VarChar); email.Value = this.txtEmail.Text.Trim(); parameters4 = email; SqlParameteradven= new SqlParameter(ADVANCEPAYMENT, SqlDbType.Float); adven.Value = 0; parameters5 = adven; SqlParameter role = new SqlParameter(ROLE, SqlDbType.Bit); role.Value = false; parameters6 = role; try int result = dbHelper.ExecuteNonQuery(sql, parameters); if (result = 1) Response.Write( alert(添加成功);); else throw new Exception(); catch Response.Write( alert(用户名已存在,请修改用户名!);); 4.2人员信息的维护/*在前台页面提供注册信息的输入,及非空验证*/*服务器对提交的注册信息进行逻辑处理,将合法信息保存到数据库中*/ using System;using System.Data;using System.Data.SqlClient;using System.Configuration;public class DataBaseHelper /声明数据连接对象和数据访问对象 private SqlConnection connection; private SqlCommand command; private SqlDataAdapter adapter;public DataBaseHelper() this.connection = new SqlConnection(ConfigurationManager.ConnectionStringsdb_EShopConnectionString.ConnectionString);/取得连接字符处; mand = new SqlCommand(); mand.Connection = this.connection; this.adapter = new SqlDataAdapter(command); public int ExecuteNonQuery(string sql) return ExecuteNonQuery(sql, new SqlParameter0); public int ExecuteNonQuery(string sql, SqlParameter param) mand.CommandText = sql; mand.Parameters.Clear(); for (int i = 0; i param.Length; i+) if(parami != null) mand.Parameters.Add(parami); int result = 0; try this.connection.Open(); result = mand.ExecuteNonQuery(); catch (Exception ex) throw ex; finally this.connection.Close(); return result; public DataTable Select(string sql, SqlParameter param) mand.CommandText = sql; mand.Parameters.Clear(); for (int i = 0; i param.Length; i+) if(parami != null) mand.Parameters.Add(parami); DataTable dtData = new DataTable(); /连接数据库取得数据,出现异常则像上级抛出; try this.adapter.Fill(dtData); catch (Exception ex) throw ex; return dtData; public DataTable Select(String sql) return this.Select(sql, new SqlParameter0); public static SqlParameter AddParameter(SqlParameter paramArray, SqlParameter param) Array.Resize(ref paramArray, paramArray.Length + 1); paramArrayparamArray.Length - 1 = param; return paramArray; /* 列出注册用户用户名、密码、电话、Email等信息*/*对录入的用户信息进行管理,包括删除等操作,可将无效用户提交数据库后从系统清除*/protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) gvMemberBind(); public void gvMemberBind() DataTable dt = new DataBaseHelper().Select(select * from user where role=0 order by name); gvUser.DataSource = dt; gvUser.DataBind(); protected void gvUser_PageIndexChanging(object sender, GridViewPageEventArgs e) gvUser.PageIndex = e.NewPageIndex; gvMemberBind();protected void gvUser_RowDeleting(object sender, GridViewDeleteEventArgs e) string name = gvUser.DataKeyse.RowIndex.Value.ToString(); string sql=delete from user where name=+name+ ; int i = new DataBaseHelper().ExecuteNonQuery(sql); if (i = 1) gvMemberBind(); 4.3商品呈现功能的实现/*根据传入的检索条件,进行商品的查询、数据的绑定*/private void query() string sql=select top 20 * from Goods where 1=1 ; if (!IsPostBack) if (RequestClass != null & RequestClass.ToString().Trim().Length 0) sql+=andclasslike%+Server.HtmlDecode(RequestClass.ToString().Trim() + % ; else if (ddlKind.SelectedIndex 0) sql += and class like % + ddlKind.SelectedValue.Trim() + % ; if(txtName.Text.Trim().Length0) sql += and name like % + txtName.Text.Trim() + % ; if (txtPriceMin.Text.Trim().Length 0) sql += and price = + txtPriceMin.Text.Trim(); if (txtPriceMax.Text.Trim().Length 0) sql += and price = + txtPriceMax.Text.Trim(); sql += order by class,name ; DataTable dt = new DataBaseHelper().Select(sql); dlResult.DataSource = dt; dlResult.DataBind();4.4购物车功能的实现/*分析购买的是哪个商品,将此用户购买信息存到数据库购物车表中,并以购物车的形式展现给顾客*/*在用户提出使用购物车功能时判断并提醒用户登录*/当购买商品时,获取商品信息public OrderItem GetSubGoodsInformation(DataListCommandEventArgs e, DataList DLName) /获取购物车中的信息 OrderItem Goods = new OrderItem(); Goods.ID = DLName.DataKeyse.Item.ItemIndex.ToString(); string GoodsInfo = e.CommandArgument.ToString(); Goods.Price = float.Parse(GoodsInfo); return (Goods);public void AddShopCartItem(DataListCommandEventArgs e, DataList DLName) if (SessionUSERNAME != null) OrderItem Goods = null; Goods = GetSubGoodsInformation(e,DLName); if (Goods = null) /显示错误信息 Response.Write(alert(没有可用的数);location=index.aspx;); return; else /取得当前购物车有无此已购商品 string sql =select * from ShopCart where GoodsID=GoodsID and UserName=UserName; SqlParameter parameters = new SqlParameter(GoodsID, SqlDbType.Char, 14), new SqlParameter(UserName, SqlDbType.Char, 50); parameters0.Value = Goods.ID; parameters1.Value = SessionUSERNAME.ToString().Trim(); int i=new DataBaseHelper().Select(sql,parameters).Rows.Count; if(i0 ) sql=update ShopCart set Num=(Num+1), SumPrice=(SumPrice+Price) where GoodsID=GoodsID and UserName=UserName; else sql = Insert into ShopCart(GoodsID,Num,SumPrice,UserName) values(GoodsID,1,Price,UserName); SqlParameter parameters1 = new SqlParameter(GoodsID, SqlDbType.Char, 14), new SqlParameter(Price, SqlDbType.Float, 8), new SqlParameter(UserName, SqlDbType.Char, 50); parameters10.Value = Goods.ID; parameters11.Value = Goods.Price; parameters12.Value = SessionUSERNAME.ToString().Trim(); /执行 int s = new DataBaseHelper().ExecuteNonQuery(sql, parameters1); if (s 0) GlobleClass.PopInfo(this.Page, 恭喜您,添加成功!); else GlobleClass.PopInfo(this.Page, 操作不成功!); else GlobleClass.PopInfo(this.Page, 请先登录,谢谢!); /*读取购物车中的商品信息,并进行提交订单的操作*/显示购物车中的信息/private void LoadShopCar() string sql = select GoodsID,Name,Price,Num,SumPrice,UserName from ShopCart S, Goods G where S.GoodsID=G.ID and UserName= + SessionUSERNAME.ToString().Trim() + ; DataTable dt = new DataBaseHelper().Select(sql); gvShopCart.DataSource = dt; gvShopCart.DataBind();/ / 显示购物车中的商品合计金额/ private void TotalDs() string sql = select Sum(SumPrice) from ShopCart + where UserName= + SessionUSERNAME.ToString().Trim() + ; DataTable dt = new DataBaseHelper().Select(sql); if (dt.Rows.Count 0) lblTotal .Text = GlobleClass.VarStr(dt.Rows00.ToString(), 2); protected void gvShopCart_PageIndexChanging(object sender, GridViewPageEventArgs e) gvShopCart.PageIndex = e.NewPageIndex; LoadShopCar();protected void gvShopCart_RowDeleting(object sender, GridViewDeleteEventArgs e) string goodsID =gvShopCart.DataKeyse.RowIndexGoodsID.ToString(); string userName =gvShopCart.DataKeyse.RowIndexUserName.ToString(); string sql=delete from ShopCart where UserName=+userName+ and GoodsID=+goodsID + ; int i = new DataBaseHelper().ExecuteNonQuery(sql); LoadShopCar(); TotalDs();protected void gvShopCart_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) gvShopCart.EditIndex = -1; LoadShopCar(); TotalDs();protected void gvShopCart_RowUpdating(object sender, GridViewUpdateEventArgs e) string goodsID = gvShopCart.DataKeyse.RowIndexGoodsID.ToString(); string userName = gvShopCart.DataKeyse.RowIndexUserName.ToString(); string num = (TextBox)(gvShopCart.Rowse.RowIndex.Cells2.Controls0).Text.ToString(); if (GlobleClass.IsNumber(num) = true) string sql = update ShopCart set Num= + num + , + SumPrice=( + num + *( Select Price from Goods + where ID= + goodsID + ) + where UserName= + userName + and GoodsID= + goodsID + ; if (new DataBaseHelper().ExecuteNonQuery(sql) = 1) gvShopCart.EditIndex = -1; LoadShopCar(); TotalDs(); else GlobleClass.PopInfo(this.Page, 请输入正确的物品数量!); protected void gvShopCart_RowEditing(object sender, GridViewEditEventArgs e) gvShopCart.EditIndex = e.NewEditIndex; LoadShopCar(); TotalDs(); protected void btnReckoning_Click(object sender, EventArgs e) Response.Redirect(CheckOut.aspx?Total=+lblTotal.Text.Trim();4.5商品信息管理功能实现/*根据前台设置的检索条件,进行数据库信息的查询,并将结果绑定到GridView控件上显示,同时进行商品删除的操作*/public void gvBind() string sql = select * from Goods where 1=1 ; if (ddlKind.SelectedIndex 0) sql += and class= + ddlKind.SelectedValue.Trim() + ; if (txtName.Text.Trim().Length 0) sql += and Name like % + txtName.Text.Trim()

温馨提示

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

评论

0/150

提交评论