列车时刻表查询vb代码及课程设计报告.docx

上传人:b****8 文档编号:28342890 上传时间:2023-07-10 格式:DOCX 页数:9 大小:51.92KB
下载 相关 举报
列车时刻表查询vb代码及课程设计报告.docx_第1页
第1页 / 共9页
列车时刻表查询vb代码及课程设计报告.docx_第2页
第2页 / 共9页
列车时刻表查询vb代码及课程设计报告.docx_第3页
第3页 / 共9页
列车时刻表查询vb代码及课程设计报告.docx_第4页
第4页 / 共9页
列车时刻表查询vb代码及课程设计报告.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

列车时刻表查询vb代码及课程设计报告.docx

《列车时刻表查询vb代码及课程设计报告.docx》由会员分享,可在线阅读,更多相关《列车时刻表查询vb代码及课程设计报告.docx(9页珍藏版)》请在冰豆网上搜索。

列车时刻表查询vb代码及课程设计报告.docx

列车时刻表查询vb代码及课程设计报告

 

VisualBasic

课程设计报告

所属课程名称:

VisualBasic程序设计

课程设计题号:

题目9

课程设计题目:

列车时刻查询

课程设计难度:

★★

课程设计时间:

2014.2.23~4.9

学号:

1

*****

自评成绩:

90分

0

 

南京理工大学机械工程学院

二〇一四年三月

一、程序功能

涉及知识点:

(1)读文本文件;

(2)动态数组(3)字符串处理(4)列表框控件的使用(4)多行文本框控件的使用

功能要求:

(1)程序启动后,左边的列表框显示所有的车次,点击其中一项,显示相应的详细信息。

(2)在“经停车站”组合框中选择或输入一个站名然后回车,列表框中只列出经过该车站的车次。

单击列表框下方的“显示全部车次”按钮,列表框中重新列出所有车次。

(3)文本框(或右边的列表框)中详细信息整齐排列。

二、课程设计的详细设计

1、总体设计思路

先将信息读入到两个动态数组中,再根据相关的事件调用数组。

2、界面设计

界面有frame,list,combol,text,command,label.

3、功能模块设计

三、设计中遇到的问题与解决办法

【问题1】:

在读取文件的过程中,我选择的是正行的读取,如何将正行读取的内容分开,并且显示一部分的内容,程序中很多地方都需要用到靠特定的分隔符,把字符串拆开。

【解决办法】:

在课本上提供了可以分解字符串的通用过程,我将它运用到自己的程序中。

【问题2】:

显示车次详细信息的时候,如何让时间,站点都需要对齐。

【解决办法】:

依靠len()函数及space()函数,对中间的空格进行确定,其中的中文字符相当于两个空格字符。

【问题3】:

在程序中要多次调用文本文件中的内容,如何不需要多次读写文件。

【解决办法】:

依靠动态数组在窗体第一次加载的时候就把相关的信息度入动态数组中。

其中要多次redim数组,而且需要preserve。

四、更上一层楼

在改进版中点击右边列表框中的站点在左侧的列表框即可显示经过该站点的车次。

五、课程设计总结

(1)整体的功能还是实现了,运行应该是没有问题的。

(2)在做这次课程设计的过程中,我深刻领悟到实践的重要性,看似困难的课程设计,一下一下来,问题一个一个解决,最后回首会觉得自己懂得了好多好多。

(3)我也知道了,不能光靠自己的课本,要借助网络快速的查找自己所需要的知识点。

六、源程序代码

Optionexplicit

PublicnAsInteger,ashuAsInteger,cshuAsInteger

Privatea()AsString,c()AsString

PublicFunctiondividestring(sAsString,dAsString,a()AsString)AsInteger

DimiAsInteger,jAsInteger,numAsInteger

'分解字符串的函数过程

i=InStr(s,d)

j=1

DoWhilei>1

num=num+1

ReDimPreservea(num)

a(num)=Mid(s,j,i-j)

j=i+1

i=InStr(j,s,d)

Loop

num=num+1

ReDimPreservea(num)

a(num)=Mid(s,j,Len(s)-j+1)

dividestring=num

EndFunction

'单击复选框,左下方出现相应车次

PrivateSubCombo1_click()

DimiAsInteger,jAsInteger,eAsInteger,zf()AsString

Textout.Text=""

List1.Clear

Forj=1Tocshu

i=dividestring(c(j),",",zf())

Ifzf

(1)=Combo1.TextThen

e=j

DoWhilec(e)<>"*"

e=e-1

Loop

List1.AddItemc(e+1)&"次"

Erasezf()

EndIf

Nextj

EndSub

'单击按钮,显示全部车次

PrivateSubCommand1_Click()

DimiAsInteger,zf()AsString,lAsInteger

List1.Clear

Fori=1Toashu

l=dividestring(a(i),",",zf())

List1.AddItemzf

(1)&"次"

Nexti

EndSub

'可以搜索所有的途径车站

PrivateSubCommand2_Click()

DimaAsString

Textstart.Text=""

Textget.Text=""

Texttime.Text=""

Textgettime.Text=""

a=InputBox("请输入要搜索的城市","搜索","温州")

Ifa=""ThenExitSub

DimiAsInteger,jAsInteger,eAsInteger,zf()AsString

Textout.Text=""

List1.Clear

Forj=1Tocshu

i=dividestring(c(j),",",zf())

Ifzf

(1)=aThen

e=j

DoWhilec(e)<>"*"

e=e-1

Loop

List1.AddItemc(e+1)&"次"

Erasezf()

EndIf

Nextj

Ife=0Then

CallMsgBox("没有相关城市内容",16,"提示")

EndIf

EndSub

PrivateSubForm_Load()

'将两个文件内容都储存在a(),c()两数组中

DimiAsInteger,b()AsString,lAsInteger,jAsInteger

OpenApp.Path&"\content.txt"ForInputAs#1

OpenApp.Path&"\detail.txt"ForInputAs#2

Do

j=j+1

ReDimPreservec(j)

LineInput#2,c(j)

IfEOF

(2)=TrueThen

cshu=j

ExitDo

EndIf

Loop

Do

i=i+1

ReDimPreservea(i)

LineInput#1,a(i)

IfEOF

(1)=TrueThen

ashu=i

ExitDo

EndIf

Loop

ReDimPreservea(i+1)

a(i+1)=""

Fori=1Toashu

l=dividestring(a(i),",",b())

List1.AddItemb

(1)&"次"

Nexti

Close

EndSub

PrivateSubList1_Click()

DimiAsInteger,q()AsString,lAsInteger,jAsInteger

DimeAsInteger,wAsInteger

DimrAsInteger,tAsString,d()AsString,YAsString,uAsString

Eraseq()

'显示起始站终点站以及时刻

Fori=1Toashu

l=dividestring(a(i),",",q())

Ifq

(1)&"次"=List1.TextThen

Textstart.Text=q

(2)

Textget.Text=q(3)

Texttime.Text=q(4)

Textgettime.Text=q(5)

EndIf

Next

'在右下方显示详细信息

Forj=1Tocshu

Ifc(j)&"次"=List1.List(List1.ListIndex)Then

e=j

w=j

DoWhilec(e)<>"*"

e=e-1

Loop

DoWhilec(w)<>"*"

w=w+1

Ifc(w)=""ThenExitDo

Loop

Textout.Text=""

Forr=e+2Tow-1

l=dividestring(c(r),",",d())

Y=d

(1)&Space((8-Len(d

(1)))*2)

u=Space((9-Len(d

(2))))&d

(2)

t=Space((19-Len(d(3))))&d(3)

IfTextout.Text=""Then

Textout.Text=Textout.Text&Y&u&t

Else

Textout.Text=Textout.Text&Chr(13)&Chr(10)&Y&u&t

EndIf

Next

EndIf

Next

EndSub

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1