vb程序编程.pptx
《vb程序编程.pptx》由会员分享,可在线阅读,更多相关《vb程序编程.pptx(71页珍藏版)》请在冰点文库上搜索。
2014年3月等级考试辅导,二级VisualBasic,真题练习,过程选择题:
11、14-33字符串专题:
附录1上机练习题:
上机练习软件1-10套、73-77套第二周周六上午8:
30在明理楼B412第二周周六下午2:
30在思学楼C304,带公共基础书第二周周日上午8:
30在明理楼B412第二周周日下午2:
30在思学楼C304,带公共基础书,上课通知,第三周周六上午8:
30在明理楼B412第三周周六下午2:
30在思学楼C304,带公共基础书第四周周六上午8:
30在明理楼B412第四周周六下午2:
30在思学楼C304第四周周日上午8:
30在思学楼C304,考点9滚动条,一、滚动条属性
(1)Min、Max:
最小、最大值
(2)Value:
滚动条当前位置值(3)SmallChange:
用于设置单击滚动条两端箭头时Value值的改变。
(4)LargeChange:
用于设置单击滚动条中滚动框前(后)部位时Value值的改变。
二、滚动条事件与滚动条有关的事件主要是Scroll和Change。
考点4直线和形状,属性X1,Y1和X2,Y2分别表示直线两个端点的坐标。
BorderColor,BorderStyle,BorderWidthBackStyle,FillColor,FillStyleShape:
设置控件的外观形状,题型一:
大小写转换题型二:
单词的操作题型三:
统计某些字母的个数题型四:
替换题型五:
加密解密题型六:
反向显示题型七:
字符删除,专题字符串,字符串操作函数LCase、UCaseMid(s$,p,n)LenAsc、Chr,题型一:
大小写转换,上机教程P175-真题13.1,运行时,在Text1中输入若干个大写和小写字母,并选中一个单选按钮,再单击“转换”按钮,则按选中的单选按钮的标题进行转换,结果放入Text2(如图所示)。
题型二:
单词的操作,判断单词的关键在于判断空格,因为单词与单词之间用空格隔开。
题型二:
单词的操作,上机教程P178-真题13.3,程序运行后,在文本框中输入一个英文句子(由多个单词组成,各单词之间仅用一个空格分开),然后单击命令按钮,程序将把该英文句子分解为单词,并把每个单词作为一个项目添加到列表框中,如图所示。
题型二:
单词的操作,上机教程P180-真题13.4,提醒:
需注意最后一个单词的处理,将读入的数据进行统计,求每个单词的长度,并将所有单词的平均长度(四舍五入取整)显示在Text1文本框内,将最长单词的长度显示在Text2文本框内,题型三统计字母的个数,上机教程P181-真题13.5,统计in5.dat文件中所含各字母(不区分大小写)的出现的次数,并将出现次数最多的字母显示在Text1文本框内,它所出现的次数显示在Text2文本框内。
题型三统计字母的个数,捷成51-5,在Text1文本框中选中内容后,单击“统计”按钮,则统计选中文本中出现次数最多的字母(不区分大小写),以大写形式在Text2文本框内显示这些出现次数最多的字母。
题型四:
加密解密,加密操作主要是将有意义的字句根据某种规则(一般是用其他字母代替)变成无意义的字句,所以一般的操作是取出每个字符按规则进行转换,再把转换后的连接起来作为加密后的字符串。
而解密是加密操作的逆运算。
加密规则:
对于第奇数个字符,若是字母,则把它变为它后面的字符(若为Z则变为A),不是字母则不变;对于第偶数个字符,若是字母,则把它变为它前面的字符(若为A则变为Z),不是字母则不变。
大小写字母都遵循此规则。
题型五:
反向显示,将字符串倒序连接,方法类似于判定回文。
20套-5:
判断回文,写函数,提示:
删除字符其实就是字符的查找,也需要一个字符一个字符的取出来进行判断,如果是需要删除的字符,就不进行连接,否则就连接到字符串变量中,题型六:
删除字符,题型七替换,首先是找到要被替换的字母,在该条件下进行替换,由于是替换,所以一般需要用一个变量做连接,如不是被替换的字符,就直接连接,如果是替换的字符就连接替换字符,最后把该变量的值赋值给文本框显示出现。
程序运行时,在Text1、Text2中输入文字,单击“替换”按钮,则在Text3中找到Text1中的内容,并用Text2中的内容替换,若未找到,则不替换。
此外窗体上还有两个单选按钮,名称依次为Option1、Option2,标题依次为“第1个”和“全部”。
程序运行后,若Option1被选中,则只替换Text3中第一个匹配的字串,若Option2被选中,则替换Text3中所有匹配的字串。
笔试真题出现的字符串操作题,1.下面程序运行时,若输入“VisualBasicProgramming”,则在窗体上输出的是_。
(2010年3月选择题35题)PrivateSubComand1_Click()Dimcount(25)AsInteger,chAsStringch=Ucase(InputBox(请输入字母字符串)Fork=1ToLen(ch)n=Asc(Mid(ch,k,1)-Asc(A)Ifn=0Thencount(n)=count(n)+1EndIfNextkm=count(0)Fork=1To25Ifmcount(k)Thenm=count(k)EndIfNextkPrintmEndSub,(A)0(B)1(C)2(D)3,2.在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
(2008年9月填空题7题)PrivateSubCommand1_Click()a$=”NationalComputerRankExamination”n=Len(a$)s=0Fori=1Tonb$=Mid(a$,i,1)Ifb$=”n”Thens=s+1EndifNextiPrintsEndSub程序运行后,单击命令按钮,输出结果是【1】。
3.本程序实现文本加密。
先给定序列:
a1,a2,an,它们的取值范围是1n,且互不相同。
加密算法是:
把原文中第k个字符放到加密后文本的第ak个位置处。
若原文本长度大于n,则只对前n个字符加密,后面的字符不变;若原文长度小于n,则在后面补字符“*”使文本长度为n后再加密。
(2009年3月填空题9题)例如:
若干给定序列a1,a2,a7分别为2,5,3,7,6,1,4当文本为“PROGRAM”时,加密后的文本为“APOMRRG”当文本为“PROGRAMMING”时,加密后的文本为“APOMRRGMING”当文本为“THANK”时,加密后的文本为“*TA*HKN”下面的过程code实现这一算法。
其中参数数组a()中存放给定序列(个数与数组a的元素个数相等)a1,a2,a3,的值,要加密的文本放在参数变量mystr中。
过程执行完毕,加密后的文本仍放在变来那个mystr中。
请填空。
OptionBase1PrivateSubcode(a()AsInteger,mystrAsString)DimchAsString,c1AsStringn=UBound(a)-Len(mystr)Ifn0Thenmystr=mystr&String$(n,*)EndIfch=mystrFork=【1】ToUBound(a)c1=Mid(mystr,k,1)n=【2】Mid$(ch,n)=c1Nextkmystr=chEndSub,4.设窗体上有一个文本框Text1和一个命令按钮Command1,并有以下事件过程:
(2008年4月选择题33题)PrivateSubCommand1_Click()DimsAsString,chAsStrings=Fork=1ToLen(Text1)ch=Mid(Text1,k,1)s=ch+sNextkText1.Text=sEndSub程序执行时,在文本框中输入“Basic”,然后单击命令按钮,则Text1中显示的是。
(A)Basic(B)cisaB(C)BASIC(D)CISAB,5.在窗体上画一个命令按钮和一个文本框,然后编写命令按钮的Click事件过程。
程序运行后,在文本框中输入一串英文字母(不区分大小写),单击命令按钮,程序可找出未在文本框中输入的其他所有英文字母,并以大写方式降序显示到Text1中。
例如,若在Text1中输入的是abDfdb,则单击Command1按钮后Text1中显示的字符串是ZYXWVUTSRQPONMLKJIHGEC。
请填空。
(2005年9月填空题7题)PrivateSubCommand1_Click()DimstrAsString,sAsString,cAsStringstr=UCase(Text1)s=c=ZWhilec=AIfInStr(str,c)=0Thens=【1】EndIfc=Chr$(Asc(c)【2】)WendIfsThenText1=sEndIfEndSub,考点10计时器,一、属性Name和Enabled与其它控件相同。
但它还有一个自己独有的属性:
Interval:
用于设置计时器事件之间的时间间隔,单位为毫秒,取值范围为065535。
由于受系统时钟周期18.5次/秒的限制,一般不要小于50。
二、事件计时器支持Timer事件,在时间间隔到时自动触发.,计时器:
Interval以毫秒为单位,计时器只有在Enabled为True,且Interval非0时才计时,上机教程P93-真题7.6,【例】捷成48-3,程序的功能是在运行时,单击“开始计数”按钮,就开始计数,每隔1秒,文本框中的数加1;单击“停止计数”按钮,则停止计数(如图所示)。
要求:
修改适当的控件的属性,补充程序完整。
上机真题,【例】捷成5-5,窗体上有两个图片框,名称为P1、P2,分别用来表示信号灯和汽车,其中在P1中轮流装入“黄灯.ico”、“红灯.ico”、“绿灯.ico”文件来实现信号灯的切换;还有两个计时器Timer1和Timer2,Timer1用于变换信号灯,黄灯1秒,红灯2秒,绿灯3秒;Timer2用于控制汽车向左移动。
运行时,信号灯不断变换,单击“开车”按钮后。
汽车开始移动,如果移动到信号灯前或信号灯下,遇到红灯或黄灯,则停止移动,当变为绿灯后再继续移动。
上机真题,捷成71-4(新增题),窗体上有一个由8个图片框控件组成的控件数组、2个命令按钮和1个计时器控件。
运行程序时,只显示下标为0的图片框控件数组元素,其它图片框均不显示。
单击“开始”按钮,数组中的图片框自左至右依次显示,时间间隔为0.5秒,产生月亮从左向右移动的效果。
月亮移到右端后再从左端重新开始。
单击“停止”按钮,月亮停止移动。
P148多重窗体程序设计与环境应用,与多重窗体程序设计有关的语句和方法
(1)Load语句格式:
Load窗体名称
(2)Unload语句格式:
Unload窗体名称(3)Show方法格式:
窗体名称.Show模式(4)Hide方法格式:
窗体名称.Hide,P159-鼠标事件,一、鼠标事件Sub对象名_鼠标事件(ButtonAsInteger,_ShiftAsInteger,xAsSingle,yAsSingle)压下鼠标键事件过程MouseDown松开鼠标键事件过程MouseUp移动鼠标光标事件过程MouseMove,1)Button为按下的鼠标键。
2)ShiftShift、Ctrl、Alt键的状态。
3)x、y鼠标光标的当前位置坐标。
课堂练习,有一个名称为Form1的窗体,上面没有控件,设有以下程序(其中方法Pset(X,Y)的功能是在坐标X,Y处画一个点):
DimcmdmaveAsBooleanPrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,_XAsSingle,YAsSingle)cmdmave=TrueEndSubPrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,_XAsSingle,YAsSingle)IfcmdmaveThenForm1.PSet(X,Y)EndIfEndSubPrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)cmdmave=FalseEndSub此程序的功能是_。
P155-键盘事件,KeyPress事件的一般格式Sub对象名_KeyPress(KeyAsciiAsInteger)EndSub,按下键的ASCII码值,KeyPress事件是在压下键盘上的某个具有ASCII码的键时触发的。
窗体中若有其他可获得焦点的对象,则需设置窗体的KeyPreview属性为True,窗体才会响应KeyPress事件,KeyDown和KeyUp事件,二、KeyDown和KeyUp事件的格式Sub对象名_KeyDown(KeyCodeAsInteger,_ShiftAsInteger)EndSub,
(1)KeyCode参数此参数反应该键的键盘编码而不是其ASCII码。
大键盘上的字母键,返回的是对应大写字母的ASCII值
(2)Shift参数它是一个整数,包括Shift、Ctrl和Alt的状态。
默认为0,按下Shift时取值加1;按下Ctrl时取值加2;按下Alt时取值加4,键盘事件练习,任意输入一个小写字母,求该字母对应的ASCII码值及其对应的大写字母。
分别利用keyPress事件和KeyDown事件实现,2006年4月选择题第29题,在窗体上画1个文本框,其名称为Textl,然后编写如下过程:
PrivateSubTextl_KeyDown(KeyCodeAsInteger,ShiftAsInteger)PrintChr(KeyCode)EndSubPrivateSubTextl_KeyUp(KeyCodeAsInteger,ShiftAsInteger)PrintChr(KeyCode+2)Endsub程序运行后,把焦点移到文本框中,此时如果敲击“A”键,则输出结果为?
菜单编辑器,一、打开菜单编辑器
(1)执行“工具”菜单中的“菜单编辑器”命令。
(2)使用热键Ctrl+E。
(3)单击工具栏中的“菜单编辑器”按钮。
(4)在要建立菜单的窗体上单击鼠标右键,在弹出的菜单中单击“菜单编辑器”命令。
二、菜单编辑器窗口组成,菜单编辑器,菜单项的控制,键盘选择用键盘选取菜单通常有两种方法,即热键和访问键。
1、热键在菜单“快捷键”栏选择,可以直接执行菜单命令。
2、访问键在菜单的“标题栏”设置,在准备加下划线的字母前加上一个“&”,表示按“Alt+相应字母”可选取这个菜单项。
2007年9月选择题第22题,窗体上有文本框Text1和一个菜单,菜单标题、名称如表,结构见图。
要求程序执行时单击“保存”菜单项,则把其标题显示在Text1文本框中。
下面可实现此功能的事件过程是:
(A)PrivateSubsave_Click()(B)PrivateSubsave_Click()Text1.Text=file.save.CaptionText1.Text=save.CaptionEndSubEndSub(C)PrivateSubfile_Click()(D)PrivateSubfile_Click()Text1.Text=file.save.CaptionText1.Text=save.CaptionEndSubEndSub,上机真题,【例】捷成14-1,在名称为Form1的窗体上建立一个二级下拉菜单,第一级共有二个菜单项,标题分别为“文件”、“编辑”,名称分别为file、edit;在“编辑”菜单下有第二级菜单,含有三个菜单项,标题分别为“剪切”、“复制”、“粘贴”,名称分别为cut、copy、paste。
其中“粘贴”菜单项设置为无效(如图所示)。
考虑:
如何实现复制和粘贴功能,弹出式菜单,建立弹出式菜单通常分两步进行:
首先用菜单编辑器建立菜单然后用PopupMenu方法弹出显示。
第一步的操作与前面介绍的基本相同,唯一的区别是,通常把菜单名(即主菜单项)的“可见”属性设置为False(子菜单项不要设置为False)。
弹出式菜单,PopupMenu方法用来显示弹出式菜单,格式:
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2Then单击右键时弹出菜单PopupMenumenu2EndIfEndSub,(2007年4月选择题第22题),下面关于菜单的叙述中错误的是(A)各级菜单中的所有菜单项的名称必须唯一(B)同一子菜单中的菜单项名称必须唯一,但不同子菜单中的菜单项名称可以相同(C)弹出式菜单用PopupMenu方法弹出(D)弹出式菜单也用菜单编辑器编辑,上机教程P132-真题10.1,【例】捷成2-4,在名称为Form1的窗体中建立一个弹出式菜单(程序运行时不显示),名称为file,含两个菜单项,其名称分别为open、save,标题分别为“打开”、“存盘”。
编写适当的事件过程。
程序运行后,如果用鼠标右键单击窗体,则弹出此菜单(如图所示)。
拖放,一、与拖放有关的属性、事件和方法1.属性
(1)DragMode属性默认为0,表示人工手动拖放,设为1表示自动拖放。
自动拖放时,Click事件和MouseDown事件不再生效。
(2)DragIcon属性用于设置在拖动对象的过程中,显示的代表对象的图标,当放下后再恢复成原来的控件。
它通常使用LoadPicture方法来装入一个图片进行设置。
2.事件
(1)DragDrop把控件拖到目标之后,松开鼠标键时,产生一个DragDrop事件。
该事件过程的格式为:
拖放,拖放,
(2)DragOver当拖动的对象越过一个控件时,产生一个DragOver事件。
该事件过程的格式为:
拖放,3.方法,捷成86套-4,程序运行时,有六个香蕉图案的小图片框不显示。
可以用鼠标拖拽的方法把右部的香蕉放到左部的图片框中(右部的香蕉不动),如图2所示。
左部的图片框最多可放六个香蕉。
实现此功能的方法是:
刚运行程序时,图片框数组不显示,当拖拽一次香蕉时,就显示一个图片框数组元素,产生香蕉被放入的效果。
窗体左边的图片框名称为Picture1,框中还有六个小图片框,它们是一个数组,名称为Pic,在窗体右边从上到下有三个显示不同物品的图片框,名称分别为Picture2、Picture3、Picture4,还有一个文本框Text1以及四个标签,如图1所示。
程序运行时,可以用鼠标拖拽的方法把右边的物品放到左边的图片框中(右边的物品不动),同时把该物品的价格累加到Text1中,如图2所示。
最多可放六个物品。
实现此功能的方法是:
程序刚运行时,Picture1中的图片框数组不显示,当拖拽一次物品时,就显示一个图片框数组元素,并在该图片框数组元素中加载相应的图片,产生物品被放入的效果。
图1,图2,捷成80套-5,P35-图片框和图像框,图片框和图像框的装入,设计阶段:
运行阶段:
在属性窗口中选择Picture属性,PictureLoadPicture(图形文件所在路径及文件名)PicturePicture,真题,设窗体上有一个图片框Picture1,要在程序运行期间装入当前文件夹下的图形文件File1.jpg,能实现此功能的语句是()(A)Picture1.Picture=Flie1.jpg(B)Picture1.Picture=LoadPicture(File1.jpg)(C)LoadPicture(File1.jpg)(D)CallLoadPicture(File1.jpg),上机真题,【例】捷成14-3:
图片交换,在窗体上画二个图片框,名称分别为P1、P2,高度均为1900,宽度均为1700,通过属性窗口把图片文件pic1.bmp放入P1中,把图片文件pic2.jpg放入P2中;再画一个命令按钮,名称为C1,标题为“交换图片”。
运行时,如果单击命令按钮,则在P1中显示Pic2.jpg,在P2中显示Pic1.bmp。
程序中不得使用任何变量,也不能使用第三个图片框。
随机文件(P202),随机文件的特点:
文件由相同大小的记录组成;每个记录包含记录号和记录的内容。
随机文件的打开Open“文件名“ForRandomAs文件号Len=记录长度随机文件的写操作Put#文件号,记录号,变量随机文件的读操作Get#文件号,记录号,变量,P201-用户自定义数据类型,用户定义的数据类型利用Type语句定义自己的数据类型(因其常用于随机文件的记录操作,又称记录类型),其格式如下:
记录类型的定义必须放在通用声明段,随机文件的操作步骤,
(1)自定义数据类型;
(2)打开随机文件;(3)将内存中的数据进行写、读操作:
(4)关闭文件。
(2004年4月选择题第23题),假定在窗体(名称为Form1)的代码窗口中定义如下记录类型:
PrivateTypeanimalAnimalNameAsString*20AColorAsString*10EndType在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()DimrecAsanimalOpenc:
vbTest.datForRandomAs#1Len=Len(rec)rec.animalName=Catrec.aColor=WhitePut#1,recClose#1EndSub,通用对话框,1.通用对话框控件的使用步骤
(1)执行“工程”菜单中的“部件”命令,打开“部件”对话框(或按CTRL+T)。
(2)在对话框中选择“控件”选项卡,然后在列表框中选择“MicrosoftCommonDialogControl6.0”。
(注意在上机考试中将屏蔽该选项,需要通过“浏览”按钮,选择comdlg32.ocx文件)(3)单击“确定”按钮,通用对话框即被加入到工具箱中。
通用对话框,2.通用对话框的属性,文件对话框,文件对话框分为两种,即打开(Open)文件对话框和保存(SaveAs)文件对话框。
文件对话框的属性
(1)DefaultEXT属性设置默认文件类型,即扩展名。
(2)DialogTitle属性设置对话框的标题。
(3)FileName属性设置或返回要打开或保存的文件的路径及文件名(4)FileTitle属性指定对话框中所选择的文件名。
(没有路径),文件对话框,5)Filter属性设置“文件类型”的下拉列表选择,用“|”隔开的一对或多对字符串,每对字符串的前面是描述符,后面是过滤器。
6)FilterIndex属性指定默认的过滤器,一般为字符串对的序号,从1开始。
7)Flags属性控制对话框的外观。
8)InitDir属性指定对话框的起始目录。
缺省时显示当前目录。
CommonDialog1.InitDir=C:
Windows设置初始目录CommonDialog1.Filter=文本文件|*.Txt过滤文件类型CommonDialog1.ShowOpen打开对话框,其格式为:
文件说明|文件类型如:
Word文档|*.DOC|文本文件|*.txt|所有文件|*.*,文件对话框常考代码,窗体Form1上有按钮Command1,通用对话框控件CommonDialog1,编写如下事件过程:
PrivateSubCommand1_Click()CommonDialog1.DialogTitle=通用对话框示例CommonD