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

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

来源:网络收集 时间:2026-05-27
导读: 打印等Excel的功能。 基础资料:设置教师姓名、学期名称、班级名称和课程名称等基础资料。 学期初始化:每学期使用之前,使用该模块设置当前学期名称,以及设计本学期各班级授课教师等内容。 学生:本模块主要管理

打印等Excel的功能。

基础资料:设置教师姓名、学期名称、班级名称和课程名称等基础资料。

学期初始化:每学期使用之前,使用该模块设置当前学期名称,以及设计本学期各班级授课教师等内容。

学生:本模块主要管理学生名单,包括分发空表、导入学生资料,以及手工输入学生资料等功能。

成绩:本模块包括分发学生空表、导入学生成绩和手工输入成绩等功能,实现对成绩的录入输出。

查询:可以按学生学号或姓名查询成绩,也可以按班级名称查看班级成绩表。 模块功能如图1—2所示,

设计工作表格学生成绩管理系统设计菜单设计窗体基础资料使用列表框控件学期初始化使用多列列表框使用Exit For使用文件系统处理学生名单使用动态数组使用文件系统处理学生成绩判断工作表存在用VBA删除单元格成绩查询用VBA粘贴数据

图1—2 系统模块图

1.2 关键技术

基于Excel VBA的编程语言特点,对于该系统的设计主要运用了文件对象集合和动态数组的操作两方面的内容,下面对这两个关键技术做具体说明。 1.2.1 文件对象集合

在处理文件时,VBA使用File System Object (FSO) 对象模型,该模型提供了一个基于对象的工具来处理文件夹和文件。FSO对象模型使应用程序能够创建、改变、移动和删除文件夹,或者检测是否存在指定的文件夹。FSO对象文件模型也能获取关于文件夹的信息,诸如名称、创建日期或最近修改日期等。常用的FSO对象有下面几种:

3

(1)FSO对象模型,File System Object对象提供对计算机文件系统的访问。用FSO对象模型

编程首先需要使用Create Object方法创建一个File System Object对象。语法格式如下:

Set fso=Create Object(“Scripting.” File System Object)

(2)Folder对象,Folder对象提供对一个文件夹所有属性的访问。使用File System Object对象的Get Folder方法将返回一个和指定路径中文件夹相对应的Folder对象。 (3)File对象,File对象提供对文件所有属性的访问。 1.2.2 动态数组

所谓动态数组,是指数组的元素个数在程序运行过程中可随时改变。在VBA中使用动态数组需要两个步骤。

步骤1:在过程级声明一个没有维数下标(带空圆括号)的数组。

步骤2:在能确定数组维数下标时,使用ReDim语句定义数组的维数下标。具体语法格式如下: ReDim [Preserve] varname(subscripts)[As type] [,varname(subscripts)[As type]]? 其中:Preserve为可选参数,当改变原有数组最末维的大小时,使用此关键字可以保持数组中原来的数据。

Varname是必需的,指定变量的名称,它应该是前面已经定义过的数组。

2 设计菜单

在Excel中,通过菜单驱动方式来调用各模块,只需要定义菜单名及选择该菜单时将调用的宏代码即可。

2.1 设计菜单结构

执行该系统的程序后,将隐藏Excel原有菜单,只显示自定义设计的菜单。菜单结构图如2—1所示。

图2—1 自定义菜单结构图

每一个菜单都有对应的下拉菜单,通过对下拉菜单的操作实现所需要的功能,其中基础资料和查询下拉菜单结构分别如图2—2,2—3所示。

图2—2 基础资料菜单结构图

4

图2—3 查询菜单结构图

2.2 设计菜单代码

各管理菜单都需要通过相应的代码才能实现其操作,下面将具体对自定义菜单的代码实现进行说明。 2.2.1定义菜单

Excel的VBA环境中没有提供菜单设计器,因此,只有通过输入代码的方式来定义菜单。定义图2—1所示菜单的部分代码如下:

Sub MyBar_Menu() '建立自定义菜单 Dim MyBar As CommandBar On Error Resume Next

Application.CommandBars(\成绩管理\’删除自定义菜单“成绩管理” Set MyBar = CommandBars.Add(Name:=\成绩管理\

MenuBar:=True, temporary:=True, Position:=msoBarTop) '建立\系统\菜单,提供系统打印、保存等功能的自定义菜单

Set MyBar1 = MyBar.Controls.Add(Type:=msoControlPopup) ’建立一个下拉菜单 MyBar1.Caption = \系统(&S) \’设置菜单标题为“系统” Set MyBar11 = MyBar1.Controls.Add(Type:=msoControlButton) With MyBar11

.Caption = \保存(&S)\’设置菜单项的标题为“保存” .Style = msoButtonIconAndCaption

.FaceId = \’设置菜单项的图标 .OnAction = \’设置单击该菜单时调用的子过程 End With 程序说明:

各菜单项的定义代码类似,可采用复制再进行修改的方法来快速录入。程序首先使用语句Application.CommandBars(“成绩管理”).Delete删除名称为“成绩管理”的自定义菜单。程序中通过名称MyBar,MyBar1,MyBar11来判断菜单的结构,其中MyBar为主菜单条,MyBar1为每主菜单条中的菜单项,MyBar11为下拉菜单中的菜单项。创建MyBar菜单条后,通过执行MyBar 对象Controls集合的Add方法可为其添加菜单项,通过指定菜单项的类型为msoControlPopup,定义该菜单为下拉菜单。运用相同原理创建MyBar1的下拉菜单。无论是添加菜单项,还是下拉菜单项,都是调用对象的Add方法。 2.2.2 删除自定义菜单

当系统执行结束时,应当将Excel恢复到最初的状态,需要将自定义菜单删除,并显示Excel的默认菜单。删除自定义菜单的子过程如下:

Sub MyBarDelete() '删除自定义菜单 On Error Resume Next ’设置错误处理 Application.CommandBars(\成绩管理\’删除自定义菜单 Application.DisplayFormulaBar = True ’显示编辑栏 On Error GoTo 0 ’取消错误处理

Application.CommandBars(\’显示标准工具栏

5

Application.CommandBars(\’显示格式工具栏

Application.CommandBars(\’显示系统默认菜单 End Sub 2.2.3 设计菜单调用的子过程

用户单击选择菜单项时,将调用对应的子过程来完成相应的功能,具体步骤有:

步骤a:系统菜单主要调用Excel提供的功能,如保存、打印预览、打印等。其代码如下: Sub SaveSys()

ActiveWorkbook.save ’调用系统的保存方法保存工作簿 End Sub

Sub ExitSys()

ActiveWorkbook.save

Application.Quit ’退出Excel End Sub

Sub 打印预览()

ActiveWindow.SelectedSheets.PrintPreview '打印预览 End Sub Sub 打印()

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ’打印此工作表 End Sub

步骤b:除系统菜单外,其他菜单需要编写子过程来完成相应的功能,其中部分子过程只需要将对应的窗体显示出来即可。下面是部分子过程的代码,其他子过程将在后面逐步完善。 Sub 设置当前学期()

frmDqxq.Show ’显示当前学期窗体 End Sub

Sub 课程安排()

frmBjkc.Show ’显示课程安排窗体 End Sub

Sub 设置教师姓名()

frmJsxm.Show ’显示教师信 …… 此处隐藏:2966字,全部文档内容请下载后查看。喜欢就下载吧 ……

李伟乔 - 基于Excel的学生成绩管理系统设计(2) - 图文(2).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)