饮料销售管理系统设计毕业设计论文.docx
《饮料销售管理系统设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《饮料销售管理系统设计毕业设计论文.docx(53页珍藏版)》请在冰豆网上搜索。
饮料销售管理系统设计毕业设计论文
江苏省联合职业技术学院
毕业论文
题目:
饮料销售管理系统
姓名:
学号:
年级:
10信息高职3
专业:
软件开发
学生类别:
网站设计
指导教师:
教学单位:
江苏联合职业技术学院
2015年5月1日
摘要:
饮料销售管理系统是几个相对独立的模块包括用户管理模块,用户充值模块,商品展示模块,购物车模块,订单模块,商品添加模块,进行集中式管理。
用户登录后进行消费和充值。
采用会员制,用户充值消费相应金额会获得相应的会员折扣,对用户信息,购买的物品,消费金额重点记录。
用户可以通过简单的操作完成充值,商品的购买和删除,数量的增减,个人信息填写到订单完成等步骤。
整个系统模块有较强的可操作性和扩展性。
关键字:
饮料销售,会员制,存储过程,VisualBasic2010,V
1.需求分析……………………………4
1.1功能需求…………………………………………4
1.2性能需求…………………………………………4
2.系统设计……………………………5
2.1设计思想…………………………………………5
2.2系统总体结构图…………………………………5
2.3各子系统功能分析………………………………6
3.系统数据库详细设计………………6
4.系统主要用户界面…………………8
5.核心代码段…………………………11
6.总结…………………………………34
7.参考文献……………………………34
附录一开题报告
附录二中期报告
1.需求分析
这是一个饮料销售系统,只需要销售,只考虑卖。
(1)该管理软件提供用户账号的管理,包括登录,注册,注销。
(2)该管理软件提供货物的添加。
(3)该管理软件会对会员信息,销售记录,销售的商品类型,数量重点记录。
本系统的特色是采用会员制:
(1)会员分:
普通会员,青铜会员,白银会员,黄金会员。
成为会员的方式:
(1)有消费办理会员卡就可以成为普通会员,一次性充值500成为青铜会员,1000成为白银会员、2000成为黄金会员。
(2)普通会员累计消费500成为青铜会员,消费1000成为白银会员,消费2000成为黄金会员。
成为会员的优势:
会员打折方式:
青铜会员9.5折,白银会员9折,黄金会员8折。
1.1功能需求
功能模块主要有如下几个部分:
用户管理模块,用户充值模块,商品展示模块,购物车模块,订单模块,商品添加模块,具体功能描述如下:
用户管理模块:
其功能是对用户信息的管理,包括登录,注销,注册。
用户充值模块:
其功能是对登录进来的用户充值。
商品展示模块:
其功能是展示所有货物,点击购买即可。
购物车模块:
其功能是显示你所购买的货物,可进行数量添加或删除操作。
订单模块:
其功能是当用户填写完相关信息就会存入订单模块。
商品添加模块:
其功能是对货物的添加。
1.2性能需求
(1)数据精确度
用户登录的用户名,充值的金额,物品的单价都取整数,方便操作与运算。
(2)时间特性
该管理系统软件从启动到进入系统登陆界面的时间正常情况下少于5秒,录入并更新数据的时间正常情况下少于5秒。
2.1设计思想
(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。
(2)分层的模块化程序设计思想,整个系统采用模块化机构设计,作为应用程序有较强的可操作性和扩展性。
(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
2.2系统总体结构图
2.3各子系统功能分析
1)系统用户模块
功能:
本模块的主要功能是对系统用户的增加以及注销。
2)系统登陆模块
功能:
本模块的主要功能是对用户进行验证,符合要求的才能进入系统。
3)商品展示模块
功能:
本模块的主要功能是展示所有货物的编号,名称,价格。
点击购物即可。
4)充值模块
功能:
本模块的主要功能是给进入系统的用户充值,根据充值金额的不同,会员等级不同。
5)购物车模块
功能:
本模块的主要功能是将商品展示模块中点击购买的物品加入购物车,在本模块中可以进行数量的更改以及货物的删除,用户电话地址的输入等。
6)订单模块
功能:
本模块的主要功能是展示用户购买的商品信息及个人信息。
7)商品添加模块
功能:
本模块的主要功能是指定的用户权限给系统添加商品。
3.系统数据库详细设计
用户登录表(M_USER)
字段名
类型
长度
主/外键
字段约束
中文名
UserId
Number
Primary
Notnull
用户编号
UserName
Varchar2
20
Notnull
用户名
Level_Id
Varchar2
1
Notnull
用户等级
Consumption_Amount
Number
Notnull
消费金额
Topup_Money
Number
Notnull
充值金额
Balance
Number
Notnull
用户余额
商品表(M_GOODS)
字段名
类型
长度
主/外键
字段约束
中文名
GoodsID
Varchar2
10
Primary
Notnull
商品编号
GoodsName
Varchar2
20
Notnull
商品名称
Price
Number
Notnull
商品单价
等级表(M_LEVEL)
字段名
类型
长度
主/外键
字段约束
中文名
Level_ID
Varchar2
1
Primary
Notnull
等级编号
Level_Name
Varchar2
4
Notnull
等级名称
Level_Discount
Number
Notnull
等级折扣
购物表(M_SHOP)
字段名
类型
长度
主/外键
字段约束
中文名
ProductID
Varchar2
10
Notnull
商品编号
ProductName
Varchar2
20
Notnull
商品名称
ProductPrice
Number
Notnull
商品单价
Quantity
Number
Notnull
商品数量
UserId
Number
Notnull
用户编号
订单表(T_ORDER)
字段名
类型
长度
主/外键
字段约束
中文名
ID
Varchar2
10
Primary
Notnull
订单编号
UserId
Number
Notnull
用户编号
GoodsId
Varchar2
10
Notnull
商品编号
Quantity
Number
Notnull
商品数量
Total
Number
Notnull
商品总价
Address
Varchar2
50
Notnull
地址
Tel
Varchar2
20
Notnull
电话
DateTime
Date
Notnull
日期
4.系统主要用户界面
图1.用户登录
图2.用户注册
图3.用户充值
图4.商品展示
图5.购物车
图6.商品订单
图7.商品添加
5.核心代码段
(1)用户登录模块
'''
'''登录代码
'''
'''
PublicSubLogin()
Try
DimstrAsString="Provider=OraOLEDB.Oracle;DataSource=orcl;"_
+"UserID=test;Password=test;Unicode=True"//数据库连接字符串
DimconnAsNewOleDb.OleDbConnection(str)
conn.Open()//连接并打开
DimsqlAsString="select*fromM_USERwhereUSERID='"&txtID.Text.ToString().Trim()&"'"_
+"andUSERNAME='"&txtUser.Text.ToString().Trim()&"'"//登录语句
DimcmdAsNewOleDb.OleDbCommand(sql,conn)//command对象
DimnaAsString=cmd.ExecuteScalar()//执行语句
Ifna<>String.EmptyThen//如果不是空切到画面2
MultiView1.ActiveViewIndex=1
Session("username")=txtUser.Text.ToString.Trim()
Session("userid")=txtID.Text.ToString.Trim()
lblName.Text=Session("username")
txtID.Text=""
txtUser.Text=""
Else
MsgBox("用户名或密码错误,请重新输入")
txtID.Text=""
txtUser.Text=""
EndIf
conn.Close()//关闭连接
CatchexAsException
'MsgBox(ex.ToString())
EndTry
ShowUserInfo()
EndSub
(2)显示用户基本信息模块
'''
'''显示用户基本信息
'''
'''
PublicSubShowUserInfo()
DimintRowCountAsInteger=0DimstrExAsString=""
Dimw_paraorcBindAsOracleParameter()=
{
NewOracleParameter("B_ID",OracleType.Number),
NewOracleParameter("OUT_CUR",OracleType.Cursor)
}
w_paraorcBind(0).Value=Session("userid")
w_paraorcBind(0).Direction=ParameterDirection.Input
w_paraorcBind
(1).Direction=ParameterDirection.Output
Try
DimdbaAsNewNetTraining.DBAccess
DimdtSelectAsDataTable=dba.ExecuteQueryByPro("SHOP_6222.D6222_select_userinfo",w_paraorcBind,strEx).Tables(0)
//调用显示用户信息的存储过程
//获取字段值
lblLevel.Text=dtSelect.Rows(0).Item("level_name")
lblCost.Text=dtSelect.Rows(0).Item("consumption_amount")
lblBalance.Text=dtSelect.Rows(0).Item("balance")
Session("discount")=dtSelect.Rows(0).Item("level_discount")//折扣
Session("balance")=dtSelect.Rows(0).Item("balance")//余额
CatchexAsException
'MsgBox(ex.ToString())
EndTry
EndSub
调用的存储过程
PROCEDURED6222_select_userinfo
(
B_IDINM_USER.USERID%TYPE,
OUT_CUROUTSYS_REFCURSOR);
PROCEDURED6222_select_userinfo
(B_IDINM_USER.USERID%TYPE,
OUT_CUROUTSYS_REFCURSOR)
is
begin
openOUT_CURfor
selectm_level.level_name,m_user.consumption_amount,
m_user.balance,m_level.level_discount
fromm_user,m_level
wherem_level.level_id=m_user.level_id
andM_USER.USERID=B_ID;
end;
(3)用户注册模块
'''
'''注册
'''
'''
PrivateSubRegist()
//定义变量
DimintRowCountAsInteger=0
DimstrExAsString=""
//定义一个对象存值
Dimw_paraorcBindAsOracleParameter()=
{
NewOracleParameter("B_USERNAME",OracleType.VarChar)
}
//赋值
w_paraorcBind(0).Value=txtRegist.Text
//输入输出类型
w_paraorcBind(0).Direction=ParameterDirection.Input
Try
//数据库连接
DimdbaAsNewNetTraining.DBAccess
//执行
DimintReturn=dba.ExecuteNonQueryByPro("SHOP_6222.D6222_REGISTUSER",w_paraorcBind,strEx)//调用注册的存储过程
//trycatch异常捕捉
//搜索最后的ID
DimstrAsString="Provider=OraOLEDB.Oracle;DataSource=orcl;"_
+"UserID=test;Password=test;Unicode=True"//数据库连接字符串
DimconnAsNewOleDb.OleDbConnection(str)
conn.Open()//连接并打开
DimsqlAsString="selectmax(userid)fromM_USER"//查询刚刚注册的用户名
DimcmdAsNewOleDb.OleDbCommand(sql,conn)、//command对象
DimnaAsString=cmd.ExecuteScalar()
//执行语句
Ifna<>String.EmptyThen
//如果有结果
MsgBox("您注册的用户名为"+na+",请保管好!
")
txtID.Text=na
txtUser.Text=txtRegist.Text.ToString.Trim()
txtRegist.Text=""
//注销一次
Session.Clear()
Session.RemoveAll()
Else
MsgBox("错误")
EndIf
conn.Close()
//关闭连接
Login()
CatchexAsException
MsgBox("输入错误!
")
EndTry
EndSub
调用的存储过程
PROCEDURED6222_REGISTUSER
(
B_USERNAMEINM_USER.USERNAME%TYPE);
PROCEDURED6222_REGISTUSER
(B_USERNAMEINM_USER.USERNAME%TYPE)
IS
BEGIN
INSERTINTOM_USERVALUES(USERID.NEXTVAL,B_USERNAME,'1','0','0',0);
END;
(4)用户充值模块
'''
'''用户充值
'''
'''
PublicSubTopUp()
If(Session("username")=String.Empty)Then//登录判定
MsgBox("您还未登录")
Response.Redirect("~/index.aspx")
Else
DimintRowCountAsInteger=0
DimstrExAsString=""
Dimw_paraorcBindAsOracleParameter()=
{
NewOracleParameter("B_ID",OracleType.VarChar),
NewOracleParameter("B_TOPUP_MONEY",OracleType.Number)
}
w_paraorcBind(0).Value=Session("userid")
w_paraorcBind
(1).Value=txttopup.Text
w_paraorcBind(0).Direction=ParameterDirection.Input
w_paraorcBind
(1).Direction=ParameterDirection.Input
Try
DimdbaAsNewNetTraining.DBAccess
DimdtReturn=dba.ExecuteNonQueryByPro("SHOP_6222.D6222_Topup",w_paraorcBind,strEx)//调用充值的存储过程
IfstrEx<>""Then
MsgBox("充值失败")
Else
Iftxttopup.Text=0Then
MsgBox("您输入的金额为0,请重新输入!
")
Else
MsgBox("充值成功!
")
EndIf
EndIf
CatchexAsException
MsgBox("输入金额有误!
")
EndTry
EndIf
Session("balance")=txttopup.Text
Response.Redirect("~/index.aspx")
EndSub
调用的存储过程
PROCEDURED6222_Topup
(
B_IDINM_USER.USERID%TYPe,
B_TOPUP_MONEYINM_user.topup_money%TYPE);
PROCEDURED6222_Topup
(
B_IDINM_USER.USERID%TYPE,
B_TOPUP_MONEYINM_user.topup_money%TYPE)
is
xiaofeinumber;
chongzhinumber;
levelidnumber;
moneyidnumber;
yuenumber;
yue2number;
begin
chongzhi:
=0;
updatem_usersettopup_money=B_TOPUP_MONEYwhereuserid=b_id;
selecttopup_moneyintochongzhifromm_userwhereuserid=b_id;
selectbalanceintoyue2fromm_userwhereuserid=b_id;
selectlevel_Idintolevelidfromm_userwhereuserid=b_id;
moneyid:
=1;
ifchongzhi>=500andchongzhi<1000orxiaofei>=500andxiaofei<1000then
moneyid:
=2;
endif;
ifchongzhi>=1000andchongzhi<2000orxiaofei>=1000andxiaofei<2000then
moneyid:
=3;
endif;
ifchongzhi>=2000orxiaofei>=2000then
moneyid:
=4;
endif;
iflevelid<=moneyidthen
levelid:
=moneyid;
endif;
yue:
=chongzhi+yue2;
updatem_usersetlevel_id=levelid,
balance=yue
whereuserid=b_id;
yue:
=0;
end;
(5)商品展示模块
'''
'''抽取商品表
'''
'''
'''
'''
PrivateFunctionsearch(ByValsearchConditionAsSearchCondition)AsString
DimsqlAsString=String.Empty
sql+="Select"
sql+="GOODSID,"
sql+="GOODS_NAME,"
sql+="PRICE"
sql+="FromM_GOODS"
sql+="OrderByGOODSID"
Returnsql
EndFunction
'''
'''窗体加载事件
'''
'''
'''
'''
ProtectedSubPage_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.Load
DimdtAsDataTable//定义一个数据库
DimmssageAsString=