VB程序设计计算1+3+5+…+9999
vb程序设计常用算法
Exit For '结束循环
End if
End if
a(imin) = temp
Next I
2.冒泡法排序(升序)
基本思想:(将相邻两个数比较,小的调到前头)
1)有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,经n-1次
两两相邻比较后,最大的数已"沉底",放在最后一个位置,小数上升"浮起";
2)第二趟对余下的n-1个数(最大的数已"沉底")按上法比较,经n-2次两两相邻比较后得
,如果都除不尽,m就是素数,否则就不是。(可用以下程序段实现)
m =val( InputBox("请输入一个数"))
For i=2 To int(sqr(m))
If m Mod i = 0 Then Exit For
Next i
二、求两个整数的最大公约数、最小公倍数
分析:求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数)
(1) 对于已知两数m,n,使得m>n;
(2) m除以n得余数r;
(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);
Next n1
五、排序问题
1.选择法排序(升序)
基本思想:
1)对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位置;
2)除第1 个数外,其余n-1个数中选最小的数,与第2个数交换位置;
3)依次类推,选择了n-1次后,这个数列已按升序排列。
VB程序设计基础教程
第一章 Visual Basic入门
1.1 程序和程序设计语言
1.2 类、对象、属性、方法与事件
1.3 Visual Basic简介 1.4 Visual Basic基础 1.5 Visual Basic应用程序的结构
08:14
第二章 Visual Basic的代码编程基础
2.1 代码基础
2.2 数据类型及运算 2.3 顺序结构程序设计 2.4 选择结构程序设计 2.5 循环结构程序设计 2.6 数组
08:14
机器语言 可以被计算机直接理解和执行、难记忆、不 低 级 (面向机器的语言) 直观、难理解、开发周期长、对用户要求高、 程序可移植性差 语 汇编语言 比机器语言更易于理解、编制与修改,但不 言 同指令集的CPU的汇编语言也不尽相同,需 要汇编成机器语言才能被计算机直接执行 可移植性好、语句功能强、编程效率高、解 高 面向过程语言 级 (FORTRAN、C、 放了程序员,需要详细描述解题过程 语 PASCAL、BASIC) 面向对象语言 把要处理的数据和处理数据的算法“封装” 言 (C++、JAVA、 Visual Basic、 VC++) 在一起,用于抽象地描述现实世界的对象。 代码可重用性高、编程效率高、执行过程与 面向过程的应用程序不同——事件驱动,每 次执行的顺序可能不同
MSDN
08:14
1.3 Visual Basic 基础
启动VB
方法一:通过开始菜单 方法二:使用“资源管理器” 方法三:桌面快捷方式
VB的IDE
08:14
1.4 类、对象、属性、方法与事件
类——对象的模板,是对象的归纳与总 结。即把同属一个类的对象所具有的共 同特征的描述提取出来,作为一个概念 来研究
VB常用算法大全
VB常用算法大全在VB中实现常用算法是程序开发中非常常见的任务之一、下面将介绍几个常用的算法以及它们在VB中的实现方式。
1.冒泡排序算法:冒泡排序是一种简单直观的排序算法,它通过交换相邻元素来排序。
具体实现如下:```vbSub BubbleSort(arr( As Integer)Dim i As Integer, j As IntegerDim temp As IntegerFor i = LBound(arr) To UBound(arr) - 1For j = i + 1 To UBound(arr)If arr(j) < arr(i) Thentemp = arr(j)arr(j) = arr(i)arr(i) = tempEnd IfNext jNext iEnd Sub```2.快速排序算法:快速排序是一种高效的排序算法,它通过选择一个基准元素并将数组分为两部分来排序。
具体实现如下:```vbSub QuickSort(arr( As Integer, low As Integer, high As Integer)Dim i As Integer, j As IntegerDim pivot As Integer, temp As Integeri = lowj = highpivot = arr((low + high) / 2)While i <= jWhile arr(i) < pivoti=i+1WendWhile arr(j) > pivotj=j-1WendIf i <= j Thentemp = arr(i)arr(i) = arr(j)arr(j) = tempi=i+1j=j-1End IfWendIf low < j Then QuickSort arr, low, j End IfIf i < high Then QuickSort arr, i, high End IfEnd Sub```3.查找算法之二分查找:二分查找算法是一种在有序数组中查找指定元素的算法。
VB常用算法总结
VB常用算法总结VB是一种基于Visual Basic语言的编程语言,广泛应用于Windows 操作系统环境下的软件开发。
在VB中,算法的选择和使用对于解决问题是至关重要的。
本文将对VB常用算法进行总结,希望能给读者提供一些编程的指导和参考。
一、排序算法排序算法是一类重要的算法,用于将一组无序的数据按照一定的规则进行排序。
VB中常用的排序算法有冒泡排序、选择排序、插入排序、快速排序等。
1.冒泡排序:从序列的第一个元素开始,依次比较相邻的两个元素,如果它们的顺序错误则交换位置,直到序列被完全排序。
2.选择排序:依次选择未排序序列中的最小元素,将其放到已排序序列的末尾。
3.插入排序:将一个记录插入到已排序好的序列中,从而得到一个新的、记录数增1的有序序列。
4.快速排序:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,然后分别对这两部分记录继续进行排序,直到整个序列有序。
二、查找算法查找算法用于在一组有序或无序的数据中寻找指定的元素。
VB中常用的查找算法有线性查找、二分查找、哈希查找等。
1.线性查找:从数据的开头开始,逐个比较每一个元素,直到找到目标元素。
2.二分查找:在有序序列中,每次将待查元素与中间位置的元素比较,如果相等则找到,否则将待查元素与中间位置的元素比较,直到找到目标元素或序列为空。
3.哈希查找:通过哈希函数将关键字映射到一个定长的数组上,当需要查找时,根据关键字计算出哈希地址,从数组中访问对应位置的元素。
三、图算法图算法主要用于解决图结构相关的问题,如最短路径、拓扑排序等。
VB中常用的图算法有深度优先、广度优先、Dijkstra算法等。
1.深度优先:从起始节点开始,递归地访问子节点,直到无法继续访问为止,然后回溯到上一级节点,继续访问其尚未被访问的子节点。
2.广度优先:从起始节点开始,依次访问其所有相邻节点,直到访问到目标节点为止。
3. Dijkstra算法:求解带权有向图中单源最短路径问题,通过使用一个优先队列来实现。
VB程序设计题
一.[题目] 编一程序,显示所有的水仙花数,所谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。
例如,153是水仙花数,因为153=13+53+33【编程要求】1、单击"计算"按钮,则将计算结果显示在多行文本框中Text1中;单击"结束"按钮,程序停止运行。
2、界面应与给出的参考界面相似,不得增加或减少控件。
3、求出范围100-999之间的水仙花数【参考代码】Text1.Text = ""For i = 100 To 999a = i \ 100c = i Mod 10b = i \ 10 Mod 10If i = a ^ 3 + b ^ 3 + c ^ 3 ThenText1.Text = Text1.Text & i & vbCrLfEnd IfNext i二.[题目] 输入两个数,求最大公约数和最小公倍数。
[编程要求]1、输入数值后,按"计算"按钮,计算出最大公约数和最小公倍数按"清除"按钮,则将所有文本框中的内容清空,并将光标焦点指向text1。
按"结束"按钮,结束程序的执行。
2、程序中有一个过程,该过程的功能是求两个数的最大公约数。
【参考代码】Dim k As IntegerDok = m Mod nm = nn = kLoop While (k <> 0)gcd = mNext i三.输入一个正整数k,将k的各位数字分离后,累加求和。
程序界面如下图所示。
【编程要求】1、单击"计算"按钮,将结果在文本框中显示出来。
2、单击"清除"按钮,将二个文本框中的内容清空;单击"结束"按钮,程序停止运行。
3、界面应与给出的参考界面相似,不得增加或减少控件;4、运行程序,并输入123456检验。
VB算法
VB常用算法(一)累加和连乘关键词:算法累加连乘1、算法说明累加形式:V=V+e连乘形式:V=V*e其中:V是变量,e是递增表达式。
累加和连乘一般通过循环结构来实现。
注意:需在执行循环体前对变量V赋初值。
一般的,累加时置初值0;连乘时置初值为1。
举例求N!的结果。
Private Sub Command1_Click()Dim n%, i%, s&n = Val(InputBox("输入n"))s = 1For i = 1 To ns = s * iNext iPrint sEnd Sub错误的写法:Private Sub Command1_Click()Dim n%, i%, s&n = Val(InputBox("输入n"))For i = 1 To ns = 1 …赋初值语句位置不对!s = s * iNext iPrint s …输出s的值为n,而不是n!End Sub应用举例根据下列公式,求自然对数e的的近似值。
要求:误差小于0.00001Private Sub Command1_Click()Dim i%, n&, t!, e!e = 2i = 1t = 1Do While t > 0.00001i = i + 1t = t / ie = e + tLoopPrint "计算了"; i; "项目和是:"; ePrint Exp(1) …与上句输出值进行对比以证明算法的正确性End Sub解题技巧1) 由于这类题目往往是根据精度要求来求值,因此我们不能预知具体循环次数,所以这类题目一般用Do 循环,很少用For循环。
设定循环变量和通项变量,注意各变量的初值;2) 分解通项表达式中各因子,并分别将各因子用循环变量表示;3) 如果步骤2中有的因子比较复杂,难以直接用变量表示,此时可以考虑使用Function过程;4) 根据步骤1、2、3,写出通项表达式;5) 根据精度要求(往往是通项小于10负多少次方这样一个关系表达式),写出一条满足精度要求后跳出循环的语句。
第一章 vb教程
字符串型(String,类型符$)
用于存放字符型数据,字符是由ASCII字符和 汉字组成,字符数据必须用双引号括起来。 如: "Visual Basic" , " VB程序设计" , " 123 " 等都表示字符型数据。 说明: 1.双引号为分界符,输入和输出时并不显示; 2.字符串中包含字符的个数称为字符串长度; 3.长度为零的字符串称为空字符串; 4.字符串中包含的字符区分大小写。 5.若字符串中包含字符“″”,可以将双引号 连写两次,例如应电"601 " 。 "应电""601"""
从对象入手,在应用程序中放入一个个对象,程序员所 要作的工作只是修改对象的一些属性,调用对象的一些方法实 现某些功能,或者在事件中编写少量的代码实现某些特殊的功 能
可视化的含义:控件可视;变成环境可视 事件驱动机制
在事件驱动的程序中,是在响应不同的事件时执行 不同的代码,代码的执行由用户决定
开发应用程序的步骤
1991年,微软推出了Visual Basic1.0版。这在当时 引起了很大的轰动。许多专家把VB的出现当做是软件 开发史上的一个具有划时代意义的事件。其实,以我 们现在的目光来看,VB1.0的功能实在是太弱了。但在 当时,它是第一个“可视”的编程软件。这使得程序 员欣喜之极,都尝试在VB的平台上进行软件创作。微 软也不失时机地在四年内接连推出VB2.0,VB3.0,4.0 三个版本。并且从VB3.0开始,微软将ACCESS的数据库 驱动集成到了VB中,这使得VB的数据库编程能力大大 提高。从VB4.0开始,VB也引入了面向对象的程序设计 思想。VB功能强大,学习简单。而且,VB还引入了 “控件:的概念,使得大量已经编好的VB程序可以被 我们直接拿来使用,如今,VB已经有了6.0版。
vb中的时间格式 -回复
vb中的时间格式-回复VB中的时间格式在编程中,时间的处理是一个非常重要的功能,特别是在需要对日期、时间进行计算、比较、格式化等操作时。
Visual Basic (VB) 是一种广泛使用的编程语言,它提供了丰富的函数和格式选项来处理时间。
本文将向您介绍VB中的时间格式,并逐步详细回答相关问题。
一、VB中的时间数据类型在VB中,有两个主要的时间数据类型:Date和TimeSpan。
1. Date数据类型:用于表示一个日期和时间的组合。
它可以存储从公元1年1月1日至公元9999年12月31日的任意日期和时间。
Date数据类型的默认格式为“yyyy-MM-dd HH:mm:ss”。
2. TimeSpan数据类型:用于表示时间间隔。
它可以存储以天、小时、分钟、秒和毫秒为单位的时间间隔。
TimeSpan数据类型的默认格式为“dd.hh:mm:ss.ffffff",其中dd表示天,hh表示小时,mm表示分钟,ss表示秒,ffffff表示毫秒。
二、VB中的时间格式化函数VB提供了许多内置的函数用于对时间进行格式化。
以下是常用的时间格式化函数:1. Format函数:用于将时间值转换为指定的格式字符串。
例如,可以使用以下代码将日期格式化为“yyyy-MM-dd”格式:vbDim dt As Date = #2022-01-01#Dim formattedDate As String = Format(dt, "yyyy-MM-dd") Console.WriteLine(formattedDate) ' 输出:2022-01-012. ToString函数:用于将时间值转换为字符串。
它可以接受一个格式字符串作为参数。
例如,可以使用以下代码将日期格式化为“yyyy-MM-dd”格式:vbDim dt As Date = #2022-01-01#Dim formattedDate As String = dt.ToString("yyyy-MM-dd") Console.WriteLine(formattedDate) ' 输出:2022-01-013. DateTime.Parse函数:用于将字符串转换为DateTime对象。
VB程序设计-九九乘法表
VB程序设计-九九乘法表(作者:草原飞狼 2014年5月31日)声明:仅供学习与交流使用,高手请飘过,谢谢!所有代码都是个人亲自编写并调试成功。
布局运行界面(1)运行界面(2)源代码如下:Private Sub Command1_Click()Rem 乘法表算法一Dim i, j As IntegerFor i = 1 To 9For j = 1 To iexpss = i & "*" & j & "=" & i * jForm1.Picture1.Print Tab((j - 1) * 8 + 1); '控制每个输出表达式的输出位置Form1.Picture1.Print expss;Next jForm1.Picture1.PrintNext iEnd SubPrivate Sub Command2_Click()Rem 乘法表算法二Dim i, j As IntegerFor i = 9 To 1 Step -1For j = 1 To iexpss = j & "*" & i & "=" & i * jForm1.Picture1.Print Tab((j - 1) * 10 + 1); '控制每个输出表达式的输出位置Form1.Picture1.Print expss;Next jForm1.Picture1.PrintNext iEnd SubPrivate Sub Command3_Click()Rem 清空Form1.Picture1.ClsEnd SubPrivate Sub Command4_Click()Rem 退出Dim int_msg As Integerint_msg = MsgBox("单击“是”退出程序,单击“否”返回程序!", vbYesNo + vbQuestion + vbDefaultButton1, "退出提示")If int_msg = vbYes ThenUnload MeEnd IfEnd SubPrivate Sub Form_Load()Rem 初始化With Picture1.FontName = "宋体".FontSize = 12.FontBold = True.ForeColor = &H80FF&End WithEnd Sub。
VB程序设计的常用算法
VB程序设计的常用算法算法(Algorithm):计算机解题的基本思想方法和步骤。
算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。
通常使用自然语言、结构化流程图、伪代码等来描述算法。
然语言、结构化流程图、伪代码等来描述算法。
一、计数、求和、求阶乘等简单算法此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。
计数、和、阶乘的变量的初值。
例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。
的数的个数并打印出来。
本题使用数组来处理,用数组a(1 to 100)存放产生数组x(1 to 10)来存放个位上的个随机整数,数组的确100个随机整数,数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。
即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,……个位是0的个数存放在x(10)。
过程中,代码如下: 将程序编写在一个GetTJput过程中,代码如下:Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来个打印出来For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来中,将统计结果打印出来For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字If p = 0 Then p = 10 x(p) = x(p) + 1 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数分析:求最大公约数的算法思想:((最小公倍数=两个分析:求最大公约数的算法思想:)最大公约数)整数之积/最大公约数(1) 对于已知两数m,n,使得m>n;(2) m除以n得余数r;(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);(4) m←n,n←r,再重复执行(2)。
vb加法计算程序编写
vb加法计算程序编写
在VB中编写加法计算程序,可以遵循以下步骤:
1. 创建一个新的VB窗体应用程序,命名为“Addition Calculator”。
2. 在窗体中添加以下控件:
- 两个文本框,用于输入两个加数。
- 一个标签,用于显示计算结果。
- 一个按钮,用于触发计算操作。
3. 为按钮添加一个点击事件处理程序,以执行加法计算。
代码
示例:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim num1, num2, result As Double
num1 = CDbl(TextBox1.Text)
num2 = CDbl(TextBox2.Text)
result = num1 + num2
Label1.Text = '计算结果:' & result
End Sub
4. 运行程序并输入两个加数,点击计算按钮,即可在标签中看
到计算结果。
注意事项:
- 在进行加法计算前,需要将输入的文本框内容转换为数值类型。
这里使用CDbl函数。
- 计算结果也需要将类型转换为字符串类型,以便在标签中显示。
这里使用&连接符将字符串连接起来。
- 在实际开发中,还需要进行输入验证,以确保输入的内容是合法的数值。
vb程序游戏设计
摘要VisualBasic 6.0 是一款可视化的,面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发windows 环境下的种类应用程序。
它简单易学,效率高,且功能强大,可以与Windows专业开发工具相媲美。
在VisualBasic环境下,利用事出有因件驱动的编程机制,新颖易用的可视化工具,使用Windows内部的广泛应用程序接口(API)函数,运用动态链接库(DLL),对象的链接与嵌入(OLE),开放式数据连接(ODBC)等技术,可以高效,可以快速地开发Windows环境不功能强大,图形界面丰富的程序。
为了适应信息化时代的需求,各高校对大多数专业都开设了一定的计算机语言课程,有的讲授VisualBasic语言。
VisualBasic以其语法简单,可视化设计,功能强大,为许多学校计算机语言课程的首选语言。
目前国内各出版了大量的VisualBasic语言教程,它们都具有同样的特点:介绍语言的语法等基本知识,再辅助一些简单的示例。
学生通过学习,可能能够考一个不错的成绩,但所掌握的仍然是一些支离破碎的知识,不能将所有的知识融会贯通,遇到具体的程序设计,还是无从下手。
这次我要做的是计算器,通过这样程序设计,我们可以学到好多关于VB语言的使方法,熟悉VisualBasic 6.0的运行环境,快速掌握VB语言!小小的计算器是我们学VB初级语言的最好课程。
目录一功能描述 (3)1.功能 (3)2. 实验目的 (3)二概要设计 (4)1.界面设计 (4)2.程序运行 (5)三设计结果 (6)四程序源代码 (7)五设计总结 (40)六参考文献 (41)一功能描述1.功能可以简单进行简单的坦克大战游戏,从而实现坦克战争的模拟。
2.实验目的这次我要做的是坦克大战小游戏,通过这样程序设计,我们可以学到好多关于VB语言的使方法,熟悉VisualBasic 6.0的运行环境,快速掌握VB语言!二概要设计1.界面设计2.程序运行:三、设计结果生成可执行程序运行结果四、程序源代码:Dim CChange As BooleanDim OldX As LongDim OldY As LongDim WwW As LongDim WwW2 As LongDim HP1 As LongDim HP2 As LongPrivate Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As LongPrivate Const SND_ASYNC = &H1Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As IntegerDim L(99999) As erfDim L2(99999) As erfDim W(9999) As erf2Dim w2(9999) As erf2Dim P(9999) As erf2 Dim P2(9999) As erf2 Private Type PosX As IntegerY As Integer End TypePrivate Type erfY As IntegerColor As LongEnd TypePrivate Type erf2 Grow As Integer Damage As Integer X As IntegerY As IntegerOldX As Integer OldY As IntegerXF As IntegerYF As Integer Color As Longtype As Longtag As Longactive As BooleanSize As LongLife As IntegerGrav As IntegerEnd TypeDim Movement As IntegerDim Turn As BooleanPrivate Sub Command1_Click()Turn = TrueEnd SubPrivate Sub Form_Load()Dim Temp As Integer'Picks which layoutTemp = MsgBox("Grass - Dirt - Mars", vbYesNoCancel, "?") If Temp = 7 ThenMe.BackColor = RGB(40, 40, 40)End IfIf Temp = 2 ThenMe.BackColor = RGB(100, 0, 0)End If'Sets defaultsMovement = 50HP1 = 100HP2 = 100Me.Height = Screen.HeightMe.Width = Screen.WidthTurn = TrueMe.ClsMe.Picture = NothingMe.RefreshMe.AutoRedraw = True'Sets wheel positionsFor i = 0 To 3W(i).XF = 0W(i).YF = 0W(i).X = i * 10 + 100W(i).Y = 2W(i).Color = RGB(125, 125, 125)w2(i).XF = 0w2(i).YF = 0w2(i).X = i * 10 + Me.ScaleWidth - 200w2(i).Y = 2w2(i).Color = RGB(125, 125, 125)NextL(0).Y = Me.ScaleHeight / 4 * 3Randomize'Me.Caption = Temp (DEBUG)'Sets up groundFor i = 1 To Me.WidthIf Temp = 6 ThenL(i).Y = L(i - 1).Y + Int(Rnd * 4) - Int(Rnd * 4)L(i).Color = RGB(0, 160 + Int(Rnd * 25), 0)ElseIf Temp = 7 ThenL(i).Y = L(i - 1).Y + Int(Rnd * 6) - Int(Rnd * 6)L(i).Color = RGB(30 + Int(Rnd * 25) - Int(Rnd * 25), 30 + Int(Rnd * 25) - Int(Rnd * 25), 0) ElseIf Temp = 2 ThenL(i).Y = L(i - 1).Y + Int(Rnd * 8) - Int(Rnd * 8)L(i).Color = RGB(160 + Int(Rnd * 25), 0, 0)End IfEnd IfEnd IfNextFor i = 0 To 10If Temp = 6 Thenff = Int(Rnd * Screen.Width)Boom Int(ff), 0, 10, 15, 0, 0, 1End IfIf Temp = 7 Thenff = Int(Rnd * Screen.Width)Boom Int(ff), 0, 20, 20, 0, 0, 1End IfIf Temp = 2 Thenff = Int(Rnd * Screen.Width)Boom Int(ff), 0, 30, 30, 0, 0, 1ff = Int(Rnd * Screen.Width)Boom Int(ff), 0, 30, 30, 0, 0, 1End IfNextFor i = 2 To Me.Width - 8 Step 1L(i).Y = (L(i - 1).Y + L(i).Y + L(i + 1).Y + L(i - 2).Y + L(i + 2).Y) / 5NextMe.AutoRedraw = TrueFor i = 2 To Me.WidthMe.DrawWidth = 3Me.Line (i - 2, L(i).Y)-(i - 2, Me.ScaleHeight), L(i).ColorNextMe.RefreshMe.AutoRedraw = FalseTimer1.Enabled = TrueEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Movement = 50Turn = Not TurnIf Turn = True ThenShape1.Visible = TrueElseShape2.Visible = TrueEnd IfLine1.Visible = TruelblStrength.Visible = TrueOldX = W(0).X 'xOldY = W(0).Y 'yIf Turn = True ThenLine1.X1 = W(0).X + 20Line1.Y1 = W(0).Y - 30ElseLine1.X1 = w2(0).X + 20Line1.Y1 = w2(0).Y - 30End IfLine1.X2 = XLine1.Y2 = YIf Turn = True ThenShape1.Left = Line1.X2 - Shape1.Width / 2 Shape1.Top = Line1.Y2 - Shape1.Height / 2 ElseShape2.Left = Line1.X2 - Shape1.Width / 2 Shape2.Top = Line1.Y2 - Shape1.Height / 2 End IfDim Pos1 As PosDim Pos2 As PosPos1.X = Line1.X2Pos2.X = Line1.X1Pos1.Y = Line1.Y2Pos2.Y = Line1.Y1lblStrength.Move Shape1.Left, Shape1.Top - lblStrength.HeightlblStrength.Caption = "Strength: " & ((Abs(Line1.X1 - Line1.X2) + Abs(Line1.Y1 - Line1.Y2)) / 2 & "| Angle " & GetAngle(Pos1, Pos2))End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button <> 0 ThenLine1.X2 = XLine1.Y2 = YIf 1 = 1 Then '((Abs(Line1.X1 - Line1.X2) + Abs(Line1.Y1 - Line1.Y2)) / 2) < 150 ThenIf Turn = True ThenLine1.X1 = W(0).X + 20Line1.Y1 = W(0).Y - 30ElseLine1.X1 = w2(0).X + 20Line1.Y1 = w2(0).Y - 30End IfLine1.X2 = XLine1.Y2 = Y'Shape1.Left = Line1.X2 - Shape1.Width / 2'Shape1.Top = Line1.Y2 - Shape1.Height / 2If Turn = True ThenShape1.Left = Line1.X2 - Shape1.Width / 2Shape1.Top = Line1.Y2 - Shape1.Height / 2ElseShape2.Left = Line1.X2 - Shape1.Width / 2Shape2.Top = Line1.Y2 - Shape1.Height / 2End IfIf Turn = True ThenlblStrength.Move Shape1.Left, Shape1.Top - lblStrength.HeightElselblStrength.Move Shape2.Left, Shape2.Top - lblStrength.HeightEnd IfDim Pos1 As PosDim Pos2 As PosPos1.X = Line1.X2Pos2.X = Line1.X1Pos1.Y = Line1.Y2Pos2.Y = Line1.Y1lblStrength.Caption = "Strength: " & ((Abs(Line1.X1 - Line1.X2) + Abs(Line1.Y1 - Line1.Y2)) / 2 & "| Angle " & GetAngle(Pos1, Pos2))End IfEnd IfEnd SubPrivate Sub NewMissle(X As Integer, Y As Integer, Color As Long, Typee As Integer, XF As Integer, YF As Integer)'Creates a new missleFor i = 0 To 99If P(i).active = False ThenP(i).X = XP(i).Y = YP(i).XF = XFP(i).YF = YFP(i).type = TypeeP(i).Color = ColorP(i).active = TrueIf Typee = 1 ThenP(i).Damage = 10End IfIf Typee = 2 ThenP(i).Damage = 30End IfIf Typee = 3 ThenP(i).Damage = 10End IfIf Typee = 4 ThenP(i).Damage = 10End IfIf Typee = 5 ThenP(i).Damage = 5End IfIf Typee = 6 ThenP(i).Damage = 20End IfExit SubEnd IfNextEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Call sndPlaySound(ByVal App.Path & "/boom.wav", SND_ASYNC)Dim TypeR As IntegerTypeR = 1If Turn = True Then'Zorders which ammo player thing ;) z = 0Label2(0).ZOrder 0Label3(0).ZOrder 0Label4(0).ZOrder 0Label5(0).ZOrder 0Label6(0).ZOrder 0Elsez = 1Label2(1).ZOrder 0Label3(1).ZOrder 0Label4(1).ZOrder 0Label5(1).ZOrder 0Label6(1).ZOrder 0End IfLine1.Visible = False lblStrength.Visible = FalseIf Option2.Value = True ThenIf Label2(z).Caption > 0 Then TypeR = 2Label2(z).Caption = Label2(z).Caption - 1 ElseOption1.Value = TrueEnd IfEnd IfIf Option3.Value = True ThenIf Label3(z).Caption > 0 ThenTypeR = 3Label3(z).Caption = Label3(z).Caption - 1 ElseOption1.Value = TrueEnd IfEnd IfIf Option4.Value = True ThenIf Label4(z).Caption > 0 ThenTypeR = 4Label4(z).Caption = Label4(z).Caption - 1 ElseOption1.Value = TrueEnd IfEnd IfIf Option5.Value = True ThenIf Label5(z).Caption > 0 ThenTypeR = 5Label5(z).Caption = Label5(z).Caption - 1ElseOption1.Value = TrueEnd IfEnd IfIf Option6.Value = True ThenIf Label6(z).Caption > 0 ThenTypeR = 6Label6(z).Caption = Label6(z).Caption - 1ElseOption1.Value = TrueEnd IfEnd If'Turn = FalseWwW = 6If Turn = True ThenNewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10, (Line1.Y2 - Line1.Y1) / 10If TypeR = 4 ThenNewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) -Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)End IfElseNewMissle w2(0).X + 20, w2(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10, (Line1.Y2 - Line1.Y1) / 10If TypeR = 4 ThenNewMissle w2(0).X + 20, w2(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle w2(0).X + 20, w2(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle w2(0).X + 20, w2(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle w2(0).X + 20, w2(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)End IfEnd IfEnd SubPrivate Sub Boom(X As Integer, Y As Integer, Size As Integer, dig As Integer, Dam As Integer, Optional Invert As Integer, Optional NoDraw As Integer)If X < 1 Then Exit SubCall sndPlaySound(ByVal App.Path & "/boom2.wav", SND_ASYNC)On Error Resume NextIf X + Size / 2 > w2(0).X And X - Size / 2 < w2(3).X ThenHP2 = HP2 - DamCall sndPlaySound(ByVal App.Path & "/hit.wav", SND_ASYNC)End IfIf X + Size / 2 > W(0).X And X - Size / 2 < W(3).X ThenHP1 = HP1 - DamCall sndPlaySound(ByVal App.Path & "/hit.wav", SND_ASYNC)End IfMe.DrawWidth = 1For i = 0 To Screen.WidthL2(i).Y = L(i).YNextFor i = 0 To SizeIf Invert = 1 ThenL(X + i).Y = L(X + i).Y - digElseL(X + i).Y = L(X + i).Y + dig - iEnd IfNextFor i = 1 To SizeIf Invert = 1 ThenL(X - i).Y = L(X - i).Y - digElseL(X - i).Y = L(X - i).Y + dig - iEnd IfNextMe.AutoRedraw = False'Me.Cls'Me.Picture = NothingMe.RefreshMe.AutoRedraw = TrueIf NoDraw <> 1 ThenFor i = 2 To Me.Width Step 1If L2(i).Y <> L(i).Y ThenL2(i).Y = (L2(i - 1).Y + L2(i).Y + L2(i + 1).Y + L2(i - 2).Y + L2(i + 2).Y) / 5Me.Line (i - 2, 0)-(i - 2, Me.ScaleHeight), Me.BackColorMe.Line (i - 2, L(i).Y)-(i - 2, Me.ScaleHeight), L(i).ColorEnd IfNextEnd IfMe.AutoRedraw = FalseEnd SubPrivate Sub NewPart(Sizee As Integer, X As Integer, Y As Integer, OX As Integer, OY As Integer, Grow As Integer, Color As Long, XF As Long, YF As Long, Life As Integer, Grav As Integer)For i = 0 To 900If P2(i).active = False ThenP2(i).active = TrueP2(i).Size = SizeeP2(i).X = XP2(i).Y = YP2(i).XF = XFP2(i).YF = YFP2(i).OldX = OXP2(i).OldY = OYP2(i).Grow = GrowP2(i).Color = ColorP2(i).Life = LifeP2(i).Grav = GravExit ForEnd IfNextEnd SubPrivate Sub Timer1_Timer()If HP1 < 0 ThenMsgBox "Player 2 Wins!"HP1 = 0EndEnd IfIf HP2 < 0 ThenMsgBox "Player 1 Wins!"HP2 = 0EndEnd IfL(2).Y = 999If hp11.Caption <> "Health: " & HP1 Then hp11.Caption = "Health: " & HP1End IfIf hp22.Caption <> "Health: " & HP2 Then hp22.Caption = "Health: " & HP2End IfIf CChange = True ThenMe.RefreshEnd IfCChange = FalseIf HP1 > 0 ThenIf GetAsyncKeyState(vbKeyRight) Then Movement = Movement - 1CChange = TrueIf Movement > 0 ThenIf Turn = False ThenFor i = 0 To 3If L(W(3).X - 2).Y - 10 < L(W(3).X + 2).Y Then W(i).XF = W(i).XF + 2End IfIf W(i).Y + W(i).YF > L(W(i).X - 2).Y ThenW(i).Y = L(W(i).X - 2).Y - 1End IfNextElseFor i = 0 To 3If L(w2(3).X - 2).Y - 10 < L(w2(3).X + 2).Y Then w2(i).XF = w2(i).XF + 2End IfIf w2(i).Y + w2(i).YF > L(w2(i).X - 2).Y Thenw2(i).Y = L(w2(i).X - 2).Y - 1End IfNextEnd IfEnd IfEnd IfIf GetAsyncKeyState(vbKeyLeft) Then Movement = Movement - 1CChange = TrueIf Movement > 0 ThenIf Turn = False ThenFor i = 0 To 3On Error Resume NextIf L(W(0).X - 2).Y - 8 < L(W(0).X - 4).Y Then W(i).XF = W(i).XF - 2ElseW(i).XF = W(i).XF + 1End IfIf W(i).Y + W(i).YF > L(W(i).X - 2).Y ThenW(i).Y = L(W(i).X - 2).Y - 1End IfNextElseFor i = 0 To 3On Error Resume NextIf L(w2(0).X - 2).Y - 8 < L(w2(0).X - 4).Y Then w2(i).XF = w2(i).XF - 2Elsew2(i).XF = w2(i).XF + 1End IfIf w2(i).Y + w2(i).YF > L(w2(i).X - 2).Y Then w2(i).Y = L(w2(i).X - 2).Y - 1End IfNextEnd IfEnd IfEnd IfEnd IfFor i = 0 To 3W(i).X = W(i).X + W(i).XF / 2W(i).XF = W(i).XF * 0.5If i = 1 ThenIf W(i).Y - 20 > W(0).Y ThenW(i).Y = W(0).Y + 20W(i).YF = 0 'W(i).Yf / 2W(i).Y = (W(i).Y + W(i + 1).Y) / 2End IfEnd IfIf i = 2 ThenIf W(i).Y - 20 > W(3).Y ThenW(i).Y = W(3).Y + 20W(i).YF = 0 'W(i).Yf / 2End IfEnd IfOn Error Resume NextIf W(i).Y + W(i).YF < L(W(i).X - 2).Y Then W(i).YF = W(i).YF + 1W(i).Y = W(i).Y + W(i).YFCChange = TrueElseIf W(i).YF > 3 ThenW(i).Y = L(W(i).X - 2).Y - 1W(i).YF = -W(i).YF * 0.5CChange = TrueEnd IfEnd IfMe.DrawWidth = 8Me.Line (W(i).X, W(i).Y)-(W(i).X, W(i).Y), W(i).Color 'w2(i).X = w2(i).X + w2(i).XF / 2w2(i).XF = w2(i).XF * 0.5If w2(i).Y + w2(i).YF < L(w2(i).X - 2).Y Thenw2(i).YF = w2(i).YF + 1w2(i).Y = w2(i).Y + w2(i).YFElseIf w2(i).YF > 3 Thenw2(i).Y = L(w2(i).X - 2).Y - 1w2(i).YF = -w2(i).YF * 0.5End IfEnd IfMe.DrawWidth = 8Me.Line (w2(i).X, w2(i).Y)-(w2(i).X, w2(i).Y), w2(i).Color'NextMe.DrawWidth = 1For i = 0 To 2For z = 0 To 2If HP1 > 0 ThenMe.Line (W(i).X, W(i).Y)-(W(i + 1).X, W(i + 1).Y), vbBlack End IfMe.Line (w2(i).X, w2(i).Y)-(w2(i + 1).X, w2(i + 1).Y), vbBlack NextNextIf HP1 > 0 ThenMe.Line (W(0).X, W(0).Y)-(W(0).X, W(0).Y - 15), vbBlack Me.Line (W(3).X, W(3).Y)-(W(3).X, W(3).Y - 15), vbBlack Me.Line (W(0).X, W(0).Y - 5)-(W(3).X, W(3).Y - 5), vbBlack End IfMe.Line (w2(0).X, w2(0).Y)-(w2(0).X, w2(0).Y - 15), vbBlackMe.Line (w2(3).X, w2(3).Y)-(w2(3).X, w2(3).Y - 15), vbBlackMe.Line (w2(0).X, w2(0).Y - 5)-(w2(3).X, w2(3).Y - 5), vbBlackFor F = 0 To 15 Step 2If HP1 > 0 ThenMe.Line (W(0).X, W(0).Y - F)-(W(3).X, W(3).Y - F), RGB(122, 122, 122) End IfMe.Line (w2(0).X, w2(0).Y - F)-(w2(3).X, w2(3).Y - F), RGB(122, 122, 122) NextF = 15If HP1 > 0 ThenMe.Line (W(0).X, W(0).Y - F)-(W(3).X, W(3).Y - F), vbBlackEnd IfMe.Line (w2(0).X, w2(0).Y - F)-(w2(3).X, w2(3).Y - F), vbBlack'ddddddddddddddFor i = 0 To 300If P2(i).active = True ThenCChange = TrueMe.DrawWidth = P2(i).SizeIf Check1.Value = 1 ThenMe.Line (P2(i).X, P2(i).Y)-(P2(i).OldX, P2(i).OldY), P2(i).Color End IfP2(i).OldX = P2(i).XP2(i).OldY = P2(i).YP2(i).Life = P2(i).Life - 1P2(i).Size = P2(i).Size + P2(i).GrowP2(i).X = P2(i).X + P2(i).XFP2(i).YF = P2(i).YF + P2(i).GravP2(i).Y = P2(i).Y + P2(i).YFIf P2(i).Life <= 0 ThenP2(i).active = FalseEnd IfEnd IfNextFor i = 0 To 3If Abs(W(i).YF) > 3 Or Abs(W(i).XF) > 3 ThenCChange = TrueEnd IfIf Abs(w2(i).YF) > 3 Or Abs(w2(i).XF) > 3 ThenCChange = TrueEnd IfNextFor i = 0 To 90If P(i).active = True Thenttt = 100 + Int(Rnd * 40)NewPart 5, P(i).X + Int(Rnd * 10) - Int(Rnd * 10), P(i).Y + Int(Rnd * 10) - Int(Rnd * 10), P(i).X, P(i).Y, 7, RGB(ttt, ttt, ttt), 0, 0, 8, 0CChange = TrueMe.DrawWidth = 3P(i).YF = P(i).YF + 1P(i).OldX = P(i).XP(i).OldY = P(i).YP(i).X = P(i).X + P(i).XFP(i).Y = P(i).Y + P(i).YFOn Error Resume NextIf P(i).Y + P(i).YF > L(P(i).X - 2).Y ThenP(i).active = FalseIf P(i).type <> 5 ThenIf P(i).X > 0 ThenNewPart 40, P(i).X, P(i).Y + 20, P(i).X, P(i).Y + 20, 5, RGB(200 + Int(Rnd * 10), 0, 0), 0, 0, 30, 0 NewPart 20, P(i).X, P(i).Y + 20, P(i).X, P(i).Y + 20, 5, RGB(190 + Int(Rnd * 50), 30 + Int(Rnd * 50), 0), 0, 0, 30, 0NewPart 5, P(i).X, P(i).Y + 20, P(i).X, P(i).Y + 20, 4, RGB(200 + Int(Rnd * 55), 200 + Int(Rnd * 55), 0), 0,0, 30, 0End IfEnd IfIf P(i).X > 0 ThenNewPart 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd * 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1NewPart 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd * 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1NewPart 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd * 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1NewPart 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd * 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1NewPart 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd * 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1End IfIf P(i).type = 1 ThenBoom P(i).X - 2, P(i).Y, 30, 35, P(i).DamageEnd IfIf P(i).type = 2 ThenBoom P(i).X - 2, P(i).Y, 40, 60, P(i).DamageEnd IfIf P(i).type = 3 ThenBoom P(i).X - 2, P(i).Y, 10, 20, P(i).DamageIf P(i).tag < 3 ThenP(i).active = TrueP(i).YF = -P(i).YF * 1P(i).XF = 0P(i).tag = P(i).tag + 1ElseP(i).tag = 0End IfEnd IfIf P(i).type = 4 ThenBoom P(i).X - 2, P(i).Y, 20, 20, P(i).DamageEnd IfIf P(i).type = 5 ThenBoom P(i).X - 2, P(i).Y, 10, 60, P(i).Damage, 1End IfIf P(i).type = 0 ThenBoom P(i).X - 2, P(i).Y, 30, 350, P(i).DamageEnd IfIf P(i).type = 6 ThenBoom P(i).X - 2, P(i).Y, 30, 30, P(i).DamageNewMissle P(i).X, P(i).Y - 10, vbRed, 1, Int(Rnd * 20) - Int(Rnd * 20), -5 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle P(i).X, P(i).Y - 10, vbRed, 1, Int(Rnd * 20) - Int(Rnd * 20), -5 + Int(Rnd * 10) - Int(Rnd * 10) NewMissle P(i).X, P(i).Y - 10, vbRed, 1, Int(Rnd * 20) - Int(Rnd * 20), -10 + Int(Rnd * 10) - Int(Rnd * 10)End IfEnd IfMe.DrawWidth = 3Me.Line (P(i).X, P(i).Y)-(P(i).OldX, P(i).OldY), P(i).ColorEnd IfNextEnd SubPrivate Function GetAngle(Pos As Pos, CenterPos As Pos) As IntegerDim intA As Integer, intB%, intC%Dim PI As DoublePI = Atn(1) * 4intB = Abs(CenterPos.X - Pos.X)intC = Abs(CenterPos.Y - Pos.Y)If intB <> 0 ThenGetAngle = Atn(intC / intB) * 180 / PIEnd IfIf Pos.X < CenterPos.X ThenIf Pos.Y = CenterPos.Y Then GetAngle = 180 If Pos.Y < CenterPos.Y ThenGetAngle = 180 - GetAngleEnd IfIf Pos.Y > CenterPos.Y ThenGetAngle = 180 + GetAngleEnd IfEnd IfIf Pos.X > CenterPos.X ThenIf Pos.Y > CenterPos.Y ThenGetAngle = 360 - GetAngleEnd IfEnd IfIf Pos.X = CenterPos.X ThenIf Pos.Y < CenterPos.Y ThenGetAngle = 90End IfIf Pos.Y > CenterPos.Y ThenGetAngle = 270End IfEnd IfGetAngle = Abs(GetAngle Mod 360)End FunctionPrivate Sub Timer2_Timer()'//Clouds, not fully working so removed'NewPart 20, -40, 100, -40, -40, 0, vbWhite, 6, 0, 200, 0'NewPart 23, -50, 90, -40, -40, 0, vbWhite, 6, 0, 200, 0End Sub五、设计总结经过这学期VB的学习,使我对VB有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,虽然学校开的VB是选修课,但它的实用性和通用性很强大,不比学过的C语言差,因为是面向对象,所以很直观,学习中也可以发现很多乐趣,也激起了学习VB的兴趣;因为是初学,对VB的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对VB中经常出现的错误也不了解,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,为了适应信息化时代的需求,各高校对大多数专业都开设了一定的计算机语言课程,有的讲授VisualBasic语言。
VB简易计算器代码
这是一个简易计算器的VB代码,下面是这个计算器的界面,有一个文本输入框和16个按钮Public Class Form1Dim OperatorState As IntegerDim data1 As IntegerDim result As IntegerDim data2 As Integer’下面是0~9十个按钮的点击事件Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickTextBox1.Text = TextBox1.Text + "1"End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickTextBox1.Text = TextBox1.Text + "2"End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.ClickTextBox1.Text = TextBox1.Text + "3"End SubPrivate Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.ClickTextBox1.Text = TextBox1.Text + "4"End SubPrivate Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.ClickTextBox1.Text = TextBox1.Text + "5"End SubPrivate Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.ClickTextBox1.Text = TextBox1.Text + "6"End SubPrivate Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.ClickTextBox1.Text = TextBox1.Text + "7"End SubPrivate Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.ClickTextBox1.Text = TextBox1.Text + "8"End SubPrivate Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.ClickTextBox1.Text = TextBox1.Text + "9"End SubPrivate Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.ClickTextBox1.Text = TextBox1.Text + "0"End Sub’下面是清除键的代码Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.ClickTextBox1.Text = ""End Sub’下面是加减乘除四个按钮的代码Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Clickdata1 = Val(TextBox1.Text)OperatorState = 1TextBox1.Text = ""End SubPrivate Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button12.Clickdata1 = Val(TextBox1.Text)OperatorState = 2TextBox1.Text = ""End SubPrivate Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Clickdata1 = Val(TextBox1.Text)OperatorState = 3TextBox1.Text = ""End SubPrivate Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Clickdata1 = Val(TextBox1.Text)OperatorState = 4TextBox1.Text = ""End Sub’下面是等于号的的代码Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Clickdata2 = Val(TextBox1.Text)If (OperatorState = 1) Thenresult = data1 + data2End IfIf (OperatorState = 2) Thenresult = data1 - data2End IfIf (OperatorState = 3) Thenresult = data1 * data2End IfIf (OperatorState = 4) Thenresult = data1 / data2End IfTextBox1.Text = Str(result)End SubEnd Class。
(word版)VB程序设计常用算法
VB程序的常用算法算法〔Algorithm〕:算机解的根本思想方法和步。
算法的描述:是要解决一个或要完成一任所采取的方法和步的描述,包括需要什么数据〔入什么数据、出什么果〕、采用什么构、使用什么句以及如何安排些句等。
通常使用自然言、构化流程、代等来描述算法。
一、数、求和、求乘等算法此都要使用循,要注意根据确定循量的初、或束条件,更要注意用来表示数、和、乘的量的初。
例:用随机函数生100个[0,99]范内的随机整数,个位上的数字分1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。
本使用数来理,用数a(1to100)存放生确实100个随机整数,数x(1to10)来存放个位上的数字分1,2,3,4,5,6,7,8,9,0的数的个数。
即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,⋯⋯个位是0的个数存放在x(10)。
将程序写在一个GetTJput程中,代如下:PublicSubGetTJput()Dima(1To100)AsIntegerDimx(1To10)AsIntegerDimiAsInteger,pAsInteger'生100个[0,99]范内的随机整数,每行个打印出来Fori=1To100a(i)=Int(Rnd*100)Ifa(i)<10ThenSpace(2);a(i);ElseSpace(1);a(i);EndIfIfiMod10=0ThenNexti'统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来Fori=1To100p=a(i) Mod 10 '求个位上的数字Ifp=0Thenp=10x(p)=x(p)+1Nexti"统计结果"Fori=1To10p=iIfi=10Thenp=0"个位数为"+Str(p)+"共"+Str(x(i))+"个"NextiEndSub(1)二、求两个整数的最大公约数、最小公倍数(2)分析:求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数)(3)对于两数m,n,使得m>n;(4)m除以n得余数r;(5)假设r=0,那么n为求得的最大公约数,算法结束;否那么执行(4);m←n,n←r,再重复执行(2)。
VB编程程序代码
VB编程程序代码1、求100以内的素Private Sub Form_Click()Dim i%, j%For i = 2 To 100For j = 2 To i - 1If i Mod j = 0 Then Exit For Next jIf j = i Then Print iNext iEnd Sub2、从键盘输入任意长度的字符串,要求将字符顺序倒置例如,将输入的“ABCDEFG”变换成“GFEDCBA”。
Private Sub Command1_Click()Dim a$, I%, c$, d$, n%a = InputBox$("输入字符串")n = Len(a)For I = 1 To Int(n \ 2)c = Mid(a, I, 1)Mid(a, I, 1) = Mid(a, n - I + 1, 1)Mid(a, n - I + 1, 1) = cNext IPrint aEnd Sub3、计算0~200之间所有能被11或5整除的数之和Private Sub Form_Click()Dim n%, i%n = 0For i = 1 To 200If i Mod 11 = 0 Or i Mod 5 = 0 Thenn = n + iEnd IfNext iPrint nEnd Sub4、输入一年份,判断它是否为闰年,并显示有关信息。
(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)Private Sub Command1_Click()Dim y%y = InputBox("请输入年数")If y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 Then MsgBox (y & "年是闰年")ElseMsgBox (y & "年是平年")End IfEnd Sub5、已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得x<y<z。
vb_code
1在窗体上输出所有的“水仙花数”,并按照一行5个的格式输出。
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3。
代码:Private Sub Form_Load()Dim n As IntegerDim i As IntegerDim g As IntegerDim s As IntegerDim b As Integern = 1For i = 100 To 999 Step 1g = i Mod 10s = ((i Mod 100) - g) / 10b = (i - 10 * s - g) / 100If i = g ^ 3 + s ^ 3 + b ^ 3 ThenIf n = 6 ThenPrintn = 1End IfPrint i;n = n + 1End IfNextEnd Sub2在TextBox任意输入x的值,将f(x)输出的结果用Msgbox函数输出。
代码:Private Sub TextBox1_Change()MsgBox f(V al(TextBox1.Text))End SubFunction f(x)If x < 0 And x <> -3 Thenf = x ^ 2 + x - 6ElseIf x < 10 And x <> 2 And x <> 3 Thenf = x ^ 2 - 5 * x + 6Elsef = x ^ 2 - x - 1End IfEnd Function3编写一个程序,在2个TextBox中输入某人的身高(cm)和体重(kg),按下式确定其体重是否为标准、过胖或过瘦,将结果用Msgbox输出。
(1)标准体重=身高-110;(2)超过标准体重5kg为过胖;(3)低于标准体重5kg为过瘦。
代码:Private Sub Command1_Click()MsgBox f(Val(Text1), Val(Text2))End SubFunction f(h, w)Dim tem As SingleDim x As Singletem = h - 110x = tem - wIf x < -5 Thenf = "过胖"ElseIf x > 5 Thenf = "过瘦"Elsef = "标准"End IfEnd Function4征兵的条件是:男性(sex)年龄(age)在18~20之间,身高(size)在1.65米以上;或者女性(sex)年龄(age)在16~18之间,身高(size)在1.60米以上。