教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

李伟乔 - 基于Excel的学生成绩管理系统设计(2) - 图文(4)

来源:网络收集 时间:2026-05-27
导读: 开始从“基础数据”表中读取当前学期从“基础数据”表中读取班级数据从“上报姓名”目录中获取文件名是文件数为0?否打开“上报姓名”中的一个文件判断文件的班级是否正确将上报文件的学生资料保存到数组在“学生总

开始从“基础数据”表中读取当前学期从“基础数据”表中读取班级数据从“上报姓名”目录中获取文件名是文件数为0?否打开“上报姓名”中的一个文件判断文件的班级是否正确将上报文件的学生资料保存到数组在“学生总表”中查找班级将数组中的数据写入“学生总表”是还有文件?否结束

图3—5 导入学生资料的流程图

导入学生资料的功能是将收集的学生资料导入到系统中,需要先在保存本系统的文件的目录中建立一个“上报姓名”子目录,将各班班主任报来的表格放在子目录中。

3.4 成绩处理模块设计

与处理学生姓名类似,学生成绩处理功能也包含分发成绩空表、导入成绩和手工输入成绩三个子菜单。实现分发成绩空表功能代码如下:

Sub 分发成绩单()

Dim i1 As Integer, j1 As Integer ’声明变量 Dim i2 As Integer, j2 As Integer Dim i3 As Integer, j3 As Integer Dim i4 As Integer Dim strKc() As String

Dim strBj As String, strXq As String '班级和学期 Dim strJs As String '教师

strXq = Sheets(\基础数据\’获取当前学期

i1 = Sheets(\学生总表\获取班级数 For j1 = 1 To i1 Step 2 strBj = Sheets(\学生总表\

i2 = Sheets(\班级课程表\查询该年级的课程 For j2 = 1 To i2 Step 3 ’逐个查询该班级名称

13

If Sheets(\班级课程表\ Next j2

If j2 > i2 Then ’如果没有找到课程

MsgBox \“\”还未设置课程,不能分发成绩表!\ vbInformation + vbOKOnly, \学生成绩管理系统\ GoTo nextclass ’处理下一个班级 Else

i3 = Sheets(\班级课程表\ i4 = Application.WorksheetFunction.CountIf( _

Sheets(\班级课程表\班级课程表\ Sheets(\班级课程表\’统计本学期课程数 ReDim strKc(i4, 2) As String ’重新定义数组 i4 = 1

For j3 = 3 To i3 '获取课程和授课教师

If Sheets(\班级课程表\

strKc(i4, 1) = Sheets(\班级课程表\课程名称 strKc(i4, 2) = Sheets(\班级课程表\教师 i4 = i4 + 1 End If Next j3 End If

i3 = Sheets(\学生总表\获取班级中学生所占行数

For j3 = 1 To UBound(strKc)

Sheets(\成绩分发样表\ Range(\ Range(\

Range(\ Range(\

ActiveWindow.ActivateNext ’切换到系统工作簿

Sheets(\学生总表\学生总表\ Sheets(\学生总表\ ’复制学生总表中该班级的学生资料

ActiveWindow.ActivateNext ’切换到复制产生的工作簿 Range(\ Application.CutCopyMode = False

ActiveSheet.Name = strBj & \ ActiveSheet.Range(Cells(8, 1), Cells(i3 - 3 + 8, 3)).Borders.LineStyle

= xlContinuous

On Error GoTo 0

ActiveWorkbook.SaveAs ThisWorkbook.Path & \分发表\\成绩表(\& strBj & \

& strKc(j3, 1) & \ ActiveWorkbook.Close Next j3 nextclass: Next j1

Sheets(\主界面\’激活主界面 End Sub

14

流程图如3—6所示:

开始从“基础数据”表中获取班数从“学生总表”中获取一个班级名在“班级课程表”中查找指定班级、本学期的课程,保存到数组中复制“成绩分发样表”,并在复制的表中填写班级、课程、学期、任课老师等资料将“学生总表”中指定班级学生的学号和姓名复制到新工作簿中保存并关闭新工作簿是还有课程?否是还有班级?否结束 图3—6 生成分发成绩表流程图

成绩的导入与学生资料的导入类似,这里不做详细说明了。下面是手工输入成绩窗体界面,

图3—7 选择班级窗体

选择“成绩/输入成绩”菜单,将打开指定班级的成绩表,让用户手工输入或修改数据。

3.5 查询模块设计

查询菜单主要提供查询单个学生成绩和查询班级成绩两个功能。查询单个学生成绩时,用户可输入学生学号或姓名进行查询;查询班级成绩时,需要选择班级名称和查询学期。具体界面如图3—8和3—9所示。

15

图3—8 学生成绩查询 图3—9 班级成绩查询

这里只对学生成绩查询做一下代码说明:

Private Sub 查找学生()

Dim strXm As String, i As Integer, j As Integer

Do ’首先定义一个死循环

strXm = InputBox(\请输入学号或姓名(不输入内容则退出):\学生成绩管理系统\\’接受用户输入的内容

If strXm = \’如果输入内容为空 Exit Sub ’退出子过程 End If

For i = 8 To Sheets.Count ’从第8张工作表中开始查找 For j = 6 To Sheets(i).[A65536].End(xlUp).Row

If CStr(Sheets(i).Cells(j, 1).Value) = strXm Or _ CStr(Sheets(i).Cells(j, 2).Value) = strXm Then Sheets(i).Select ’选择当前工作表

Cells(j, 1).Select ’将焦点移动到所找的单元格 If MsgBox(\继续查找 \吗?\ vbQuestion + vbYesNo, 系统) <> vbYes Then Exit Sub End If End If Next j Next i Loop

Sheets(\主界面\End Sub 该子过程首先定义一个死循环,用户可以反复进行查询。在弹出的InputBox对话框中给不输入内容,则可退出该循环,结束该子过程。在所选工作表中如果查到所选内容,则选择该单元格并提示是否继续查找。

16

4 主界面概览和测试样表

表格作为Excel最基本的功能之一,通过相应的代码实现表格处理。 各功能模块的体现都

通过对应的Excel工作簿来完成。主界面设置了美化背景图,使程序界面显得不那么单调。

4.1 主界面

该系统中“主界面”表格的作用是:在等待用户选择菜单功能时显示该表格,避免将其他工作表中的数据显示出来。为了美化程序,用户可以根据自己的要求设置一张背景图,并输入系统名称和学校名称等内容,系统的主界面如图4—1所示。

图4—1 主界面图

4.2 学生总表

学生总表保存学校所有学生的基础资料,包括学 …… 此处隐藏:1208字,全部文档内容请下载后查看。喜欢就下载吧 ……

李伟乔 - 基于Excel的学生成绩管理系统设计(2) - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/413012.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)