汽车消费信贷系统.docx
《汽车消费信贷系统.docx》由会员分享,可在线阅读,更多相关《汽车消费信贷系统.docx(18页珍藏版)》请在冰豆网上搜索。
汽车消费信贷系统
软件开发环境与工具
实验报告
课程设计
实验题目:
汽车消费信贷系统
指导老师:
专业班级:
姓名:
2012年12月10日
实验类型__验证性__实验室_软件实验室二__
一、实验题目
汽车消费信贷系统
二、实验目的
(1)要求学生达到熟练掌握.NET基本结构以及VB.NET语言的基本知识和技能;
(2)基本掌握面向对象程序开发的基本思路和方法;
(3)掌握ADO.NET数据库开发基本知识;
(4)能够利用所学的基本知识和技能,进行简单数据库应用程序设计。
三、实验内容
1.要求实现核心模块的基本功能,即能够对单据进行新增,修改,删除,保存,取消以及导航等功能。
2.对单据的编码要有严格的控制。
3.单据要有多级审核功能。
4.要采用.NET三层架构开发,在设计思想要充分发挥.NET的优势。
5.在程序设计上要有良好的编程习惯,比如命名要“见名知意”,可变部分要能够“自定义”等。
6.要有严格的身份验证功能,最好对重要的内容进行MD5加密。
7.要有用户权限控制。
8.最好能够实现业务菜单的自定义。
四、实验代码
1.实验说明:
该实验是以汽车消费信贷系统为核心,实现信贷的部分简单功能,即能够对相关单据信息进行新增,修改,删除,保存,取消以及导航等功能。
有多级审核功能,如安检、证照、制单、财务等部门的审核。
采用.NET三层架构开发,使代码看起来比较简单清晰。
用户管理能够对权限进行控制。
另外代码能够实现业务菜单的自定义,使用户使用方便。
2.数据库设计
在本次实验中共用到7张表,分别为:
1.gg_user:
User_id、user_name、password、state、user_dept
2.gg_menue:
typeid、parid、FullName、Form、isStop、isGroup
3.gg_HolAuth:
User_id、Typeid
4.gg_CodeFormat:
ID、BMMC、BMLX、BMZ
5.ht_GouCheHT:
DJBM、ZDRQ、KHMC、ZDR、SHR、BZ
6.xd_HKJH:
月份、天数、贷款本金、贷款利息、还款节余、ID、单据编码
7.xd_SFTZD:
单据编码、制单日期、客户名称、客户编码、手机、车辆品牌、车牌号、车价、资审人、证照人、财务人、制单人、安检人、贷款期限、还款方式、[还款利率%]、首付
3.实验主要代码
(1)登陆
PublicClass登录
DimoAsNewmyData.clsUser
PrivateSubtxtLogin_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlestxtLogin.Click
DimdrAsSqlClient.SqlDataReader
dUser_Pwd=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Me.txtPassword.Text,"MD5")
dr=o.getall2dr("userid='"&Me.txtName.Text&"'")
IfMe.txtName.Text=""Then
MsgBox("用户名不能为空!
")
Me.txtName.Focus()
Me.txtName.SelectAll()
ExitSub
EndIf
IfMe.txtPassword.Text=""Then
MsgBox("登录密码不能为空!
!
!
")
Me.txtPassword.Focus()
Me.txtPassword.SelectAll()
ExitSub
EndIf
Ifdr.Read=TrueThen
IfdUser_Pwd=dr.Item("password")Then
Ifdr.Item("state")="正常"Then
dUser_id=dr.Item("userid")
dUser_state=dr.Item("state")
dUser_DeptID=dr.Item("userdept")
MessageBox.Show("登录成功!
","系统提示",MessageBoxButtons.OK,
MessageBoxIcon.Information)
基本信息.Show()
Me.Hide()
Else
MsgBox("用户未启用!
")
EndIf
Else
MsgBox("密码错误!
")
EndIf
Else
MsgBox("用户名错误!
")
EndIf
EndSub
PrivateSubtxtExit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlestxtExit.Click
Me.Close()
EndSub
EndClass
(2)基本信息界面
PublicClass基本信息
DimoAsNewmyData.Userdenglu
DimaAsString
PrivateSub基本信息_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.txtxm.Text=dUser_id
Me.txtdept.Text=dUser_DeptID
EndSub
PrivateSubbtnexit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtnexit.Click
Me.Close()
登录.Close()
EndSub
PrivateSubbtnDH_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnDH.Click
导航.Show()
EndSub
EndClass
(3)导航界面
PublicClass导航
DimoAsNewmyData.clsMenu
,树形菜单的遍历
PrivateSub导航_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
CallMe.InitTree()
EndSub
SubInitTree()
Me.TreeView1.Nodes.Clear()
DimdrAsSqlClient.SqlDataReader
dr=o.getall2dr
DimmyTreeNodeAsTreeNode
Whiledr.Read
Ifo.getQX("001",dr!
typeid)=TrueThen
myTreeNode=NewTreeNode
myTreeNode.Text=dr!
FullName
myTreeNode.Name=dr!
typeid
Ifdr!
isGroup="0"Then
myTreeNode.Tag=dr!
Form
Else
myTreeNode.Tag=""
EndIf
Ifdr!
parid="0"Then
Me.TreeView1.Nodes.Add(myTreeNode)
Else
Me.TreeView1.Nodes.Find(dr!
parid,True)(0).Nodes.Add(myTreeNode)
EndIf
EndIf
EndWhile
EndSub
'点击树节点的某个项目,出现一个相应的功能子窗体
PrivateSubTreeView1_NodeMouseClick(ByValsenderAsObject,ByValeAs
System.Windows.Forms.TreeNodeMouseClickEventArgs)HandlesTreeView1.NodeMouseClick
Ife.Button<>Windows.Forms.MouseButtons.LeftThen
ExitSub
EndIf
Ife.Node.Tag=""Then
ExitSub
EndIf
DimfrmNameAsString
frmName="购车合同管理."&e.Node.Tag
DimfAsForm
f=CType(Activator.CreateInstance(Type.GetType(frmName)),Form)
f.MdiParent=Me
Iff.MaximizeBox=TrueThen
f.WindowState=FormWindowState.Maximized
Else
f.WindowState=FormWindowState.Normal
EndIf
f.Show()
EndSub
EndClass
(4)首付通知单
PublicClassSFTZD
DimoAsNewmyData.clsxd
DimdvAsDataView
DimpIndexAsInteger
DimactionAsString="browse"
PrivateSub首付通知单_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
CallInitData()
Ifdv.Count>0Then
pIndex=dv.Count-1
CallshowCurrentRow(pIndex)
EndIf
EndSub
SubInitData()
dv=o.getall2ds("").Tables(0).DefaultView
EndSub
SubshowCurrentRow(ByValpCurrentRowAsInteger)
Me.txtDJBM.Text=dv.Item(pCurrentRow).Item("单据编码").ToString
Me.txtZDRQ.Text=dv.Item(pCurrentRow).Item("制单日期").ToString
Me.txtKHMC.Text=dv.Item(pCurrentRow).Item("客户名称").ToString
Me.txtZDR.Text=dv.Item(pCurrentRow).Item("制单人").ToString
Me.txtAJR.Text=dv.Item(pCurrentRow).Item("安检人").ToString
Me.txtSJ.Text=dv.Item(pCurrentRow).Item("手机").ToString
Me.txtCJ.Text=dv.Item(pCurrentRow).Item("车价").ToString
Me.txtCLPP.Text=dv.Item(pCurrentRow).Item("车辆品牌").ToString
Me.txtCPH.Text=dv.Item(pCurrentRow).Item("车牌号").ToString
Me.txtCWR.Text=dv.Item(pCurrentRow).Item("财务人").ToString
Me.txtDKLL.Text=dv.Item(pCurrentRow).Item("贷款利率%").ToString
Me.txtKHBM.Text=dv.Item(pCurrentRow).Item("客户编码").ToString
Me.txtSF.Text=dv.Item(pCurrentRow).Item("首付").ToString
Me.txtZSR.Text=dv.Item(pCurrentRow).Item("资审人").ToString
Me.txtZZR.Text=dv.Item(pCurrentRow).Item("证照人").ToString
MDKQX.Text=dv.Item(pCurrentRow).Item("贷款期限").ToString
MHKFS.Text=dv.Item(pCurrentRow).Item("还款方式").ToString
CallMe.btnState(0)
EndSub
EndClass
翻页功能:
'首页
PrivateSubbtnfirst_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtnfirst.Click
Ifdv.Count>0Then
pIndex=0
CallshowCurrentRow(pIndex)
EndIf
EndSub
'上页
PrivateSubbtnup_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtnup.Click
IfpIndex>0Then
pIndex-=1
CallshowCurrentRow(pIndex)
EndIf
EndSub
'下页
PrivateSubbtndown_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtndown.Click
IfpIndexpIndex+=1
CallshowCurrentRow(pIndex)
EndIf
EndSub
'末页
PrivateSubbtnend_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtnend.Click
Ifdv.Count>0Then
pIndex=dv.Count-1
CallshowCurrentRow(pIndex)
EndIf
EndSub
增删改功能:
'新增
PrivateSubbtnNew_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnNew.Click
Me.action="new"
CallClearForm()
EndSub
SubClearForm()
Me.txtDJBM.Text=MyCommon.clsCodeFormat.getNewCode("合同编码")
Me.txtKHBM.Text=MyCommon.clsCodeFormat.getNewCode("客户编码")
Me.txtZDRQ.Text=Format(Now,"yyyy-MM-dd")
Me.txtKHMC.Text=""
Me.txtCJ.Text=""
Me.txtCLPP.Text=""
Me.txtCPH.Text=""
Me.txtDKLL.Text="6.500"
Me.txtSF.Text=""
Me.txtSJ.Text=""
MHKFS.Text=""
MDKQX.Text=""
Me.txtZDR.Text=dUser_id
Me.txtAJR.Text=""
Me.txtZSR.Text=""
Me.txtZZR.Text=""
Me.txtCWR.Text=""
CallbtnState
(1)
EndSub
'编辑
PrivateSubbtnEdit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
HandlesbtnEdit.Click
Me.action="edit"
CallbtnState
(1)
EndSub
'取消
PrivateSubbtnCancel_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnCancel.Click
CallbtnState(0)
EndSub
'保存
PrivateSubbtnSave_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnSave.Click
DimsrAsString
o.dDJBM=Me.txtDJBM.Text
o.dKHMC=Me.txtKHMC.Text
o.dZDR=Me.txtZDR.Text
o.dZDRQ=Me.txtZDRQ.Text
o.dCJ=Me.txtCJ.Text
o.dCLPP=Me.txtCLPP.Text
o.dCPH=Me.txtCPH.Text
o.dDKLL=Me.txtDKLL.Text
o.dDKQX=MDKQX.Text
o.dHKFS=MHKFS.Text
o.dKHBM=Me.txtKHBM.Text
o.dSF=Me.txtSF.Text
o.dSJ=Me.txtSJ.Text
Ifaction="new"Then
sr=o.save()
Ifsr="1"Then
MsgBox("保存成功")
CallInitData()
Else
MsgBox("保存失败")
EndIf
Else
sr=o.edit
Ifsr="1"Then
MsgBox("更新成功")
CallInitData()
Else
MsgBox("更新失败")
EndIf
EndIf
CallbtnState(0)
EndSub
'删除
PrivateSubbtnDel_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnDel.Click
o.dDJBM=Me.txtDJBM.Text
DimsrAsString
sr=o.del
Ifsr="1"Then
MsgBox("删除成功")
CallInitData()
Else
MsgBox("删除失败")
EndIf
EndSub
(5)四步审核:
'用于显示xd_SFTZD表中的数据
SubInitGRid()
dv=o.getall2ds("").Tables(0).DefaultView
Me.DataGridView1.DataSource=dv
EndSub
PrivateSubZZSH_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
HandlesMyBase.Load
InitGRid()
EndSub
,资审
PrivateSubbtnZS_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
HandlesbtnZS.Click
DimsrAsStringo.dDJBM=Me.DataGridView1.Rows(DataGridView1.SelectedRows(0).Index).Cells(0).Value
o.dZSR=Me.txtSHR.Text
sr=o.zishen
Ifsr="1"Then
MsgBox("审核成功")
CallInitGRid()
Else
MsgBox("审核失败")
EndIf
EndSub
4.运行结果:
1.登陆界面
2.树形导航菜单
五、实验总结
本次实验是通过本次实验掌握ADO.NET数据库开发基本知识;能够利用所学的基本知识和技能,进行简单数据库应用程序设计。
对treeview控件的相关使用有了更深刻的理解。
以汽车消费信贷系统为核心,实现信贷的部分简单功能,有多级审核功能,采用.NET三层架构(表示层、数据访问层、数据库)开发,用户管理能够对权限进行控制,另外代码能够实现业务菜单的自定义。