VB课程设计报告Word文档格式.docx
《VB课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《VB课程设计报告Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
与此同时,对实验数据计算,得出拟合直线的截距和斜率,并在Form3的标签控件1中体现;
根据所得的斜率和截距得到拟合直线方程,并在Form3的标签2中体现;
还可以在Form3中绘出拟合直线和每个实验点(用绿色),根据实验数据调整坐标系统,画出拟合直线。
Form2的代码见附件。
(二)模块设计(窗体界面与代码)
本题目的程序设计由3个模块组成,其中窗体模块3个。
序号
模块名称
模块类型
模块功能
1
Form1
窗体模块
选择要输入的数据组数,当选择好后,单击“确定”按钮,就可以进入下一个窗体;
2
Form2
输入实验数据后,对实验数据计算,得出拟合直线的截距和斜率,根据所得的斜率和截距得到拟合直线方程。
3
Form3
根据实验数据调整坐标系统,画出拟合直线。
窗体1的设计
表1窗体1中控件列表
控件名称
控件类型
Left
Top
Width
Height
Caption
Label1
标签控件
1440
120
2055
375
直线拟合程序
Frame1
框架控件
480
600
3855
1455
请选择数据组数
Option1
单选框控件
360
975
255
5组
4
Option2
720
6组
5
Option3
1080
7组
6
Option4
2520
8组
7
Option5
9组
8
Option6
10组
9
Command1
命令按钮控件
2280
1575
495
确定
10
Command2
退出
表2窗体1中事件过程列表
事件过程
功能
Option1-click()
选择数据组数为5组
Option2-click()
选择数据组数为6组
Option3-click()
选择数据组数为7组
Option4-click()
选择数据组数为8组
Option5-click()
选择数据组数为9组
Option6-click()
选择数据组数为10组
Command1-click()
进入第二个窗体坐标轴的输入
Command2-click()
退出拟合值线的数据输入
表3窗体1中通用过程与函数列表
过程与函数
输入参数
输出参数
MsgBox()
以文本向用户显示运行过程中的信息,让用户单击按钮作选择
Chr()
换行符
使消息内容在中间某处换行
13
回车符
窗体1的代码
Form1
PrivateSubCommand1_Click()'
显示第二个窗体
Form1.Hide
Form2.Show
Form3.Hide
zxnh=MsgBox("
你必须完全输入所选的项目!
"
&
Chr(10)&
Chr(13)&
_
"
否则程序将会出错!
48,"
直线拟合"
)
EndSub
PrivateSubCommand2_Click()'
结束程序
End
'
使第二个窗体的文本框按照第一个窗体给出的数据组数显示
PrivateSubOption1_Click()
Form2.Label6.Enabled=False
Form2.Label7.Enabled=False
Form2.Label8.Enabled=False
Form2.Label9.Enabled=False
Form2.Label10.Enabled=False
Forn=6To10
Form2.Text1(n).Enabled=False
Form2.Text1(n).BackColor=&
H8000000F
Form2.Text2(n).Enabled=False
Form2.Text2(n).BackColor=&
Next
PrivateSubOption2_Click()
Form2.Label6.Enabled=True
Form2.Text1(6).Enabled=True
Form2.Text1(6).BackColor=&
HFFFFFF
Form2.Text2(6).Enabled=True
Form2.Text2(6).BackColor=&
Forn=7To10
PrivateSubOption3_Click()
Form2.Label7.Enabled=True
Forn=6To7
Form2.Text1(n).Enabled=True
Form2.Text2(n).Enabled=True
Forn=8To10
Form2.Text1(n).Enabled=False·
PrivateSubOption4_Click()
Form2.Label8.Enabled=True
Forn=6To8
Forn=9To10
PrivateSubOption5_Click()
Form2.Label9.Enabled=True
Form2.Text1(10).Enabled=False
Form2.Text1(10).BackColor=&
Form2.Text2(10).Enabled=False
Form2.Text2(10).BackColor=&
Forn=6To9
PrivateSubOption6_Click()
Form2.Label10.Enabled=True
窗体2的设计
表4窗体2中控件列标
880
第1点
Label2
1240
第2点
Label3
1600
第3点
Label4
1960
第4点
Label5
2320
第5点
Label6
2680
第6点
Label7
3040
第7点
Label8
3400
第8点
Label9
3760
第9点
Label10
4120
575
第10点
11
Label11
1320
X坐标值:
12
Label12
Y坐标值:
Text1
(1)
文本框控件
840
735
270
14
Text1
(2)
1200
15
Text1(3)
1560
16
Text1(4)
1920
17
Text1(5)
18
Text1(6)
2640
19
Text1(7)
3000
20
Text1(8)
3360
21
Text1(9)
3720
22
Text1(10)
4080
23
Text2
(1)
24
Text2
(2)
25
Text2(3)
26
Text2(4)
27
Text2(5)
28
Text2(6)
29
Text2(7)
30
Text2(8)
31
Text2(9)
32
Text2(10)
33
4680
1335
34
2040
返回
X1
Y1
X2
Y2
BorderStyle
BorderWidth
35
Line1
直线控件
240
3600
1-solid
36
Line2
4440
37
Line3
38
Line4
39
Line5
2400
40
Line6
41
Line7
42
Line8
表5窗体2中事件过程列表
进入绘图窗体,拟合成直线
退出拟合直线的数据输入
表6窗体2中通用过程与函数列表
Spc()
3个空格组成的字符串
返回number个空格组成的字符串
窗体模块代码2的
Form2:
OptionBase1
DimmAsInteger
DimX(10)AsSingle
DimY(10)AsSingle
进入第三个绘图窗体
Form2.Hide
Form3.Show
DimAAsSingle'
截距
DimBAsSingle'
斜率
DimcAsSingle
DimdAsSingle
DimeAsSingle
DimfAsSingle
DimWAsSingle
DimRAsSingle
DimTAsSingle
讨论点的个数
IfForm2.Text1(5).Enabled=TrueThenm=5
IfForm2.Text1(6).Enabled=TrueThenm=6
IfForm2.Text1(7).Enabled=TrueThenm=7
IfForm2.Text1(8).Enabled=TrueThenm=8
IfForm2.Text1(9).Enabled=TrueThenm=9
IfForm2.Text1(10).Enabled=TrueThenm=10
对点的x.y坐标进行赋值
Ifm=5Then
Forn=1To5
X(n)=Text1(n).Text
Y(n)=Text2(n).Text
Next
EndIf
Ifm=6Then
Forn=1To6
Ifm=7Then
Forn=1To7
Ifm=8Then
Forn=1To8
Ifm=9Then
Forn=1To9
Ifm=10Then
Forn=1To10
Forn=1Tom
c=X(n)+c
d=X(n)*X(n)+d
e=X(n)*Y(n)+e
f=Y(n)+f
A=f/m-(m*e-c*f)*c/m/(m*d-c*c)'
计算直线的截距
B=(c*f-m*e)/(c*c-m*d)'
计算直线的斜率
打印数据方程的位置
Form3.CurrentX=200
Form3.CurrentY=350
Form3.Print"
直线斜率(B)="
B
Form3.CurrentY=580
直线截距(A)="
A
Form3.CurrentY=810
直线方程为:
;
Spc(3);
Y="
B&
X+"
在坐标图上打印出点来
Form3.PSet(360+37*X(n),5400-37*Y(n)),RGB(0,0,0)
W=5400-3700*B-37*A
R=360+(3700-37*A)/B
T=360-37*A/B
将超出坐标轴的线去掉
IfA>
=0Then
Form3.Line(360,5400-37*A)-(4060,W)
IfW<
1700ThenForm3.Line(R,1700)-(4060,W),&
IfW>
5400AndB<
0ThenForm3.Line(T,5400)-(40