好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

excelvba学生成绩管理系统教程.pdf

27页
  • 卖家[上传人]:第***
  • 文档编号:55887574
  • 上传时间:2018-10-07
  • 文档格式:PDF
  • 文档大小:937.26KB
  • / 27 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 学生成绩管理系统学生成绩管理系统 1.1 学生成绩管理系统的总体设计 1.2 班级管理模块的设计 1.3 学生名单管理模块的设计 1.4 管理学生成绩模块的设计 1.5 查询学生成绩模块的设计 1.6 成绩统计分析模块的设计 1.7 打印成绩单模块的设计 1.1 学生成绩管理系统的总体设计 对学生考试成绩的管理,是每个学校重要的日常管理工作之一由于每个学校的考试 面广, 参加人数多, 如果人工管理学生成绩,将会降低学校的运作效率 而利用 Excel VBA 开发一个学生成绩管理系统,则可大大提高管理效率 1.1.1 学生成绩管理系统的构成模块 本章介绍的学生成绩管理系统的模块构成如图 1-1 所示本系统由“班级管理” 、 “学 生名单管理” 、 “登记学生成绩” 、 “查询学生成绩” 、 “成绩统计分析”和“打印成绩单”6 个模块构成各个模块的功能介绍如下 学生成绩管理系统 班级管理 学生名单管理 登记学生成绩查询学生成绩成绩统计分析 打印成绩单 图 1-1 学生成绩管理系统 (1)班级管理:设置各个年级的班级名称 (2)学生名单管理:用于管理各班级的学生信息,包括学生的学号、姓名、性别等基 本信息。

      (3)登记学生成绩:完成学生各学科考试成绩的登记、修改等功能 (4)查询学生成绩:根据设定的条件查询学生成绩 (5)成绩统计分析:对各班、各年级的学生考试成绩进行统计分析 (6)打印成绩单:将学生的考试成绩按班级生成成绩单,并打印出来 1.1.2 学生成绩管理系统的工作簿设计 建立一个名称为“学生成绩管理系统”的工作簿,将此工作簿的一个工作表重命名为 “首页” ,在此工作表中插入一个自己喜欢的背景图片插入一个艺术字“学生成绩管理系 统”并设置其格式插入 6 个自选图形(矩形) ,分别在这 6 个自选图形中添加文字,添加 的文字分别为“管理学生名单” 、 “管理学生成绩” 、 “查询学生成绩” 、 “成绩统计分析” 、 “打 印成绩单”和“班级管理” ,设置自选图形和文字的格式插入其他的用于修饰界面的自选 图形,并设置其格式 最后的界面如图 1-2 所示 2 数据列表管理与应用 学生成绩管理系统 图 1-2 学生成绩管理系统界面 1.1.3 为自选图形按钮指定宏 为了在单击首页工作表的 6 个自选图形时,能够执行相应的操作,为这 6 个自选图形 指定如下的宏,并将它们保存在一个名称为“自定义按钮的指定宏”的标准模块中。

      Sub 管理学生名单() '“管理学生名单“按钮 学生管理窗口.Show End Sub Sub 管理学生成绩() '“管理学生成绩“按钮 学生成绩管理窗口.Show End Sub Sub 查询学生成绩() '“查询学生成绩“按钮 学生成绩查询窗口.Show End Sub Sub 成绩统计分析() '“成绩统计分析“按钮 成绩统计分析窗口.Show End Sub Sub 打印成绩单() '“打印成绩单“按钮 打印成绩单窗口.Show End Sub Sub 班级管理() '“班级管理“按钮 Worksheets(“班级管理“).Visible = True '显示工作表“班级管理“ Worksheets(“班级管理“).Activate '激活工作表“班级管理“ End Sub 1.1.4 为工作簿对象编写有关的事件程序 为了在打开系统工作簿时,自动激活“首页”工作表,并将该工作表进行保护同时3 将工作簿中除“首页”工作表外的所有工作表隐藏起来,以保护其中的数据(如果用户需 要查看某工作表的数据, 可以在相应窗体进行有关操作, 使隐藏的工作表显示出来) 。

      因此, 为工作簿对象设置 Open 事件,程序代码如下: Private Sub Workbook_Open() Dim i As Integer Worksheets(“首页“).Activate '激活工作表“首页“ Worksheets(“首页“).Protect '保护工作表“首页“ For i = 1 To Worksheets.Count If Worksheets(i).Name “首页“ Then Worksheets(i).Visible = False End If Next i Worksheets(“首页“).Activate End Sub 1.1.5 保护工作表 为了保护“首页”工作表的各个自选图形及其布置,应该对此工作表进行保护在设 计好工作表后,可以通过手工的方法对工作表进行保护为了保险起见,在工作簿对象的 Open 事件程序中,也同时对工作表进行保护 1.1.6 定义公共变量 定义下面几个公共变量,它们保存在一个名称为“公共变量”的标准模块中: Public ClassName '保存班级名称的数组变量 Public Class '保存年级名称的数组变量 Public n '保存某年级下的班级数目的数组变量 Public m As Integer '保存年级数目 Public p As Integer '保存某班级学生人数 4 数据列表管理与应用 学生成绩管理系统 1.2 班级管理模块的设计 班级管理模块的功能是对各个年级的班级名字进行管理。

      班级管理是通过一个工作表 “班级管理”进行的 “班级管理”工作表的结构如图 1-3 所示 图 1-3 “班级管理”工作表 在“班级管理”工作表中,第 1 行保存年级名称,如“初一” 、 “初二” 、 “初三” 、…, 在年级名称对应的各列分别保存个年级的班级名称,如“1 班” 、 “2 班” 、 “3 班” 、…这 样设计是为了便于操作各个班级学生成绩工作表 在“首页”工作表中单击“班级管理”图形按钮,即可激活“班级管理”工作表 1.3 学生名单管理模块的设计 学生名单管理模块的功能是激活各个班级工作表并输入或修改学生的基本信息,包括 “学号” 、 “姓名” 、 “性别”等基本信息而各个班级工作表可以编写程序自动创建学生 名单管理模块的这些功能是通过一个“管理学生名单”窗体完成的 1.3.1 “管理学生名单”窗体的结构设计 “管理学生名单”窗体的结构如图 1-4 所示在此窗体上,有 2 个框架、1 个 TreeView 控件、1 个标签和 3 个命令按钮各个控件的功能及属性设置说明如下 图 1-4 “管理学生名单”窗体结构 5 (1)用户窗体:名称属性设置为“学生管理窗口”,Caption 属性设置为“管理学生名单”。

      将用户窗体的 ShowModal 属性设置为 False,即设置为无模式窗体,以便在运行窗体 后,仍可以操作工作表 (2)2 个框架:用于将不同功能的控件组合在一起,其 Caption 属性分别设置为“选择班 级”和“创建班级工作表” (3)1 个 TreeView 控件:名称为 TreeView1,用于显示各个年级的各个班级名称,分两级 节点显示,一级节点是年级名称,二级节点是班级名称 (4)1 个标签:显示说明文字,其 Caption 属性设置为“如果还没有班级工作表,就单击 此按钮” (5)命令按钮“创建班级工作表”:单击此按钮,系统将自动创建班级工作表,其名称属 性和 Caption 属性均设置为“创建班级工作表” (6)命令按钮“重新选择”:单击此按钮,系统将 TreeView 控件中的节点收缩,以便用 户重新选择班级工作表,其名称属性和 Caption 属性均设置为“重新选择” (7)命令按钮“退出”:单击此按钮,就关闭窗体,其名称属性和 Caption 属性均设置为 “退出” 1.3.2 班级工作表结构设计 班级工作表是保存各个班级的学生基本信息和各科考试成绩的工作表,可以通过单击 命令按钮“创建班级工作表”自动创建。

      班级工作表的结构如图 1-5 所示 当创建完各个班级工作表后,就可以激活某个班级工作表,在班级工作表中输入学生 的基本信息 学生的“学号” 、 “姓名” 、 “性别”等基本信息是通过工作表输入的,这样设计 的好处是可以充分利用 Excel 的工具实现数据的快速输入,比如学号是有规律 的序列号,可以采用填充复制的方法输入学号 图 1-5 各个班级工作表的结构 1.3.3 “管理学生名单”窗体的程序代码设计 (1)首先为用户窗体设置Initialize 事件,当启动窗体时,查询年级数和班级数,为TreeView1 设置节点程序代码如下: 6 数据列表管理与应用 学生成绩管理系统 Private Sub UserForm_Initialize() Dim i As Integer, j As Integer Call 年级班级 '清除原有的节点 TreeView1.Nodes.Clear '设置 TreeView1 控件的属性 TreeView1.LineStyle = tvwRootLines TreeView1.Style = tvwTreelinesPlusMinusText TreeView1.LabelEdit = tvwManual '添加一级节点(年级) For j = 1 To m Set nodx = TreeView1.Nodes.Add(, , Class(j), Class(j)) Next j '添加二级节点(班级) For j = 1 To m For i = 1 To n(j) Set nodx = TreeView1.Nodes.Add(Class(j), _ tvwChild, Class(j) & Space(1) & ClassName(j, i), ClassName(j, i)) Next i Next j End Sub 这里,子程序“年级班级”的功能是查询年级名称和班级名称,并保存在数组变量中。

      这个子程序保存在一个名称为“公共子程序”的标准模块中程序代码如下: Public Sub 年级班级() Dim i As Integer, j As Integer, nmax As Integer Dim ws As Worksheet '获取年级个数和班级个数 Set ws = Worksheets(“班级管理“) m = ws.Range(“IV1“).End(xlToLeft).Column ReDim n(1 To m) As Integer ReDim Class(1 To m) As String '获取各年级的最大班级数目 nmax = ws.UsedRange.Rows.Count - 1 ReDim ClassName(1 To m, 1 To nmax) As String '保存班级名称 For j = 1 To m n(j) = ws.Cells(65536, j).End(xlUp).Row - 1 Class(j) = ws.Cells(1, j) For i = 1 To n(j) ClassName(j, i) = ws.Cells(1 + i, j) Next i Next j End Sub (2)为 TreeView1 设置 NodeClick 事件,当单击某个班级节点时,激活某班级工作表。

      程 序代码如下: Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) On Error Resume Next '显示并激活某班级工作表 Worksheets(Node.Key).Visible = True Worksheets(Node.Key)。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.