vb语言及程序开发环境(推荐11篇)
1.编制程序实现:在窗体上,单击按钮1,在文本框中动态显示当前时间;单击按钮2,则停止动态显示;单击按钮3,清除文本框内容。提示:可用定时器控制时间,用系统函数Now显示时间(如Text1.Text = Now)。
2.编制程序:求出100-200之间所有可以被3整除的数的总和,将结果用消息框显示输出。
3.编制程序:利用输入框输入10个不同的整数,将它们从小到大排序,并打印输出。4.编制程序实现:设计在一框架中包含三个复选框,只有当其1,3选中而2未选中时,才在Text1中显示“Hello”字符。
5.编一程序能实现在窗体上打印出如下图所示的图形。
A AAA AAAAA AAAAAAA BBBBBBB BBBBB BBB B 6.编一程序用于判断一正整数是否为素数。(提示:只能被1和本身整除的正整数称为素数。为了判断一个数n是不是素数,可以将n被2到sqr(n)之间的所有整数除,如果都除不尽,则n就是素数,否则n是非素数。)
7.选用If和Select判断结构中任意一种编写满足下列条件的计税要求的程序:少于1600元,免税;1601-5000元,征2%的税;多于5000元,超过部分征5%的税。
8.有a、b、c三个数,编一程序实现通过文本框给a、b赋值;再调用能完成a、b比较大小的子过程,用c将大数回传。要求按值传送a、b。
9.编一程序用于求所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如:153就是一水仙花数,因为153 = 13+53+33。
10.设计一弹出式菜单,用于设置窗体的背景色,背景色包含白色、黄色、红色三种颜色。11.编写程序实现:输入三角形的三条边a,b,c的值,根据其数值判断能否构成三角形。如果能,则判断三角形是否是直角三角形,若是则计算该直角三角形的面积。
提示:判断能否构成三角形的方法是,求最长的一边,判断它的边长是否小于另外两边边长之和;或求最短的一边,判断它的边长是否大于另外两边之差。
12.编写程序:通过四个命令按钮Command1-Command4,在图片框Picture1内分别实现画点、画线、画圆、擦除等功能。
13.编写程序实现:在窗体上单击按钮1,可通过输入对话框输入两个字符串;单击按钮
2,将输入的两个字符串连接为一个字符串,并计算该字符串长度,然后在消息框中显示出来。
14.编一程序:用三个文本框分别输入a、b、c,求一元二次方程ax2+bx+c=0的解x1和x2,只包括实根。
15.编一程序:利用输入对话框输入两个正整数,求最大公约数。
答案
1.Private Sub Command1_Click()
Timer1.Interval = 5
Timer1.Enabled = True End Sub Private Sub Command2_Click()
Timer1.Enabled = False End Sub Private Sub Command3_Click()
Timer1.Enabled = False
Text1.Text = “" End Sub Private Sub Timer1_Timer()
Text1.Text = Now End Sub
2.Private Sub Command1_Click()Dim i, s As Integer For i = 100 To 200
If i Mod 3 = 0 Then s = s + i Next i MsgBox(”100-200之间所有可以被3整除的数的总和为:“ & Str(s))End Sub
3.Private Sub Command1_Click()Dim a(9), i, j, m As Integer For i = 0 To 9
a(i)= Val(InputBox(”
For i = 0 To 9
For j = i + 1 To 9
If a(i)> a(j)Then
m = a(i)
a(i)= a(j)
a(j)= m
End If
Next j Next i For i = 0 To 9
Print a(i);Next i End Sub
4.Private Sub Command1_Click()If Check1.Value = 1 And
Check2.Value = 1 And Check3.Value = 0 Then Text1.Text = “Hello” End If End Sub
5.Private Sub Command1_Click()Dim i, j As Integer For i = 1 To 4
For j = 1 To(2 * i1)To 1 Step-1
Print “B”;
Next j
Print Next i End Sub
6.Private Sub Command4_Click()
Dim n, k, i, temp As Integer
n = InputBox(“请输入一个正整数”)
k = Int(Sqr(n))
i = 2
temp = 0
Do While i <= k And temp = 0
If n Mod i = 0 Then
temp = 1
Else
i = i + 1
End If Loop
If temp = 0 Then
Print n;“是一个素数”
Else
Print n;“不是素数”
End If End Sub
7.Private Sub Command1_Click()Dim n, p As Single n = Val(Text1.Text)Select Case n
Case Is <= 1600
p = 0
Case 1600 To 5000
p =(n5000)* 0.05 End Select End Sub
8.Private Sub c1(ByVal a As Single, ByVal b As Single, c)If a > b Then c = a Else c = b End Sub
Private Sub Command1_Click()Dim a, b, c As Single a = Val(Text1.Text)b = Val(Text2.Text)
Call c1(a, b, c)
Print c End Sub
9.Private Sub Command1_Click()Dim a, b, c, n As Integer For n = 100 To 999
a = Int(n / 100)
b = Int((n(a * 100 + b * 10)
If n = a ^ 3 + b ^ 3 + c ^ 3 Then Print n;
Next End Sub
10.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu MenuA
End If End Sub
Private Sub B_Click(Index As Integer)
Select Case Index
Case 1
Form1.BackColor = vbWhite
Case 2
Form1.BackColor = vbYellow
Case Else
Form1.BackColor = vbRed
End Select End Sub
11.Private Sub Command1_Click()Dim a(2), i, j, m As Integer For i = 0 To 2
a(i)= Val(InputBox(“
If a(i)> a(j)Then
m = a(i)
a(i)= a(j)
a(j)= m
End If
Next j Next i If a(0)+ a(1)> a(2)Then
If a(0)^ 2 + a(1)^ 2 = a(2)^ 2 Then
Print ”能构成直角三角形,面积为:“ & a(0)* a(1)/ 2
Else
Print ”能构成三角形,但不是直角三角形“
End If Else
Print ”不能构成三角形“ End If End Sub
12.Private Sub Command1_Click()Picture1.PSet(Picture1.Width / 2, Picture1.Height / 2)End Sub
Private Sub Command2_Click()Picture1.Line(0, 0)-(Picture1.Width, Picture1.Height)End Sub
Private Sub Command3_Click()Picture1.Circle(Picture1.Width / 2, Picture1.Height / 2), 800 End Sub
Private Sub Command4_Click()Picture1.Cls End Sub
13.Dim a, b, c As String Private Sub Command1_Click()a = InputBox(”请输入
Private Sub Command2_Click()c = a + b MsgBox “连接后的字符串为:” & c & “。长度为:” & Len(c)End Sub
14.Private Sub Command4_Click()a = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)If a = 0 Then
x =-c / b
Print x Else
t = b * bSqr(t))/ 2 / a
Print X1, X2
End If End If End Sub
长期以来, 基础教育强调接受学习, 学生死记硬背, 学习主动性很低。而新课标则提出倡导培养学生自主学生、主动探究、解决问题与分析问题的能力。很明显, 传统的讲授法已经不太适用于新课程的教授, 而任务驱动法这种“教师主导, 学生主体”的教学方法则很好的适用于新课标的实施。
任务驱动法教学案例的设计
1. 分析学习内容
本节课内容讲述了VB语言的基本知识 (包括VB程序的基本部分、基本数据类型、常量与变量、运算符、函数和表达式) , VB可视化程序的开发环境, 属于基础性、概念性知识。要求学生掌握VB的基础知识, 并且熟悉VB开发环境。
本节课虽然属于概念性知识, 但是其知识点大都在实践操作后才能领悟, 尤其是熟悉VB的开发环境。选择任务驱动法, 让学生在做中学, 将原本枯燥无味的概念转化为学生的实际操作, 极大的激发了学生的学习兴趣。
2. 学习者特征分析
通过高中数学必修模块4.1“编制计算机程序解决问题”部分以及本模块第一章的学习中, 学生已经经历了用计算机解决问题的基本过程, 对VB开发环境有所了解。本节课有关概念和数学课中有相通的地方, 学生具有相关的数学基础, 因此学习起来相对容易, 但对于不同的地方, 少数学生变通能力较差。本节课之前学生已经有自主探究、小组合作的经历, 并且已经能够进行信息搜索与处理的学生, 学生可以在教师的指导下进行小组合作, 自主探究。
但学生的编程的起点水平并不一致, 教学中要关注全体学生, 变学生的个体差异为资源, 发挥同伴互助作用, 共同提高课堂效率。
3. 确定教学目标
教学目标是教学过程设计与教学效果评价的依据。根据课标要求以及对教材、学习者学习特征的分析, 我制定了以下的教学目标:
知识与技能:掌握VB的基本数据类型、常量、变量、函数、表达式等基本知识;熟悉VB的开发环境;
过程与方法:通过案例学习, 掌握VB的基本知识;通过探究活动, 熟悉可视化程序的开发环境、了解各个控件的功能与使用;
情感、态度与价值观:通过案例学习, 了解生活中的算法, 将信息技术作为解决问题的一种方法。
4. 任务的设计
教学过程中任务的设计需要遵循以下原则:
首先与知识点紧密相关, 整个任务能蕴含绝大多数知识点, 通过任务的完成能够突破重难点;
其次, 任务需是可操作性、并且具有层次型, 学生能够在教师指导下并在当前教学条件下完成;
最后, 任务需要与学生生活实际紧密相关, 能够激发学生的学习兴趣。
针对以上原则我设定了以下的任务:
任务一:根据提供的“圆的面积”的程序以及教师所提供的阅读资料, 分析代码组成, 初探VB的基本数据结构、常量、变量等成率设计语言的基本知识。
任务二:启动VB, 进入集成开发环境, 观察各菜单项及其子菜单项, 完成表格填写。
任务三:探究工具栏各图标的名称、功能, 并整理成word文档。
任务四:通过查阅“帮助菜单”, 了解工具箱、代码窗口、窗体设计窗口、工程资源管理器窗口、属性窗口、窗体布局窗口的作用, 并将其整理成word文档。
5. 教学过程的设计
(1) 情境创设, 激发兴趣
教师展示VB程序作品, 并邀请学生上台演示。学生观看、操作VB小程序, 激发学生学习热情。
(2) 任务设置, 初探新知
教师演示“圆的面积”程序, 并展示其代码。在教师指导下学生完成任务一的探究。
学生完成任务一后, 教师组织进行堂上测验, 强调变量的合法命名以及表达式的合法使用。
教师组织学生完成分组, 指导学生完成任务二、三、四。
(3) 汇报展示, 升华知识
完成全部任务后, 教师指导学生讲所获得资料进行整理, 形成PPT, 并抽取小组进行任务汇报, 学生进行补充、提问、评价。
(4) 实践代码, 探究VB
教师指导学生根据“圆的面积”程序, 编写“长方形的周长与面积”程序, 并调试在VB进行运行。
教师选取有代表性的程序进行展示交流, 学生通过观察、比较, 取长补短。
针对学有余力的同学设置拔高部分, 通过改变某些数据的数据类型, 判断程序代码的不同, 进一步进入探究VB数据类型。
(5) 课堂小结, 归纳知识
师生一起总结VB语言的基本知识, 描述VB的开发环境。教师强调表达式的注意事项, 从括号、运算符、标点符号等易出错的地方说明。
6. 学习评价
针对VB基础知识, 利用课堂测试习题, 了解学生对基本概念的掌握情况。
针对同学在任务中的表现以及对于程序代码的评价, 利用留言板进行网上评分, 采用组内互评、小组互评与老师评价, 并通过统计评价的结果对学生这节课的学习成果进行分析, 使学生能够进一步提高。
以上就是我根据任务驱动法所设计的教学设计。通过任务驱动, 学生在做中学, 完成新知识的建构。通过分层教学, 使不同的同学都能够得到提升。
任务驱动法引用于教学课堂实施简单, 操作灵活, 能极大的激发学生的学习兴趣, 是操作性、实践性强的教学内容的有效方法。但我们不能滥用任务驱动法, 应分析教学内容, 考虑其适用性, 确保这一方法运用的恰当、合理。
摘要:本文将任务驱动法结合高中信息技术, 并以《VB语言及程序开发环境》进行课程设计。
关键词:任务驱动法,VB语言,高中信息技术
参考文献
[1]郭邵青.任务驱动法教学法的内涵[J].中国电化教育, 2006, (7) :57-59
关键词:VB程序设计语言;面向对象;独立学院;任务驱动
VB(Visual Basic)程序设计语言最早面向可视化程序设计语言,具有语法简单、易学易用等特点。专业人员利用VB可实现其它任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以创建简单的程序,因此学习VB入门较易,并且VB已成为众多高校非计算机专业的公共课程。
独立学院,是由普通本科高校(申请者)与社会力量(合作者,包括企业、事业单位、社会团体及其他有合作能力的机构)合作举办的进行本科层次教育的高等教育机构,是按照新的机制和模式举办的本科层次的二级学院。但由于其发展历史较短,过去大多采用传统的本科院校教学模式,后逐渐开始研究适合独立学院学生特点的教学模式。笔者认为只有在结合学科特点与学生特点的基础之上,更有针对性地引入先进的教学理念和教学方法,才能取得更好的教学效果。
一、独立学院学生特点
独立学院实行招生计划单列,按本科第三批录取。生源质量的客观形势在一定程度上影响到教学质量的提高。结合近几年的教学经验,笔者认为独立学院的学生主要有如下特点:(1)入学分数相对较低,文化课基础相对较差;(2)缺乏很好的自学能力和自我约束能力;(3)自我意识很强;(4)眼高手低,定位不准。
二、VB程序设计语言课程特点及存在的问题
VB程序设计语言是长江大学工程技术学院继计算机基础之后的又一门面向全校各专业学生的基础课程。課程是以面向对象的可视化编程为核心,介绍程序设计的基本方法和技巧。课程的主要内容包括VB语言基础、窗体和常用控件三种基本控制结构、数组和过程等。要求学生掌握VB的基本语法规则,掌握简单的典型问题的算法,初步累积编程经验,解决简单的编程问题。
一直以来,我院的VB教学主要采取讲师在课堂讲授相关语法和语句,学生在上机课和课下对语法、语句进行验证的模式。教学模式少有设计性和创新性,教与练不能同步进行,导致学生缺乏兴趣,学习积极性不够,教学效果差强人意。
三、探索与研究
笔者认为要做好VB语言程序教学,要从以下五个方面做起:
明确学生是主体,教师是主导,在教学方法上要坚持“以学生为中心”的新观念,真正把学习的主动权交给学生,激发学生的学习兴趣,使学生在学习必备知识的同时发挥各自的创新潜能,培养学生的自学能力,锻炼学生的综合能力,提高学生的个人综合素质。
目前我院采用的教材是由罗朝盛主编,人民邮电出版社出版的《Visual Basic程序设计教程》这本书,该书在知识点的体系结构、知识严谨性等方面都有很多闪光点,但是该书对于我院学生来说偏难。虽然关于VB教学的书很多,但是却很难找到一本真正适合本院学生的书籍。这就迫切要求授课教师编写一本真正适合本院学生的教材。
我院VB程序设计语言课程由多名教师授课,学习这门课的学生来自石油系、城建系、化工系和机械系四个院系近十个专业。这要求我们既要有统一的教学大纲和教学进度,更要根据专业特色设计授课内容和授课方法。需要授课教师与各系部的负责人联系,找到VB程序设计语言在各专业的应用领域与专业知识的结合点,来完善教学。
在教学中引进先进的教学理念和教学方法。目前除了传统的教学方法外,被各大院校广泛采用的方法主要有以下三种:①“任务驱动”模式下的案例教学法,着重培养学生解决问题的能力及创新能力。结合我院学生的实际情况,我认为在设计案例时尤其要注意,案例要循序渐进并具有可扩充性。②搭建网络教学平台,构建网络化的教学模式。从而促进教师与学生、学生与学生之间的交流,为学生的自学提供更有利的环境。③CDIO工程教育模式是“做中学”原则和“基于项目的教育和学习”的集中体现。它以产品研发到产品运行的生命周期为载体。但是结合我院实际,这个模式不适合贯穿教学始终,可在课程设计教学中应用。
精心设计教学过程。教学不是知识点的罗列,不是教学理念和教学方法的罗列,而是课程特点、学生特点、教学理念和方法的提取和融合。在教学实践中不断探索,不断改进。
如何提高教学质量是教师讨论的永恒话题,需要教师在漫长的传道、授业和解惑之路上,怀揣着对这个行业的热爱,不断学习,不断提高自我。使学生不仅掌握该课程的专业知识,更要使学生的综合能力在不断学习中得到提高,实现教学的终极目标。
参考文献:
[1]罗朝盛.Visual Basic 6.0程序设计教程[M].北京:人民邮电出版社,2009.
[2]查建中.论“做中学”战略下的COIO模式[J].高等工程教育研究,2008(3).
综合复习题
一、填空题
1.创建一个VB应用程序三个主要的步骤是__创建应用程序界面_、_设置属性_和_编写代码_。2.当程序运行时,要求窗体中的文本框呈现空白,则在设计时,应当在此文本框的 属性 窗
口中,把此文本框的__text__属性设置成空白。
3.Label和TextBox控件用来显示和输入文本,如果仅需要让应用程序在窗体中显示文本信 息,可使用___Label_____控件;若允许用户输入文本,则应使用___TextBox___控件。4.窗体的常用方法有_Load方法 Show方法 Hide方法 Unload方法 5.要想在代码中给名为txtshow的文本框赋予文本:GOOD WORK,应当编写的语句是 txtshow.text=“GOOD WORK” 6.若命令按钮的名称为Cmdopen,程序要求单击该命令按钮时,打开一个窗口frm1,请对以
下事件过程填空。
Private Sub Cmdopen_ Click()、frm1.show End Sub 7.Visual Basic 6种类型的表达式是 算术表达式 字符串表达式 关系表达式 布尔表达式 日期表达式 对象表达式,Visual Basic根据表达式的_运算符来确定表达式的类型。8.表达式93 7 Mod 2 ^ 2 的值是___________。
9.已知a=3,b=4,c=5,表达式a>b and Not c>a Or c>b And c
达式c>a And Not b 10.日期表达式 #2/24/02#1 > c2 End Sub 7.#12/31/1999#3 * I Print “ ”;Next j For k = 1 To I Print k;Next k For k = IX Print Tab(Y + 5);“*”;Next Y Print Next X 4. Private Sub Form_Activate()Print “aa” & “bb”,-5 * 6,Not 2 <= 3 Print “aa” & “bb”;-5 * 6;Not 2 <= 3 Print Print “30+60”, Print 30 + 60 ? ?“30+60”;30 + 60 End Sub 5. X=1 Do While X<=10 If X Mod 7 =0 Then Y = X + 6 Else Z = X End If X = X + 2 Loop Print X,Y,Z 五、编程题 1.设计一个计算程序。该程序用户界面如图所示,由四个文本框:文本框1(text1)、文本框2(text2)、文本框3(text3)、文本框4(text4),和三个按钮:命令按钮1(command1)、命令按钮2(command2)、命令按钮3(command4)组成。程序运行后,用户单击清除按钮,则清除文本框中显示的内容。单击计算按钮,如果成绩填写不完全,则给出提示信息,否则计算三科平均成绩。单击退出按钮则退出。 2.设计程序。要求:从文本框Text1中接收输入的数据,当单击确定按钮(command1)时,如果该数据满足条件:除以3余2,除以5余3,除以7余4,则输出;否则将焦点定位在文本框Text1中,选中其中的文本。 你想监视计算机的开机和关机时间吗?其实这很简单,下面笔者就教你如何用VB制作一个开机关机记录程序。 首先了解这个程序的工作原理:在计算机启动后,Windows打开这个程序,程序便会自动记录下开机的时间,当关机时,Windows关闭这个程序,程序会记录下关机的时间,并把它们以.txt格式保存下来。 接着,开始制作程序和设置系统。 第一步:打开VB,新建一个窗体,用鼠标左键双击窗体,输入以下代码。 Dim begintime Private Sub Form_Load() Me.Hide begintime=Now End Sub Private Sub Form_Unload(Cancel As Integer) endtime=Now n=DateDiff(″N″,begintime,endtime) Dim fso As New FileSystemObject Dim txtfile As TextStream Set a=App If fso.FileExists(a.Path & ″开机记录.txt″) Then Set txtfile=fso.OpenTextFile(a.Path & ″开机记录.txt″,ForAppending) Else Set txtfile=fso.OpenTextFile(a.Path & ″开机记录.txt″,ForWriting,True) End If txtfile.Write ″开机时间″ & begintime txtfile.Write ″ ″&″关机时间″& endtime txtfile.Write ″ ″&″时间长度″& n & ″分钟″ txtfile.WriteBlankLines 2 End Sub 第二步:单击“文件”菜单中的“生成工程.EXE”选项(或 “File” 菜单中的“Make *.EXE”选项),选择路径保存, 第三步:在Windows资源管理器中将刚制作的程序复制到计划任务中,并双击它。在“计划”选项卡中将程序设置为每次启动计算机时运行。重新启动计算机。 最后,讲一下如何查看开机记录。当再次开机时,便可以在保存程序的文件夹中看到一个名为“开机记录”的TXT文件,打开它,就可以看到上次开机的记录。如果你有什么疑问,欢迎写信给我,来信寄至m_a_x@263.net。 (江苏 赵昆) 用VB编写定时关闭计算机的程序 上海船舶电子设备研究所 洪杭迪 ---- 微软的VB以简单易用,功能强大而著称,使用VB可以很容易地编写出定时关闭计算机的程序。以下是一个简单的定时关闭计算机的程序,供各位使用VB的朋友参考,如有何不适之处,请多指点! ---- 定时关闭计算机,很显然,有两个关键点: ---- 1.定时。可以用VB中的Timer控件结合计算机的系统时间来进行精确的定时。 ---- 2.关闭计算机。这可以调用Win32 API函数 ExitWindowsEx 来关闭计算机。 ---- ---- 下面首先来说明一下 ExitWindowsEx 函数,该函数在VB中的声明如下: Declare Function ExitWindowsEx Lib ”user32“ Alias ”ExitWindowsEx“ _ (ByVal uFlags As Long, ByVal dwReserved As Long) As Long 【返回值】 Long,非零表示成功,零表示失败。 【参数表】 uFlags ---------Long, 指定下述一个或多个标志(用OR运算符合并到 一起) EWX_FORCE=4 强迫中止没有响应的进程 EWX_LOGOFF=0 中止进程,然后注销 EWX_SHUTDOWN=1 关掉系统电源(如果可能的话,ATX电源就可以) EWX_REBOOT=2 重新引导系统 dwReserved -----Long,保留,设为零 好了,现在可以开始编程了。 ---- 1. 新建一个标准EXE工程。 ---- 2. 在窗体上放置一个TextBox控件,用以输入定时时间。 ---- 3. 在TextBox控件之下放置两个OptionButton控件,组成控件数组,用以选择定时模式。 ---- 4. 在OptionButton控件之下放置一个CommandButton. ---- 5. 随便在窗体的某地方放置一Timer控件。 ---- 以上控件了需要设置的属性值如下: 对象属性设置 Text1Text空 Option1(0)Caption在指定时间关机 (时间格式:00:00:00) Index0 Option1(1)Caption延迟指定的时间关机 Index0 Command1Caption确定 Timer1Interval15000(精确到1/4分钟, 如要更精确可减少该值) EnabledFalse 增加代码如下: 标准模块: Option Explicit Public Const EWX_SHUTDOWN = 1 注释:关闭系统 Declare Function ExitWindowsEx Lib ”user32“ (ByVal uFlags As Long, ByVal dwReserved As Long) As Long 窗体模块: Option Explicit Dim txtTime注释:保存输入时间 Dim nowTime注释:保存实时时间 Dim oldTime注释:保存开始定时时间 Private Sub Command1_Click ldTime = Time If Not IsDate(Text1.Text) Then 注释:用IsData函数判断输入的时间格式 MsgBox ”你所输入的不是时间格式,请重试!“, , ”Wrong“ Else txtTime = TimeValue(Text1.Text) End If Timer1.Enabled = True 注释:启动定时器 Me.WindowState = 1 注释:最小化窗体 End Sub Private Sub Timer1_Timer() nowTime = Time If Option1(0).Value Then If DateDiff(”s“, nowTime, txtTime) <0 Then注释:用DateDiff函数判断是否到时间了 If Not ExitWindowsEx(EWX_SHUTDOWN, 0) ThenMsgBox (”无法关闭计算机“) End If End If Else If DateDiff(”s“, nowTime, oldTime + txtTime) < 0 ThenIf Not ExitWindowsEx(EWX_SHUTDOWN, 0) ThenMsgBox (”无法关闭计算机“) End If End If End If End Sub ---- 结束语:以上程序在VB5.0/6.0和Win98上调试通过, 其实,此程序还可增加一些花样,譬如,最后窗体不是最小化,而是调用Win32 API函数,把她的图标放在系统任务栏里,即在右下角有声音,时间等图标的地方,那是另外一个主题了。 程序设计方法一般有面向过程 (Proced ure Oriente d) 简称PO和面向对象 (Obj ect Or ien ted, 简称O O) 之分, 前者重在分析出解决问题所需要的步骤, 然后用函数把这些步骤一步一步实现, 使用的时候一个一个依次调用就可以了;而后者是把构成问题事务分解成各个对象, 建立对象的目的不是为了完成一个步骤, 而是为了描叙某个事物在整个解决问题的步骤中的行为。 面向对象的程序设计方法 (Object Oriented Programmiing, 简称OOP) 是一次程序设计方法的革命, 它把设计方法从复杂繁琐的编写程序代码的工作中解放了出来, 符合人的思维方式和现实世界, 主要是利用类和对象的概念, 使项目结构更清楚, 程序容易维护, 代码重用性强。 1 传统的面向过程的解决问题的步骤 (图1) 在这里“编写代码”中这部分代码是从头写到尾的, 也就是一个个过程组成的, 一旦执行, 在没有例外或认为终止的情况下, 会一直执行到结束。 下面以C语言为例写一个简单的程序, 看一下程序执行的过程。 例:求两个整数的和 这段程序编好后, 可以对它进行编译调试了, 最后生成可执行文件, 下面看一下执行过程。 首先, 程序中的first和next是两个相加的数, first+next则是二者的和, 当执行到 两句时, 屏幕上会显示 (图2) : 提示我们输入第一个“first”数, 比如我们输入2, 此时屏幕上会显示 (图3) : 接下去运行到 这两句时, 则会显示 (图4) : 同理会显示 (图5) 从这个程序的执行过程我们能够看到, 该程序从执行开始, 要么等待我们输入数据, 要么就一直执行下去。 下面我们在看同样的这个例题, 用vb来编写执行有什么不同。 2 Vb程序设计语言的执行步骤 (图6) 在面向过程的语言中, 是没有“设计用户界面”这个内容的, 当然, 在编写代码的之前也是要分析问题, 所不同的是, 分析好以后, 要设计用户的界面, 因为vb是windows下的一个应用程序, 它是windows下的一个应用程序窗口。 在我们设计好用户界面后, 就要编写代码了, 这个编写代码的过程和c语言是完全不同的, 下面用vb编写上一部分里用C语言解决的问题, 看看有什么不同 (图7) 。 首先是输入两个数, 然后点击sum按钮, 得到结果。 这个界面要比c容易看懂, 因为这个是windows的常规窗口, 看起来一目了然, 这个界面设计好以后, 就开始编写代码这个步骤, 对于这个程序来说, 只需要将代码写如sum按钮即可, 具体内容如下。 用vb编写这个程序, 只需要一条语句就能够完成了。 3 结语 通过以上的例题, 经过分析和比较, 很好的说明了面向过程和面向对象的语言二者之间存在的差异和联系, 但是依然存在着一定的问题, 就是所搜集的能够浅显易懂的说明这个问题的例题有限, 因此, 还需要积累更多的例题, 从深层次的去对照和学习。 摘要:为了让初学语言者更好的了解面向过程的语言和面向对象的语言之间的区别和联系, 本文通过解释面向过程和面向对象的语言运行的步骤, 用实例更好的阐述了这个问题, 使读者能够根据自己的需求来选择适合自己的编程语言。 曲江职校 杨远峰 实践总学时: 128 面向专业和年级:计算机专业一年级 时间段:一学年 一、实践课程教学的教学目标 通过实验达到教学大纲要求的教学目的,通过实验的上机练习,达到熟练掌握 VB编程技巧,养成规范、标准的思维和方法,具体实验的要求按每一个实验的要求去练习、上机、总结。 二、实践课程的性质、目的与任务 本课程是计算机基础课程。本课程的任务是向学生介绍计算机程序设计的基本知识,使学生掌握 VB语言的基本内容及程序设计的基本方法与编程技巧,了解面向对象程序设计的一般思路,培养学生应用计算机解决和处理实际问题的思维方法与基本能力,为进一步学习和应用计算机打下基础。 三、实践课程教学的基本要求 本实验大纲的核心内容是 10个主题实验,每个实验都针对某个具体应用精心设计,并以该应用为主题展开,通过这些实验的实施,学生应该认识Visual Basic6.0的编程环境、面向对象的概念、可视化编程的优势;会使用Visual Basic6.0编写简单的程序、使用其中的控件建立友好的程序界面、使用各个基本事件;掌握各控件的基本属性、事件、方法,掌握面向对象编程及可视化编程的一些技巧,掌握基本的程序设计流程。 四、实践内容 实验一 Visual Basic6.0 的安装与使用 实践地点:实验室 时间安排: 2学时 实践形式及方法:演示及动手操作 [实验类型] :验证性试验 [目的要求] 1、安装Visual Basic6.0 2、编写显示“欢迎使用Visual Basic6.0”的窗体程序 [内容提要] :熟悉 Visual Basic的编程环境,掌握安装过程以及基本的设置。 [主要仪器设备] :微机 实验二 拼图游戏界面设计 实践地点:实验室 时间安排: 4学时 实践形式及方法:动手操作 [实验类型] :验证性试验 [目的要求] 1、建立一个拼图游戏的窗体程序 2、该任务主要是布局菜单、图像框、图片框按钮、标签、文本框、单选按钮 3、程序部分主要是修改对象的一些常用属性、窗体运行后的大小、位置等 4.根据实级界面的设计,完成中级和高级游戏界面的设计 [内容提要] 了解各控件之间的相互协作,合理安排程序界面,通过相应的事件,编写合适的代码,完成要求的内容。 [主要仪器设备] :微机 实验三 随机排列拼图游戏的图块位置 实践地点:实验室 时间安排: 10学时 实践形式及方法:动手操作 [实验类型] :综合性试验 [目的要求] 1、随机排列拼图游戏中几个图块的排列顺序 2、每次随机排列时,图块的位置都会发生改变 3、在游戏难度设计时,如果难度是最高级别(困难),并且移动方式是逐格时,要求最左上角的那个图块位置不能改变,无论怎么随机排列,左上角的那个图块的位置是不会改变的,否则不能完成拼图游戏 4、根据初级游戏中图块的位置随机,完成中级图块随机和高级图块位置随机的设计 [内容提要] 应用程序设计的基本结构设计方法和技巧,对象位置和大小的控制方法,随机数产生的方法设计该程序 [主要仪器设备] :微机 实验四 拼图游戏中图块选中状态的设计 实践地点:实验室 时间安排: 10学时 实践形式及方法:动手操作 [实验类型] :验证性试验 [目的要求] 1、使用鼠标事件可以选中图块 2、选中图块有亮度框 3、使用控件数组记录选中的对象 [内容提要] 鼠标事件的应用、控件数组的应用 [主要仪器设备] :微机 实验五 拼图游戏中使用指定键移动图块 实践地点:实验室 时间安排: 12学时 实践形式及方法:动手操作 [实验类型] :验证性试验 [目的要求] 1、使用键盘上的2468键移动选中图块 2、使用键盘上的上下左右键移动选中图块 3、使用鼠标键移动选中图块 4、移动规则的设定,只有目标位为空时,才可移动选中图块,5、逐格移动时只能是上下左右一格一格移动,不能跨格移动选中图块 6、跨越移动时,可以跨越其它图块移动选中图块,前提是目标位要为空方可移动 [内容提要] 几个常用鼠标事件,规则的设定 [主要仪器设备] :微机 实验六 拼图结果正确性的判定 实践地点:实验室 时间安排: 10学时 实践形式及方法:动手操作 [实验类型] :综合性试验 [目的要求] 1、对拼图完成后,检测拼图结果正确性与否,根据初始的随机位置情况进行判定 2、计时器判定 3、按钮单击事件判定 [内容提要] 计时器事件的应用,条件语句的应用 [主要仪器设备] :微机 实验七 拼图游戏过关时间的记录 实践地点:实验室 时间安排: 4学时 实践形式及方法:动手操作 [实验类型] :验证性试验 [目的要求] 1.应用计时器事件记录游戏过关玩家的时间 2、将游戏过关玩家的时刻记录到指定文件中 [内容提要] 计时器事件的应用 [主要仪器设备] :微机 实验八 拼图游戏移图方式设计 实践地点:实验室 时间安排: 8学时 实践形式及方法:动手操作 [实验类型] :验证性试验 [目的要求] 1、逐格移动方式中,选中图块只能是相临之间可以移动 2、跨越移动方式中,选中图块可以跨越移动 [内容提要] 相临位置的判定、目标位的判定、移动后源位置和目标位置状态的判定 [主要仪器设备] :微机 实验九拼图游戏级别关卡设计 实践地点:实验室 时间安排: 8学时 实践形式及方法:规定内容 [实验类型] :设计性试验 [目的要求] 1、可以选择初级、中级、高级 2、建立一个多重窗体应用程序设计 3、用户名的相互传递 [内容提要] 多重窗体应用程序设计、公共变量的定义和使用 [主要仪器设备] :微机 实验十拼图游戏难易程度选项设计 实践地点:实验室 时间安排: 8学时 实践形式及方法:自行设计 [实验类型] :设计性试验 [目的要求] 1、通过改变临时放图区的多少来控制拼图游戏的难易度 2、改变屏蔽临时放图区的标签位置、设计监时放图区的状态 [内容提要] 标签的大小、位置、临时放图区的状态设计 [主要仪器设备] :微机 实验十一拼图游戏操作说明设计 实践地点:实验室 时间安排: 2学时 实践形式及方法:自行设计 [实验类型] :设计性试验 [目的要求] 1、设计一个图体,一个标签,在标签内放置游戏相关的操作说明 2、窗体只有关闭按钮 [内容提要] 标签的大小、位置、标签内显示内容的设计,窗体相关属性的设计 [主要仪器设备] :微机 实验十二拼图游戏背景颜色设计 实践地点:实验室 时间安排: 6学时 实践形式及方法:自行设计 [实验类型] :设计性试验 [目的要求] 1、设计一个图体,三个滚动条,一个列表框,可以选择设计背景色、按钮文本背景色、移图区背景色 2、可以实现根据列表框的选择对象实现选定对象背景颜色的改变 [内容提要] 引用公共变量,不同窗体间名称的传递,多分支结构的应用;选定同一窗体不同部分背景颜色的改变 [主要仪器设备] :微机 实验十三拼图游戏前景颜色设计 实践地点:实验室 时间安排: 6学时 实践形式及方法:自行设计 [实验类型] :设计性试验 [目的要求] 1、应用通用对话框改变图体上对象的前景颜色 2、按钮、标签的文字颜色 [内容提要] 通用对话框的应用 [主要仪器设备] :微机 实验十四拼图游戏积各级别历史成绩查看 实践地点:实验室 时间安排: 10学时 实践形式及方法:自行设计 [实验类型] :设计性试验 [目的要求] 1、读出相应级别记录文件中存放的数据 2、随机文件中记录文件的读写操作 [内容提要] 随机文件的相关操作 [主要仪器设备] :微机 实验十五拼图游戏积各级别历史最好成绩查看 实践地点:实验室 时间安排: 10学时 实践形式及方法:自行设计 [实验类型] :设计性试验 [目的要求] 1、读出相应级别最好记录文件中存放的数据 2、随机文件中记录文件的读写操作 [内容提要] 随机文件的相关操作 [主要仪器设备] :微机 实验十六拼图游戏进行中时,单击右键会弹出最好成绩 实践地点:实验室 时间安排: 6学时 实践形式及方法:自行设计 [实验类型] :设计性试验 [目的要求] 1、读出相应级别最好记录文件中存放的数据 2、随机文件中记录文件的读写操作 [内容提要] 随机文件的相关操作 [主要仪器设备] :微机 实验十七拼图游戏中删除指定级别的玩家成绩记录文件 实践地点:实验室 时间安排: 4学时 实践形式及方法:自行设计 [实验类型] :设计性试验 [目的要求] 1、删除文件操作 2、MSGBOX操作提示语句 [内容提要] KILL语句和MSGBOX 语句 [主要仪器设备] :微机 实验十八拼图游戏中成绩排序及字段显示 实践地点:实验室 时间安排: 8学时 实践形式及方法:自行设计 [实验类型] :设计性试验 [目的要求] 1、可以对各级别用户成绩、用户最好成绩、按不同方式不同字段进行排序 2、可以按要示显示指定字段 [内容提要] 冒泡排序法的应用、复选框的应用、内部字符串函数的应用 [主要仪器设备] :微机 五、考核方法 一,实训目的: 加深对可视化编程技术基本知识的理解,掌握运用VB开发应用程序的基本方法及基本技巧。 二,实训时间: 2011年10月——2011年11月 三,实训方式: 上机操作 四,实训类容: 这次在杨立雄老师的带领下,利用VB开发工具与数据库SQL开发一个使用的小型管理信息系统。我选择了学籍管理系统。它的功能要求如下: 1,学籍信息输入:实现学生基本情况的输入。包括各个学生的情况,姓名,家庭号码,家庭住址,学号等各个信息。 2,学籍信息管理:本模块实现了信息的修改,删除,查询。还有个人信息。把信息统计这个繁琐的工作简单化,为学生信息的管理方面提高工作效率。 3,学籍信息查询:通过输入学号便可以查询到这个学生的全部信息,包括姓名,性别,出生年月,班级,入学日期,联系电话,奖励和成绩表都一目了然,很大的方便了教工们查询学生信息的过程。 4,统计查询:实现查询全班人数,男女生比例等。 五,实训体会: 这次实训,感觉既有趣又有些辛苦。这还是老师担心我们适应不了所以没教那么多知识,即使这样我们仍学到了比以前上学时更多的知识,而且这些知识有好多都是我们自己去领悟的到的。我也知道有人比我们更累,所以我自觉得还是挺好的。 经过这次的实训,我真真切切的感受到了计算机在我们生活中工作中的运用,这些软件,程序能让我们提高工作的效率,更直观更便捷切入主题。这次我们学习的是数据源的原理及应用的各方面知识,由老师带着我们不断操作。VB能有效的组织,管理和共享数据库信息,能把数据库信息与ADO结合在一起,实现数据库信息的共享。同时,VB概念清晰,简单易学,使用。是适合企业管理人员,数据库管理员使用的首选。我觉得学习了这个,对我们参加工作后制表,创建查询,数据分析和材料演示都有很大的作用,这样,我们能更清楚的了解信息并进行分析。当然,在学习的过程并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果都无法显示,而自己的计算机反应慢,根本检查不出来是哪里出了错。这时候,老师都会耐心的过来帮助我,我很感谢杨老师也很感谢学校能安排这么优秀的老师来教我们。 目前,油田开发井数据已达到数百万条并在日益增加,想要快速便捷的访问数据库并提取所需数据已经成为石油地质人员日常工作中必不可缺的环节。但是由于其自身对SQL语言不了解,无法直接对数据库进行查询和修改。因此,我们为其编制一个接口软件实现对Oracle数据库中开发数据的可视化操作。Visual Basic作为一种面向对象的通用程序设计语言,不仅具有简单易学、方便灵活和易于扩充的特点,而且提供了强大的数据库操作功能。ADO是以ActiveX技术为基础的数据存取方法,它使得客户端应用程序能够通过任何OLE DB访问和操作数据库服务器中的数据。通过ADO对象编程访问油田开发数据库给数据库的应用程序带来了很大的方便。 2 ADO技术简介 ADO是由微软公司开发的最新数据访问接口技术,建立在基于低层数据访问接口OLE DB(Objects Link and Embedding DataBase)技术上的数据对象。ADO技术对OLE DB进行了封装并实现了OLE DB的所有功能,从而避免了在VB应用程序中直接使用OLE DB接口,编程量大,细节多的缺点,简化了编程。 由于OLE DB是一种新的数据访问方法,它提供了一种统一、通用的访问数据源的低层接口,通过OLE DB可以实现对任意数据源的高性能数据访问,而并不局限于Jet、ISAM或关系数据源,它能够处理任何类型的数据,而不考虑数据的格式和存储方法,因此ADO通过OLE DB可以访问任何类型的数据源。 现在可用的数据访问接口有3种,即ADO(ActiveX Data Objects)、RDO(Remote Data Objects)和DAO(Data Access Objects)。ADO扩展了DAO和RDO所使用的对象模型,它可以在任何微软产品,如VB、VC、VJ等软件中使用,具有功能强、扩展性好、通用性好、效率高、占空间少等特点,其操作更加简单灵活。 ADO的对象包括:连接对象(Connection Object)、命令对象(Command Object)、记录集对象(Recordset Object)、字段对象(Field Object)、记录对象(Record Object)、参数对象(Parameter Object)、错误对象(Error Object)、属性对象(Property Object)和流对象(Stream Object)。其中最为重要的Connection、Command和Recordset。 3 ADO访问油田开发数据库的方法 ADO模型有编程访问和非编程访问两种方式,我们在编制应用接口时采用的是编程访问方式,下面进行详细的讨论。3.1编程访问方式 1)引用ADO对象库,操作为:“工程”→“引用”→“Microsoft ActiveX Data Objects 2.8 Library”。 2)编写代码连接数据库,打开数据源,建立数据集。油田上通用的数据库类型为Oracle数据库。 Dim cn As New ADODB.Connection//建立Connection对象 Dim rst As New ADODB.Recordset//建立数据库连接对象 Dim Sql As String//定义SQL语句 Dim oratblname As String//定义数据库表名称 Set cn=New ADODB.Connection//初始化连接对象cn.ConnectionString="provider=msdaora.1;user id="+username+";password="+password+";data source="+server+""//建立与oracle的连接cn.Open Set rst=New ADODB.Connection//初始化记录集对象 Sql="select*from"+oratblname//SQL语句,查询某表的全部内容Rst.CursorLocation=adUseClientRst.Open Sql,cn adOpenStatic,adLockPessimistic//执行SQL语句并建立记录集 3)显示记录集内容。 利用DataGrid控件可以显示记录集的内容。 Set DataGrid1.DataSource=Rst 4)将记录集导出为Excel文件。 为了方便地质人员查看和操作数据库,可以将数据库中的表导出为Excel文件,对Excel表的数据进行修改后,再导入数据库就可以完成数据的加载和修改。下面着重介绍如何将在数据库中查询出的记录集导出为Excel表。 使用DataGrid控件的Columns集合的Count属性和Recordset对象的RecordCount属性,可以决定控件中行和列的数目。选择一个单元格,则ColIndex属性被设置,也就是选择了DataGrid对象的Columns集合中的一个Column对象。Column对象的Text和Value属性引用当前单元格的内容。 Dim irow As Integer//定义irow为Excel表的行数 Dim icol As Integer//定义icol为Excel表的列数 Dim xlApp As Excel.Application//定义xlApp为Excel应用程序对象变量 Dim xlBook As Excel.Workbook//定义xlApp为Excel工作簿对象变量 Dim xlSheet As Excel.Worksheet//定义xlApp为Excel工作表对象变量Set xlApp=CreateObject("Excel.Application")//创建新的Excel应用程序 Set xlBook=xlApp.Workbooks.Add//初始化工作薄 Set xlSheet=xlBook.Worksheets(1)//初始化工作表 If MsgBox("您真的要将资料导出到EXCEL中吗?",vbExclamation+vbYesNo,"提示")=vbYes Then For icol=0 To Rst.Fields.Count–1//通过循环将数据表的列名赋值给Excel表第一行 xlSheet.Cells(1,icol+1)=Rst.Fields(icol).Name Next icol 通过记录集的行和列的双循环,将数据集的每一项内容赋值给Excel表项 For irow=1 To Rst.RecordCount For icol=1 To Rst.Fields.Count xlSheet.Cells(irow+1,icol).Value=Rst.Fields(icol-1) Next icol Rst.MoveNext Next irow xlApp.Visible=True//显示Excel表 Else End If 5)程序退出时,释放所有对象所占用的内存空间。 Private Sub Form_Terminate() Set cn=Nothing Set rst=Nothing Set xlApp=Nothing Set xlBook=Nothing Set xlSheet=Nothing End Sub 4 结束语 在VB中利用ADO对象直接编程来访问各种类型数据库的方法体现了ADO功能强、易于使用、访问灵活的特点。此外,ADO技术的优越性还体现在扩展性好、应用范围广、占用空间少等方面。随着信息化时代的不断深入,信息处理和信息共享变得越来越重要,数据访问技术对于信息系统也就显得尤为重要,本文介绍了在VB编程环境下,利用ADO的编程访问方式查询并导出数据表内容的方法和步骤,不仅为非计算机专业人员操作数据库提供了便利,还提高了数据访问速度。 摘要:介绍了ADO技术和VB中利用ADO的方式访问数据库的优点,并结合油田开发数据库的实例描述了利用ADO访问Oracle数据库的技术和方法,指出掌握ADO访问数据库的方式对开发数据库程序的重要性和便利性。 关键词:VB,ADO,Oracle,油田,数据库访问 参考文献 [1]莫礼平,张兆海.VB中基于ADO的数据库访问方法[J].电脑开发与应用,2004,17(6):33-34. [2]陈万华,曹争.VisualBasic中两种ADO数据库访问技术的比较[J].微机发展,2003,13(6):53-54. [3]张宗飞.VB中基于ADO的数据库访问技术分析及应用[J].计算机与数字工程,2008,36(3):53-56. [4]周欢怀.用VB操作Excel文件[J].电脑学习,2004,4(2):55. [5]史运平.基于Visual Basic6.0的ADO数据库访问技术[J].计算机与信息技术,2007(22):63-64. [6]李凌博.基于VisualBasic6.0的ADO数据库编程技术[J].平顶山师专学报,2004,19(2):63-64. (1)以下叙述中错误的是 a)visual basic 是事件驱动型可视化编程工具 b)visual basic应用程序不具有明显的开始和结束语句 c)visual basic工具箱中的所有控件都具有宽度(width)和高度(height)属性 d)visual basic中控件的某些属性只能在运行时设置 (2)以下叙述中错误的是 a)在工程资源管理器窗口中只能包含一个工程文件及属于该工程的其他文件 b)以.bas为扩展名的文件是标准模块文件 c)窗体文件包含该窗体及其控件的属性 d)一个工程中可以含有多个标准模块文件 (3)以下叙述中错误的是 a)双击鼠标可以触发dblclick事件 b)窗体或控件的事件的名称可以由编程人员确定 c)移动鼠标时,会触发mousemove事件 d)控件的名称可以由编程人员设定 (4)以下不属于visual basic系统的文件类型是 a).frm b).bat c).vbg d).vbp (5)以下叙述中错误的是 a)打开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件 b)保存visual basic程序时,应分别保存窗体文件及工程文件 c)visual basic应用程序只能以解释方式执行 d)事件可以由用户引发,也可以由系统引发 (5)以下叙述中错误的是 a)打开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件 b)保存visual basic程序时,应分别保存窗体文件及工程文件 c)visual basic应用程序只能以解释方式执行 d)事件可以由用户引发,也可以由系统引发 (6)以下能正确定义数据类型telbook的代码是 a)type telbook b)type telbook name as string*10 name as string*10 telnum as integer telnum as integer end type end telbook c)type telbookd)typedef telbook name string*10 name string*10 telnum integer telnum integer end type telbook end type (7)以下声明语句中错误的是 a)const var1=123 b)dim var2 = 'abc' c)defint a-z d)static var3 as integer (8)设窗体上有一个列表框控件list1,且其中含有若干列表项。则以下能表示当前被选中的列表项内容的是 a)list1.list b)list1.listindex c)list1.index d)list1. text (9)程序运行后,在窗体上单击鼠标,此时窗体不会接收到的事件是 a)mousedown b)mouseup c)load d)click (10)设a=10,b=5,c=1,执行语句print a >b >c后,窗体上显示的是 a)true b)false c)1 d)出错信息 (11)如果要改变窗体的标题,则需要设置的属性是 a)caption b)name c)backcolor d)borderstyle (12)以下能判断是否到达文件尾的函数是 a)bof b)loc c)lof d)eof (13)如果一个工程含有多个窗体及标准模块,则以下叙述中错误的是 a)如果工程中含有sub main过程,则程序一定首先执行该过程 b)不能把标准模块设置为启动模块 c)用hide方法只是隐藏一个窗体,不能从内存中清除该窗体 d)任何时刻最多只有一个窗体是活动窗体 (14)窗体的mousedown事件过程 form_mousedown (button as integer, shift as integer, x as single, y as single) 有4个参数,关于这些参数,正确的描述是 a)通过button参数判定当前按下的是哪一个鼠标键 b)shift参数只能用来确定是否按下shift键 c)shift参数只能用来确定是否按下alt和ctrl键 d)参数x,y用来设置鼠标当前位置的坐标 (15)设组合框combo1中有3个项目,则以下能删除最后一项的语句是 a)combo1.removeitem text b)combo1.removeitem 2 c)combo1.removeitem 3 d)combo1.removeitem combo1.listcount (16)以下关于焦点的叙述中,错误的是 a)如果文本框的tabstop属性为false,则不能接收从键盘上输入的数据 b)当文本框失去焦点时,触发lostfocus事件 c)当文本框的enabled属性为false时,其tab顺序不起作用 d)可以用tabindex属性改变tab顺序 (17)如果要在菜单中添加一个分隔线,则应将其caption属性设置为 a)= b)* c)& d)- (18)执行语句open “tel.dat” for random as #1 len = 50后,对文件tel.dat中的数据能够执行的操作是 a)只能写,不能读 b)只能读,不能写 c)既可以读,也可以写 d)不能读,不能写 (19)在窗体上画一个名称为command1的命令按钮和两个名称分别为text1、text2的文本框,然后编写如下事件过程: private sub command1_click() n = text1.text select case n case 1 to 20 x = 10 case 2, 4, 6 x = 20 case is < 10 x = 30 case 10 x = 40 end select text2.text = x end sub 程序运行后,如果在文本框text1中输入10,然后单击命令按钮,则在text2中显示的内容是 a)10 b)20 c)30 d)40 (20)设有以下循环结构 do 循环体 loop while <条件> 则以下叙述中错误的是 a)若“条件”是一个为0的常数,则一次也不执行循环体 b)“条件”可以是关系表达式、逻辑表达式或常数 c)循环体中可以使用exit do语句 d)如果“条件”总是为true,则不停地执行循环体 (21)在窗体上画一个名称为command1的命令按钮,然后编写如下事件过程: private sub command1_click() dim num as integer num = 1 do until num >6 print num; num = num + 2.4 loop end sub 程序运行后,单击命令按钮,则窗体上显示的内容是 a)1 3.4 5.8 b)1 3 5 c)1 4 7 d)无数据输出 (22)在窗体上画一个名称为command1的命令按钮,然后编写如下事件过程: private sub command1_click() dim a as integer, s as integer a = 8 s = 1 do s = s + a a = a-1 loop while a <= 0 print s; a end sub 程序运行后,单击命令按钮,则窗体上显示的内容是 a) 7 9 b) 34 0 c) 9 7 d)死循环 (23)设有如下通用过程: public function f(x as integer) dim y as integer x = 20 y = 2 f = x * y end function 在窗体上画一个名称为command1的命令按钮,然后编写如下事件过程: private sub command1_click() static x as integer x = 10 y=5 y = f(x) print x; y end sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是 a)10 5 b)20 5 c)20 40 d)10 40 (24)设有如下通用过程: public sub fun(a(), byval x as integer) for i = 1 to 5 x = x + a(i) next end sub 在窗体上画一个名称为text1的文本框和一个名称为command1的命令按钮,然后编写如下的事件过程: private sub command1_click() dim arr(5) as variant for i = 1 to 5 arr(i) = i next n = 10 call fun(arr(), n) text1.text = n end sub 程序运行后,单击命令按钮,则在文本框中显示的内容是 a)10 b)15 c)25 d)24 (25)在窗体上画一个名称为command1的命令按钮,然后编写如下代码: option base 1 private sub command1_click() d = 0 c = 10 x = array(10, 12, 21, 32, 24) for i = 1 to 5 if x(i) >c then d = d + x(i) c = x(i) else d = d-c end if next i print d end sub 程序运行后,如果单击命令按钮,则在窗体上输出的内容为 a)89 b)99 c)23 d)77 (26)在窗体上画两个滚动条,名称分别为hscroll1 、hscroll2;六个标签,名称分别为label1、label2、label3、label4、label5、label6,其中标签label 4~ label6分别显示“a”、“b”、“a*b”等文字信息,标签label1、label2分别显示其右侧的滚动条的数值,label3 显示a*b的计算结果。如图所示。当移动滚动框时,在相应的标签中显示滚动条的值。当单击命令按钮“计算”时,对标签label1、label2中显示的两个值求积,并将结果显示在label3中。以下不能实现上述功能的事件过程是 a)private sub command1_click() label3.caption = str(val(label1.caption )*val( label2.caption)) end sub b)private sub command1_click() label3.caption = hscroll1.value * hscroll2.value end sub c)private sub command1_click() label3.caption = hscroll1 * hscroll2 end sub d)private sub command1_click() label3.caption = hscroll1. text * hscroll2.text end sub (27)在窗体上画一个名称为command1的命令按钮,然后编写如下事件过程: private sub command1_click() for n = 1 to 20 if n mod 3 0 then m = m + n 3 next n print n end sub 程序运行后,如果单击命令按钮,则窗体上显示的内容是 a)15 b)18 c)21 d)24 (28)在窗体上画一个名称为text1的文本框,并编写如下程序: private sub form_load() show text1.text = “” text1.setfocus end sub private sub form_mouseup(button as integer, shift as integer, x as single, y as single) print “程序设计” end sub private sub text1_keydown(keycode as integer, shift as integer) print “visual basic”; end sub 程序运行后,如果按“a”键,然后单击窗体,则在窗体上显示的内容是 a)visual basic b)程序设计 c)a程序设计 d)visual basic程序设计 (29)设有如下程序: private sub command1_click() dim sum as double, x as double sum = 0 n = 0 for i = 1 to 5 x = n / i n = n + 1 sum = sum + x next end sub 该程序通过for循环计算一个表达式的值,这个表达式是 a)1+1/2+ 2/3+3/4+4/5 b)1+1/2+2/3+3/4 c)1/2+2/3+3/4+4/5 d)1+1/2+1/3+1/4+1/5 (30)以下有关数组定义的语句序列中,错误的是 a) static arr1(3) arr1(1) = 100 arr1(2) = “hello” arr1(3) = 123.45 b)dim arr2() as integer dim size as integer private sub command2_click() size = inputbox(“输入:”) redim arr2(size) ...... end sub c)option base 1 private sub command3_click() dim arr3(3) as integer ...... end sub d)dim n as integer private sub command4_click() dim arr4(n) as integer ...... end sub 二、填空题(每空2分,共30分) (1)执行下面的程序段后,i的值为 〖1〗 ,s的值为 〖2〗 。 s = 2 for i = 3.2 to 4.9 step 0.8 s = s + 1 next i (2)把窗体的keypreview属性设置为true,然后编写如下两个事件过程: private sub form_keydown(keycode as integer, shift as integer) print chr(keycode) end sub private sub form_keypress(keyascii as integer) print chr(keyascii) end sub 程序运行后,如果直接按键盘上的“a”键(即不按住shift键),则在窗体上输出的字符分别是 〖3〗 和 〖4〗 。 (3)在窗体上画一个标签(名称为label1)和一个计时器(名称为timer1),然后编写如下几个事件过程: private sub form_load() timer1.enabled = false timer1.interval = 〖5〗 end sub private sub form_click() timer1.enabled = 〖6〗 end sub private sub timer1_timer() label1.caption = 〖7〗 end sub 程序运行后,单击窗体,将在标签中显示当前时间,每隔1秒钟变换一次(见图)。请填空。 (4)在窗体上画一个文本框、一个标签和一个命令按钮,其名称分别为text1、label1和command1,然后编写如下两个事件过程: private sub command1_click() s$ = inputbox(“请输入一个字符串”) text1.text = s$ end sub private sub text1_change() label1.caption = ucase(mid(text1.text, 7)) end sub 程序运行后,单击命令按钮,将显示一个输入对话框,如果在该对话框中输入字符串“visualbasic”,则在标签中显示的内容是 〖8〗 。 (5)在窗体上画一个列表框、一个命令按钮和一个标签,其名称分别为list1、command1和label1,通过属性窗口把列表框中的项目设置为:“第一个项目”、“第二个项目”、“第三个项目”、“第四个项目”。程序运行后,在列表框中选择一个项目,然后单击命令按钮,即可将所选择的项目删除,并在标签中显示列表框当前的项目数,运行情况如图所示(选择“第三个项目”的情况)。下面是实现上述功能的程序,请填空。 private sub command1_click() if list1.listindex >= 〖9〗 then list1.removeitem 〖10〗 label1.caption = 〖11〗 else msgbox “请选择要删除的项目” end if end sub (6)设有程序: option base 1 private sub command1_click() dim arr1, max as integer arr1 = array(12, 435, 76, 24, 78, 54, 866, 43) (资料来源:东方教育网 〖12〗 = arr1(1) for i = 1 to 8 if arr1(i) >max then 〖13〗 next i print “最大值是: ”; max end sub 以上程序的功能是:用array函数建立一个含有8个元素的数组,然后查找并输出该数组中元素的最大值。请填空。 (7)以下程序的功能是:把当前目录下的顺序文件smtext1.txt的内容读入内存,并在文本框text1中显示出来。请填空。 private sub command1_click() dim indata as string text1.text = “” open “.smtext1.txt” 〖14〗 as #1 do while 〖15〗 input #1, indata text1.text = text1.text & indata loop close #1 【vb语言及程序开发环境】推荐阅读: 用VB编写登录程序VB07-24 vb程序设计作业二10-11 vb程序设计课介绍10-18 vb程序设计实验报告10-29 vb程序设计课程介绍10-31 用VB编写定时关闭计算机的程序VB10-19 c语言递归程序11-06 c语言设计程序11-11 c语言源程序10-03 汉诺塔c语言程序07-15用VB编写开机记录程序VB 篇5
vb语言及程序开发环境 篇6
vb语言及程序开发环境 篇7
VB程序设计教学目标 篇8
VB程序设计实训报告 篇9
vb语言及程序开发环境 篇10
vb语言及程序开发环境 篇11