VB作业模拟成绩管理系统_管理系统模拟作业

2020-02-27 其他范文 下载本文

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”后,显示界面如下图

如果没有找到纪录,则发出警告,如下图

主要代码: 查询按钮: Private Sub Command1_Click()

Me.Data1.Recordset.Movefirst 将记录指针指向第一个纪录

If Me.Combo1.Text “” Then

Me.Data1.Recordset.FindFirst “name='” & Combo1.Text & “'”

If Me.Data1.Recordset.NoMatch Then

MsgBox “请重新输入!”, 48, “注意” 未找到匹配的纪录,则显示提示

Combo1.Clear

Combo2.Clear

Else

Me.Data1.Recordset.FindFirst “name='” & Combo1.Text & “'” 查找

Combo2.Text = Data1.Recordset(“number”)显示

End If

End If

If Me.Combo2.Text “” Then 输入学号时

模拟成绩管理系统

Me.Data1.Recordset.FindFirst “number='” & Combo2.Text & “'”

If Me.Data1.Recordset.NoMatch Then

MsgBox “请重新输入!”, 48, “注意”

Combo1.Clear

Combo2.Clear

Else

Me.Data1.Recordset.FindFirst “number='” & Combo2.Text & “'”

Combo1.Text = Data1.Recordset(“name”)

End If End If Private grade As String * 5

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 End Sub

添加功能

点击“添加”按钮后,弹出新窗口,输入完整信息后,点击更新,如果信息 不完整,系统会提示“请输入完整数据!”。输入完成后,点击更新,数据便录入 数据表中,并返回初始界面,可继续输入。点击“取消”按钮后,退出窗口2,返回窗口一,继续进行其他操作。

模拟成绩管理系统

主要代码: 添加按钮

Private Sub Command3_Click()

inNum = 1

Form2.Show 1

End Sub 窗口二代码

Private Sub Command1_Click()

If Text1.Text = “” Or Text2.Text = “” Or Text3.Text = “” Or Text4.Text = “” Or Text5.Text = “” Or Text6.Text = “” Or Text7.Text = “” Or Text8.Text = “” Or Text9.Text = “” Or Text10.Text = “” Or Text11.Text = “” Or Text12.Text = “” Or Text13.Text = “” Or Text14.Text = “” Or Text15.Text = “” Or Text16.Text = “” Or Text17.Text = “” Or Text18.Text = “” Or Text20.Text = “” Or Text21.Text = “” Or Text22.Text = “” Or Text23.Text = “” Or Text24.Text = “” Or Text25.Text = “” Or Text26.Text = “” Then 提示输入完整数据

b = MsgBox(“请输入完整数据!”, 4 + 48, “注意”)

Text1.SetFocus

Exit Sub

End If

With Data1

.Recordset.AddNew

.Recordset(“number”)= Text1.Text 将数据写入data1

.Recordset(“name”)= Text2.Text

.Recordset(“sex”)= Text3.Text

.Recordset(“birthday(year)”)= Text4.Text

……

.Recordset.Update

End With

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 End Sub Private Sub Command2_Click()

Unload Me

点击取消按钮时

Form1.Show

End Sub

窗口二与data1数据表连接

Private Sub Form_Load()

Me.Data1.DatabaseName = App.Path + “201322020301-吕天翔.mdb”

Me.Data1.RecordSource = “grade management”

模拟成绩管理系统

End Sub

修改功能

点击“修改”按钮后,按钮消失,‘保存’按钮出现,同时课程学分部分显现,可一并修改,修改完成后,点击保存,显示警告“当前记录将被修改,确定修改?”

点击确定,完成修改,并回到初始界面。

主要代码: 点击修改按钮

Private Sub Command4_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 End Sub 点击保存按钮

调整 课程学分部分 可见性

调整按钮可见性

显示提示

选择“否”时选择退出 否则进入

写入

状态

模拟成绩管理系统

Private Sub Command10_Click()

a = MsgBox(“当前记录将被修改,确定修改?”, 4 + 48, “ 警告 ”)

If a = vbNo Then Exit Sub

Me.Data1.Recordset.Edit

With Data1

.Recordset(“number”)= Text1

.Recordset(“name”)= Text2

.Recordset(“sex”)= Text3

… …

.Recordset(“transportation-xuefen”)= Me.Text24

.Recordset(“automobile-xuefen”)= Me.Text25

.Recordset(“engine-xuefen”)= Me.Text26

End With

Data1.Refresh

Combo1.Clear

Combo2.Clear

End Sub

删除功能

点击“删除”按钮后将弹出“当前记录将被删除,确认删除?”对话框,点击“是”按钮后,将当前记录从data1中删除,并更新data1;若点击“否”,则退出,返回初始界面。

主要代码:

Private Sub Command5_Click()

显示提示

a = MsgBox(“当前记录将被删除,确定删除?”, 4 + 48, “ 警告 ”)

If a = vbNo Then Exit Sub

Me.Data1.Recordset.Delete

进行删除操作

Me.Data1.Refresh

更新data1

Combo1.Clear

Combo2.Clear End Sub

总评成绩计算

算法介绍

用课程学分部分数据与考试成绩计算总评成绩,课程学分部分通常隐藏在窗体中。

情况一 浏览时即显示总评成绩

模拟成绩管理系统

点击data控件按钮浏览数据的同时,该数据的总评成绩也同时显示。

主要代码: Private Sub Data1_Validate(Action As Integer, Save As Integer)

If Me.Data1.Recordset.EOF = True Then

如果当前界面没有显示数据

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

End If End Sub

情况二:查询时即显示其总评成绩

计算方法相同,此处不再赘述。

排名功能

点击“排名”按钮后,根据总评成绩大小,在list控件中显示当前数据的排名情况,可以同时显示“名次”“姓名”“总评成绩”;同时在删除或添加部分数据后,能重新计算排名,此处通过动态数组实现显示个数随数据个数同时变化。

算法介绍:

添加一个text控件,用来存放当前窗口的总评成绩。使用data1控件的movefirst,movenext,eof 等属性完成数据库“数据个数计算”“所有数据姓名与成绩的提取与匹配”,使用动态数组完成数据存放;利用循环完成赋值及大小比较,最后通过list显示出来。

主要代码:

Private Sub Command8_Click()

Do Until Me.Data1.Recordset.EOF = True

Me.Data1.Recordset.Movenext

h = h + 1

Loop

模拟成绩管理系统

Me.Data1.Recordset.Movefirst

Dim t As String

Dim w As String

ReDim a(h, 2)As String * 5

定义与数据个数相同行数的二位动态数组

Do Until Me.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))Text27中存放当前数据的成绩

a(i, 1)= Text2.Text

a(i, 2)= Text27.Text 把姓名和成绩赋值给数组

i = i + 1

Me.Data1.Recordset.Movenext

Loop

For i = 1 To h

For j = i + 1 To h

If a(i, 2)

t = a(i, 1)

w = a(i, 2)对数组中的成绩进行比较并重新排序

a(i, 1)= a(j, 1)

a(i, 2)= a(j, 2)

a(j, 1)= t

a(j, 2)= w

End If

Next

Next

p = “ 第 ” & k & “ 名 ” & a(1, 1)& a(1, 2)

List1.AddItem p

List1.AddItem “” 输出排序

For i = 2 To h

k = k + 1

p = “ 第 ” & k & “ 名 ” & a(i, 1)& a(i, 2)

List1.AddItem p

List1.AddItem “”

Next

Text19.Text = “”

End Sub

模拟成绩管理系统

课程学分的显示及修改功能

通过点击 课程学分显示 按钮,课程学分部分变为可见,并可通过点击修改按钮进行修改,点击 返回 按钮后,该部分继续隐藏。

浏览功能

通过点击data1控件按钮进行浏览。

《VB作业模拟成绩管理系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
VB作业模拟成绩管理系统
点击下载文档
相关专题 管理系统模拟作业 作业 成绩管理系统 vb 管理系统模拟作业 作业 成绩管理系统 vb
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文