第一篇:程序设计教案VB版第七章
第七章
绘制误差椭圆、误差曲线的程序设计方法
§7-1 绘制误差椭圆的程序设计方法
测量平面控制网平差计算后进行精度评定时,点位中误差虽然可以用来评定待定点的点位精度,但是它却不能代表该点在某一任意方向上的位差大小。在有些情况下,往往需要确定点位在某些特殊方向上的位差大小;此外,还要了解点位在哪一个方向上的位差最大,在哪一个方向上的位差最小。例如,在工程放样中,就经常需要研究这个问题。为了便于求定待定点点位在任意方向上位差的大小,一般是通过求出待定点的点位误差椭圆来实现的。通过误差椭圆可以求得待定点在任意方向上的位差,这样就可以较精确地、形象而全面地反映待定点点位在各个方向上误差的分布情况。
为了确定任意两个待定点之间相对位置的某些精度,也需要作出两个待定点之间的相对误差椭圆。
无论是表示点位绝对位差的误差椭圆,还是表示两个待定点之间相对位置的某些精度的相对误差椭圆,在测量程序设计中所要面临的问题都是绘制椭圆,而这个椭圆一般情况下不是正立的。由于目前常用的几种编程语言(例如VB、VC)中没有现成的语句、命令、函数或方法来绘制倾斜任意角度的椭圆,因此,下面研究在计算机屏幕上绘制倾斜任意角度的椭圆的编程方法。
一、绘制误差椭圆的基本思路
以下讨论问题及编程中所使用的平面直角坐标系,设经过一段程序的控制,已将屏幕绘图区域的平面直角坐标系调整为测量平面直角坐标系(以下简称坐标系),即纵轴向上为X轴正向,横轴向右为Y轴正向。
绘制倾斜任意角度的误差椭圆时,已知数据如下: 椭圆的长半轴:E(也可用a表示)椭圆的短半轴:F(也可用b表示)
椭圆中心点的在坐标系中的坐标:(X0,Y0)
椭圆长半轴在坐标系中的坐标方位角:T(T称为误差椭圆的主轴方向)
如图7-1所示,绘制倾斜任意角度的误差椭圆的基本思路是:首先,求出在坐标系中坐标方位角为T的椭圆长半轴与椭圆圆周的交点G的坐标;然后,再求出椭圆圆周上一系列点P(i)的坐标(设i0时,P(0)点与G点重合;in时,P(n)点与G点重合);最后,从G点开始用VB中画直线方法LINE(以下简称LINE)依次连接相邻点。
为了用LINE依次连接相邻点时所画出的直线趋近于椭圆曲线,需要使椭圆圆周上一系列点P(i)(将P(i)点称为误差椭圆圆周上细部点,简称P(i)点,下同)分布合理,即P(i)点与P(i1)点之间的直线距离应足够小。鉴于计算机屏幕的分辨率,可控制在0.2mm内。
关于G点坐标的计算,应以椭圆中心点坐标(X0,Y0)作为起始坐标、以椭圆的长半轴E为距离、以T为坐标方位角、按坐标正算的方法进行计算,即:
XGX0aCos(T)
(7-1)YYaSin(T)0G
155 椭圆长轴与椭圆圆周的另一个交点GA的坐标为:
sT)XGAX0aCo((7-2)
(T)YGAY0aSin椭圆短轴与椭圆圆周的两个交点H、HA的坐标分别为:
XXbCos(T)0H(7-3)YYbSin(T)H023XXbCos(T)0HA2
(7-4)3YYbSin(T)HA02根据上述坐标,用LINE可画出椭圆的长轴及短轴。以下重点介绍计算P(i)点坐标的方法。
二、计算P(i)点坐标的方法
1、坐标转换公式
如图7-1所示,设P点在坐标系XOY中的坐标为XP、YP,在坐标系EOF中的坐标为EP、FP;O点在坐标系XOY中的坐标为XO、YO;E轴正向在坐标系XOY中的坐标方位角为T。则可以推证出如下坐标互换公式:
图7-1 倾斜任意角度的误差椭圆
XPXOEPCosTFPSinT
(7-5)YYESinTFCosTOPPPEP(YPYO)SinT(XPXO)CosT及:
(7-6)
F(YY)CosT(XX)SinTPOPOP2、计算P(i)点坐标的参数方程法
如图7-2所示,该法的基本思路是:先用椭圆的参数方程求解正立竖放椭圆上P(i)点坐标EP(i)、FP(i);然后,使用坐标转换公式的(7-5)式计算P(i)点在坐标系XOY中的坐标XP(i)、YP(i)。
P(i)点在EOF坐标系中的坐标EP(i)、FP(i)可用参数方程表示为:
156 EP(i)aCos(t)
(7-7)FP(i)bSin(t)参照图7-1,用P(i)代替P、EP(i)代替EP、FP(i)代替FP、XP(i)代替XP、YP(i)代替YP,将(7-7)式代入(7-5)式中,可得任一点P(i)在XOY坐标系中的坐标为:
XP(i)X0(aCos(t))Cos(T)(bSin(t))Sin(T)
(7-8)YP(i)Y0(aCos(t))Sin(T)(bSin(t))Cos(T)如图7-2所示,编程中,可设ti(DT),其中DT是椭圆圆周上有序(即有一定规律)分布的一系列点中的任意相邻两点P(i)、P(i1)和椭圆中心相连的直线的夹角,t应从OG开始沿顺时针方向递增,即自E轴正向沿着顺时针方向至OP(i)的水平夹角;i是程序中的循环变量,i0,1,2,,n。
3、计算P(i)点坐标的直线点斜式方程法
如图7-2所示,该法的基本思路是:首先,求出
图7-2 正立竖放椭圆 椭圆圆周上一系列点P(i)到椭圆中心的距离D(i);然后,直接用坐标正算公式求解P(i)点在坐标系XOY中坐标XP(i)、YP(i)。
设正立竖放椭圆中心O点在EOF坐标系中的坐标为(0,则过该点及椭圆圆周上任0),一点P(i)的直线点斜式方程为:
FP(i)mEP(i)
(7-9)其中:
mtg(iDT)
(7-10)
(7-10)式中的m为直线OP(i)的斜率,i、DT的意义与前面相同。
在EOF坐标系中的正立竖放椭圆的标准方程为:
(EP(i))2(FP(i))2
1(7-11)
22ab将(7-9)式代入到(7-11)式,并顾及(7-10)式,可解得:
a2b(EP(i))2
(7-12)22batg(iDT)2 157 则O点至P(i)点的距离为:
D(i)(EP(i))2(FP(i))2
a2b2a2b22m2
(7-13)
b2a2m2ba2m2从式(7-13)可以看出,D(i)的计算与坐标系无关,也可以说与椭圆倾斜角度无关。在图7-1与图7-2中,不论椭圆是正立竖放,还是倾斜任意角度的,D(i)是不变的。因此,P(i)点在坐标系XOY中的坐标按坐标正算公式可得:
XP(i)XOD(i)Cos(TiDT)
(7-14)
YP(i)YOD(i)Sin(TiDT)
编程中,如图7-1所示,从G点开始依顺时针方向用LINE依次连接相邻点,最后,再回到G点,即可绘出所要求的误差椭圆。
4、计算P(i)点坐标的递推计算方法
该方法与计算P(i)点坐标的参数方程法基本相同,只是编程计算中采用了递推计算的方法计算Cos(t)和Sin(t)。详见后面的示例程序。
三、坐标轴的平移、旋转公式(即(7-5)式、(7-6)式的推导过程)
如图7-3所示,设P点在坐标系
,YP),O点XOY中的坐标为(XP在坐标系XOY中的坐标为(XO,YO);经
图7-3 坐标轴的平移、旋转
,YP)平移、旋转后,P点在坐标系XOY中的坐标为(XP,YP)。根据求(XP(XP,YP)的公式如下:
XPXOA1P
X0OPCos()
sCosOPSinSin
XOOPCoCosYPSin XOXPYPYOOA1
Y0OPSin()
YOOPSinCosOPCosSin
158 SinYPCos
YOXP,YP)(XO,YO)、(XP,YP)根据、,也可求得,有以下两种方法。(XP、YP。方法一:根据上面的两式联立方程组,可解得XP方法二:如图7-3所示,设POA11,则可得:
OPSin(1)
XP
OPSinCos1OPCosSin(YPYO)Sin(XPXO)Cos
OPCos(1)
YP
OPCosCos1OPSinSin1
(YPYO)Cos(XPXO)Sin
四、正立横放椭圆的参数方程与标准方程
绘制倾斜任意角度的误差椭圆时,也可根据正立横放椭圆推导出另一套公式进行编程。
如图7-4所示,正立横放椭圆的参数方程为:
图7-4 正立横放椭圆
XPXBbCos YYaSinAP 在坐标系XOY中,椭圆中心位于坐标原点的正立横放椭圆的标准方程为:
Y2X21 a2b
2五、绘制误差椭圆程序示例(输出图形见图7-5)
Private Sub GPHPIC22_Click()Rem ***** 绘制误差椭圆菜单子过程 ***** Dim X As Double Dim Y As Double Dim A As Double
159 Dim B As Double Dim T As String Cls
Form2.DrawStyle = 0: ' ***** 设定绘制单实线
Form2.DrawWidth = 1: ' ***** 设定绘制单实线的线宽
Form2.Line(1, 7)-(199, 143), RGB(255, 0, 0), B: '***** 绘制一个红色矩形作为绘图区域。
X = 80: '***** 椭圆中心测量纵坐标 ***** Y = 100: '***** 椭圆中心测量横坐标 ***** A = 25.4: '***** 椭圆长半轴 ***** B = 9.5: '***** 椭圆短半轴 ***** T = “138 54 12”: '***** 椭圆长半轴坐标方位角 **** Call GPHP15(X, Y, A, B, T)End Sub
Private Sub GPHP15(ByVal XC As Double, ByVal YC As Double, ByVal A As Double, ByVal B As Double, ByVal T As String)Rem ***** 绘制误差椭圆子过程 ***** Dim II As Integer Dim N As Integer Dim I As Integer Dim DT As Double Dim TT As Double: '***** 椭圆长半轴坐标方位角 ****
N = 200
ReDim X(N + 1)As Double ReDim Y(N + 1)As Double
TT = RAD(T): '***** 程序中T应为度、分、秒(字符串)DT = 2 * PI()/ N
II = 3: '***** 选择绘制椭圆的方法
Select Case II Case 1: '***** 用椭圆参数方程及将坐标进行平移、旋转变换的方法
Form2.PSet(YC + A * Sin(TT), XC + A * Cos(TT)), RGB(0, 0, 0)
For I = 1 To N
X(I)= XC + A * Cos(I * DT)* Cos(TT)ST * SS: '***** 递推求算Cos(i*DT)
ST = ST * CC + CT * SS: '***** 递推求算Sin(i*DT)
CT = DCT
XP = XC + A * CT * Cos(TT)-B * ST * Sin(TT)
YP = YC + A * CT * Sin(TT)+ B * ST * Cos(TT)
Form2.Line-(YP, XP), RGB(0, 0, 0)
Next I
Case 3: '***** 用点斜式直线方程与竖放椭圆的标准方程联立方程组
Rem ***** 解算椭圆中心O(0,0)至椭圆圆周交点距离的方法
Dim AT As Double
Dim BT As Double
Dim XI As Double
Dim YI As Double
Dim M As Double
Dim DI As Double
Dim XPI As Double
Dim YPI As Double
Form2.PSet(YC + A * Sin(TT), XC + A * Cos(TT)), RGB(0, 0, 0)
161
AT = A ^ 2
BT = B ^ 2
For I = 1 To N
M = Tan(I * DT): '***** 直线的斜率
M = M ^ 2
XI = AT * BT /(BT + AT * M): '***** 正立竖放椭圆圆周i点纵坐标的平方,X(i)^2
YI = XI * M: '***** 正立竖放椭圆圆周i点横坐标的平方,Y(i)^2
DI = Sqr(XI + YI): '***** 椭圆中心至椭圆圆周i点的距离D(i)
XPI = XC + DI * Cos(TT + I * DT): '***** 斜立椭圆圆周i点的纵坐标XP(i)
YPI = YC + DI * Sin(TT + I * DT): '***** 斜立椭圆圆周i点的横坐标YP(i)
Form2.Line-(YPI, XPI), RGB(0, 0, 0)
Next I End Select
Rem ***** 绘制椭圆的长、短轴,用坐标正算的方法 *****
Dim X1 As Double
Dim Y1 As Double
Dim X2 As Double
Dim Y2 As Double
X1 = XC + A * Cos(TT)
Y1 = YC + A * Sin(TT)
X2 = XC + A * Cos(TT + PI())
图7-5 误差椭圆
Y2 = YC + A * Sin(TT + PI())
Line(Y1, X1)-(Y2, X2), RGB(255, 0, 0)
X1 = XC + B * Cos(TT + PI()/ 2)
Y1 = YC + B * Sin(TT + PI()/ 2)
X2 = XC + B * Cos(TT + 3 * PI()/ 2)
Y2 = YC + B * Sin(TT + 3 * PI()/ 2)
Line(Y1, X1)-(Y2, X2), RGB(255, 0, 0)
Rem ***** 以下绘制测量坐标系及方框 ***** Rem ***** 略 ***** End Sub
162 §7-2 绘制误差曲线的程序设计方法
一、误差曲线简介
误差曲线的方程为:
2ma2Cos2b2Sin2
式中:
a —— 误差曲线所对应的误差椭圆的长半轴 b —— 误差曲线所对应的误差椭圆的短半轴
—— 以a为起始方向、以误差曲线中心为起始点、沿顺时针方向对应误差曲线上某点的方向角
m—— 对应任意方向角的误差曲线上某点的位差
以不同的和m为极坐标的点的轨迹为一条闭合的曲线。显然,从曲线中心O至曲线上任意点P(对应误差曲线上某点的方向角为)的向径OP就是该方向的位差m。这个曲线可以把各方向的位差清楚地图解出来。
在工程测量中,误差曲线的用途是广泛的。根据这个图可以确定坐标平差值在各个方向上的位差。参见文献[34] P461-462)
二、误差曲线的程序设计方法
由于编程语言中没有现成的语句、命令、函数或方法来绘制倾斜任意角度的误差曲线,因此,下面研究在计算机屏幕上绘制倾斜任意角度的误差曲线的编程方法。
绘制倾斜任意角度的误差曲线时,已知数据如下: 对应误差曲线的误差椭圆的长半轴:A(或a)对应误差曲线的误差椭圆的短半轴:B(或b)对应误差曲线的误差椭圆中心点的测量坐标系坐标:(XO,YO)对应误差曲线的误差椭圆长半轴在测量坐标系中的坐标方位角:T 下面讨论问题及编程中所使用的平面坐标系均为测量平面直角坐标系,即纵轴向上为X轴正向,横轴向右为Y轴正向。
绘制倾斜任意角度的误差曲线的基本思路是:首先,求出在测量坐标系中坐标方位角为T的椭圆长半轴与椭圆圆周的交点G(该点也是椭圆长半轴与误差曲线的交点)的坐标;然后,再求出误差曲线上一系列点P(i)的坐标;最后,从G点开始用画直线方法LINE依次连接相邻点。
为了用画直线方法LINE依次连接相邻点时所画出的直线趋近于误差曲线,需要将误差曲线上一系列点P(i)分布的合理,即P(i)与P(i1)的距离应足够小,且任意相邻两点P(i)与P(i1)和误差曲线中心(也是误差椭圆中心)相连的直线的夹角均相等——这是为了使编程计算有规律性。
实际编程中,如图7-6所示,在测量坐标系中坐标方位角为T的椭圆长半轴与椭圆圆周的交点G的坐标,应以椭圆中心点坐标(Xo,Yo)作为起始坐标、以椭圆的长半轴A为距离、以T为坐标方位角、按坐标正算的方法计算G点的坐标:
163 XGX0ACos(T)YGY0ASin(T)椭圆长轴与椭圆圆周的另一个交点GA的坐标为:
sT)XGAX0ACo(
YYASin(T)0GA椭圆短轴与椭圆圆周的两个交点F、FA的坐标分别为:
XXBCos(T)0F2 YYBSin(T)F023XXBCos(T)FA02 YYBSin(T3)FA02根据上述坐标,用画直线方法LINE可
图7-6 倾斜任意角度的误差曲线
画出椭圆的长轴及短轴,这也是误差曲线的 长轴及短轴。
计算倾斜任意角度T的误差曲线上任意点P(i)坐标的方法,可采用与绘制误差椭圆相同的方法,如图7-6所示。
首先,求出在测量坐标系中坐标方位角为T的椭圆长半轴与椭圆圆周的交点G的坐标。
然后,再求出误差曲线上一系列点P(i)到误差曲线中心的距离。不论误差曲线是正立竖放,还是倾斜任意角度的,这个距离值是确定不变的,因此,可按正立竖放的误差曲线求算该距离值,如图7-7所示,对于误差曲线上的任意一点P(i),有t。
D(i)ma2Cos2b2Sin2
实际编程中,可取iDT。
图7-7 竖立正放的误差曲线 按坐标正算可得误差曲线上任意点P(i)的坐标:
XP(i)XOD(i)Cos(TiDT)
YP(i)YOD(i)Sin(TiDT)164 最后,在图7-6中从G点开始用画直线方法LINE依次连接相邻点,即可绘出误差曲线。
三、误差曲线编程示例(含屏幕显示及打印机打印误差曲线两部分)(见图7-8)
Private Sub GPHPIC23_Click()Rem ***** 绘制误差曲线一级菜单子过程 ***** End Sub
Private Sub GPHPIC24_Click()Rem ***** 显示误差曲线菜单子过程 ***** Dim X As Double Dim Y As Double Dim A As Double Dim B As Double Dim T As String Cls Form2.DrawStyle = 0: ' ***** 设定绘制单实线
Form2.DrawWidth = 1: ' ***** 设定绘制单实线的线宽
Form2.Line(1, 7)-(199, 143), RGB(255, 0, 0), B: '绘制一个红色矩形作为绘图区域。X = 80: '***** 曲线中心测量纵坐标 ***** Y = 100: '***** 曲线中心测量横坐标 ***** A = 25.4: '***** 对应误差曲线的误差椭圆的长半轴 ***** B = 9.5: '***** 对应误差曲线的误差椭圆的短半轴 ***** T = “138 54 12”: '***** 对应误差曲线的误差椭圆的长半轴坐标方位角 **** Call GPHP16(X, Y, A, B, T, 1)End Sub
Private Sub GPHPIC25_Click()Rem ***** 打印机打印误差曲线菜单子过程 Dim X As Double Dim Y As Double Dim A As Double Dim B As Double Dim T As String Cls Form2.DrawStyle = 0: ' ***** 设定绘制单实线
Form2.DrawWidth = 1: ' ***** 设定绘制单实线的线宽
Form2.Line(1, 7)-(199, 143), RGB(255, 0, 0), B: '绘制一个红色矩形作为绘图区域。
X = 80: '***** 曲线中心测量纵坐标 ***** Y = 100: '***** 曲线中心测量横坐标 ***** A = 25.4: '***** 对应误差曲线的误差椭圆的长半轴 ***** B = 9.5: '***** 对应误差曲线的误差椭圆的短半轴 ***** T = “138 54 12”: '***** 对应误差曲线的误差椭圆的长半轴坐标方位角 **** Call GPHP16(X, Y, A, B, T, 2)165 End Sub
Private Sub GPHP16(ByVal XC As Double, ByVal YC As Double, ByVal A As Double, ByVal B As Double, ByVal T As String, ByVal PP As Integer)Rem ***** 屏幕显示及打印机打印误差曲线子过程 ***** Rem ***** 当PP=1时,屏幕显示误差曲线 ***** Rem ***** 当PP=2时,打印机打印误差曲线 ***** Dim N As Integer Dim I As Integer Dim DT As Double Dim TT As Double: '***** 对应误差曲线的误差椭圆的长半轴坐标方位角 ****
N = 400 TT = RAD(T): '***** 程序中T应为度、分、秒(字符串)DT = 2 * PI()/ N
Rem ***** 用点斜式直线方程与竖放椭圆(或竖放误差曲线)的标准方程联立方程组 Rem ***** 解算椭圆中心O(0,0)至椭圆圆周(或竖放误差曲线)交点距离的方法 Rem ***** 误差曲线的方程为:m^2=a^2*(Cos(t))^2+b^2*(Sin(t))^2 Dim AT As Double Dim BT As Double Dim XI As Double Dim YI As Double Dim M As Double Dim DI As Double Dim XPI As Double Dim YPI As Double
AT = A ^ 2 BT = B ^ 2
If PP = 1 Then Form2.PSet(YC + A * Sin(TT), XC + A * Cos(TT)), RGB(0, 0, 0)ElseIf PP = 2 Then Dim XXX As Printer For Each XXX In Printers If XXX.Orientation = vbPRORPortrait Then Set Printer = XXX: '* 设置为系统默认打印机,参见《VB6.0中文版参考详解》P502 Exit For End If Next
Printer.ScaleMode = 0: '***** 通常先设为零
Printer.ScaleMode = 6: '***** 设置打印机坐标系的单位是毫米
166
Dim ASPP As Single
ASPP = Printer.ScaleHeight / Printer.ScaleWidth: '*** 设置打印机新的绘图区坐标系纵横比
Rem ***** 当设置打印机坐标系的单位是毫米时,ASPP值约为0.72 Printer.ScaleWidth = 200: '*** 设置打印机新的绘图区坐标系宽为200 Printer.ScaleHeight =-Int(Printer.ScaleWidth * ASPP): '*** 设置打印机新的绘图区坐标系高
Printer.ScaleLeft =-0: '*** 设置打印机新的绘图区坐标系坐标原点横坐标值
Printer.ScaleTop =-Printer.ScaleHeight: '-ScaleHeight: '*** 设置打印机新的绘图区坐标系坐标原点纵坐标值
Rem ***** 通过以上的设定,将打印机绘图区坐标系设为与数学坐标系相同 Printer.DrawStyle = 0: ' ***** 设定打印机打印单实线
Printer.DrawWidth = 1: ' ***** 设定打印机打印单实线的线宽
Printer.PSet(YC + A * Sin(TT), XC + A * Cos(TT)): '*** 打印机打印 End If
For I = 1 To N M = Tan(I * DT): '***** 直线的斜率 M = M ^ 2 XI = AT * BT /(BT + AT * M): '***** 正立竖放椭圆圆周i点纵坐标的平方,X(i)^2 YI = XI * M: '***** 正立竖放椭圆圆周i点横坐标的平方,Y(i)^2 DI = Sqr(XI + YI): '***** 椭圆中心至椭圆圆周i点的距离D(i)XPI = XC + DI * Cos(TT + I * DT): '***** 斜立椭圆圆周i点的纵坐标XP(i)YPI = YC + DI * Sin(TT + I * DT): '***** 斜立椭圆圆周i点的横坐标YP(i)If PP = 1 Then Form2.Line-(YPI, XPI), RGB(0, 0, 0): '***** 绘制斜立误差椭圆 ElseIf PP = 2 Then Printer.Line-(YPI, XPI): '***** 打印机打印斜立误差椭圆 End If Next I
If PP = 1 Then Form2.PSet(YC + A * Sin(TT), XC + A * Cos(TT)), RGB(0, 0, 255)ElseIf PP = 2 Then Printer.PSet(YC + A * Sin(TT), XC + A * Cos(TT)): '*** 打印机打印 End If
For I = 1 To N DI = Sqr(AT *(Cos(I * DT))^ 2 + BT *(Sin(I * DT))^ 2): '***** 误差曲线中心至曲线上i点的距离D(i)XPI = XC + DI * Cos(TT + I * DT): '***** 斜立误差曲线上i点的纵坐标XP(i)167 YPI = YC + DI * Sin(TT + I * DT): '***** 斜立误差曲线上i点的横坐标YP(i)If PP = 1 Then Form2.Line-(YPI, XPI), RGB(0, 0, 255): '***** 绘制斜立误差曲线 ElseIf PP = 2 Then Printer.Line-(YPI, XPI): '***** 打印机打印斜立误差曲线 End If Next I
Rem ***** 绘制椭圆的长、短轴,用坐标正算的方法 ***** Dim X1 As Double Dim Y1 As Double Dim X2 As Double Dim Y2 As Double
X1 = XC + A * Cos(TT)Y1 = YC + A * Sin(TT)X2 = XC + A * Cos(TT + PI())Y2 = YC + A * Sin(TT + PI())If PP = 1 Then Line(Y1, X1)-(Y2, X2), RGB(255, 0, 0)ElseIf PP = 2 Then Printer.Line(Y1, X1)-(Y2, X2): '*** 打印机打印 End If
X1 = XC + B * Cos(TT + PI()/ 2)Y1 = YC + B * Sin(TT + PI()/ 2)X2 = XC + B * Cos(TT + 3 * PI()/ 2)Y2 = YC + B * Sin(TT + 3 * PI()/ 2)If PP = 1 Then Line(Y1, X1)-(Y2, X2), RGB(255, 0, 0)ElseIf PP = 2 Then Printer.Line(Y1, X1)-(Y2, X2): '*** 打印机打印
Printer.EndDoc: '***** 该方法(EndDoc)意思为“开始打印” End If Rem ***** 以下绘制测量坐标系及方框 ***** Rem ***** 略 ***** End Sub
图7-8 误差椭圆与误差曲线
168
第二篇:公开课 VB程序设计教案
第四课 学学程序设计—初步认识编程软件VB 教学目标:
知识目标:了解什么是程序设计语言和计算机程序以及语言的分类
过程与方法:培养学生的阅读总结和自主探索能力
情感态度与价值观:通过学生利用所学的知识解决实际问题,激
发学生的学习兴趣
教学重难点:了解什么是程序设计语言
启发学生创新思维
以任务为驱动,激发学生创新思维 教法:讲授法、任务驱动法 教学过程:
一、导入新课
教师运行游戏小程序,引起学生的兴趣,并打开程序的原代码说明编程并不很神秘。试运行游戏小程序,激发学生的学习兴趣。
二、教师讲授: 程序设计语言
教师活动:语言是人类交流思想、沟通感情最重要的工具。那么语言不通的人如何交流呢?
学生活动:请一个语言翻译或自己学会他人的语言
教师活动:计算机所做的事情均为人向机器下达的命令,那么操作作者又是通过什么语言同计算机进行沟通的呢? 程序设计语言的分类及特点
1、机器语言
教师活动:①计算机能听懂的语言(机器语言)②机器语言的实质(二进制语言)③二进制语言的特点。强调计算机内部只认识二进制
学生活动:谈对二进制语言的感受
教师小结:机器语言的特点(二进制、计算机直接能懂、难以理解,与人类语言差距较大)汇编语言-用助记符号表示面向机器的程序设计语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程雪汇编语言翻译成机器语言。适合编写直接控制机器操作的程序,不容易使用。高级语言-最接近人的自然语言,即简单易学,它所编制的程序计算机执行时需要“翻译”,执行速度比二进制程序慢。三:展示微课视频
VB简介、认识VB窗口、相关概念:
1、对象的概念
2、属性的概念
3、事件和代码的概念。演示设计运行程序“奔跑的小汽车”依照微课演示编写程序“奔跑的小汽车” 四:学生体验
1、学生编写程序“奔跑的小汽车”,教师巡回指导。
2、试修改程序,让汽车倒车、速度变慢。
五、教学评价:
1、教师点评教师通过巡视,把部分学生修改的结果进行点评,指出典型的错误。
六、课后小结:
这节课,我们体验了用VB设计程序,了解程序有关知识。(回顾本节知识)希望同学们继续努力。
第三篇:程序设计教案VB版第三章
第三章
矩阵的基本计算程序设计方法
§3-1 行列式的性质(参见文献[39]P91)
矩阵的基本计算用到了行列式的内容。行列式通常用记号A或detA表示,det的英文单词是:determinant。为后面讨论矩阵计算时方便,下面先叙述行列式的十个主要性质。
1、把行列式的行变为同号数的列,行列式的值不变。即一个行列式与它的转置行列式的值相等。
2、对调行列式的两行(或两列),行列式的符号改变,但绝对值不变。
3、有两行(或两列)相同的行列式的值必等于零。
4、行列式等于它任意一行(或一列)的各元素与对应于它们的代数余子式的乘积的和。
5、行列式某一行(或某一列)的各元素与另一行(或另一列)对应元素的代数余子式的乘积的和恒等于零。
6、行列式的某一行(或某一列)的各元素如果有公因子,这公因子可以提到行列式记号的外面去。
7、如果行列式的某一行(或某一列)的各元素都等于零,则此行列式等于零。
8、如果行列式的第i行(或第i列)的各元素是两个加数的和,则此行列式可表示为两个行列式的和,其中一个行列式的第i行(或第i列)的各元素是上述的一个加数,而另一个行列式的第i行(或第i列)的各元素是另一个加数;在这三个行列式中,其余的各元素完全相同。
9、如果行列式的两行(或两列)的对应元素成比例,则此行列式等于零。
10、把行列式的某一行(或某一列)所有的元素同乘以一个数后,加于另一行(或另一列)的各对应元素上,行列式的值不变。
§3-2 矩阵基本计算的程序设计原理
矩阵的基本计算包括:矩阵的初等变换(行变换或列变换),矩阵的加、减法,矩阵的转置,矩阵乘法的定义及计算方法、代数余子式的定义及计算方法、按照定义式进行矩阵求逆等的编程方法。矩阵的英文单词是matrix。
一、矩阵的基本概念
设有一个线性方程组,例如测量平差中的条件方程: a1v1a2v2anvnwa0b1v1b2v2bnvnwb0
rvrvrvw022nnr11等式的左边由三部分组成,即n个改正数vi,r个改正数的系数,r个闭合差。现在我们将这三种成份按原来排列的次序抽出来,分别组成下面三个表:
a1b1r1a2b2r2anbn,v1rnwawbvn,wr v2 18 这种由一组数排列成矩形的表,就称为矩阵。表中的数称为矩阵的元素。在第一个表中有r行n列元素,该表称为rn阶矩阵;第二个表只有一行n列元素,称为1n阶矩阵,或称行矩阵;第三表有r行一列元素,称为r1阶矩阵,或称列矩阵。
一般地,设有mn个元素排成矩形的表: a11a21 Aam1a12a22am2a1na2n amn称A为m行n列矩阵,aij称为矩阵A的元素。m行n列矩阵记为mn阶矩阵。
二、常见的特殊矩阵
1、方阵
当mn时,矩阵A称为n阶矩阵,或称n阶方阵。方阵A中的元素a11,a22,,ann称为矩阵A的对角线元素。例如条件平差中法方程组的系数阵,即为方阵。
2、零矩阵
如果某一个矩阵的元素全为零,则称为零矩阵,记为O。测量平差中常见的零矩阵是r1阶零矩阵,一般也用O表示。即:
00 O
0
3、对角阵
如果一个n阶方阵除对角线元素外,其余元素全为零,则称其为对角阵,即: a110 A00a22000 ann
4、单位矩阵
对于对角阵A,当主对角线元素全为1时,即:a11a22ann1,则称其为单位矩阵,简称单位阵,也称为幺阵,一般用E表示,也有用I表示的。
5、上三角矩阵
对于n阶方阵A,如果当ij时,aij均为零,则称该矩阵为上三角矩阵。即: a110A 0a12a220a1na2n ann
6、下三角矩阵
对于n阶方阵A,如果当ij时,aij均为零,则称该矩阵为下三角矩阵。即: a11a21 Aan10a22an200 ann
7、行矩阵
对于mn阶矩阵,若m1时,则称其为行矩阵,也称为行向量。即:
Aa11
8、列矩阵
对于mn阶矩阵,若n1时,则称其为列矩阵,也称为列向量。即: a11a21 A
am1a12a1n
9、对称方阵
对于n阶方阵A: a11a21A an1a12a22an2a1na2n annann两侧的元素对称相等,若主对角线元素a11,a22,即aijaji,则称A为n阶对称方阵。
三、矩阵的基本计算
矩阵和行列式有本质的区别,属于两个不同的概念。行列式本身代表一个数,而矩阵仅仅是一组数排列成的表,它只说明表中各元素的排列位置,但矩阵的整体可以参与运算。下面介绍矩阵的基本计算规则。
㈠、矩阵的相等
设有两个同阶矩阵A(aij)和B(bij),如果它们的对应元素相等,即:aijbij,则矩阵A和B称为相等。
㈡、矩阵的加、减法
1、如果矩阵A(aij)和B(bij)是同阶矩阵,则矩阵A与B是可加减的。将两个同阶矩阵中对应元素求和差,称为矩阵的加减法。即: a11b11a21b21 ABabm1m1a12b12a22b22am2bm2a1nb1na2nb2n amnbmn 20 若令aijbijcij,C(cij),则矩阵:
CAB
可见矩阵C必与A、B同阶。
2、一个常数与一个矩阵相乘的定义及计算方法
常数与某矩阵A相乘所得之矩阵B,其元素就是常数与矩阵A中各个元素之乘积。即:
a11a21 BAAam1a12a22a1na2nam2amn
3、矩阵加减法运算的基本性质
⑴、可结合性:A(BC)(AB)C ⑵、可交换性:ABBA
⑶、AOA(式中O为与A同阶的零矩阵)
⑷、()AAA(式中A为矩阵,、是常数)⑸、(AB)AB(式中A、B为矩阵,是常数)
㈢、矩阵的转置
1、设A是mn阶矩阵,将A的行与列依次对换,得nm阶矩阵,称为A的转置矩阵,并记为A,或记为AT。即: a11a21 Aam1a12a22am2a1na11a2na12TA aamn1na21a22a2nam1am2 anm
2、转置矩阵的性质
⑴、将矩阵进行两次转置即得原矩阵,即:(A)⑵、(AB)⑶、(A)TTTTTA。
ATTB
TTTA(式中A为矩阵,是常数)
⑷、(AB)BA
⑸、对角阵的转置矩阵,仍为对角阵,且与原对角阵相等。⑹、若ATA,则A为对称矩阵。
㈣、矩阵相乘的定义及计算方法
1、两个矩阵相乘的定义及计算方法 设矩阵A的列数等于矩阵B的行数: a11a21Aam1a12a22am2a1pb11a2pb21B bampp1c1nc2n cmnb12b22bp2b1nb2n bpn又设矩阵:
c11c21 Ccm1pc12c22cm2这里cijak1ik,将C称为bkj(i1,2,,m;j1,2,,n;1im;1jn)矩阵A与B的乘积,记作CAB。
2、矩阵乘积的性质
⑴、注意,一般地,ABBA,即矩阵的乘法一般不满足交换律。
⑵、矩阵乘法的结合律是成立的,即:(AB)CA(BC)或(A)B(AB)。⑶、矩阵乘法的分配律是成立的,即:A(BC)ABAC或(AB)CACBC。⑷、若A是n阶矩阵,E是n阶单位矩阵,则有:AEEAA。
㈤、代数余子式的定义及计算方法
在某阶行列式中,划去aij所在的行和列的元素,余下的元素构成一个降阶行列式,它与(1)ij的乘积叫做aij的代数余子式,记作Aij。例如:
a11a12a22a3223a13a23中a23的代数余子式为: a33行列式a21a31A23(1)a11a31a12a32a11a31a12a32
㈥、按照定义式进行矩阵求逆的一种编程方法
1、非奇异矩阵和奇异矩阵的定义 a11a21设n阶矩阵为:Aan1a12a22an2a1na2n,方阵A的行列式记作A,若A0,ann称A为非奇异矩阵(也称满秩矩阵);否则,称A为奇异矩阵。
2、逆矩阵的定义 对于n阶矩阵A,如果有一个n阶矩阵B,满足:ABBAE,则B叫做A的逆矩阵,A也叫做B的逆矩阵。A的逆矩阵记作A1,这里E是单位矩阵。
重要的性质:一个n阶矩阵有逆矩阵的必要与充分条件是该矩阵是非奇异矩阵。非奇异矩阵有唯一的逆矩阵。
3、伴随方阵的定义及逆矩阵的定义式
设A为一个n阶非奇异矩阵,则A有唯一的一个逆矩阵A1,其定义式为:
A11AA*
a11a21A an1 A*A11A12A1na12a22an2A21A22A2na12a22an2a1na2n annAn1An2 Anna1na2nanna11 Aa21an1
式中,Aij是行列式A中元素aij的代数余子式,称矩阵A*为矩阵A的伴随方阵,A1是矩阵A的逆矩阵。
4、矩阵A的行列式A的值的计算方法
根据行列式的性质10,首先通过列变换,将行列式第一行上除主对角线上的一个元素外,将这行上其它各元素均变换成零;这样,根据行列式的性质4可知,行列式的值等于第一行各元素与对应于它们的代数余子式的乘积之和,即等于第一行不为零的主对角线上的元与其代数余子式的积。素a11若行列式的某一行(或某一列)的所有元素均为零,则该行列式的值为零,不需要进行变换。
a11a12a22an2a1na2nann Aa21an1
a110a222ana22a23a333an0na2annna2na3anna1ia11 a21an1
111a11a322an
上式中首先将a12、a13、„„、a1n均变换为0,具体方法如下:取乘数m1i
3、、n)(i
2、,从第二列起,每列各元素加上第一列各元素与m1i的积。例如,若想
a12使a12变为0,应将第一列各元素同乘以a11a13将第一列各元素同乘以a11后,加到第二列上;若想使a13变为0,应后,加到第三列上;„„。 仿照列变换,也可以进行行变换,使a11、a21、a31、„„、an1均变换为0。
同理,往下可以逐次变换,每变换一次,行列式便降一阶,最后行列式A的值为经过变换的主对角线上各元素与每一次降阶时的(1)ij的积。
由于每次降阶时均有ij,所以(1)ij1。这样,矩阵A的行列式的值为: a33a44
Aa11a225、伴随矩阵A*中各元素Aij的计算方法
类似地,利用上述求行列式A的值的方法可以求出伴随矩阵A*中各元素Aij(Aij为行列式A中元素aij的代数余子式)的值。
6、有关逆矩阵的两个性质
①、若矩阵A、B都有逆矩阵,则其乘积AB也有逆矩阵,其(AB)②、设A为非奇异矩阵,则(A)1T1B1A1。
(A)T1,即(A)为AT的逆矩阵。
1T㈦、矩阵的秩
1、矩阵A的k阶子式的定义
在一个m行、n列的矩阵A中任取k行、k列,位于这些行、列相交处的元素构成的k阶行列式,叫做A的k阶子式。
2、矩阵A的秩的定义
矩阵A中不等于零的子式的最大阶数,叫做矩阵A的秩。
3、关于计算矩阵A的秩的三个定理(这三个定理又称为矩阵的初等变换)①、如果一个矩阵的某一行(列)乘以一个不为零的数,则矩阵的秩不变。
②、若一个矩阵的任意两行(列)交换,则矩阵的秩不变。
③、如果一个矩阵A的某一行(列)乘以一个不为零的数k,然后加到另一行(列)的对应元素上去,则矩阵的秩不变。
㈧、分块矩阵
对于阶数比较高的矩阵A,在计算过程中,经常采用“矩阵分块法”,这样,它可以使计算简化为较低阶矩阵的运算。
1、分块矩阵的定义
将一个mn阶矩阵A用若干条纵线和横线分成多块低阶矩阵,每一块低阶矩阵称为A的子块,以子块为元素的矩阵称为分块矩阵。
实际计算中,多数情况下是将一个mn阶矩阵A化成m1阶或1n阶分快矩阵,即将矩阵A按列或按行分块,这样分块的作用是规律性强,利于编程计算。
2、分块矩阵的计算规则
⑴、作分块矩阵的加减法运算时,必须将两个同阶矩阵按相同方法分块,才能运算。
⑵、作分块矩阵A与B相乘时,A的列子阵数必须等于B的行子阵数,且对应相乘的子阵Cih与Dhi必须有Cih的列数等于Dhi的行数。即:
C11C21ACs1C12C22Cs2at1,l2at2,l2atm,l2C1pD11C2pD21 BDCspp1at1,lnat2,ln atm,lnD12D22Dp2D1rD2r Dpr且 Cihat1,l1at2,l1atm,l1bf1,e1bfx,e1 Dhibf1,en
bfx,en⑶、分块矩阵转置时,先将子阵看成矩阵的元素,作转置后,再将每个子阵转置。即:
C11C21ACs1
C12C22Cs2TC1pC11TC2pC12T ACTCsp1pC21C22C2pTTTTCs1TCs2 TCsp25 ⑷、分块矩阵求逆法 参见文献[30]P506。
四、矩阵基本计算程序示例
1、矩阵加减、转置、乘法运算 Private Sub GPHARRAY1_Click()Rem ***** 矩阵加减计算子菜单 ***** Dim I As Integer Dim J As Integer I = 3 J = 3 ReDim A(1 To I, 1 To J)As Double ReDim B(1 To I, 1 To J)As Double A(1, 1)= 1 A(1, 2)= 2 A(1, 3)= 3 A(2, 1)= 4 A(2, 2)= 5 A(2, 3)= 6 A(3, 1)= 7 A(3, 2)= 8 A(3, 3)= 9 B(1, 1)= 0.1: '***** 第一行第一列 B(1, 2)= 0.2 B(1, 3)= 0.3 B(2, 1)= 0.4: '***** 第二行第一列 B(2, 2)= 0.5 B(2, 3)= 0.6 B(3, 1)= 0.7: '***** 第三行第一列 B(3, 2)= 0.8 B(3, 3)= 0.9 Cls Call GPHARRAY11(A(), B())End Sub
Private Sub GPHARRAY11(ByRef A()As Double, ByRef B()As Double)Rem ***** 矩阵加减计算子程序 ***** Dim I As Integer Dim J As Integer Dim N As Integer N = 3 ReDim C(1 To N, 1 To N)As Double For I = 1 To N For J = 1 To N C(I, J)= A(I, J)+ B(I, J)Print Spc(6);“C(”;I;“,”;J;“)=”;C(I, J)Next J Next I End Sub
Private Sub GPHARRAY2_Click()Rem ***** 矩阵转置计算子菜单 ***** Dim I As Integer I = 2 J = 3 ReDim A(1 To I, 1 To J)As Double A(1, 1)= 2: '***** 第一行第一列 A(1, 2)= 3 A(1, 3)= 4 A(2, 1)= 5: '***** 第二行第一列 A(2, 2)= 6 A(2, 3)= 7 Cls Call GPHARRAY21(A())End Sub
Private Sub GPHARRAY21(ByRef A()As Double)Rem ***** 矩阵转置计算子程序 ***** Dim I As Integer Dim J As Integer Dim I1 As Integer Dim J1 As Integer I = LBound(A, 1): '***** 返回二维数组第一维的最小下标 J = LBound(A, 2): '***** 返回二维数组第二维的最小下标 I1 = UBound(A, 1): '***** 返回二维数组第一维的最大下标 J1 = UBound(A, 2): '***** 返回二维数组第二维的最大下标 ReDim C(I To J1, J To I1)As Double For R = 1 To J1 For S = 1 To I1 C(R, S)= A(S, R)Print Spc(6);“C(”;R;“,”;S;“)=”;C(R, S)Next S 27 Next R End Sub
Private Sub GPHARRAY3_Click()Rem ***** 矩阵乘法计算子菜单 ***** Dim I As Integer Dim J As Integer I = 2 J = 3 K = 4 ReDim A(1 To I, 1 To J)As Double ReDim B(1 To J, 1 To K)As Double A(1, 1)= 1 A(1, 2)= 2 A(1, 3)= 3 A(2, 1)= 4 A(2, 2)= 5 A(2, 3)= 6 B(1, 1)= 1: '***** 第一行第一列 B(1, 2)= 2 B(1, 3)= 3 B(1, 4)= 4 B(2, 1)= 5: '***** 第二行第一列 B(2, 2)= 6 B(2, 3)= 7 B(2, 4)= 8 B(3, 1)= 9: '***** 第三行第一列 B(3, 2)= 10 B(3, 3)= 11 B(3, 4)= 12 Cls Call GPHARRAY31(A(), B())End Sub
Private Sub GPHARRAY31(ByRef A()As Double, ByRef B()As Double)Rem ***** 矩阵乘法计算子程序 ***** Dim I As Integer Dim J As Integer Dim K As Integer Dim U As Integer Dim I1 As Integer Dim J1 As Integer Dim K1 As Integer I1 = UBound(A, 1): '***** 返回二维数组第一维的最大下标,此为矩阵A()的行数
J1 = UBound(A, 2): '***** 返回二维数组第二维的最大下标,此为矩阵A()的列数 K1 = UBound(B, 2): '***** 返回二维数组第二维的最大下标,此为矩阵B()的列数 Rem ***** C()=A()*B()
ReDim C(1 To I1, 1 To K1)As Double For I = 1 To I1 For K = 1 To K1 U = 0 For J = 1 To J1 U = U + A(I, J)* B(J, K)Next J C(I, K)= U Print Spc(6);“C(”;I;“,”;K;“)=”;C(I, K)Next K Next I End Sub
2、矩阵求逆
Private Sub Form_Load()Dim I As Integer Dim J As Integer Dim K As Integer Dim N As Integer Dim R As Integer Dim DetA As Double, S As Double N = 4 ReDim A(1 To N, 1 To N), B(1 To N, 1 To N)As Double, C(1 To N, 1 To N)As Double 'A数组存放源矩阵,B数组临时存放各元素的代数余子式,C数组存放逆矩阵 A(1, 1)= 10: A(1, 2)= 4: A(1, 3)= 3: A(1, 4)= 6 A(2, 1)= 5: A(2, 2)= 8: A(2, 3)= 7: A(2, 4)= 9 A(3, 1)= 1: A(3, 2)= 3: A(3, 3)= 5: A(3, 4)= 7 A(4, 1)= 2: A(4, 2)= 6: A(4, 3)= 3: A(4, 4)= 1 '求矩阵的行列式 For I = 1 To N For J = 1 To N B(I, J)= A(I, J)Next J Next I Call QIUJUZHEN(B(), N, S)DetA = S Debug.Print “S=”;S '求代数余子式及伴随矩阵 N = N1)= A(K, R)If R < J And K > I Then B(K1, R1 For J = I + 1 To N M =-B(I, J)/ B(I, I)For K = I To N B(K, J)= B(K, J)+ M * B(K, I)' Debug.Print “B(”;K;“,”;J;“)=”;B(K, J)Next K Next J Next I For I = 1 To N S = S * B(I, I)Next I
End Function 30
第四篇:VB程序设计的常用算法教案
VB程序设计的常用算法教案
算法(Algrith):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采 取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何 安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。
一、计数、求和、求阶乘等简单算法
此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条,更要注意用来表示计数、和、阶 乘的变量的初值。
例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,6,7,8,9,0的 数的个数并打印出来。
本题使用数组来处理,用数组a存放产生的确100个随机整数,数组x来存放个位上的数字分
别为1,2,3,4,6,7,8,9,0的数的个数。即个位是1的个数存放在x中,个位是2的个数存放在x中,…… 个位是0的个数存放在x。
将程序编写在一个GetTput过程中,代码如下: PubliSubGetTput
DiaAsInteger
DixAsInteger
DiiAsInteger,pAsInteger
'产生100个[0,99]范围内的随机整数,每行印出来
Fri=1T100
a=Int
Ifa<10Then
Fr1PrintSpae;a;
10个打
Else
Fr1PrintSpae;a;
EndIf
Ifid10=0ThenFr1Print
Nexti
'统计个位上的数字分别为1,2,3,4,6,7,8,9,0的数的个数,并将统计结果保存在数组x,x,x中,将统计结果打印出来
Fri=1T100
p=a
d
0
'求个位上的数字
Ifp=0Thenp=10
x=x+1
Nexti
Fr1Print&qut;统计结果&qut;
Fri=1T10
p=i
Ifi=10Thenp=0 Fr1Print&qut;个位数为&qut;+Str+&qut;&qut;+Str)+&qut;个&qut;
Nexti EndSub
二、求两个整数的最大公约数、最小公倍数 分析:求最大公约数的算法思想:
对于已知两数,n,使得>n;
共
除以n得余数r;
若r=0,则n为求得的最大公约数,算法结束;否则执行;
←n,n←r,再重复执行。
例如:求=14,n=6的最大公约数
n
r
0 =inputBx n=inputBx n=n* If r=dn Dhile =n n=r r=dn Lp Print&qut;最大公约数=&qut;,n [1] [2] [3] [4] [] [6] [7] 下一页 < VB程序设计课程设计 1、目的 VB程序设计课程设计是考察学生对VB程序设计课程相关知识点掌握情况的重要环节,也是激励学生进一步学习VB、提高运用VB开发实际计算机程序的能力。课程设计的重点在于学生利用VB开发程序的能力。 2、课程设计题目 学生信息管理系统 3、程序功能 该程序具有建立数据库,建立数据库表,添加数据,删除数据,查询学生每学期成绩、不及格情况、积点情况等相关信息的功能。 4、实现要求 每个学生建立一个数据库(名字自拟),数据库中建立学生基本信息表(学号、姓名、性别、出生年、出生月、出生日、联系电话、年级、班级、住址等)、学生成绩表(学号、课程号、成绩、学期等)、课程信息表(课程号、课程名称、出版社、出版日期、版次、页码、价格、课程类型(基础课、专业基础课、选修课等)、开课学院等)。 把课程信息、每一学期的成绩等分别输入相应的表中,其中学生基本信息表记录不少于5个学生的信息。 在以上数据的基础上,实现相关的程序功能(不仅仅第3条指定的功能)。 设计多界面程序,相关查询结果应由不同的界面显示,每个同学显示结果的形式应尽量不同。 5、考核 根据学生实现程序功能多少(40分)、界面设计情况(20分)、课程设计报告撰写情况(20)、答辩情况(20分)进行考核。雷同者应重做。 6、课程设计报告内容 1)课程设计题目 2)课程设计的目的3)程序功能介绍 4)程序界面设计与控件属性设置 5)程序代码编写 6)程序演示(将运行过程用截图方式截下来,并对输入数据、输出的结果进行适当说明) 7)课程学习与课程设计心得体会 7、上交材料 本次课程设计以小班为单位上交如下资料: 1)光盘:每一小班建立一个目录(专业年级班级),在此目录下建立每个同学的目录(学号姓名),在每个同学的目录下保存该同学的电子版的课程设计报告、打包的程序。 2)纸制版的课程设计报告第五篇:VB程序设计课程设计