5 系统功能设计 paper51.com 5.1 系统功能分析 copyright paper51.com 经过前期的研究,总结出该系统需要完成的一些具体功能,分析如下: http://www.paper51.com Ø 用户功能 内容来自论文无忧网 www.paper51.com
(1)用户管理模块:用户注册、用户信息管理。 内容来自www.paper51.com (2)查询模块:能够查询产品,包括产品的各种属性。 copyright paper51.com (3)购物车模块:提供给消费者订购商品的权限。 内容来自www.paper51.com
(4)留言模块:可对订单进行留言,也可对管理员进行留言。 内容来自论文无忧网 www.paper51.com Ø 管理员功能 http://www.paper51.com (1)商品管理:对商品的添加、修改、删除,商品入库。 paper51.com (2)用户管理:对用户的添加、修改、删除、审定。 copyright paper51.com (3)订单管理:对用户订购商品所生成的订单的管理,包括订单审定、删除等。 http://www.paper51.com (4)留言管理:对用户留言的管理,包括回复留言、删除留言。 内容来自论文无忧网 www.paper51.com 5.2 系统功能模块的设计 内容来自论文无忧网 www.paper51.com 在系统功能分析的基础上,得到本系统的功能模块图,如图5-1。 内容来自www.paper51.com paper51.com 5.3 系统流程分析与实现 http://www.paper51.com 5.3.1 前台购物流程 copyright paper51.com
前台购物流程为用户查询、订购商品的过程。用户可在未登录状态下对商品进行查询,并查看商品详细信息,当用户要订购商品时,必需登录(未注册用户必须注册并通过管理员审定),登录的用户才有权限对商品进行订购。用户在选择好商品后,单击订购,商品添加进购物车。用户可对购物车内的商品的数量进行修改,确认订购的商品后,填写支付方式、邮递方式、收货人地址等信息,单击生成订单,即可生成订单。如图5-2所示。 内容来自论文无忧网 www.paper51.com
paper51.com
5.3.2 后台购物管理流程 paper51.com 后台购物管理流程包括订单审定、订单删除等。管理员在登录后台管理页面后,方可对用户订单进行管理。管理员查看订单详细,包括订单的总金额、收货人联系方式、支付方式、邮递方式等。如果订单合格,就对该订单进行审定,否则,删除该订单,如图5-3。 paper51.com
copyright paper51.com 5.3.3 用户注册流程 内容来自www.paper51.com 用户注册流程即用户注册的基本过程。首先,进入用户注册页面,填写用户注册信息。其中用户名、密码、E-mail地址为必填内容,不能为空,否则弹出*为必填内容的提示。在注册过程中,用户名不能与他人重复,否则视为无效。在输入密码时,密码及密码确认要求一致,否则不能注册成功。E-mail地址格式要求填写正确,否则不能注册成功,如图5-4。 内容来自www.paper51.com 模块分析: http://www.paper51.com
Ø 该模块用到了两个控件,即RegularExpressionValidator控件与CompareValidator控件。RegularExpressionValidator控件对E-mail格式做出判断,当E-mail格式错误时给出提示信息。CompareValidator控件对密码及密码确认进行一致性判断,当两次密码不一致时给出提示信息。它们的实现代码如下: http://www.paper51.com ① RegularExpressionValidator控件 paper51.com <asp: RegularExpressionValidatorid="RegularExpressionValidator1" runat="server"ErrorMessage="请输入正确的邮件格式"ControlToValidate="txtEmail"ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>。 内容来自论文无忧网 www.paper51.com
内容来自论文无忧网 www.paper51.com
② CompareValidator控件 http://www.paper51.com <asp:CompareValidator id="CompareValidator1"runat="server" ErrorMessage="两次输入的密码不一致"ControlToCompare="mm"ControlToValidate="mm_sure"></asp:CompareValidator>. copyright paper51.com
Ø 注册用户的代码如下: copyright paper51.com
private void Button1_Click(object sender,System.EventArgs e) 内容来自论文无忧网 www.paper51.com
{ 内容来自www.paper51.com
if(yhm.Text==""||mm.Text=="" ||txtEmail.Text=="")//判断用户名、密码、E-mail地址是否为空 copyright paper51.com { 内容来自论文无忧网 www.paper51.com
Response.Write("<script>alert('带*号为必填内容!')</script>");//提示带*号为必填内容 copyright paper51.com } paper51.com else http://www.paper51.com { http://www.paper51.com Datada=new Data(); copyright paper51.com
da.connectsql(); paper51.com stringsqlselect; copyright paper51.com sqlselect="select* from shopuser where loginname='"+yhm.Text+"'";//检查该用户名是否在数据库中存在 内容来自www.paper51.com da.cmd.CommandText=sqlselect; 内容来自www.paper51.com
SqlDataReaderdr=da.cmd.ExecuteReader(); 内容来自www.paper51.com if(dr.Read())//判断申请的用户名是否已经在数据库中存在! copyright paper51.com { http://www.paper51.com Response.Write("<script>alert('对不起,你所申请的用户已经存在,请您重新填写!')</script>"); copyright paper51.com } copyright paper51.com else paper51.com { http://www.paper51.com dr.Close(); 内容来自论文无忧网 www.paper51.com
Stringsql; paper51.com
sql="insertinto shopuser(loginname,loginpwd,name,addr,city,tell,email,yb,qx)values('"+yhm.Text+"','"+mm.Text+"','"+txtname.Text+"','"+txtAddress1.Text+"','"+txtCity.Text+"','"+txtPhone.Text+"','"+txtEmail.Text+"','"+txtZip.Text+"','用户')";//将用户信息写入数据库中 内容来自论文无忧网 www.paper51.com
da.cmd.CommandText=sql; paper51.com da.cmd.ExecuteNonQuery(); 内容来自论文无忧网 www.paper51.com Response.Write("<script>alert('添加成功!')</script>"); paper51.com
…… copyright paper51.com 5.3.4 用户登录流程 http://www.paper51.com 用户登录流程即用户登录到系统的基本流程。首先,单击用户登录进入用户登录界面。填写登录信息,单击登录按钮。如果用户名不存在或者用户还未通过审核,则跳出提示。如果验证码输入不正确,则跳出提示验证码输入不正确。当用户名、密码、验证码正确后,方能登录成功。如图5-5所示。 http://www.paper51.com
内容来自www.paper51.com 模块分析: http://www.paper51.com Ø 验证码的实现 内容来自www.paper51.com 验证码是通过一个函数随机产生一个四位数实现的,其实现的代码如下: paper51.com
privatestring MakeValidateCode() copyright paper51.com { paper51.com char[]s = new char[]{'0','1', '2','3','4','5','6','7','8','9'}; 内容来自www.paper51.com stringnum = ""; paper51.com
Randomr = new Random(); http://www.paper51.com
for(inti = 0; i < 4; i++) paper51.com { paper51.com num +=s[r.Next(0, s.Length)].ToString(); //随机产生四位数的方法 copyright paper51.com } http://www.paper51.com
returnnum; 内容来自论文无忧网 www.paper51.com
} copyright paper51.com Ø 用户登录的代码 http://www.paper51.com
privatevoid Button1_Click(object sender, System.EventArgs e) 内容来自论文无忧网 www.paper51.com { 内容来自www.paper51.com
da.cmd.CommandText="select* from shopuser where loginname ='"+TextBox2.Text+"' andloginpwd='"+TextBox1.Text+"' and sd='Y'"; copyright paper51.com SqlDataReaderdr_l=da.cmd.ExecuteReader(); //执行查询命令 内容来自论文无忧网 www.paper51.com if(dr_l.Read())//判断用户名及密码是否正确 内容来自www.paper51.com { 内容来自论文无忧网 www.paper51.com if(TextBox3.Text==Session["VNum"].ToString())//判断验证码是否正确 http://www.paper51.com
{ copyright paper51.com Session["user_d"]=dr_l.GetString(1).ToString(); 内容来自www.paper51.com Session["id"]=dr_l.GetInt32(0).ToString();//session赋值 http://www.paper51.com logininoutlg=new logininout(); 内容来自论文无忧网 www.paper51.com lg.loginxt(TextBox2.Text); 内容来自论文无忧网 www.paper51.com Datada_sel=new Data(); copyright paper51.com da.connectsql(); paper51.com da_sel.connectsql(); copyright paper51.com stringsql_sel; copyright paper51.com sql_sel="select* from order_ where u_name='"+dr_l.GetString(1).ToString() +"' andzt='N'";//判断用户是否有未提交的订单 paper51.com
da.cmd.CommandText=sql_sel; 内容来自www.paper51.com SqlDataReaderdr=da.cmd.ExecuteReader(); 内容来自论文无忧网 www.paper51.com if(dr.Read()) copyright paper51.com { 内容来自www.paper51.com Response.Redirect("order.aspx?id=0");//用户有未提交的订单 内容来自论文无忧网 www.paper51.com
} 内容来自www.paper51.com else 内容来自www.paper51.com { copyright paper51.com
Response.Redirect("order.aspx?id=00");//用户购物车为空 copyright paper51.com } 内容来自论文无忧网 www.paper51.com …… paper51.com 5.3.5 商品查询流程 paper51.com 商品查询流程即用户查询商品的过程。首先,进入商品查询页面。用户输入查询的条件,主要包括商品的类型、品牌、名称、产地、价格范围,单击查询按钮进行查询。如果未查询到商品,则重新输入查询条件查询。查询完商品后,用户可根据罗列出来的商品进行查看,也可直接单击订购把商品选入购物车。当用户查看完商品后,如果满意可单击订购将商品放入购物车,如果不满意则可继续查询,如图5-6。 paper51.com http://www.paper51.com 模块分析: 内容来自论文无忧网 www.paper51.com
Ø 商品查询主要用到了一个函数,查询商品时调用此函数实现,其代码如下: 内容来自www.paper51.com public string getsql(string mc,string jg,stringjg2,string dz,string xh,string lb) http://www.paper51.com { http://www.paper51.com stringsql="select * from product join nowlib on product.proid=nowlib.proid wherenum>=0";//查询库存大于等于零的所有商品 http://www.paper51.com if((mc=="")&&(jg=="")&&(dz=="")&&(xh=="")&&(lb=="全部")) http://www.paper51.com { http://www.paper51.com
returnsql;//未输入任何查询条件,返回所有商品信息 内容来自论文无忧网 www.paper51.com } copyright paper51.com else 内容来自论文无忧网 www.paper51.com { http://www.paper51.com sql=sql+"and " ; http://www.paper51.com if(mc!="") 内容来自www.paper51.com
{ 内容来自论文无忧网 www.paper51.com sql=sql+"proname ='"+mc+"' and "; copyright paper51.com
} paper51.com
if((jg!="")&& (jg2!="")) http://www.paper51.com
{ 内容来自www.paper51.com sql=sql+" jge between "+jg+" and "+jg2+" and "; copyright paper51.com
} 内容来自论文无忧网 www.paper51.com if(dz!="") copyright paper51.com { copyright paper51.com sql=sql+"addr='"+dz+"' and "; 内容来自www.paper51.com } 内容来自www.paper51.com if(xh!="") paper51.com { copyright paper51.com sql=sql+"xh='"+xh+"' and "; copyright paper51.com } http://www.paper51.com if(lb!="全部") 内容来自www.paper51.com { paper51.com sql=sql+"lb='"+Dropdownlist1.SelectedItem.Text+"' and "; copyright paper51.com } copyright paper51.com int le; 内容来自论文无忧网 www.paper51.com
le=sql.Length; 内容来自www.paper51.com
stringsqlf; 内容来自www.paper51.com sqlf=sql.Substring(0,le-5); copyright paper51.com returnsqlf; 内容来自论文无忧网 www.paper51.com } 内容来自论文无忧网 www.paper51.com } 内容来自www.paper51.com |