第一篇:VB学生成绩管理系统课程设计报告
VB程序设计 课程设计报告
班 级:***** 姓 名:***** 序 号:***** 指导老师:*****
目录
1、课设的目的..............................................................................................................................2
2、界面设计和功能设计............................................................................................................2
3、系统功能实施...................................................................................................................11
4、总结........................................................................................................................................30
一、课设的目的
1.本次课程设计提高了我们的实践动手能力
5.通过本次课程设计,熟悉用户界面的设计
2.通过本次课程设计,进一步理解计算机程序设计的思路与方法
3.本次课程设计之后,达到能熟练使用各种常见的VB控件,理解面向对象的思想 4.经过本次课程设计,我们进一步熟练运用VB的语言元素和流程控制语句
6.经过本次课程设计,熟悉数据访问控件ADO及相关对象的使用,能基于ADO控件实现Access的数据访问与操纵
二、界面设计和功能设计
1、下面的界面为用户登陆界面:
用户名和密码均已设定,用户名为zgzy,密码为11201,只有输入正确,然后点击“登陆“按钮才能进入主界面。如果用户名或密码三次输入错误,则系统自动退出。当你点击“退出“按钮时,弹出一个对话窗,界面如下:
在对话框上点击“是”按钮,则退出系统,如果点击“否”,则该界面不变。
2、当用户名和密码均输入正确,点击“登陆”按钮,进入主界面——“学生成绩管理系统”界面,该界面是其他子界面的入口,界面如下:
3、进入主界面后,点击“学生管理(删除添加)”,进入学生管理界面,界面如下
该界面上有一个ADO控件,用于连接数据库,当用户在六个文本框中输入数据时,点击“添加“按钮,可以将数据录入到数据库中,如果此时点击”删除“按钮,则刚才输入的数据就会被删除,点击”保存“按钮时,输入的数据就会自动保存在数据库里,点击”返回主窗体“按钮,该窗体消失,主窗体出现。
4、在主界面点击“各科成绩查询“按钮,出现如下界面:
该界面有一个ADO控件,用来连接数据库,还有一个DataGrid控件,用来显示学生成绩的查询结果,当用户选择了要查询的科目和条件后,点击“查询“按钮,在DataGrid控件上就会显示出所查询的结果。下面为输入条件后查询的结果——
5、在主界面点击“姓名查询“按钮后,会出现如下界面:
该界面与上一界面相似,在文本框输入要查询的姓名后,点击“查询“按钮,就会在DataGrid控件上显示所要查询的结果。下面为输入条件后查询的结果——
5、在主界面点击“班级查询“按钮后,会出现如下界面:
在文版框中输入所要查询的班级,DataGrid控件上就会显示所要查询的结果。下面为输入条件后查询的结果——
6、在主界面上点击“各科成绩段查询“按钮后,会出现如下界面:
点击“计算分数段统计“按钮后,就会出现所要查询的结果。下面为查询的结果——
7、在主界面点击“计算总分“按钮后,出现如下界面:
点击“清除总分”按钮后,出现如下界面
8、在主界面点击“排名“按钮后,出现如下界面:
在该界面上点击“排名“按钮后,在DataGrid控件上会显示出按成绩高低排名的结果,点击”清除排名“按钮后,刚才结果消失,显示原来结果。下面为所现实的结果——
9、在主界面点击“统计直方图“按钮后,出现如下界面:
在该界面点击各个按钮后,就会出现与之相关科目的成绩统计直方图,下面为查询的结果——
10、在主界面点击“优等生“按钮后,出现如下界面:
点击按钮查询后,结果就会在界面上显示出来。下面为所查询的结果——
三、系统功能实施
以上展示的是系统的所有界面,怎样才能让这所有的功能实现呢?数据库和ADO控件的使用便是其中的关键。
1、建立如下数据库
(学号、姓名、班级、英语、数学、VB、总分、排名)
2、建立如下图的所有界面:
3、ADO控件和DataGrid控件以及数据库的连接步骤:(这一步在设计界面的同时完成)
(1)、如何加载ADO控件: 步骤1:
步骤2:
步骤3:
各个界面的ADO控件如何连接数据库(分两步):
步骤1:
如下面界面中的5个步骤
步骤2:
选中ADO控件Adodc1,点击鼠标右键选择属性,然后界面设置如下:
控件绑定数据库的字段操作说明:
属性设置说明:下面以学号为例,姓名、班级等都可参考此。将学号对应的文本框Text1连接Adodc1显示数据库中的学号,需要设置DataSource和DataField两个属性,首先选中Text1文本框,并进行下面的两步操作,即可绑定数据库的学号字段。
设置DataSource:
设置DataField:
(2)、如何加载DataGrid控件 控件DataGrid,可以实现数据的批量处理,该控件在控件库Microsoft DataGrid Control 6.0中。
说明:DataGrid控件属性设置
以下为各个界面所对应的代码——
该界面代码如下:
Private Sub Command1_Click()If Text1.Text = “zgzy” And Text2.Text = “11201” Then Form1.Show Unload me Else MsgBox “用户名或密码错误,请重新输入”, vbMsgBoxSetForeground, “系统提示!” End If
Static t As Integer t = t + 1 If t >= 3 Then End End Sub
Private Sub Command2_Click()a = MsgBox(“确定要退出本系统吗?”, 3 + 32 + 256, “系统提示!”)
If a = 6 Then Unload Me End If End Sub
该界面代码如下:
Private Sub Command1_Click()xsglfrm.Show End Sub Private Sub Command10_Click()ydsfrm.Show End Sub Private Sub Command3_Click()jszffrm.Show End Sub Private Sub Command4_Click()
pmfrm.Show End Sub Private Sub Command5_Click()
zftjtfrm.Show End Sub Private Sub Command6_Click()
cjcxfrm.Show End Sub Private Sub Command7_Click()
xmcxfrm.Show End Sub Private Sub Command8_Click()
bjcxfrm.Show End Sub Private Sub Command9_Click()
gkcjfrm.Show End Sub
该界面代码如下:
Private Sub Command1_Click()Me.Adodc1.Recordset.AddNew End Sub
Private Sub Command2_Click()If Me.Adodc1.Recordset.RecordCount = 0 Or Me.Adodc1.Recordset.EOF Then
Exit Sub End If Me.Adodc1.Recordset.Delete Me.Adodc1.Recordset.MoveNext If Me.Adodc1.Recordset.RecordCount = 0 Then
Exit Sub End If If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast End Sub
Private Sub Command4_Click()Me.Adodc1.Recordset.Save End Sub
Private Sub Command5_Click()
Unload Me
mainfrm.Show End Sub
该界面代码如下: Dim kc_条件 As String Dim kc As String Private Sub Command1_Click()kc_条件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “ ” + kc_条件 Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc_条件 = “>=92” kc = “vb” End Sub
Private Sub Option1_Click()
kc = “VB” End Sub Private Sub Option2_Click()kc = “math” End Sub Private Sub Option3_Click()kc = “English” End Sub
该界面代码如下:
Dim kc_条件 As String Dim kc As String Private Sub Command1_Click()kc_条件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_条件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc = “name” End Sub
该界面代码如下: Dim kc_条件 As String Dim kc As String Private Sub Command1_Click()kc_条件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_条件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc = “class” End Sub
该界面代码如下:
Private Sub Command1_Click()
Dim vb_A As Integer
Dim vb_B As Integer
Dim vb_C As Integer
Dim vb_D As Integer
Dim vb_E As Integer
Dim Math_A As Integer
Dim Math_B As Integer
Dim Math_C As Integer
Dim Math_D As Integer
Dim Math_E As Integer
Dim English_A As Integer
Dim English_B As Integer
Dim English_C As Integer
Dim English_D As Integer
Dim English_E As Integer
Me.Adodc1.RecordSource = “select * from stu where vb>=90”
Me.Adodc1.Refresh
vb_A = Me.Adodc1.Recordset.RecordCount
Me.Text1 = vb_A
Me.Adodc1.RecordSource = “select * from stu where vb>=80 and vb<90”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text2 = vb_B
Me.Adodc1.RecordSource = “select * from stu where vb>=70 and vb<80”
Me.Adodc1.Refresh
vb_C = Me.Adodc1.Recordset.RecordCount
Me.Text3 = vb_C
Me.Adodc1.RecordSource = “select * from stu where vb>=60”
Me.Adodc1.Refresh
vb_D = Me.Adodc1.Recordset.RecordCount
Me.Text4 = vb_D
Me.Adodc1.RecordSource = “select * from stu where vb<60”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text5 = vb_E
Me.Adodc1.RecordSource = “select * from stu where math>=90”
Me.Adodc1.Refresh
Math_A = Me.Adodc1.Recordset.RecordCount
Me.Text6 = Math_A
Me.Adodc1.RecordSource = “select * from stu where math>=80 and math<90”
Me.Adodc1.Refresh
Math_B = Me.Adodc1.Recordset.RecordCount
Me.Text7 = Math_B
Me.Adodc1.RecordSource = “select * from stu where math>=70 and math<80”
Me.Adodc1.Refresh
Math_C = Me.Adodc1.Recordset.RecordCount
Me.Text8 = Math_C
Me.Adodc1.RecordSource = “select * from stu where math>=60 ”
Me.Adodc1.Refresh
Math_D = Me.Adodc1.Recordset.RecordCount
Me.Text9 = Math_D
Me.Adodc1.RecordSource = “select * from stu where math<60”
Me.Adodc1.Refresh
Math_E = Me.Adodc1.Recordset.RecordCount
Me.Text10 = Math_E
Me.Adodc1.RecordSource = “select * from stu where english>=90”
Me.Adodc1.Refresh
English_A = Me.Adodc1.Recordset.RecordCount
Me.Text11 = English_A
Me.Adodc1.RecordSource = “select * from stu where english>=80 and english<90”
Me.Adodc1.Refresh
English_B = Me.Adodc1.Recordset.RecordCount
Me.Text12 = English_B
Me.Adodc1.RecordSource = “select * from stu where english>=70 and english<80”
Me.Adodc1.Refresh
English_C = Me.Adodc1.Recordset.RecordCount
Me.Text13 = English_C
Me.Adodc1.RecordSource = “select * from stu where english>=60”
Me.Adodc1.Refresh
English_D = Me.Adodc1.Recordset.RecordCount
Me.Text14 = English_D
Me.Adodc1.RecordSource = “select * from stu where english<60”
Me.Adodc1.Refresh
English_E = Me.Adodc1.Recordset.RecordCount
Me.Text15 = English_E End Sub
Private Sub Form_Load()
Text1.Text = “"
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
Text7.Text = ”“
Text8.Text = ”“
Text10.Text = ”“
Text11.Text = ”“
Text12.Text = ”“
Text13.Text = ”“
Text14.Text = ”“
Text15.Text = ”“ End Sub
代码如下
Private Sub Command1_Click()'计算总分 Dim vb As Integer
Dim math As Integer Dim english As Integer Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
vb = Me.Adodc1.Recordset.Fields(”vb“).Value
math = Me.Adodc1.Recordset.Fields(”math“).Value
english = Me.Adodc1.Recordset.Fields(”english“).Value
Me.Adodc1.Recordset.Fields(”total“).Value = vb + math + english
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
Private Sub Command2_Click()'清除总分 Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”total“).Value = Null
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
该界面代码如下:
Private Sub Command1_Click()Me.Adodc1.RecordSource = ”select * from stu order by total desc“ Me.Adodc1.Refresh Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = i
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext
Next i End Sub
Private Sub Command2_Click()Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = Null
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
该界面代码如下:
Private Sub Command1_Click()
Me.Adodc1.Refresh
'填充表格数据
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data属性向MSChart数据网格填充数据
MSChart1.Data = Val(Adodc1.Recordset.Fields(”vb“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”VB成绩直方图“ End Sub
Private Sub Command2_Click()Me.Adodc1.Refresh
'填充表格数据
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data属性向MSChart数据网格填充数据
MSChart1.Data = Val(Adodc1.Recordset.Fields(”math“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”Math成绩直方图“ End Sub
该界面代码如下
Private Sub Command1_Click()Dim vb As Integer Dim math As Integer Dim english As Integer
Me.Adodc1.RecordSource = ”select * from stu where((math+english+vb)/3>=90)or((math+english+vb)/3>=85 and(math=100 or english=100 or vb=100))or((vb+english+math)/3>=85 and((vb>=95 and english >=95)or(english>=95 and math>=95)or(math>=95 and vb>=95)))and(mc<=3)and(vb>=60 and english>=60 and math>=60)" Me.Adodc1.Refresh End Sub
四、总结和体会
经过好几天的努力我的课程设计终于完成了。在没有做课程设计以前觉得课程设计好难,我可能做不了,但是通过这次做课程设计发现自己错了。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高,它并不可怕。通过这次课程设计使我明白了自己原来知识还比较欠缺,自己要学习的东西还太多,以前上课没怎么认真听,现在知道它重要了,幸好为时不晚,我以后要更加的努力学好vb。在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。此外,还得出一个结论:世上无难事,只怕有心人。
在设计过程中,我通过查阅有关资料,与同学交流经验和自学等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。
第二篇:VB学生成绩管理系统课程设计报告
VB程序设计 课程设计报告
班 级:资工10902 班 姓 名:何睦 序 号:05 指导老师:刘少华 邵燕林 王庆
陈君华 朱小龙
目录
1、课设的目的..............................................................................................................................3
2、界面设计和功能设计............................................................................................................3
3、系统功能实施.......................................................................................................................12
4、系统功能设计...........................................................................................................................19
5、总结和体会...............................................................................................................................28
一、课设的目的
1.通过本次课程设计,提高实践动手能力;
2.通过本次课程设计,进一步理解计算机程序设计的思路与方法; 3.通过本次课程设计,进一步熟练运用VB的语言元素和流程控制语句;
4.通过本次课程设计,达到能熟练使用各种常见的VB控件,理解面向对象的思想; 5.通过本次课程设计,熟悉用户界面的设计;
6.通过本次课程设计,熟悉数据访问控件ADO及相关对象的使用,能基于ADO控件实现Access的数据访问与操纵;
二、界面设计和功能设计
1、下面的界面为用户登陆界面:
用户名和密码均已设定,用户名为zg,密码为10902,只有输入正确,然后点击“登陆“按钮才能进入主界面。如果用户名或密码三次输入错误,则系统自动退出。当你点击“退出“按钮时,弹出一个对话窗,界面如下:
在对话框上点击“是”按钮,则退出系统,如果点击“否”,则该界面不变。
2、当用户名和密码均输入正确,点击“登陆”按钮,进入主界面——“学生成绩管理系统”界面,该界面是其他子界面的入口,界面如下:
3、进入主界面后,点击“学生管理(删除添加)”,进入学生管理界面,界面如下:
该界面上有一个ADO控件,用于连接数据库,当用户在六个文本框中输入数据时,点击“添加“按钮,可以将数据录入到数据库中,如果此时点击”删除“按钮,则刚才输入的数据就会被删除,点击”保存“按钮时,输入的数据就会自动保存在数据库里,点击”返回主窗体“按钮,该窗体消失,主窗体出现。
4、在主界面点击“各科成绩查询“按钮,出现如下界面:
该界面有一个ADO控件,用来连接数据库,还有一个DataGrid控件,用来显示学生成绩的查询结果,当用户选择了要查询的科目和条件后,点击“查询“按钮,在DataGrid控件上就会显示出所查询的结果。下面为输入条件后查询的结果——
5、在主界面点击“姓名查询“按钮后,会出现如下界面:
该界面与上一界面相似,在文本框输入要查询的姓名后,点击“查询“按钮,就会在DataGrid控件上显示所要查询的结果。下面为输入条件后查询的结果——
5、在主界面点击“班级查询“按钮后,会出现如下界面:
在文版框中输入所要查询的班级,DataGrid控件上就会显示所要查询的结果。下面为输入条件后查询的结果——
6、在主界面上点击“各科成绩段查询“按钮后,会出现如下界面:
点击“计算分数段统计“按钮后,就会出现所要查询的结果。下面为查询的结果——
7、在主界面点击“排名“按钮后,出现如下界面:
在该界面上点击“排名“按钮后,在DataGrid控件上会显示出按成绩高低排名的结果,点击”清除排名“按钮后,刚才结果消失,显示原来结果。下面为所现实的结果——
8、在主界面点击“统计直方图“按钮后,出现如下界面:
在该界面点击各个按钮后,就会出现与之相关科目的成绩统计直方图,下面为查询的结果——
9、在主界面点击“优等生“按钮后,出现如下界面:
点击按钮查询后,结果就会在界面上显示出来。下面为所查询的结果——
三、系统功能实施
以上展示的是系统的所有界面,怎样才能让这所有的功能实现呢?数据库和ADO控件的使用便是其中的关键。
1、建立如下数据库
(学号、姓名、班级、英语、数学、VB、总分、排名)
2、建立如下图的所有界面:
3、ADO控件和DataGrid控件以及数据库的连接步骤:(这一步在设计界面的同时完成)
(1)、如何加载ADO控件: 步骤1:
步骤2:
步骤3:
各个界面的ADO控件如何连接数据库(分两步):
步骤1:
如下面界面中的5个步骤
步骤2:
选中ADO控件Adodc1,点击鼠标右键选择属性,然后界面设置如下:
控件绑定数据库的字段操作说明:
属性设置说明:下面以学号为例,姓名、班级等都可参考此。将学号对应的文本框Text1连接Adodc1显示数据库中的学号,需要设置DataSource和DataField两个属性,首先选中Text1文本框,并进行下面的两步操作,即可绑定数据库的学号字段。
设置DataSource:
设置DataField:
(2)、如何加载DataGrid控件 控件DataGrid,可以实现数据的批量处理,该控件在控件库Microsoft DataGrid Control 6.0中。
说明:DataGrid控件属性设置
四、系统功能设计
系统功能的设计,其核心就是程序代码的编写过程,如何让让系统更加完善、界面更加友好呢,这就得益于代码的编写。以下为各个界面所对应的代码——
该界面代码如下:
Private Sub Command1_Click()If Text1.Text = “zg” And Text2.Text = “10902” Then mainfrm.Show dlfrm.Hide Else
MsgBox “用户名或密码错误,请重新输入”, vbMsgBoxSetForeground, “系统提示!” End If
Static t As Integer t = t + 1 If t >= 3 Then End End Sub
Private Sub Command2_Click()a = MsgBox(“确定要退出本系统吗?”, 3 + 32 + 256, “系统提示!”)If a = 6 Then Unload Me End If End Sub
该界面代码如下:
Private Sub Command1_Click()xsglfrm.Show End Sub Private Sub Command10_Click()ydsfrm.Show End Sub Private Sub Command3_Click()jszffrm.Show End Sub Private Sub Command4_Click()
pmfrm.Show End Sub Private Sub Command5_Click()
zftjtfrm.Show End Sub
Private Sub Command6_Click()
cjcxfrm.Show End Sub Private Sub Command7_Click()
xmcxfrm.Show End Sub Private Sub Command8_Click()
bjcxfrm.Show End Sub Private Sub Command9_Click()
gkcjfrm.Show End Sub
该界面代码如下:
Private Sub Command1_Click()Me.Adodc1.Recordset.AddNew End Sub
Private Sub Command2_Click()If Me.Adodc1.Recordset.RecordCount = 0 Or Me.Adodc1.Recordset.EOF Then
Exit Sub End If Me.Adodc1.Recordset.Delete Me.Adodc1.Recordset.MoveNext If Me.Adodc1.Recordset.RecordCount = 0 Then
Exit Sub End If If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast End Sub
Private Sub Command4_Click()Me.Adodc1.Recordset.Save End Sub
Private Sub Command5_Click()
Unload Me
mainfrm.Show End Sub
该界面代码如下: Dim kc_条件 As String Dim kc As String Private Sub Command1_Click()kc_条件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “ ” + kc_条件 Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc_条件 = “>=92” kc = “vb” End Sub
Private Sub Option1_Click()kc = “VB” End Sub Private Sub Option2_Click()kc = “math” End Sub Private Sub Option3_Click()kc = “English” End Sub
该界面代码如下:
Dim kc_条件 As String Dim kc As String Private Sub Command1_Click()kc_条件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_条件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc = “name” End Sub
该界面代码如下: Dim kc_条件 As String Dim kc As String Private Sub Command1_Click()kc_条件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_条件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()
kc = “class” End Sub
该界面代码如下:
Private Sub Command1_Click()
Dim vb_A As Integer
Dim vb_B As Integer
Dim vb_C As Integer
Dim vb_D As Integer
Dim vb_E As Integer
Dim Math_A As Integer
Dim Math_B As Integer
Dim Math_C As Integer
Dim Math_D As Integer
Dim Math_E As Integer
Dim English_A As Integer
Dim English_B As Integer
Dim English_C As Integer
Dim English_D As Integer
Dim English_E As Integer
Me.Adodc1.RecordSource = “select * from stu where vb>=90”
Me.Adodc1.Refresh
vb_A = Me.Adodc1.Recordset.RecordCount
Me.Text1 = vb_A
Me.Adodc1.RecordSource = “select * from stu where vb>=80 and vb<90”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text2 = vb_B
Me.Adodc1.RecordSource = “select * from stu where vb>=70 and vb<80”
Me.Adodc1.Refresh
vb_C = Me.Adodc1.Recordset.RecordCount
Me.Text3 = vb_C
Me.Adodc1.RecordSource = “select * from stu where vb>=60”
Me.Adodc1.Refresh
vb_D = Me.Adodc1.Recordset.RecordCount
Me.Text4 = vb_D
Me.Adodc1.RecordSource = “select * from stu where vb<60”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text5 = vb_E
Me.Adodc1.RecordSource = “select * from stu where math>=90”
Me.Adodc1.Refresh
Math_A = Me.Adodc1.Recordset.RecordCount
Me.Text6 = Math_A
Me.Adodc1.RecordSource = “select * from stu where math>=80 and math<90”
Me.Adodc1.Refresh
Math_B = Me.Adodc1.Recordset.RecordCount
Me.Text7 = Math_B
Me.Adodc1.RecordSource = “select * from stu where math>=70 and math<80”
Me.Adodc1.Refresh
Math_C = Me.Adodc1.Recordset.RecordCount
Me.Text8 = Math_C
Me.Adodc1.RecordSource = “select * from stu where math>=60 ”
Me.Adodc1.Refresh
Math_D = Me.Adodc1.Recordset.RecordCount
Me.Text9 = Math_D
Me.Adodc1.RecordSource = “select * from stu where math<60”
Me.Adodc1.Refresh
Math_E = Me.Adodc1.Recordset.RecordCount
Me.Text10 = Math_E
Me.Adodc1.RecordSource = “select * from stu where english>=90”
Me.Adodc1.Refresh
English_A = Me.Adodc1.Recordset.RecordCount
Me.Text11 = English_A
Me.Adodc1.RecordSource = “select * from stu where english>=80 and english<90”
Me.Adodc1.Refresh
English_B = Me.Adodc1.Recordset.RecordCount
Me.Text12 = English_B
Me.Adodc1.RecordSource = “select * from stu where english>=70 and english<80”
Me.Adodc1.Refresh
English_C = Me.Adodc1.Recordset.RecordCount
Me.Text13 = English_C
Me.Adodc1.RecordSource = “select * from stu where english>=60”
Me.Adodc1.Refresh
English_D = Me.Adodc1.Recordset.RecordCount
Me.Text14 = English_D
Me.Adodc1.RecordSource = “select * from stu where english<60”
Me.Adodc1.Refresh
English_E = Me.Adodc1.Recordset.RecordCount
Me.Text15 = English_E End Sub
Private Sub Form_Load()
Text1.Text = “"
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
Text7.Text = ”“
Text8.Text = ”“
Text10.Text = ”“
Text11.Text = ”“
Text12.Text = ”“
Text13.Text = ”“
Text14.Text = ”“
Text15.Text = ”“ End Sub
该界面代码如下:
Private Sub Command1_Click()Me.Adodc1.RecordSource = ”select * from stu order by total desc“ Me.Adodc1.Refresh Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = i
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext
Next i End Sub
Private Sub Command2_Click()Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = Null
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
该界面代码如下:
Private Sub Command1_Click()
Me.Adodc1.Refresh
'填充表格数据
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data属性向MSChart数据网格填充数据
MSChart1.Data = Val(Adodc1.Recordset.Fields(”vb“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”VB成绩直方图“ End Sub
Private Sub Command2_Click()Me.Adodc1.Refresh
'填充表格数据
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data属性向MSChart数据网格填充数据
MSChart1.Data = Val(Adodc1.Recordset.Fields(”math“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”Math成绩直方图“ End Sub
该界面代码如下
Private Sub Command1_Click()Dim vb As Integer Dim math As Integer Dim english As Integer
Me.Adodc1.RecordSource = ”select * from stu where((math+english+vb)/3>=90)or((math+english+vb)/3>=85 and(math=100 or english=100 or vb=100))or((vb+english+math)/3>=85 and((vb>=95 and english >=95)or(english>=95 and math>=95)or(math>=95 and vb>=95)))and(mc<=3)and(vb>=60 and english>=60 and math>=60)" Me.Adodc1.Refresh End Sub
五、总结和体会
想来,当时那会儿听说要搞vb课程设计的时候,我可是相当激动啊,心想,学的东西终于可以用一用了。并且这次的Vb课程设计要持续两周的时间,主要是用vb+access相关的知识来实现学生成绩和信息的管理。这对于我们这种初次接触这种东西的人来说,还真是有难度,如果不是老师给了我们足够的模板和样例,我想我还真一时半会儿,不知道从哪里下手,好在功夫不负有心人,经过几天时间的摸索和操作,这个学生成绩管理系统的雏形终于是出现了,虽说功能不太完善,但还是能满足基本要求,这让我很是欣慰。
两周的时间并不长,一晃就到了,课程设计也要画上句号了。在这一段时间里里,不能说
我的vb编程能力有了多么大的提高,多么大的飞跃,但我敢说我对vb和数据库相关的知识有了更加深刻的了解和体会,总结起来主要有以下几点:
1、想要用vb做出好的东西来,一定要勤动手,不能光看,因为好多错误凭看是看不出来的,只有通过自己不断的操作和修改,才能对vb的语法结构和流程有自己独到的理解;
2、在编程和调试的过程中,总会出现一些意想不到的问题。我发现并不是每一个问题都能从资料中得到解决方法,有些问题是无法预料的,这个时候就得靠自己去分析了,你必须得非常的细心,一步一步的进行调试和修改,而且不能急,往往有的错误就是在你急躁的时候从你眼皮底下溜过去的,这样又得重新检查,到头来,既费时又费力,实在不行,还可以和同学一起进行讨论;
3、在写代码的时候,一定要养成良好的语法习惯,对窗体和控件的name属性和caption属性,要尽量习惯用相对应的英文单词的缩写或简写,因为这样便于自己的查找和修改,还有就是在写代码的时候,不要图简单,一些语法结构总是不写全,老是用最简单的形式,如果你对vb语法结构很熟的话,这没问题,但对于我们这样的初学者来说,一定不要这样,因为时间长了的话,对一些复杂一点的程序理解起来会很吃力的,而且对其的运行过程的了解不能达到透彻;
4、在数据库的操作部分,一定检验一下数据源的连接成功与否,还有就是在控件与数据库连接的时候,不要忘了每个控件的datasource属性和datafield属性,要确保其于数据库的成功连接。
经过本次的vb课程设计,让我对vb的软件开发流程,整体筹划发面有了一定的了解和提高,虽说我的专业并不是计算机或者软件工程相关的专业,但我对vb编程的热情丝毫不弱,我相信有了这次的经历,对我以后vb的学习有很大的帮助,并祝我在vb或者其他类型的计算机语言的编程道路上走得更远。
第三篇:vb学生成绩管理系统论文
目 录
摘要……………………………………………………………………………………….2 第一章 引言...........................................................3 第二章 系统设计的目的与要求...........................................3 1.1系统设计的目的....................................................3 1.2系统设计的实验环境................................................4 1.3系统设计的预备知识................................................3 1.4系统设计的要求....................................................4
第三章 系统的概述.....................................................3 2.1系统的需求........................................................3 2.2可行性分析........................................................4 第四章 前台界面分析...................................................4 3.1 登陆界面..........................................................4 3.2信息查询..........................................................6 第五章 数据库的分析...................................................6 4.1 YONGHU表...........................................................7 4.2 STUDENT 表.........................................................7 4.3 SCORE表...........................................................7 4.4 COURSE表...........................................................8 第六章 软件维护.......................................................8 5.1数据维护..........................................................9 5.2代码维护..........................................................9 结语及致谢............................................................9 参考文献..............................................................9
VB学生成绩管理系统
摘要:随着科学技术在管理上越来越深入而广泛的应用,管理信息系统的技术已逐步成熟。学生成绩管理系统是一个不断发展的新型学科,任何一个学校要生存要发展,要高效率地把内部活动有机地组织起来,因为管理这些庞大的体系是非常困难的,要想有机地组织起来,就必须建立与自身特点相适应的成绩管理系统。本文对Visual Basic6.0应用程序设计等工具进行了较深入的学习和应用,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,主要完成了对学生成绩管理系统的系统分析部分,界面的设计、数据库的设计等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;
关键词:visual basic,学生成绩管理系统,数据库,查询
Abstract:Along with science technique is on the management more and more thorough but extensive application, manage information system of technique already gradually mature.Student result management the system is a new academics which develops continuously, the whichever school wants to exist to want a development, high-efficiencily internal activity organically the organization get up, because manage these huge systems are very difficult, think organically the organization get up, have to build up is mutually accommodative with oneself characteristics of result management system.This text to Visual Basic6.0 application program design etc.the tool carried on more thorough study and application, making use of what it provide various development tool which face to object, is the intelligence that data window way's this ability is convenient and simple and direct to manipulate a database to turn object particularly, mainly completed to manage the analysis part of the system of system to student's result, the design, database of interface of design etc.;The system design part mainly introduced design and database design of the system function and code design;Keywords: visual basic,Student result management the system,database, enquiries
第一章 引言
在高科技不断发展的今天,计算机技术己经广泛应用到社会的各个领域。从六十年代中期爆发了著名的软件危机开始,计算机界就一直在探索软件开发理论和方法,以确保计算机技术能够高效地应用于各领域。随着计算机技术不断发展、完善,如何开发、应用高效率计算机软件、信息系统一直是开发人员在试图解决的难题。尽管开发人员已经提供了很多解决的方法,但是现在开发、应用管理信息系统软件的过程中,仍会碰到以下的情形。学生成绩管理系统软件应用的好坏直接影响到学校以及学校今后发展。只有确定出简单、安全、高效的开发设计方法并应用于学生成绩管理系统的开发设计中,才能使先进的计算机工具为个人发展提供高效的服务:才能开发出完整灵活的学生成绩管理系统,具有良好的可扩充性、适应性,系统安全性能高,具有友好的用户界面并且操作简便,因此,学生成绩管理系统开发设计方法的应用研究具有积极的现实意义。第二章 系统设计的目的与要求 2.1 系统设计的目的
本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 2.2 系统设计的实验环境
硬件要求能运行Windows 2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。
2.3 系统设计的预备知识
熟悉C语言及C语言开发工C语言与Access。
第二章 系统的概述
本学生成绩管理系统可以说是一个综合性的学校学生成绩管理系统,这它集成了多种功能,因而具有较强的实用性和先进性。2.1系统的需求
通过调查,要求系统需要有以下功能: ⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面;⑵ 由于该系统的使用对象多,要求有较好的权限管理;⑶ 原始数据修改简单方便,支持多条件修改 ⑷ 方便的数据查询,支持多条件查询;⑸ 在相应的权限下,删除数据方便简单,数据稳定性好; ⑹ 数据计算自动完成,尽量减少人工干预;2.2可行性分析
由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在Windows XP中文版操作系统环境下,使用Visual Basic 6.0中文版开发成功的。第三章 前台界面分析 3.1 登陆界面
主要代码
Option Explicit Dim m As Integer
Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private rsmc As ADODB.Recordset Public username As String Private Sub cmdOk_Click()Dim ee As String rs.MoveFirst If m < 3 Then If Trim(txtusername.Text)= “" Or pwd.Text = ”“ Then MsgBox ”用户名或密码不能为空!请重新输入!“, vbInformation, ”登录信息“ Exit Sub End If Do While Not rs.EOF If rs.Fields(0)= txtusername.Text And rs.Fields(1)= pwd.Text Then MsgBox ”欢迎你进入学生成绩管理系统,“ frmmain.Show Unload Me Exit Sub End If rs.MoveNext Loop m = m + 1 ee = MsgBox(”用户名或密码错误!请重新输入!“, vbCritical + vbRetryCancel, ”登录信息“)'重试/取消 txtusername.Text = ”“ If ee = vbNo Then Unload Me Else pwd.Text = ”“ txtusername.SetFocus
End If Else MsgBox ”对不起,您的输入次数已达到最大限度!请退出!“, vbExclamation, ”提示信息“ '提示信息,确定 End End If End Sub Private Sub Form_Load()Set conn = New ADODB.Connection
conn.Provider = ”Microsoft.Jet.OLEDB.4.0“ conn.ConnectionString = ”Data Source=“ & App.Path & ”aa.mdb“ conn.Open Set rs.ActiveConnection = conn With rs.Open(”select * from yonghu“).MoveFirst End With txtusername.Text = rs.Fields(0)Do While Not rs.EOF txtusername.AddItem(rs.Fields(0))rs.MoveNext Loop txtusername.Text = ”" End Sub 3.2信息查询
信息查询主要是对学生的基本信息和学生的成绩进行查询。在查询的过程你可以利用学号、课程号、专业名等进行查询。第四章 数据库的分析
4.1 yonghu表
主要是登陆用户所用的表。
4.2 student 表
学生的各种信息都来源于这个表。4.3 score表
此表是记录学生成绩信息表。4.4 course表
此表是记录学生课程的表。第五章 软件维护
在软件运行维护阶段对软件产品所进行的修改就是维护。系统维护就是为了保证系统中的各个要素随着环境的变化始终处于最新的,正确的工作状态。系统维护的目的是保证管理信息系统正常而可靠地运行,并能使系统不断地得到改善和提高,以充
分发挥作用。
本系统的维护是面向系统中各种构成要素的,根据维护对象的不同,系统维护的内容可分为以下几类: 5.1数据维护
本系统对数据的需求是不断发生变化的,系统中查询题目中数据要定期正常更新,或随环境及需要的变化而进行调整。此外,数据的备份与恢复,都是数据维护的工作内容。5.2代码维护
随着系统应用范围的扩大,应用环境的变化,系统中的各种代码都需要进行一定程度的增加、修改、删除,以及设置新的代码。结语及致谢
通过这次的设计,让我对VB的使用有了进一步的了解。在我做设计的过程遇到了许多的困难。通过老师和同学的帮助, 一一化解了困难,并从中学到了很多编程方面的知识。
在本次毕业设计中,我要向我的指导老师致以深深的谢意,感谢指导老师在这段时间里在学习上和生活上所给予的悉心的教诲和无微不至的帮助,在我感觉到自己知识有所贫乏的时候给了我细心的指导和技术上的支持。使我自身的能力得到了不少的提高,这对于我以后的工作和学习都有一种巨大的帮助。感谢指导老师的耐心辅导。
参考文献
[1] 宗大华,陈吉人.C语言程序设计教程.人民邮电出版社,2004-6-1 [2] 韩春成.C语言程序设计教程/21世纪高等院校规划教材.中国水利水电出版社,2007,1,14 [3] 宁正元.数据结构--用C语言描述.中国水利水电出版社,2005-4-27 [4] 李梅.C语言编程入门.化学工业出版社,2002,01,01 [5] 于华,都一兵.优化Visual Basic.NET应用程序的性能[J].计算机系统应用,2004,10 [6] 邵英海.Visual Basic数据库开发技术的探讨.[J].丹东纺专学报,2004,11,4 [7] 金凤霞.VB中Paint Picture图形方法的使用 CAJ原文下载[J]., 1999,04 [8] 谭浩强.《C程序设计题解与上机指导(第3版)》.清华大学出版社,2005,7 [9] 聂雪军,贺军/译.[美]Harvey M.Deitel, Paul J.Deitel /著.《C程序设计经典教程(第4版)》,清华大学出版社,2006,3 [10] 李春葆,张植民,肖忠付.《C语言程序设计题典》.清华大学出版社 ,2002,7 [11] 张小潘/译,[美]科汉/著.《C语言编程(第3版)》.电子工业出版社 ,2006,3
[12] 徐宝文 李志/译,[美]Brian W.Kernighan, Dennis M.Ritchie /著.《C程序设计语言(第2版·新
版)》.机械工业出版社,2004,1 [13] 鲁沐浴.《C语言最新编程技巧200例》.电子工业出版社,1997,1
[14] 梁
翎,李爱齐.《C语言程序设计实用技巧与程序实例》.上海科普出版社,1996,5 [15] 陈国章.《Turbo C程序设计技巧与应用实例》.天津科学技术出版社,1995,5 [16] 王士元.《C高级实用程序设计》.清华大学出版社,1996,6
第四篇:学生成绩管理系统VB程序
登陆
登陆
Private Sub cmdLogin_Click()If txtUser.Text = “" Then
MsgBox(”请输入用户名!“)
txtUser.SetFocus Else Call openconn sql = ”select * from login where username='“ & Trim(txtUser.Text)& ”' and password='“ & Trim(txtPwd.Text)& ”'“ rs.Open sql, conn, adOpenDynamic, adLockOptimistic If rs.EOF Then
MsgBox ”用户不存在!“
Else
Unload Me
frmMain.Show End If End If End Sub
退出
Private Sub cmdRegister_Click()Unload Me End Sub
功能选择
选课管理
Private Sub cmdChoice_Click()frmChoice.Show Unload Me End Sub 退出
Private Sub cmdExit_Click()End End Sub 查询
Private Sub cmdFind_Click()frmFind.Show Unload Me End Sub 成绩管理
Private Sub cmdGrade_Click()frmGrade.Show Unload Me End Sub 学生管理
Private Sub cmdStu_Click()frmStu.Show Unload Me End Sub
学生管理
添加
Private Sub cmdAdd_Click()frmAddStu.Show Unload Me End Sub 删除
Private Sub cmdDel_Click()rs.Delete MsgBox(”删除成功!“)End Sub 编辑
Private Sub cmdEdit_Click()frmEditStu.Show Unload Me End Sub 查找
Private Sub cmdFind_Click()'查询功能 If cboFind.Text = ”学号“ Then
If txtInput.Text = ”“ Then
MsgBox(”学号输入不能为空!“)
txtInput.SetFocus
Else
Dim sql1 As String
Set rs1 = New ADODB.Recordset
sql1 = ”select * from stuInfo where ID='“ & txtInput.Text & ”'“
rs1.CursorLocation = adUseClient
rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdText
If rs.EOF Then
MsgBox(”查不到相关信息“)
txtInput.SetFocus
Else
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End If
End If Else
If txtInput.Text = ”“ Then
MsgBox(”姓名输入不能为空!“)
txtInput.SetFocus
Else
Dim sql2 As String
Set rs2 = New ADODB.Recordset
sql2 = ”select * from stuInfo where name='“ & txtInput.Text & ”'“
rs2.CursorLocation = adUseClient
rs2.Open sql2, conn, adOpenDynamic, adLockOptimistic, adCmdText
If rs.EOF Then
MsgBox(”查不到相关信息“)
txtInput.SetFocus
Else
Set DataGrid1.DataSource = rs2
DataGrid1.Refresh
End If
End If End If End Sub 返回
Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub 输出窗口
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
' txtInput.Text = DataGrid1.Columns.Item(4)''获取选中行的第5列数据
End Sub 窗体
Private Sub Form_Load()
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from stuInfo“
rs.CursorLocation = adUseClient
rs.Open sql, conn, adOpenDynamic, adLockOptimistic, adCmdText
Set DataGrid1.DataSource = rs 'datagrid绑定数据源 End Sub
成绩查询
返回 Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub 确定
Private Sub Command1_Click()
lblGrade.Caption = Trim(cboCourse.Text)+ ”课程成绩“
Dim sql1 As String
Set rs1 = New ADODB.Recordset
sql1 = ”select score.ID,score.Num,score.score from score, course where name='“ & cboCourse.Text & ”' and score.Num=course.Num“
'sql1 = ”select * from course“
rs1.CursorLocation = adUseClient
rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdText
Set DataGrid1.DataSource = rs1 End Sub 窗体
Private Sub Form_Load()
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from course“
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
Do Until rs.EOF
cboCourse.AddItem rs(”name“)
rs.MoveNext
Loop End Sub
选课管理
返回
Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID = ”“ Then
MsgBox(”请输入学号!“)
txtID.SetFocus ElseIf lstCourse.Text = ”“ Then
MsgBox(”请选择课程!“)Else
Dim sql1 As String
Dim sql2, name As String
Set rs2 = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
sql1 = ”select score.ID, score.Num from score , course where ID='“ & txtID.Text & ”' and name='“ & lstCourse.Text & ”' and score.Num=course.Num“
name = lstCourse.Text
sql2 = ”select Num from course where name='“ & name & ” '“
rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic
rs2.Open sql2, conn, adOpenDynamic, adLockOptimistic
If rs1.EOF Then
rs1.AddNew
rs1(”ID“)= txtID.Text
rs1(”Num“)= rs2(”Num“)
rs1.Update
MsgBox(”选课成功!“)
rs1.Close
Else
MsgBox(”已选过该课!“)
End If End If End Sub 窗体
Private Sub Form_Load()
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
sql = ”select * from course“
Call openconn
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
Do Until rs.EOF 'listbox控件利用循环读取课程表中的课程名
lstCourse.AddItem rs(”name“)
rs.MoveNext
Loop End Sub
查询
确定
Private Sub cmdOK_Click()If txtID = ”“ Then
MsgBox(”学号不能为空!“)
txtID.SetFocus Else
Dim sql As String
Dim sum1, sum2 As Single
Dim n As Integer
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select course.name , score.score , course.credit from score , course where score.ID='“ & txtID.Text & ”' and score.Num=course.Num“
rs.CursorLocation = adUseClient
rs.Open sql, conn, adOpenDynamic, adLockOptimistic, adCmdText
Set DataGrid1.DataSource = rs
sum1 = 0
sum2 = 0
n = 0
Do While Not rs.EOF
sum1 = sum1 + Val(rs(”score“))
sum2 = sum2 + Val(rs(”credit“))
n = n + 1
rs.MoveNext
Loop
lblAvg.Caption = Format(sum1 / n, ”0.0“)
lblCredit.Caption = sum2 End If End Sub 返回
Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub
修改学生信息
返回
Private Sub cmdReturn_Click()frmStu.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID.Text = ”“ Then
MsgBox(”学号不能为空!“)
txtID.SetFocus ElseIf txtName.Text = ”“ Then
MsgBox(”姓名不能为空!“)
txtName.SetFocus ElseIf txtSex.Text = ”“ Then
MsgBox(”学分不能为空!“)
txtSex.SetFocus ElseIf txtAge.Text = ”“ Then
MsgBox(”年龄不能为空!“)
txtAge.SetFocus Else
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from stuInfo where ID='“ & txtID.Text & ”'“
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
If Not rs.EOF Then
'判断学号是否存在 rs(”name“)= txtName.Text
rs(”sex“)= txtSex.Text
rs(”age“)= txtAge.Text
rs(”pro“)= cboPro.Text
rs.Update
MsgBox(”修改成功!“)
Else
MsgBox(”学号不存在!“)
End If End If End Sub 窗体
Private Sub Form_Load()txtID = rs(”ID“)txtName = rs(”name“)txtSex = rs(”sex“)txtAge = rs(”age“)cboPro.Text = rs(”pro“)End Sub
添加学生
返回
Private Sub cmdReset_Click()frmStu.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID.Text = ”“ Then
MsgBox(”学号不能为空!“)
txtID.SetFocus ElseIf txtName.Text = ”“ Then
MsgBox(”请输入姓名!“)
txtName.SetFocus ElseIf txtSex.Text = ”“ Then
MsgBox(”请输入性别!“)
txtSex.SetFocus ElseIf txtAge.Text = ”“ Then
MsgBox(”年龄不能为空!“)
txtAge.SetFocus Else
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from stuInfo where ID='“ & txtID.Text & ”'“
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
If rs.EOF Then
'判断学号是否存在 rs.AddNew
rs(”ID“)= txtID.Text
rs(”name“)= txtName.Text
rs(”sex“)= txtSex.Text
rs(”age“)= txtAge.Text
rs(”pro“)= cboPro.Text
rs.Update
MsgBox(”添加成功!“)
frmStu.Show
Unload Me
Else
MsgBox(”学号已存在!")
End If End If End Sub
第五篇:VB学生成绩管理系统任务书
河北联合大学
《软件设计基础-VB》课程设计任务书
学院班级设计人成绩
一、题目:学生成绩管理系统
二、目的与要求:
1.目的:
培养学生综合利用VisualBasic6.0语言进行程序设计的能力,主要培养学生使用ACCESS数据库和ADO控件设计信息管理类软件。
2.基本要求:
① 要求用ACCESS搭建数据库。
② 使用ADO控件实现与数据库的连接。
③ 使用MSChart图表控件绘制各种类型的图表;使用MSFlexGrid表格控件显示数据信息。④ 程序界面美观,运行无差错
3.创新要求:
在基本要求达到后,进行创新设计:
(1)允许更改密码。
(2)增加排名次的功能。
(3)可以按院系、专业和年级计算平均成绩并绘制图表。
(4)用户可以添加新的院系和专业名称。
三、设计方法和基本原理:
1.功能要求:
设计一个“学生成绩管理系统”程序,实现对学生成绩的添加、修改、删除、查询和图表绘制,具体如下:
(1)运行程序先进入“登录”界面,要求输入数据库密码,如果密码错误,给出提示。
(2)经过密码检验后,显示主界面,以表格形式显示数据库中所有学生的成绩信息。
(3)“添加”:其中院系、专业和年级使用组合框进行选择。
(4)“修改”:只允许修改学生成绩,不允许修改姓名、院系、专业和年级。
(5)“删除”:可以删除学生信息,删除前进行确认。
(6)“查询”:可以根据院系、专业和年级进行查询。
(7)“图表绘制”:分别以二维条形图、二维圆饼图和三维条形图的形式显示学生成绩中优、良、中、及格和不及格的分布情况。
2.问题的解决方案:
40-1
根据问题描述,可以将问题解决分为以下几个方面:
① 进行需求分析确定数据库的结构,建立相应的数据表。
② 利用ADO控件与数据库连接。
③ 设计主界面,要求有菜单、工具栏和状态栏,具体内容按功能要求自行设计。
④ 其他界面自行设计,满足基本功能要求即可。
四、难点与提示:
(1)本题目中数据库文件的设计是关键,可按如下方法:
创建一个数据库文件scores.mdb,包含三个数据表:院系、专业和成绩。“院系”表中保存院系代号和名称;“专业”表中保存专业代号和名称,以及所属院系的代号;“成绩”表中保存学生姓名、院系代号、专业代号、年级和各科成绩。
(2)ADO控件和数据库的连接代码:
provider = “provider=Microsoft.jet.oledb.4.0”
datasource = “data source=” & App.Path & “scores.mdb”
With Adodc1
.Mode = adModeReadWrite
.ConnectionString = provider & “;” & datasource
.CommandType = adCmdTable
.RecordSource = “yx”
.Refresh
End With
五、课程设计时间:2012年5月10日至2012年7月1日
六、课程设计进行地点:学校机房
七、书写设计报告的要求:
设计报告中包含以下几个方面:
1.设计题目
2.设计思路
①划分功能模块
②确定各模块的算法
3.用图示的方式给出过程或函数之间的调用关系
4.列出程序清单,并加以必要的注释
5.对该设计题目有何更完善的方案
6.通过本次设计,有何收获及心得体会
八、课程设计的考核方式及评分方法
40-2
1.考核方式
课程设计结束时,学生要提交课程设计报告(A4纸打印),并将电子文档和源程序上传至课程设计服务器中:
ftp://210.31.197.23
找到自已指导教师的文件夹后,进入班级文件夹,再找到自己的文件夹,然后将文档复制到该文件夹中即可。
2.评分方法
(1)出勤率
(2)课程设计准备工作
(3)课程设计期间纪律
(4)课程设计运行结果
(5)课程设计报告
(6)答辩情况
指导教师: 系主任签字:日期:40-3 年月日