购物车系统.docx
《购物车系统.docx》由会员分享,可在线阅读,更多相关《购物车系统.docx(14页珍藏版)》请在冰豆网上搜索。
购物车系统
一、课程实习目的
二、系统分析与设计
三、系统具体实现
四、课程实习小结
1课程实习目的
1.通过本课程实训,培养和锻炼学生进行系统分析和设计的能力,并能应用UML表达相关分析和设计的思想;
2.熟悉Web数据库应用系统开发流程,包括系统需求分析、概要设计、详细设计、代码编程、系统测试和系统部署等;
3.掌握在VisualStudio开发平台使用ASP.NET技术开发软件系统的方法和常用ASP.NET控件的使用;
4.掌握ADO.NET技术,实现Web应用程序中数据库存储和访问。
2系统分析与设计
2.1需求分析
本系统需要实现多个功能,如用户信息管理、商品信息管理、购物车管理、结账等等。
利用ASP.NET技术开发设计简单购物车系统,使其可以初步实现购物车的一些功能,这主要是当进入网页时系统可以显示商品列表,用户可以通过这个界面看到所有商品的概要信息,列表显示所售商品,包括商品名,价格,说明等信息。
用户可以根据用户名和密码登录系统,可以购买物品并且查询物品信息,也可以删除购物车里的物品,最后结算账单。
对数据库可以查询并且新建用户名和密码进行登录。
2.2系统设计
(1)数据库的设计:
设计系统功能实现所依赖的符合系统需求的数据库,使应用程序和数据库建立良好的连接和数据的实时更新。
(2)商品列表显示的设计:
在设计软件中通过拖控件的方式实现界面的良好排布,并通过与数据库的数据绑定最终实现商品的显示。
(3)用户登录,注销功能的设计:
可以完成数据库中已有用户的登录,从而为用户购买商品作出功能支持。
(4)购物车清算功能的设计:
可以把登录用户的一系列操作准确无误的传递给数据库进而引起数据库数据的相应更新达到购物车清算的目的。
2.3用例关系图描述需求
2.4序列图描述动态交互过程
2.5动态活动流程
3系统具体实现
3.1商品显示功能的实现
相关控件的绑定
和数据库中的数据绑定后在网页中显示如下图所示:
3.2用户登录功能的实现
功能控制具体实现代码如下所示:
publicpartialclass_Default:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
DataSetds=DB.reDs("select*fromtb_GoodsInfo");
dlGoodsInfo.DataSource=ds;
dlGoodsInfo.DataBind();
if(Session["UserID"]==null)
{
pl1.Visible=true;
pl2.Visible=false;
}
else
{
pl1.Visible=false;
pl2.Visible=true;
labMessage.Text="欢?
迎®-"+txtUserName.Text+"的Ì?
光a临¢¨´!
ê?
";
}
}
protectedvoiddlGoodsInfo_ItemCommand(objectsource,DataListCommandEventArgse)
{
if(e.CommandName=="buy")
{
if(Session["UserID"]!
=null)
{
stringP_str_GoodsID=e.CommandArgument.ToString();
Response.Redirect("~/ShoppingCart.aspx?
GoodsID="+P_str_GoodsID);
}
}
用户未登录界面显示如下:
用户登录后界面显示如下:
3.4购物车清算功能的实现
当用户登录后想要购买商品列表中的商品时可以点击界面中的LinkButton控件——购买,这时所选商品便会加入到购物车中。
功能实现代码如下所示:
publicstaticstringM_str_Count;
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
stringP_str_CartID=Session["UserID"].ToString();
stringP_str_GoodsID=Request["GoodsID"];
DataSetds=DB.reDs("selectcount(*)fromtb_CartwhereCartID="+P_str_CartID+"andGoodsID="+P_str_GoodsID);
if(ds.Tables[0].Rows[0][0].ToString()=="0")
{
DataSetds1=DB.reDs("selectGoodsName,GoodsPricefromtb_GoodsInfowhereGoodsID="+P_str_GoodsID);
stringP_str_GoodsName=ds1.Tables[0].Rows[0][0].ToString();
stringP_str_GoodsPrice=ds1.Tables[0].Rows[0][1].ToString();
stringP_str_Num="1";
DB.ExSql("insertintotb_Cartvalues("+P_str_CartID+","+P_str_GoodsID+",'"+P_str_GoodsName+"',"+P_str_GoodsPrice+","+P_str_Num+")");
}
else
{
DB.ExSql("updatetb_CartsetNum=Num+1whereCartID="+P_str_CartID+"andGoodsID="+P_str_GoodsID);
}
Bind();
}
}
publicvoidBind()
{
DataSetds2=DB.reDs("select*,GoodsPrice*NumAsCountfromtb_CartwhereCartID="+Session["UserID"]);
floatP_fl_Count=0;
foreach(DataRowdrinds2.Tables[0].Rows)
{
P_fl_Count+=Convert.ToSingle(dr[6]);
}
M_str_Count=P_fl_Count.ToString();
dlShoppingCart.DataSource=ds2;
dlShoppingCart.DataBind();
}
商品加入购物车后网页显示如下图所示:
在购物车中还可以更新购物车,控制代码如下所示:
protectedvoiddlShoppingCart_ItemCommand(objectsource,DataListCommandEventArgse)
{
if(e.CommandName=="updateNum")
{
stringP_str_Num=((TextBox)e.Item.FindControl("txtGoodsNum")).Text;
boolP_bool_reVal=DB.ExSql("updatetb_CartsetNum="+P_str_Num+"whereCartID="+Session["UserID"]+"andGoodsID="+e.CommandArgument.ToString());
if(P_bool_reVal)
Bind();
}
}
在购物车中还可以清空购物车,控制代码如下所示:
rotectedvoidlnkbtnClear_Click(objectsender,EventArgse)
{
boolP_bool_reVal=DB.ExSql("Deletefromtb_CartwhereCartID="+Session["UserID"]);
if(!
P_bool_reVal)
Response.Write("");
else
Bind();
}
在购物车中还可以删除商品,控制代码如下所示:
protectedvoiddlShoppingCart_DeleteCommand(objectsource,DataListCommandEventArgse)
{
boolP_bool_reVal=DB.ExSql("Deletefromtb_CartwhereCartID="+Session["UserID"]+"andGoodsID="+e.CommandArgument.ToString());
if(!
P_bool_reVal)
Response.Write("");
else
Bind();
}
protectedvoidlnkbtnDel_Load(objectsender,EventArgse)
{
((LinkButton)sender).Attributes["onclick"]="javascript:
returnconfirm('你确定要删除该物品吗?
')";
}
付款结账控制代码如下所示:
protectedvoidlnkbtnSettleAccounts_Click(objectsender,EventArgse)
protectedvoidlnkbtnSettleAccounts_Click(objectsender,EventArgse)
{
if(M_str_Count=="")
{
Response.Write("");
}
else
{
DataSetds=DB.reDs("selectMoneyfromtb_UserwhereUserID="+Session["UserID"].ToString());
decimalP_str_Money=Convert.ToDecimal(ds.Tables[0].Rows[0][0].ToString());
if(P_str_Money{
Response.Write("");
}
else
{
boolP_bool_reVal1=DB.ExSql("Deletefromtb_CartwhereCartID="+Session["UserID"]);
boolP_bool_reval2=DB.ExSql("updatetb_UsersetMoney=Money-"+M_str_Count+"whereUserID="+Session["UserID"]);
if(!
P_bool_reVal1&!
P_bool_reval2)
{
Response.Write("");
}
else
{
Bind();
Response.Write("");
}
}
}
}
结账成功后网页显示如下图所示:
3.5数据库的功能实现
xmlversion="1.0"?
>
数据库由两张表组成,分别是注册用户表、上架商品表,如下图所示:
当在相应界面对数据进行操作时,数据库会实现数据的更新,这时候再用代码调用相应数据时则会显示出最新数据,从而可以很好地实现购物车的一系列功能。
4课程实习小结
时间匆匆流过,为期一周的NIIT实训就这样结束了。
在此过程中,我结合我懂的知识努力去做这个项目。
我们实现了从理论到实践再到理论的飞跃,增强了认识问题,分析问题,解决问题的能力。
为认识社会,了解社会,步入社会打下了好的基础。
在这次实践中认清了自己的位置,发现自己的不足,对自身价值能够进行客观评价。
这在无形中使我们对自己的未来有一个正确的定位,增强了自身努力学习知识并将之与社会结合的心心和毅力。
大学实训对于我们即将走入社会的大学生们有着十分重要的意义,我们可以锻炼自己,增长才干,为以后踏入社会做了更好的铺垫。