交通运输工程学上机实验指导书vb.docx
《交通运输工程学上机实验指导书vb.docx》由会员分享,可在线阅读,更多相关《交通运输工程学上机实验指导书vb.docx(18页珍藏版)》请在冰点文库上搜索。
交通运输工程学上机实验指导书vb
交通与汽车工程学院
《交通运输工程学》
实验指导书
适用专业:
交通运输
课程代码:
106011009
学时:
4学分:
编写单位:
汽车与交通学院
编写人:
童岱
审核人:
曾传华
审批人:
孙仁云
目录
实验一运输量预测………………………………………………………………………2
实验二货运车辆的优化利用……………………………………………………………5
实验一运输量预测
一、实验目的和任务
本实验是为了配合课堂教学“交通运输调查与预测”的内容而设立,通过学生编程并上机实验,使学生加深对运输量预测知识的理解,熟练掌握指数平滑法、回归分析法等常用预测方法,增加对运输量的感性认识。
二、实验仪器、设备及材料
计算机及其程序设计软件。
三、实验原理及步骤
1、运输量预测系统框图
2、实验内容及步骤
(1)制作运输量预测系统主控界面
(2)制作预测方法选择界面
(3)分别制作各种预测方法的主控界面
(4)分别对该界面的各控件确定属性,并对数据输入、预测和退出等命令按纽编写程序。
3、主要过程程序举例
(1)VFP语言:
二次曲线模型的预测click事件程序
privateb,c,l,s1,s2,s3,d,z
use原始观察值
l=thisform.text1.value
deleteallfor观测值=0
pack
n=reccount()
b=观测值
c=b
d=b
select2
use指数平滑值表
deleteall
pack
appendblank
replacen_ypzwithb,n_epzwithb,n_spzwithb
select1
fori=1ton
s1=a*观测值+(1-a)*b
b=s1
s2=a*s1+(1-a)*c
c=s2
s3=a*s2+(1-a)*d
d=s3
select2
appendblank
replacen_yszwitha.观测值,n_ypzwiths1,n_epzwiths2,n_spzwiths3
select1
skip
endfor
select2
browse
gobottom
x=3*n_ypz-3*n_epz+n_spz
y=a*((6-5*a)*n_ypz-2*(5-4*a)*n_epz+(4-3*a)*n_spz)/(2*(1-a)*(1-a))
z=a*(n_ypz-2*n_epz+n_spz)/(2*(1-a)*(1-a))
p=x+y*l+z*l*l
c_show="预测的运输量为:
"+str(p,6,2)
thisform.label2.caption=c_show
thisform.refresh
(2)实例二VB语言:
PrivateTypematerial
xmAsString*5
ymAsString*5
EndType
PrivateSubCommand1_Click()
Dimsj(1To19)AsSingle
DimkAsInteger,iAsInteger
DimlxAsString
OpenApp.Path+"\原始数据.txt"ForRandomAs#1Len=Len(sj(i))
lx=Val(InputBox("请输入要该数据类型(X或Y):
"))
i=InputBox("请输入数据位置(如第四个X的数据请输入“4”):
")
Iflx="X"Thenk=2*i-1Elsek=2*i
sj(i)=InputBox("请输入修改后的数据:
")
Put#1,k,sj(i)
Close#1
EndSub
PrivateSubCommand2_Click()
DimaAsSingle,bAsSingle
DimxxAsSingle,yyAsSingle
DimxAsSingle,yAsSingle
DimcAsSingle,dAsSingle,eAsSingle,fAsSingle
Dimsj1(1To19)Asmaterial
DimnAsInteger
OpenApp.Path+"\原始数据.txt"ForRandomAs#1Len=Len(sj1(i))
c=0:
d=0:
e=0:
f=0
Fori=1To19
Get#1,2*i-1,sj1(i).xm
Get#1,2*i,sj1(i).ym
xx=Val(sj1(i).xm)
yy=Val(sj1(i).ym)
c=c+xx*yy
d=d+xx:
e=e+yy
f=f+xx^2
Nexti
Close#1
b=(19*c-d*e)/(19*f-d^2)
a=e/19-b*d/19
x=Val(Text1)
y=a+b*x
Label2.Caption="预测的运输量为:
"&y
EndSub
PrivateSubCommand3_Click()
End
EndSub
4、实验数据
数据1
工业产值(亿元)
运输量(万吨公里)
1
6.54
7.2
2
4.76
9.3
3
5.93
9.9
4
6.8
10.96
5
6.7
11.12
6
7.3
10.57
7
8.52
12.34
8
8.43
11.23
9
10.43
14.65
10
11.97
16.9
11
13.84
20.15
12
16.79
17.81
13
20.57
31.3
14
24.55
26.84
15
30.52
42.02
16
36.92
43.31
17
43.49
49.52
18
51.36
61.06
19
57.99
69.6
数据2
1995-2004年不同运输方式的货物周转量
单位:
亿吨公里
年份GDP(亿元)
总计
铁路
公路
水运
民用航空
管道输油(气)量
199558478.1
35908.9
13049.5
4694.9
17552.2
22.3
590
199667884.6
36589.8
13106.2
5011.2
17862.5
24.9
585
199774462.6
38384.7
13269.9
5271.5
19235
29.1
579
199878345.2
38088.7
12560.1
5483.4
19405.8
33.5
606
199982067.5
40567.8
12910.3
5724.3
21263
42.3
630
200089468.1
44320.5
13770.5
6129.4
23734.2
50.3
636
200197314.8
47709.9
14694.1
6330.4
25988.9
43.7
653
2002104790.6
50685.9
15658.4
6782.5
27510.6
51.6
683
2003
53859.2
17246.7
7099.5
28715.8
57.9
739
2004
66377.8
18273.4
7621.3
40411.8
71.8
四、实验注意事项
实验前需编写好相关程序,上机调试程序,最后实验数据检验程序的正确性。
实验二货运车辆的优化利用
一、实验目的和任务
本实验是为了配合课堂教学“货运车辆优化利用”等内容而设立,通过学生编程并上机实验,使学生加深对货运车辆优化利用知识的理解,熟练掌握环行线路的优化选择、分送线路的运输组织,增加对车辆调度的感性认识。
二、实验仪器、设备及材料
计算机及其程序设计软件。
三、实验原理及步骤
1、车辆类型的选择
(1)建立一车辆信息、货物信息查询表及控制界面。
主控界面:
货物信息界面:
保存货物信息的主程序:
PrivateSubCommand1_Click()
Dimsj1Asshuju
sj1.bh=Text1:
sj1.mdd=Text2
sj1.hwxz=Text3:
sj1.hwzl=Val(Text4)
sj1.bzxs=Text5
sj1.wxcc=Text6
OpenApp.Path+"\hwxxsj.txt"ForAppendAs#1
Write#1,sj1.bh;sj1.mdd;sj1.hwxz;sj1.hwzl;sj1.bzxs;sj1.wxcc
Close#1
Text1="":
Text2="":
Text3="":
Text4="":
Text5="":
Text6=""
t=MsgBox("您还要录入数据吗?
",4+32)
Ift=6Then
Text1.SetFocus
Else
Text1.Enabled=False:
Text2.Enabled=False:
Text3.Enabled=False:
Text4.Enabled=False:
Text5.Enabled=False
EndIf
EndSub
输出货物信息的界面:
主程序为:
PrivateSubCommand2_Click()
LoadForm2
OpenApp.Path+"\hwxxsj.txt"ForInputAs#2
DoWhileNotEOF
(2)
no=no+1
ReDimPreservesj1(no)
Input#2,sj1(no).bh,sj1(no).mdd,sj1(no).hwxz,sj1(no).hwzl,sj1(no).bzxs,sj1(no).wxcc
Form2.Text1.Text=Form2.Text1.Text&sj1(no).bh&","&sj1(no).mdd&","&sj1(no).hwxz&","&sj1(no).hwzl&","&sj1(no).bzxs&","&sj1(no).wxcc
Form2.Text1.Text=Form2.Text1.Text&vbCrLf
Loop
Close#2
Form2.Show
EndSub
(2)利用等值运距来选择采用通用车辆或专用车辆。
主界面:
运行结果:
主要模块程序:
PrivateSubCommand1_Click()
Label12.Enabled=False
Dimq0AsSingle,q1AsSingle
DimvAsSingle,lAsSingle
DimbAsSingle,t1AsSingle
Dimt0AsSingle,lwAsSingle
q0=Val(Text1)
q1=Val(Text2)
v=Val(Text3)
l=Val(Text5)
b=Val(Text6)
t1=Val(Text4)
t0=Val(Text7)
lw=(q0*t1/q1-t0)*b*v
Label11.Caption=Str(lw)
Iflw>=1Then
Label12.Caption="建议选择专用车辆!
"
Else
Label12.Caption="建议选择通用车辆!
"
EndIf
Label12.Enabled=True
EndSub
2、分送式线路的运输组织算法框图:
(选作)
图2-1分送式线路的运输组织算法框图
3、界面举例
图2-2系统主界面
图2-3分送线路控制界面
4、主要程序举例
(1)里程信息输入及储存处理程序:
PublicSubCommand1_Click()
q0=Val(Text1.Text)
n=Val(Text2.Text)
ReDiml(n,n)
Fori=0Ton
Forj=0Ton
l(i,j)=Val(InputBox("里程","里程表"))
Nextj
Nexti
EndSub
(2)各收货点信息输入与储存:
PrivateSubText2_Change()
n=Val(Text2.Text)
ReDimw(n)AsSingle
Fori=1Ton
w(i)=Val(InputBox("该收获点的收货量","各点的收货量输入"))
Nexti
EndSub
(3)确定分组:
PrivateSubCommand2_Click()
DimmAsSingle
Fori=1Ton
m=m+w(i)
Nexti
m=m/q0
Ifm>1Then
m=Int(m+0.89)
Else
m=1
EndIf
Printm
EndSub
四、实验注意事项
实验前需编写好相关程序,上机调试程序,最后用事例检验程序的正确性。