admin 管理员组

文章数量: 1184232


2024年4月30日发(作者:ascii码10对应什么字符)

高二(12)班 廖晨(组长) 李博昱 戚子健 王柏文

VBA程序源代码

'###########################################

'# 北师大实验中学----研究性学习 #

'# 研究成绩波动规律的拟合程序 #

'# Module1主模块部分 #

'# 李博昱编译 #

'# 2007年5月-6月 #

'###########################################

'加 ' 的文字均为本程序的注释

(1)常量的设定

'1、常量e,表示自然对数底

'2、num,表示参与拟合的考试次数,这里取前7次考试成绩

'3、cen,三角拟合时,角度所乘系数中心值,详见原理介绍

'4、le,三角拟合精度,详见原理介绍

'5、un,三角拟合角度系数的偏离值,详见原理介绍

'6、StuNumber,学生容量,这里取2008届高二年级组学生总人数

Public Const e = 2.71

Public Const num = 7

Public Const le = 100

Public Const cen = 1

Public Const un = 0.99

Public Const StuNumber = 534

(2)辅助函数的介绍

'本部分共计运用辅助函数5个,

'每个辅助函数的功能均在其上方注释,

'函数内部的运算原理见代码区内部

'1、StuMark,获取学生成绩

'参变量:

'StuNum,整型变量,表示学生代号

'ExamNum:整型变量,表示考试代号,取值为1-7

'SubNum:整型变量,表示科目代号,取值为1-5

Public Function StuMark(StuNum As Integer, ExamNum As Integer, SubNum As Integer) As

Double

'Select结构对ExamNum进行讨论

Select Case ExamNum

2007-6 第 1 页 共 8 页

高二(12)班 廖晨(组长) 李博昱 戚子健 王柏文

Case 1

StuMark = (StuNum + 1, SubNum + 8)

Case 2

StuMark = (StuNum + 1, SubNum + 8)

Case 3

StuMark = (StuNum + 1, SubNum + 8)

Case 4

StuMark = (StuNum + 1, SubNum + 8)

Case 5

StuMark = (StuNum + 1, SubNum + 8)

Case 6

StuMark = (StuNum + 1, SubNum + 8)

Case 7

StuMark = (StuNum + 1, SubNum + 8)

Case 8

StuMark = (StuNum + 1, SubNum + 8)

End Select

End Function

'2、FitFunc,代表拟合函数的形式,由此和真实值进行线性拟合,详见原理部分

'参变量:

'k:角度系数值,详见原理部分

'j:学生代号

Function FitFunc(k, j) As Double

Dim X

X = (3, j) / k

FitFunc = Tan(X)

End Function

'3、FindFit,线性拟合函数

'变量

'xx:x的离均差平方和

'xy:x,y的离均差的成绩之和

'avx,x的均值

'avy,y的均值

'StuNum,整型变量,同前

'SubNum,同前

Function FindFit(xx, xy, avx, avy, StuNum As Integer, SubNum As Integer)

Dim b

b = xy / xx '由此式确定线性拟合中x的一次项系数

(StuNum + 1, 2 * SubNum) = b

(StuNum + 1, 2 * SubNum + 1) = avy - b * abx

FindFit = 0

End Function

2007-6 第 2 页 共 8 页


本文标签: 拟合 原理 函数 表示 代号