课程方案报告苏松山邮编区号查询系统文档格式.docx
- 文档编号:21369776
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:15
- 大小:882.34KB
课程方案报告苏松山邮编区号查询系统文档格式.docx
《课程方案报告苏松山邮编区号查询系统文档格式.docx》由会员分享,可在线阅读,更多相关《课程方案报告苏松山邮编区号查询系统文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
1.设计要求
由于本课题要求编写一个能快捷方便查询中国各个省市邮编区号的程序,但是由于篇幅限制,本程序无法做到实现中国任何一个地域的邮编区号的查询,只能做到县级城市及以上的查询。
所以我建立了两个TXT文本文档,其一“province.txt”用来存储需要查询的省市名称,其二“postalcode.txt”用来存储中国部分省市的邮编区号信息及县市名。
输入地名,然后单击“查询”按钮,程序自动查找该地名所属省份和区号、邮编并显示在相应的文本框中。
程序启动后,“省份”列表框中显示各省、市、自治区名称。
单击其中一项、在右边“邮编与区号”列表框中列出该省、市、自治区所辖所有地名及其区号和邮编,可以用浏览的方式查找所需地名的信息。
由于地名、长途区号的字符数各不相同,为了美观,要求“邮编和区号”列表框中显示的地名、区号和邮编必须同一列以首字符纵向对齐。
2.设计流程
本程序中我一共设置了四个窗体,一个主窗体和三个副窗体。
在主窗体上,主要包括菜单栏、工具栏、查询模块一、查询模块二以及状态栏。
副窗体其一用来显示关于作者<
也就是我)的相关信息,通过主窗体菜单栏“关于”—“关于作者”或者工具栏“关于作者”按钮来和主窗体实现连接。
副窗体其二用来显示关于程序的相关信息,通过主窗体菜单栏“关于”—“关于程序”或者工具栏“关于程序”按钮来和主窗体实现连接。
最后一个副窗体用来实现退出,当按下主窗体菜单栏“退出”或者工具栏“退出”按钮时弹出,延时五秒后自动关闭。
3.功能模块的规划
在主窗体上,主要实现邮编区号的查询以及和其他窗体的连接功能,副窗体一主要实现关于作者信息的显示,副窗体二主要实现关于程序使用的介绍,副窗体三主要实现退出时相关信息的显示。
详细介绍见四.系统各功能模块的设计)
4.预计软件实现效果
预计实现当打开主窗体时显示相关菜单栏、工具栏、状态栏、查询模块一、二以及状态栏,而且通过主窗体上的相关按钮可以实现副窗体一、副窗体二、副窗体三的打开以及返回。
四、系统各功能模块设计
1.主窗体
原理
用读文件的方法将province.txt和postalcode.txt中的文件保存在数组中,其中postalcode.txt中的文件用三个数组分别把地名,长途区号,邮政编码分别保存,然后将保存province.txt的数组用list1显示出来,根据list1的选中情况用list2来显示其对应的地名,长途区号,邮政编码,当输入地名要查询时,先将输入的地名与保存地名的数组逐个比较,当相同时在其他三个文本框中显示对应的省份,长途区号,邮政编码。
方案
窗体加载时将province.txt中的内容用input语句从文件读出并保存在数组province(>
和Id(>
中,用for循环语句控制循环变量I,用List1.AddItemprovince(i>
语句将province(>
中的内容显示在list1中,将postalcode.txt中的内容用lineinput语句从文件读出并保存在数组postalcode(>
中,用for语句在控制数组postalcode(>
的循环,再用for语句来判断“,”的存在,在出现第一个逗号时从下一个字符开始先将字符保存在一个字符串变量中,在出现下一个“,”时跳出循环,然后在List1_Click(>
过程中用List1.ListIndex判断第一个list的选中情况,List2.AddItem根据数组里的存放情况将选中省份的地名,长途区号,邮政编码显示出来。
当输入地名要查询时,在Command1_Click(>
过程中用一个字符串变量保存输入的地名,再将输入的地名与保存地名的数组逐个比较,当相同时在其他三个文本框中显示对应的省份,长途区号,邮政编码。
如果没有相应的地名用MsgBox来提示。
本窗体主要运用了Imagelist控件来实现工具栏图标的显示,CommomDialog控件来实现帮助文件的打开以及显示,Toolbar控件来实现工具栏的显示,StatusBar控件来实现状态栏的显示。
本窗体还使用了3个Frame窗口来实现查询模块一、省市名称和相关信息<
邮编区号)的显示。
当程序启动后,在查询模块一直接输入地名然后单击“查询”按钮,程序自动查找该地名所属省份和区号、邮编并显示在下面相应的文本框中。
如输入库尔勒,单击查询,则显示所属省份为新疆,邮编为841000,区号为0996。
如图
如果未输入地名点击查询则显示如下,
如果未找到指定地名则显示,
在窗体下方“省份”列表框中显示各省、市、自治区名称。
同样,单击菜单栏查找下的查找按钮也可以进行查找,工具栏查找按钮也有同样的功能。
若需要查询第二个地名,则单击工具栏“清除”按钮即可把上一个查找的城市信息清除,从而实现了反复使用的功能。
2.副窗体一<
关于作者)
单击主窗体菜单栏“关于”下的“关于作者”或者单击工具栏“关于作者”按钮即可以打开关于作者窗体,显示制作者的相关信息,同时,主窗体消失,只显示副窗体一,副窗体一包含八个label框和一个返回按钮。
如右图
3.副窗体二<
关于程序)
单击主窗体菜单栏“关于”下的“关于程序”或者单击工具栏“关于程序”按钮即可以打开关于程序窗体,显示程序使用的相关信息,同时,主窗体消失,只显示副窗体二,副窗体二包含九个label框和一个返回按钮。
如下图
4.副窗体三<
退出界面)
单击主窗体菜单栏“退出”或者单击工具栏“退出”按钮即可以打开退出窗体,显示制退出时的相关信息,同时,主窗体消失,只显示副窗体三,副窗体三包含三个label框和一个Timer控件,同时其中一个label框显示倒计时五秒信息,五秒后该窗口关闭,程序退出。
5.其他方式查询
单击主窗体菜单栏“帮助”下的“打开浏览器搜索”即可以打开浏览器,显示,可以在XX中查询本程序所不包含的城市。
6.帮助
单击主窗体菜单栏“帮助”下的“打开帮助即可以打开帮助文件,显示如何使用本程序,在帮助文件中包含了如下信息,在不同目录下可打开不同的介绍说明。
五、软件运行结果
经测试,该程序完美运行无任何bug,具体结果如下。
打开程序后如下,副窗体如右图
六、设计总结
由于时间仓促,软件很多地方还很不完善,还存在很多BUG,由于数据可比较小,所以只存储了县市以上的城市,对于搜索不到得城市需依靠转到浏览器打开完成。
有些省市有些县市无法顾及,还请见谅。
谢谢!
本次课程设计设计的是邮编区号查询系统,用到的VB知识主要是文件的读取和数组、字符串处理方法的运用。
通过阅读书本,可以完成大部分的设计,但有的只能在编程过程中通过不断的调试才能解决,比如列对齐问题。
这次设计培养了我们通过实践解决理论问题的能力,巩固了所学的知识,加深了对VB语言的理解。
这是有好处的。
七、参考文献
[1]罗朝盛,VisualBasic6.0程序设计教程<
第二版),人民邮电出版社,2005.7
[2]沈建蓉、单贵,大学VB程序设计实践教程,复旦大学出版社,2006.1
[3]URL:
[4]URL:
附录:
源程序
OptionExplicit
OptionBase1
Dimprovince(>
AsString,Id(>
AsInteger,Lin(>
AsString,B(>
AsInteger
PrivateDeclareFunctionShellExecuteLib"
shell32.dll"
Alias"
ShellExecuteA"
(ByValhWndAsLong,ByVallpOperationAsString,ByVallpFileAsString,ByVallpParametersAsString,ByVallpDirectoryAsString,ByValnShowCmdAsLong>
AsLong
PrivateSubCommand1_Click(>
DimaAsInteger,str1AsString,str2AsString,mAsInteger,kAsInteger
DimiAsInteger,jAsInteger,strAsString
IfText1="
"
Then
MsgBox"
请输入地名"
16,"
错误"
Text1.Text="
Text2.Text="
Text3.Text="
Text4.Text="
Text1.SetFocus
Else
Fori=1ToUBound(Lin>
str="
a=1
DoWhile(Mid(Lin(i>
a,1>
<
>
"
"
AndVal(Lin(i>
=0>
'
取地名
str=str+Mid(Lin(i>
a=a+1
Loop
Ifstr=Text1.TextThen'
和输入的地名比较并做出处理
k=Len(Lin(i>
Form=1Tok
IfMid(Lin(i>
m,1>
="
ThenExitFor
Nextm
m=m+1
str1=str1+Mid(Lin(i>
Text4.Text=str1
str2=Mid(Lin(i>
m,k-m+1>
Text3.Text=str2
Forj=1ToUBound(B>
-1
Ifi<
B(j+1>
Nextj
Ifi>
B(j>
Text2.Text=province(j>
Else:
EndIf
ExitFor
Nexti
Ifi>
UBound(Lin>
对不起,没有此地名!
48,"
PostCode"
EndIf
EndSub
PrivateSubdkbz_Click(>
CommonDialog1.HelpFile=App.Path&
/帮助.HLP"
CommonDialog1.HelpCommand=cdlHelpContents
CommonDialog1.ShowHelp
PrivateSubdkllq_Click(>
ShellExecutehWnd,"
open"
"
vbNullString,vbNullString,vbMaximizedFocus
PrivateSubfindname_Click(>
MsgBox"
64,"
查找通知"
Text1.SetFocus
PrivateSubForm_Load(>
DimkAsInteger,iAsInteger,filenumberAsInteger,aAsInteger,jAsInteger
DimsAsString,tAsString
s=App.Path&
\"
&
province.txt"
指定文件路径
t=App.Path&
postalcode.txt"
OnErrorGoTohand
filenumber=FreeFile
OpensForInputAs#filenumber'
将文件内容赋给动态数组
k=1
DoWhileNotEOF(filenumber>
ReDimPreserveId(k>
province(k>
Input#filenumber,Id(k>
k=k+1
Close(filenumber>
OpentForInputAs#filenumber
ReDimPreserveLin(k>
LineInput#filenumber,Lin(k>
Fori=1ToUBound(province>
List1显示所有省名
List1.AddItemprovince(i>
a=1
将province.txt的省名和postalcode.txt的省名序号建立联系
Forj=1ToUBound(Id>
IfVal(Lin(i>
=Id(j>
ReDimPreserveB(a>
B(a>
=i
ExitSub
hand:
出错,文件不在当前目录下!
postcode"
End
PrivateSubgyc_Click(>
Form1.Visible=False
Form3.Visible=True
PrivateSubgyz_Click(>
Form2.Visible=True
PrivateSubList1_Click(>
DimiAsInteger,jAsInteger,kAsInteger,mAsInteger,str1AsString
Dimstr2AsString,str3AsString,st1AsString*8,st2AsString*10
DimaAsInteger,hAsInteger
List2.Clear
j=List1.ListIndex+1
Fori=1ToUBound(Lin>
=jThenExitFor'
找到序号所对应的省名
Nexti
i=i+1
DoWhile(Val(Lin(i>
循环,在List2中输出这个省的所有地名
m=1
str1="
str2="
str3="
str3=str3+Mid(Lin(i>
st1=str3
a=Len(str3>
st2=str1
h=Len(str1>
List2.AddItemst1&
Space(10-a>
st2&
Space(20-h*2>
str2
ExitDo
PrivateSubqc_Click(>
Text1.Text="
Text2.Text="
Text3.Text="
Text4.Text="
PrivateSubtc_Click(>
Form4.Visible=True
PrivateSubText1_GotFocus(>
StatusBar1.Panels(1>
.Text="
PrivateSubText2_GotFocus(>
PrivateSubText3_GotFocus(>
PrivateSubText4_GotFocus(>
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button>
SelectCaseButton.Key
Case"
cz"
请输入地名(简体中文>
qc"
gyzz"
gycx"
tc"
EndSelect
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程 方案 报告 松山 邮编 区号 查询 系统