李伟乔 - 基于Excel的学生成绩管理系统设计(2) - 图文(4)
开始从“基础数据”表中读取当前学期从“基础数据”表中读取班级数据从“上报姓名”目录中获取文件名是文件数为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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




