完整版中南大学数据库毕业课程设计护腕荐购毕业课程设计.docx
《完整版中南大学数据库毕业课程设计护腕荐购毕业课程设计.docx》由会员分享,可在线阅读,更多相关《完整版中南大学数据库毕业课程设计护腕荐购毕业课程设计.docx(39页珍藏版)》请在冰豆网上搜索。
完整版中南大学数据库毕业课程设计护腕荐购毕业课程设计
中南大学
数据库课程设计
课程设计题目护腕荐购系统设计
指导老师张祖平,么旭君
专业班级电子信息1002
姓名杨家骏
学号
实验日期2013年7月
1.前言····································································3
1.面向对象·······························································3
2.课程设计目的···························································3
3.课程设计总体要求·······················································3
4.课程设计要求···························································3
5.开发工具·······························································3
6.开发任务概述····························································3
2.后台程序设计·························································4
1.系统E-R表构建·························································4
2.数据字典·······························································6
3.SQL表格部分截图························································9
3.前台程序设计·······················································12
1.实验设计总体框架······················································12
2.功能模块分析··························································12
3.业务流程······························································13
4.实验设计截图··························································13
四.实验心得····························································44
前言
一.面向对象
中南大学2010级信息科学与工程学院电子信息工程专业班学生
2.课程设计目的
培养学生熟练掌握一种大型数据库系统的开发环境如ORACLE9i10g11g(或更高版本)或SQLSERVER(或更高版本),对其底层的数据库触发器与程序过程有深入的了解,了解并基本掌握面向数据库的CS模式的通用开发工具如VB、PB或DELPHI或直接用语言C#或Java开发CS模式的系统;或者采用ASP、JSP、PHP等开发技术来开发BS模式的系统,熟悉开发一个小型应用系统的过程及主要技术。
其中基于.Net平台与J2EE平台工具套件中同时支持BS模式与CS模式的开发。
三.课程设计总体要求
1.完成设计、程序编制、调试与检查验收
2.书写完整的课程设计报告(至少20页),需求分析(要做什么事情如功能需求、信息需求、做到什么程度如性能需求、有哪些难点或关键技术),系统设计(功能模型、信息模型、数据库设计、典型处理流程或算法、典型的后台处理如触发器或过程所涉及到的逻辑等)、系统实现及关键技术、总结与展望等章节。
3.数据库与大型程序的对象命名规则一定为XXX_班号(+)学号尾4位
例如car_master_10104即表示车辆主要信息表,为1班,学号尾数是0104设计的表结构,cloth_Detail_42309即表示衣服信息明细表,为4班,学号尾数是2309设计的表结构,对象(包括大的程序对象及程序名等)如果不能体现班级及学号等信息,则视为程序不合要求,程序部分成绩可能不合格。
4.课程设计要求
(1)提出技术方案,主要包括开发与运行模式选择、开发工具、数据库管理系统及其主要的特性保证。
(课程设计报告中体现)
(2)对系统的功能和数据进行需求分析、总体设计和详细设计,并提交设计报告。
报告中数据库设计部分要包含系统E-R图、数据字典、表、视图、索引、文件组织结构等的定义和描述,还需要包括对象命名法。
(3)程序实现各项功能,在课程设计报告中要反映实现过程中采用的关键技术和主要程序流程以及主要的操作界面。
(4)数据库后台最好有触发器与多个过程,数据结构中最好有主明细结构(即主表与明细表联动)。
5.开发工具
MicrosoftSQLServer2005,MicrosoftVisualBasic6.0中文版
六.开发任务概述
本次设计主要是开发商品荐购系统。
其业务需求如下:
某大型网购公司已积累了稳定的用户群,为了与用户加强联系、广泛收集商品信息、给用户更好的价格,特推出商品荐购系统,即由用户推荐网上其它门店的商品明细(含价格),系统管理员通过系统获取荐购的商品信息后会通过各种渠道进行核对(主要是人工方法,系统辅助商品比较分析),如果信息属实,系统管理员会给用户(会员)增长积分(标准为1-10分),并根据会员积分的情况进行升级(如原来0分为初级会员,荐购成功积累大于等于10分,升级为1级会员,如积累100分及以上,则为10级会员,其它级别依此类推),再根据会员级别允许会员以级别相应折扣购买推荐的或其它用户推荐的商品,如初级为全价,1级为9折、5级为5折可购买自荐商品或其它用户荐购商品;6级为4折、9级为1折可购买自荐商品;10级及以上直接免费获得自荐商品。
商品荐购系统的功能主要包括
1.用户或会员操作功能:
(1)用户注册、用户登录、用户信息维护等;
(2)商品搜索、比较、排名、推荐等;
2.管理员操作功能:
(1)推荐商品采纳、会员积分、会员升级;
(2)商品类别维护、类似商品信息统一等;
(3)商品搜索、比较、排名;
(4)操作日志记录、查询与维护等。
可采用CS模式也可以采用BS模式,还可以采用CS模式与BS模式相结合的汇合模式如管理员功能中商品类别维护、类似商品信息统一等;操作日志记录、查询与维护等用CS模式,其它功能用BS模式等,混合模式只要实现部分功能其程序部分的成绩将是良好及以上。
最好以某一实际的商品为参考,尽量不重复!
商品类别重复的,将考虑成绩降档,先由同学将开发技术与商品类别对象于18周二上午报上来(可报2-3个),由指导老师协调后于18周三反馈给大家。
每种类型的商品其描述属性不完全一样,请注意数据表结构的设计。
商品可为车辆、衣服、图书、运动器材、食品、电子设备、鲜花、手机等等,还可以冠以不同的厂家或公司如:
通用汽车、红旗轿车、山河智能轻型飞机、唯品会衣服、李宁运动服装、三星手机、联想电脑等等。
后台程序设计
我选择设计的是球员护腕荐购系统,使用SQLServer2005建立后台程序数据表,用MicrosoftVisualBasic6.0编写前台程序代码,然后连接数据库完成程序实现。
1.系统E-R表构建
三.SQL表格部分截图
前台程序设计
前台程序由MicrosoftVisualBasic6.0设计,设计过程中与数据库建立连接,实现程序的运行。
需要用Adodc空间来连接数据库。
一.实验设计总体框架
2.功能模块分析
1.注册:
用户必须注册为会员才课进行购买及推荐业务.
2.推荐商品:
推荐商品分为两个模块,一个是对已有的商品进行推荐,只需输入对应商品的编号就可以进行推荐,只要是会员就可以在推荐页面中看到推荐的商品.另一个模块是对没有的商品进行推荐,推荐后只有管理员可以看见。
3.购买商品:
购买商品模块只需输入商品的编号就可以购买商品,购买成功后就可以在购物记录里看见自己购买的商品。
每个会员只能查看自己购买的商品无法看到别人购买的商品。
4.管理员模块:
管理员模块主要是添加管理员的功能,管理员可以对商品进行添加和删除,以及查看会员的信息,还可以对进行推荐的会员进行添加积分的操作。
5.积分模块:
积分模块主要是用于商品的折扣,当会员进行商品推荐后,管理员就可以对其进行加积分的操作,随着积分的增长会员的等级也会增长,而高等级以后购买商品就会有对应的折扣。
3.业务流程
用户通过注册可以成为本店的会员,注册成会员后方可查看,购买和推荐商品,并可获得相应的积分奖励。
会员可以修改自己的用户信息,购买或者推荐商品成功后,操作完成。
4.实验设计及截图
设计注册登录界面。
注册成功会员后才可登录。
PublicintjobidAsInteger
PublicintuserjdAsInteger
PrivateSubcmdOK_click()
DimsqlAsString
DimrsAsADODB.Recordset
DimstrusernameAsString
DimintuserkeyAsInteger
OnErrorGoToerrhandler:
IfTrim(txtUserName.Text="")Then
MsgBox"请输入用户名称!
",vbExclamation
txtUserName.SetFocus
Else
sql="select*fromusers_21123whereusername='"&txtUserName.Text&"'"
Setrs=ExeSQL(sql)
Ifrs.EOF=TrueThen
MsgBox"没有此用户,请重新输入用户名!
",vbExclamation
txtUserName.SetFocus
Else
IfTrim(rs!
userpassword)=Trim(txtUserkey.Text)Then
intuserid=rs!
userid
intjobid=rs!
jobid
MsgBox"登陆成功!
",vbExclamation
rs.Close
Me.Hide
frmMain.Show
UnloadMe
Else
MsgBox"密码不正确,请重新输入",vbExclamation
txtUserkey.SetFocus
txtUserkey.Text=""
EndIf
EndIf
EndIf
ExitSub
errhandler:
MsgBox"错误号"&Err.Number&"错误描述"&Err.Description
EndSub
PrivateSubcmdCancel_Click()
UnloadMe
EndSub
PrivateSubcmdRegister_Click()
frmregister.Show
frmlogin.Hide
EndSub
注册代码:
PrivateSubCommand1_Click()
DimcnnAsNewADODB.Connection
DimadorsAsNewADODB.Recordset
cnn.ConnectionString="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=cuffsystem;DataSource=PCLYIG"
cnn.Open
Ifcnn.State=adStateOpenThen
Setadors.ActiveConnection=cnn'设置cmd的ActiveConnection属性,指定与其关联的数据库连接
IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""Then
MsgBox"输入的用户注册信息不完全!
!
",,"提示信息"
Else
Adodc1.RecordSource="select*fromusers_21123whereusername='"+Text1+"'"'判断注册的用户名是否存在
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
MsgBox"该账号已经存在,请您更换其他账号!
",48,"提示信息"
Text1.SetFocus
Else
IfText2.Text=Text3.TextThen'判断两次输入的密码是否一致
Adodc1.RecordSource="select*fromusers_21123"
Adodc1.Refresh
'保存注册信息
Setadors=cnn.Execute("insertintousers_21123values('"&Text1.Text&"','"&Text5.Text&"','"&Text2.Text&"','0','0','"&Text4.Text&"')")
MsgBox"注册成功!
!
",48,"用户注册信息提示"
cnn.Close'关闭与数据库的连接
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
UnloadMe
Form1.Show
Else
MsgBox"两次输入的密码不一致,请您确认后重新输入",48,"用户注册信息提示"
Text3.Text=""
Text4.Text=""
Text3.SetFocus
EndIf
EndIf
EndIf
Else
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
Frmmain.Show
EndSub
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then
Text2.SetFocus
Else
EndIf
EndSub
PrivateSubText2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then'如果按下的是回车键,则光标落到文本框当中
Text3.SetFocus
Else
EndIf
EndSub
PrivateSubText3_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then'如果按下的是回车键,则光标落到文本框当中
Text4.SetFocus
Else
EndIf
EndSub
PrivateSubText4_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then
CallCommand1_Click
Else
EndIf
EndSub
下面是注册及登录成功的截图:
登录成功后跳转到系统界面:
'荐购商品情况
PrivateSubmnuProducts_Click()
Iffrmlogin.intjobid=1Then
frmsales.Show
Else
MsgBox"你没有该项权限!
",vbExclamation
ExitSub
EndIf
EndSub
'修改密码
PrivateSubmnuModifyPWD_Click()
Iffrmlogin.intjobid=1Then
frmmodifyPWD.Show
Else
MsgBox"你没有该项权限!
",vbExclamation
ExitSub
EndIf
EndSub
'修改和删除商品
PrivateSubmnuModifyStock_Click()
Iffrmlogin.intjobid=2Orfrmlogin.intjobid=1Then
frmmodifyproduct.Show
Else
MsgBox"你没有该项权限!
",vbExclamation
ExitSub
EndIf
EndSub
'录入商品
PrivateSubmnuAddProducts_Click()
Iffrmlogin.intjobid=2Orfrmlogin.intjobid=1Then
frmAddproduct.Show
Else
MsgBox"你没有该项权限!
",vbExclamation
ExitSub
EndIf
EndSub
'查询商品
PrivateSubmnuStockQuery_Click()
Iffrmlogin.intjobid=2Orfrmlogin.intjobid=1Then
frmproductquery.Show
Else
MsgBox"你没有该项权限!
",vbExclamation
ExitSub
EndIf
EndSub
'查询销售商品情况
PrivateSubmnuQuerySales_Click()
Iffrmlogin.intjobid=3Orfrmlogin.intjobid=1Then
frmsalesquery.Show
Else
MsgBox"你没有该项权限!
",vbExclamation
ExitSub
EndIf
EndSub
'用户管理
PrivateSubmnuUser_Click()
Iffrmlogin.intjobid=2Orfrmlogin.intjobid=1Then
frmUser.Show
Else
MsgBox"你没有该项权限!
",vbExclamation
ExitSub
EndIf
EndSub
'退出
PrivateSubmnuExit_Click()
Iffrmlogin.intjobid=3Orfrmlogin.intjobid=2Orfrmlogin.intjobid=1Then
frmlogin.Show
UnloadMe
Else
MsgBox"你没有该项权限!
",vbExclamation
ExitSub
EndIf
EndSub
菜单栏里有多个选项,单击后会出现相应的界面,下图为录入商品的界面和代码:
PrivateSubcmdAdd_Click()
DimiAsInteger
DimsqlAsString
DimminpriceAsCurrency
'判断商品信息的某些项是否为空
Fori=0To7
IfTrim(txtproductinfo(i))=""Then
MsgBox"此项不允许为空!
",vbExclamation
txtproductinfo(i).SetFocus
ExitSub
EndIf
Nexti
'判断某些项的数据类型是否正确
IfIsNumeric(txtproductinfo(0).Text)=FalseThen
MsgBox"商品编号应为数字量!
",vbExclamation
txtproductinfo(0).SetFocus
ExitSub
EndIf
IfIsNumeric(txtproductinfo
(1).Text)=FalseThen
MsgBox"商品的价格应为数字量!
",vbExclamation
txtproductinfo
(1).SetFocus
ExitSub
Else
monprice=txtproductinfo(3).Text
EndIf
'将荐购商品信息存入cuff_21123表
sql="insertcuff_21123(productid,price,color,producer,seller,presenter,standard,type,remark)"&"values("&txtproductinfo(0).Text&",'"&txtproductinfo
(1).Text&"',"&monprice&",'"
ExeSQL(sql)
MsgBox"数据添加成功!
",vbExclamation
initcontrol
EndSub
PrivateSubinitcontrol()
DimiAsInteger
Fori=0To8
txtproductinfo(i).Text=""
Nexti
txtproductinfo(0).SetFocus
EndSub
PrivateSubcmdClear_Click()
initcontrol
EndSub
PrivateSubcmdExit_Click()
UnloadMe
EndSub
PrivateSubform_load()
changeformcuffsystemfrmMain,frmAddproduct
EndSub
下图是修改和删除商品截图及代码:
PrivateSubcmdExit_Click()
frmMain.Show
UnloadMe
EndSub
PrivateSubcmdNext_Click()
IfAdodc1.Recordset.EOF=FalseThen
IfAdodc1.Recordset.BOF=TrueThen
Adodc1.Recordset.MoveFirst
EndIf
Adodc1.Recordset.MoveNext
EndIf
IfAdodc1.Recordset.EOF=FalseThen
readdata
EndIf
EndSub
PrivateSubwrit