当前位置:首页 > vb课程设计指导书
4. 本题目提供了两个数据文件:Province.txt和postalcode.txt(详见本节“难点与提示”部分),程序使用到的全国各地的信息均来自于这两个文件。如果本程序启动时在可执行文件所在的同一文件夹下未找到其中任何一个文件,则显示如图8.4所示的出错信息并自动关闭程序。编程时不能改变这两个文件的存储格式。
图8.4 启动时未找到数据文件时的提示信息
【难点与提示】
1.本题目提供了两个数据:Province.txt和postalcode.txt 均为文本文件。程序显示的信息都是从这两个文件中读取的。因为信息是由可执行文件以外的文本文件提供的,所以如果发生了地名、区号和邮编的变化(如增加了省或直辖市,某个地方区号改变等),只需编辑相应的文本文件即可,而不必修改程序。因此“省份”列表框中的内容不应在设计时输入。
2.province.txt文件中保存了31个省、市、目治区的编号和名称,如图8.5所示。每个省、市、自治区占用一行,编号与名称用逗号隔开。
3. postalcode.txt文件中保存了各省、市、自治区所辖各县级行政区的邮编和区号信息。如图8.6所示,此文件的存储格式为:
省、市、自治区编号1 地名1,区号1,邮编1 地名2,区号2,邮编2 ??
地名n,区号n,邮编n ??
省、市、自治区编号m 地名ml,区号ml,邮编m1 地名m2,区号m2,邮编m2 ??
地名mn,区号mn,邮编mn ??
首先是第一个省、市、自治区的编号(1~31),然后是该省所辖每个县的地名、区号和邮编(每个地名占一行);接着是第二个省、市、自治区的编号和该省所辖每个县的地名、区号和邮编??因为每个省、市、自治区所辖地名个数不等,在读取postalcode.txt文件时应判断省、市、自治区编号出现的位置。
读Postalcode.txt文件较好的方法是,使用LineInput#语句每次读入一行,如果读入的字符串可以转换为数值(使用Val函数),则表示一个省份的编号,否则是一个地名。通过字符串处理函数,可以使用逗号为分隔符将其分为地名、区号和邮编便于单独显示。
24
图8.5 province.txt文件的内容与格式图8.6 postalcode.txt文件的内容与格式
4. 因为查询时要同时用到全国各省、市、自治区的信息,应在程序启动时将所有信息读入内存中供查询使用。而不应该查询到哪个省、市、自治区时,再到文件中去读,这样会严重影响查询速度。
可以使用动态数组保存地名、邮编、区号的详细信息,每个元素代表一个地方;再将列表框中的每一条目与该数组中的元素建立联系。可以使用列表框的ItemData属性保存每个省份第一个地名的数组下标。调试程序时应特别注意第一和最后一个省份是否能正确处理.
【更上一层楼】
本程序目前只能够查询信息,试着扩充程序使之可以修改已有的地名、编号和区号,能够增加新的地名、邮编和区号。
第9题 列车时刻查询
【涉及知识点】
1.读文本文件;2.动态数组;3.字符串处理;4.列表框控件的使用;5.多行文本框控件的使用。
25
【题目介绍】
坐火车是人们出行的重要交通方式,列车的起点站、终点站和发车时间、到达时间以及沿途经停各站的站名、停车发车时刻是人们非常关心的内容。本题目要求编制一个能够方便地查询上述信息的实用程序。
【功能要求】
1.设计类似于图9.1所示的程序界面。程序启动后,左边的列表框中显示所有车次。单击其中一项,在窗口右上方的4个文本框中显示此车次的起点站、终点站和发车、到达时刻;在右下方的文本框(不能使用列表框)中显示此次车沿途停靠的所有车站及相应的到站和发车时刻。
2.在“经停车站”组合框中选择或输入一个站名然后回车,列表框中只列出经过该车站的车次(如图9.2中只列出了经过北京的列车);单击列表框下方的“显示全部车次”按钮,列表框中重新列出所有车次。 3.“经停站及时刻”文本框中各车站所对应的站名、到站时刻、发车时刻应纵向对齐,特别是时间,必须通过冒号对齐,如图9.1和图9.2所示。
4.本题目提供了两个数据文件:content.txt和detail.txt(详见本节“难点与提示”),程序用到的车次信息均来自于这两个文件。如果本程序启动时在可执行文件所在的文件夹下未找到其中任何一个文件,则显示出错信息并自动关闭程序。要求编程时不能改变这两个文件的存储格式。
图9.1 显示全部车次
26
图9.2 只显示经过“北京\站的车次
【难点与提示】
1.本题目提供了2003年春季列车时刻表中所有经过南京站的车次信息,数据保存在名为content.txt和detail.txt两个文本文件中。程序显示的信息都是从这两个文件中读取的。如果列车时刻有所变化,只需修改这两个文件的内容即可,不必改动程序。
2.content.txt文件中保存了各车次的概要信息,包括车次名、起点站、终点站、发车时刻和到达时刻,一个车次占一行。图9.3是使用“记事本\打开此文件时的显示内容。 3.detail.txt文件中保存了所有车次停靠站的详细信息。存储格式为: *
车次1
起点站名,——,发车时刻
经停站1,到达时刻1,发车时刻1 经停站2,到达时刻2,发车时刻2 ??
经停站nl,到达时刻nl,发车时刻nl *
车次2
起点站名,——,发车时刻
经停站1,到达时刻1,发车时刻1 经停站2,到达时刻2,发车时刻2 经停站n2,到达时刻n2,发车时刻n2 * ?? *
车次m
起点站名,——,发车时刻
经停站1,到达时刻1,发车时刻1 经停站2,到达时刻2,发车时刻2
27
共分享92篇相关文档