VB作业模拟成绩管理系统.docx
- 文档编号:4279881
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:13
- 大小:130.20KB
VB作业模拟成绩管理系统.docx
《VB作业模拟成绩管理系统.docx》由会员分享,可在线阅读,更多相关《VB作业模拟成绩管理系统.docx(13页珍藏版)》请在冰豆网上搜索。
VB作业模拟成绩管理系统
VB程序设计
模拟成绩管理系统
学院:
汽车学院
专业:
(交通运输)汽车运用工程
班级:
姓名
学号:
2016《VB程序设计》作业要求
1.做一个成绩管理系统。
2.系统中包括部分学生个人信息,如学号,姓名,性别,出生年月日,班级,籍贯,家庭住址,家庭电话,备注等,及若干(不少于8门)课程成绩和课程学分;输入不少于10条记录;
3.需计算总评成绩(即学分加权平均成绩),并计算排名,且反映在字段中;
4.程序需具备的功能:
记录浏览,添加,修改,删除,查询(按姓名或学号查询)
5.建议不要用ADO控件
6.作业的提交:
(1)电子版。
a.该版本应该是在你的或老师的电脑上都能运行的,与数据库的路径无关的,提交以前请在其他同学电脑上运行一下,确保程序的运行和电脑无关;
b.把所有文件放在同一个文件夹中,压缩文件名:
VB-班级-学号-姓名,如:
VB-汽运1班-xxxxxxxx-张三.zip;
c.提交邮箱随后公布;
(2)纸质版。
纸质版应包括:
a.封面,作业要求;
b.主要界面;
c.主要代码,附程序功能注释及主要语句注释。
d.附必要的说明。
系统运行界面
查询功能
检索框内输入学号或姓名,点击查询,即可在右方显示基本信息,并显示总评成绩。
点击清空按钮后,可继续输入。
例如:
输入学号“09”后,显示界面如下图
如果没有找到纪录,则发出警告,如下图
将记录指针指向第一个纪录
未找到匹配的纪录,则显示提示
查找
显示
输入学号时
使加权成绩小数点后最多显示两位
主要代码:
查询按钮:
PrivateSubCommand1_Click()
Me.Data1.Recordset.Movefirst
IfMe.Combo1.Text<>""Then
Me.Data1.Recordset.FindFirst"name='"&Combo1.Text&"'"
IfMe.Data1.Recordset.NoMatchThen
MsgBox"请重新输入!
",48,"注意"
Combo1.Clear
Combo2.Clear
Else
Me.Data1.Recordset.FindFirst"name='"&Combo1.Text&"'"
Combo2.Text=Data1.Recordset("number")
EndIf
EndIf
IfMe.Combo2.Text<>""Then
Me.Data1.Recordset.FindFirst"number='"&Combo2.Text&"'"
IfMe.Data1.Recordset.NoMatchThen
MsgBox"请重新输入!
",48,"注意"
Combo1.Clear
Combo2.Clear
Else
Me.Data1.Recordset.FindFirst"number='"&Combo2.Text&"'"
Combo1.Text=Data1.Recordset("name")
EndIf
EndIf
PrivategradeAsString*5
grade=(Val(Text8.Text)*Val(Me.Text17.Text)+Val(Text9.Text)*
计算加权成绩
显示窗口二
4
Val(Me.Text18.Text)+Val(Text10.Text)*Val(Me.Text20.Text)+Val(Text11.Text)*Val(Me.Text21.Text)+Val(Text12.Text)*Val(Me.Text22.Text)+Val(Text13.Text)*Val(Me.Text23.Text)+Val(Text14.Text)*Val(Me.Text24.Text)+Val(Text15.Text)*Val(Me.Text25.Text)+Val(Text16.Text)*Val(Me.Text26.Text))/(Val(Me.Text17.Text)+Val(Me.Text18.Text)+Val(Me.Text20.Text)+Val(Me.Text21.Text)+Val(Me.Text22.Text)+Val(Me.Text23.Text)+Val(Me.Text24.Text)+Val(Me.Text25.Text)+Val(Me.Text26.Text))
Me.Text19.Text=grade
EndSub
添加功能
点击“添加”按钮后,弹出新窗口,输入完整信息后,点击更新,如果信息不完整,系统会提示“请输入完整数据!
”。
输入完成后,点击更新,数据便录入数据表中,并返回初始界面,可继续输入。
点击“取消”按钮后,退出窗口2,返回窗口一,继续进行其他操作。
主要代码:
添加按钮
PrivateSubCommand3_Click()
inNum=1
Form2.Show1
EndSub
窗口二代码
PrivateSubCommand1_Click()
IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""OrText7.Text=""OrText8.Text=""OrText9.Text=""
提示输入完整数据
将数据写入data1
OrText10.Text=""OrText11.Text=""OrText12.Text=""OrText13.Text=""OrText14.Text=""OrText15.Text=""OrText16.Text=""OrText17.Text=""OrText18.Text=""OrText20.Text=""OrText21.Text=""OrText22.Text=""OrText23.Text=""OrText24.Text=""OrText25.Text=""OrText26.Text=""Then
b=MsgBox("请输入完整数据!
",4+48,"注意")
Text1.SetFocus
ExitSub
EndIf
WithData1
.Recordset.AddNew
.Recordset("number")=Text1.Text
.Recordset("name")=Text2.Text
.Recordset("sex")=Text3.Text
.Recordset("birthday(year)")=Text4.Text
……
.Recordset.Update
EndWith
Text1.Text="":
Text2.Text="":
Text3.Text="":
Text4.Text="":
Text5.Text="":
Text6.Text="":
Text7.Text="":
Text8.Text="":
Text9.Text="":
Text10.Text="":
Text11.Text="":
Text12.Text="":
Text13.Text="":
Text14.Text="":
Text15.Text="":
Text16.Text="":
Text17.Text="":
Text18.Text="":
Text20.Text="":
Text21.Text="":
Text22.Text="":
Text23.Text="":
Text24.Text="":
Text25.Text="":
Text26.Text="":
Text1.SetFocus
点击取消按钮时
窗口二与data1数据表连接
EndSub
PrivateSubCommand2_Click()
UnloadMe
Form1.Show
EndSub
PrivateSubForm_Load()
Me.Data1.DatabaseName=App.Path+"\201322020301-吕天翔.mdb"
Me.Data1.RecordSource="grademanagement"
EndSub
修改功能
点击“修改”按钮后,按钮消失,‘保存’按钮出现,同时课程学分部分显现,可一并修改,修改完成后,点击保存,显示警告“当前记录将被修改,确定修改?
”
点击确定,完成修改,并回到初始界面。
调整课程学分部分可见性
调整按钮可见性
6
主要代码:
点击修改按钮
PrivateSubCommand4_Click()
Me.Text17.Visible=True
Me.Text18.Visible=True
Me.Text20.Visible=True
Me.Text21.Visible=True
Me.Text22.Visible=True
Me.Text23.Visible=True
Me.Text24.Visible=True
Me.Text25.Visible=True
Me.Text26.Visible=True
Label8
(2).Visible=True
Me.Command3.Visible=False
Me.Command4.Visible=False
Me.Command5.Visible=False
显示提示
选择“否”时选择退出
否则进入写入状态
依次写入
Me.Command6.Visible=False
Me.Command10.Visible=True
EndSub
点击保存按钮
PrivateSubCommand10_Click()
a=MsgBox("当前记录将被修改,确定修改?
",4+48,"警告")
Ifa=vbNoThenExitSub
Me.Data1.Recordset.Edit
WithData1
.Recordset("number")=Text1
.Recordset("name")=Text2
.Recordset("sex")=Text3
……
.Recordset("transportation-xuefen")=Me.Text24
.Recordset("automobile-xuefen")=Me.Text25
.Recordset("engine-xuefen")=Me.Text26
EndWith
Data1.Refresh
Combo1.Clear
Combo2.Clear
EndSub
删除功能
点击“删除”按钮后将弹出“当前记录将被删除,确认删除?
”对话框,点击“是”按钮后,将当前记录从data1中删除,并更新data1;若点击“否”,则退出,返回初始界面。
显示提示
进行删除操作
更新data1
主要代码:
PrivateSubCommand5_Click()
a=MsgBox("当前记录将被删除,确定删除?
",4+48,"警告")
Ifa=vbNoThenExitSub
Me.Data1.Recordset.Delete
Me.Data1.Refresh
Combo1.Clear
Combo2.Clear
EndSub
总评成绩计算
算法介绍
用课程学分部分数据与考试成绩计算总评成绩,课程学分部分通常隐藏在窗体中。
情况一浏览时即显示总评成绩
点击data控件按钮浏览数据的同时,该数据的总评成绩也同时显示。
主要代码:
PrivateSubData1_Validate(ActionAsInteger,SaveAsInteger)
如果当前界面没有显示数据
为防止浏览时出错
总评成绩的计算
8
IfMe.Data1.Recordset.EOF=TrueThen
Me.Data1.Recordset.Movefirst
Else
grade=(Val(Text8.Text)*Val(Me.Text17.Text)+Val(Text9.Text)*Val(Me.Text18.Text)+Val(Text10.Text)*Val(Me.Text20.Text)+Val(Text11.Text)*Val(Me.Text21.Text)+Val(Text12.Text)*Val(Me.Text22.Text)+Val(Text13.Text)*Val(Me.Text23.Text)+Val(Text14.Text)*Val(Me.Text24.Text)+Val(Text15.Text)*Val(Me.Text25.Text)+Val(Text16.Text)*Val(Me.Text26.Text))/(Val(Me.Text17.Text)+Val(Me.Text18.Text)+Val(Me.Text20.Text)+Val(Me.Text21.Text)+Val(Me.Text22.Text)+Val(Me.Text23.Text)+Val(Me.Text24.Text)+Val(Me.Text25.Text)+Val(Me.Text26.Text))
Me.Text19.Text=grade
EndIf
EndSub
情况二:
查询时即显示其总评成绩
计算方法相同,此处不再赘述。
排名功能
点击“排名”按钮后,根据总评成绩大小,在list控件中显示当前数据的排名情况,可以同时显示“名次”“姓名”“总评成绩”;同时在删除或添加部分数据后,能重新计算排名,此处通过动态数组实现显示个数随数据个数同时变化。
算法介绍:
添加一个text控件,用来存放当前窗口的总评成绩。
使用data1控件的movefirst,movenext,eof等属性完成数据库“数据个数计算”“所有数据姓名与成绩的提取与匹配”,使用动态数组完成数据存放;利用循环完成赋值及大小比较,最后通过list显示出来。
用h存放数据库数据个数
主要代码:
PrivateSubCommand8_Click()
DoUntilMe.Data1.Recordset.EOF=True
Me.Data1.Recordset.Movenext
h=h+1
Loop
Me.Data1.Recordset.Movefirst
定义与数据个数相同行数的二位动态数组
Text27中存放当前数据的成绩
把姓名和成绩赋值给数组
对数组中的成绩进行比较并重新排序
输出排序
10
DimtAsString
DimwAsString
ReDima(h,2)AsString*5
DoUntilMe.Data1.Recordset.EOF=True
Me.Text27.Text=(Val(Text8.Text)*Val(Me.Text17.Text)+Val(Text9.Text)*Val(Me.Text18.Text)+Val(Text10.Text)*Val(Me.Text20.Text)+Val(Text11.Text)*Val(Me.Text21.Text)+Val(Text12.Text)*Val(Me.Text22.Text)+Val(Text13.Text)*Val(Me.Text23.Text)+Val(Text14.Text)*Val(Me.Text24.Text)+Val(Text15.Text)*Val(Me.Text25.Text)+Val(Text16.Text)*Val(Me.Text26.Text))/(Val(Me.Text17.Text)+Val(Me.Text18.Text)+Val(Me.Text20.Text)+Val(Me.Text21.Text)+Val(Me.Text22.Text)+Val(Me.Text23.Text)+Val(Me.Text24.Text)+Val(Me.Text25.Text)+Val(Me.Text26.Text))
a(i,1)=Text2.Text
a(i,2)=Text27.Text
i=i+1
Me.Data1.Recordset.Movenext
Loop
Fori=1Toh
Forj=i+1Toh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 作业 模拟 成绩管理系统