1、汽车消费信贷系统软件开发环境与工具 实验报告 课程设计实验题目:汽车消费信贷系统指导老师:专业班级:姓 名:2012年 12月10日实验类型_验证性_ 实验室_软件实验室二_一、实验题目 汽车消费信贷系统二、实验目的 (1)要求学生达到熟练掌握.NET基本结构以及VB.NET语言的基本知识和技能;(2)基本掌握面向对象程序开发的基本思路和方法;(3)掌握ADO.NET数据库开发基本知识;(4)能够利用所学的基本知识和技能,进行简单数据库应用程序设计。三、实验内容1.要求实现核心模块的基本功能,即能够对单据进行新增,修改,删除,保存,取消以及导航等功能。2.对单据的编码要有严格的控制。3.单据要
2、有多级审核功能。4.要采用.NET三层架构开发,在设计思想要充分发挥.NET的优势。5.在程序设计上要有良好的编程习惯,比如命名要“见名知意”,可变部分要能够“自定义”等。6.要有严格的身份验证功能,最好对重要的内容进行MD5加密。7.要有用户权限控制。8.最好能够实现业务菜单的自定义。四、实验代码1.实验说明:该实验是以汽车消费信贷系统为核心,实现信贷的部分简单功能,即能够对相关单据信息进行新增,修改,删除,保存,取消以及导航等功能。有多级审核功能,如安检、证照、制单、财务等部门的审核。采用.NET三层架构开发,使代码看起来比较简单清晰。用户管理能够对权限进行控制。另外代码能够实现业务菜单的
3、自定义,使用户使用方便。2.数据库设计在本次实验中共用到7张表,分别为:1.gg_user: User_id、user_name、password、state、user_dept2.gg_menue: typeid、parid、FullName、Form、isStop、isGroup3.gg_HolAuth: User_id、Typeid4.gg_CodeFormat: ID、BMMC、BMLX、BMZ5.ht_GouCheHT: DJBM、ZDRQ、KHMC、ZDR、SHR、BZ6.xd_HKJH:月份、天数、贷款本金、贷款利息、还款节余、ID、单据编码7.xd_SFTZD:单据编码、制单日
4、期、客户名称、客户编码、手机、车辆品牌、车牌号、车价、资审人、证照人、财务人、制单人、安检人、贷款期限、还款方式、还款利率%、首付3.实验主要代码(1)登陆Public Class 登录Dim o As New myData.clsUserPrivate Sub txtLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtLogin.Click Dim dr As SqlClient.SqlDataReaderdUser_Pwd=System.Web.Security.FormsAu
5、thentication.HashPasswordForStoringInConfigFile(Me.txtPassword.Text, MD5)dr = o.getall2dr(userid= & Me.txtName.Text & ) If Me.txtName.Text = Then MsgBox(用户名不能为空!) Me.txtName.Focus() Me.txtName.SelectAll() Exit Sub End If If Me.txtPassword.Text = Then MsgBox(登录密码不能为空!) Me.txtPassword.Focus() Me.txtPa
6、ssword.SelectAll() Exit Sub End If If dr.Read = True Then If dUser_Pwd = dr.Item(password) Then If dr.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
7、() Me.Hide() Else MsgBox(用户未启用!) End If Else MsgBox(密码错误!) End If Else MsgBox(用户名错误!) End IfEnd SubPrivate Sub txtExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtExit.ClickMe.Close()End SubEnd Class(2)基本信息界面Public Class 基本信息 Dim o As New myData.Userdenglu Dim a As S
8、tringPrivate Sub 基本信息_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadMe.txtxm.Text = dUser_idMe.txtdept.Text = dUser_DeptIDEnd SubPrivate Sub btnexit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexit.ClickMe.Close()登录.Close()End Su
9、bPrivate Sub btnDH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDH.Click导航.Show()End SubEnd Class(3)导航界面Public Class 导航Dim o As New myData.clsMenu,树形菜单的遍历Private Sub 导航_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call Me.InitTr
10、ee()End SubSub InitTree() Me.TreeView1.Nodes.Clear() Dim dr As SqlClient.SqlDataReader dr = o.getall2dr Dim myTreeNode As TreeNode While dr.Read If o.getQX(001, dr!typeid) = True Then myTreeNode = New TreeNode myTreeNode.Text = dr!FullName myTreeNode.Name = dr!typeid If dr!isGroup = 0 Then myTreeNod
11、e.Tag = dr!FormElse myTreeNode.Tag = End If If dr!parid = 0 Then Me.TreeView1.Nodes.Add(myTreeNode) Else Me.TreeView1.Nodes.Find(dr!parid,True)(0).Nodes.Add(myTreeNode) End If End If End While End Sub点击树节点的某个项目,出现一个相应的功能子窗体Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e As Syste
12、m.Windows.Forms.TreeNodeMouseClickEventArgs)HandlesTreeView1.NodeMouseClickIf e.Button Windows.Forms.MouseButtons.Left ThenExit SubEnd If If e.Node.Tag = Then Exit Sub End If Dim frmName As String frmName = 购车合同管理. & e.Node.Tag Dim f As Form f = CType(Activator.CreateInstance(Type.GetType(frmName),
13、Form) f.MdiParent = Me If f.MaximizeBox = True Then f.WindowState = FormWindowState.Maximized Else f.WindowState = FormWindowState.Normal End If f.Show()End SubEnd Class(4)首付通知单Public Class SFTZD Dim o As New myData.clsxd Dim dv As DataView Dim pIndex As Integer Dim action As String = browse Private
14、 Sub 首付通知单_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call InitData() If dv.Count 0 Then pIndex = dv.Count - 1 Call showCurrentRow(pIndex) End If End SubSub InitData()dv = o.getall2ds().Tables(0).DefaultViewEnd SubSub showCurrentRow(ByVal pCurrentRow As Inte
15、ger) Me.txtDJBM.Text = dv.Item(pCurrentRow).Item(单据编码).ToStringMe.txtZDRQ.Text = dv.Item(pCurrentRow).Item(制单日期).ToString Me.txtKHMC.Text = dv.Item(pCurrentRow).Item(客户名称).ToStringMe.txtZDR.Text = dv.Item(pCurrentRow).Item(制单人).ToString Me.txtAJR.Text = dv.Item(pCurrentRow).Item(安检人).ToString Me.txt
16、SJ.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.It
17、em(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).I
18、tem(贷款期限).ToString MHKFS.Text = dv.Item(pCurrentRow).Item(还款方式).ToString Call Me.btnState(0)End SubEnd Class翻页功能:首页Private Sub btnfirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnfirst.ClickIf dv.Count 0 Then pIndex = 0 Call showCurrentRow(pIndex)End IfEnd Sub上页Priv
19、ate Sub btnup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnup.ClickIf pIndex 0 Then pIndex -= 1 Call showCurrentRow(pIndex)End IfEnd Sub下页Private Sub btndown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndown.ClickIf pIndex 0 Then pIndex
20、 = dv.Count - 1 Call showCurrentRow(pIndex) End IfEnd Sub增删改功能:新增Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.ClickMe.action = new Call ClearForm()End SubSub ClearForm() Me.txtDJBM.Text = MyCommon.clsCodeFormat.getNewCode(合同编码) Me.txtKHBM.Text =
21、 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.txt
22、ZZR.Text = Me.txtCWR.Text = Call btnState(1)End Sub编辑Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click Me.action = edit Call btnState(1)End Sub取消Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b
23、tnCancel.Click Call btnState(0)End Sub保存Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click Dim sr As String 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 = M
24、e.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 If action = new Then sr = o.save() If sr = 1 Then MsgBox(保存成功) Call InitData() Else MsgBox(保存失败) End If Else sr = o.edit If
25、 sr = 1 Then MsgBox(更新成功) Call InitData() Else MsgBox(更新失败) End IfEnd If Call btnState(0)End Sub删除Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click o.dDJBM = Me.txtDJBM.Text Dim sr As String sr = o.del If sr = 1 Then MsgBox(删除成功) Call InitData(
26、) Else MsgBox(删除失败) End IfEnd Sub(5)四步审核: 用于显示xd_SFTZD表中的数据 Sub InitGRid() dv = o.getall2ds().Tables(0).DefaultView Me.DataGridView1.DataSource = dv End Sub Private Sub ZZSH_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load InitGRid()End Sub,资审 Private Sub btnZS_Cl
27、ick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZS.Click Dim sr As String o.dDJBM=Me.DataGridView1.Rows(DataGridView1.SelectedRows(0).Index).Cells(0).Value o.dZSR = Me.txtSHR.Text sr = o.zishen If sr = 1 Then MsgBox(审核成功) Call InitGRid() Else MsgBox(审核失败) End If End Sub4.运行结果:1.登陆界面2.树形导航菜单五、实验总结本次实验是通过本次实验掌握ADO.NET数据库开发基本知识;能够利用所学的基本知识和技能,进行简单数据库应用程序设计。对treeview控件的相关使用有了更深刻的理解。以汽车消费信贷系统为核心,实现信贷的部分简单功能,有多级审核功能,采用.NET三层架构(表示层、数据访问层、数据库)开发,用户管理能够对权限进行控制,另外代码能够实现业务菜单的自定义。