VB实例源码

课前体验
Private Sub Form_Click()
For i = 1 To 10
For j = 1 To i
Print “* “;
Next j
Print
Next i
End Sub
【例3-1】
Private Sub Form_Click()
c1$ = Chr ( 13 ) + C h r (13) + Chr (13)+Chr(10)
msg1$ = “请输入您的名字: "
msg2$ = “输入后按回车键”
msg3$ = “或单击“确定”按钮”
msg$ = msg1$ + c1$ + msg2$ + c1$ + msg3$
name$ = InputBox(msg , " I n p u t B o x 函数示例 " , " 张三 " ) P r i n t n a m e , "InputBox 函数示例", "张三") Print name ,"InputBox函数示例","张三")Printname
End Sub
【例3-2】
Private Sub Form_Click()
Msg1 = ” A r e y o u C o n t i n u e t o ? ” m s g 2 =”Are you Continue to?” msg2 =AreyouContinueto?msg2=”Operation Dialog Box”
r=MsgBox(msg1 , 34 , m s g 2 ,34,msg2 ,34,msg2)
Print r
End Sub
【例3-3】编写程序,用MsgBox函数判断是否继续执行。
Private Sub Form_Click()
msg$ = “请确认此数据是否正确”
Title$ = “数据检查对话框”
x = MsgBox(msg , 19 , T i t l e , 19, Title ,19,Title)
If x = 6 Then
Print x * x
ElseIf x = 7 Then
Print “请重新输入”
End If
End Sub
【例3-5】
Private Sub Form_Click()
Print: Print
FontName = “隶书”
FontSize = 16
Print " 姓名”; Tab(8); “年龄”; Tab(16); “职务”;
Print Tab(24); “单位”; Tab(32); “籍贯”
Print
Print “吴大明”; Tab(8); 25; Tab(16); “职员”; Tab(24); “人事科”; Tab(32); “北京”
End Sub
【例3-6】
Private Sub Form_Click()
X = InputBox(“请输入成绩”, “学生成绩录入”, “00”)
Print x
End Sub
【例3-7】
Private Sub Form_Click()
Dim x As Single, y As Single
x=InputBox(“请输入x的值”)
If x>0 Then y=1 ElseIf x=0 Then y=0 Else y=-1
End if
End if
Print “x=”; x ,”y=” ; y
End Sub
【例3-8】
Private Sub Form_Click()
Dim msg, UserInput
msg = “请输入一个字母或0~9之间的数字.”
UserInput = InputBox(msg) ‘输入一个字母或数字
If Not IsNumeric(UserInput) Then ‘判断是否是数字
If Len(UserInput) = 1 Then ‘不是数字时,判断输入的字符串长度是否为1
Select Case Asc(UserInput) ‘判断输入字母的ASCII码值
Case 60 To 90 ‘在60-90之间为大写字母
msg = "你输入的是一个大写字母’”
msg = msg & Chr(Asc(UserInput)) & “'。”
Case 97 To 122 ‘小写字母
msg = "你输入的是一个小写字母’”
msg = msg & Chr(Asc(UserInput)) & “'。”
Case Else
msg = “你没有输入字母或数字.”
End Select
End If
Else
Select Case Val(UserInput) '将输入的数值型字符转换为数值
Case 1, 3, 5, 7, 9 '如果是奇数
msg = UserInput & " 是一个奇数。"
Case 0, 2, 4, 6, 8 '如果是偶数
msg = UserInput & " 是一个偶数。"
Case Else '出界
msg = “你输入的数字不在0~9范围内”
End Select
End If
MsgBox msg
End Sub

【例3-10】
Sub Form_Click()
Dim N As Integer
n = InputBox(“Enter N:”) ‘输入N的值
k = 1
For i = 1 To N ‘循环N次,计算出N!
k = k * I
Next i
Print N;”!=”;k ‘数据输出
End Sub
【例3-12】
Dim S, N
S = 0: N = 0
Do While S <= 100
N = N + 1
S = S + N
Loop
Print S, N
【例3-13】
Private Sub Form_Click()
Dim char As String
Count = 0
char = InputBox(“请输入一个字符”)
While char <> “?”
Count = Count + 1
char = InputBox$(“请输入一个字符”)
Wend
Print “输入的字符数是:”; Count
End Sub
【例3-14】
Private Sub Form_Click()
Print " *";
For i = 1 To 9
Print Tab(i * 6); i;
Next i
Print
For j = 1 To 9
Print j;
For k = 1 To j
Print Tab(k * 6); j * k; " ";
Next k
Print
Next j
End Sub
第4章
课前体验
(1)假定用来输入数学成绩的文本框名称为Text1,该文本框的LostFocus事件过程如下:
Private Sub Text1_LostFocus()
If Val(Text1.Text) < 0 Or Val(Text1.Text) > 100 Then
Text1.Text = “”
Text1.SetFocus
End If
End Sub
(2)其他文本框的LostFocus事件类似。
(3)假定按钮名称为Command1,该按钮的Click事件过程如下:
Private Sub Command1_Click()
If Check1.Value = 1 Then Sum = Sum + Val(Text1.Text)
If Check2.Value = 1 Then Sum = Sum + Val(Text2.Text)
If Check3.Value = 1 Then Sum = Sum + Val(Text3.Text)
If Check4.Value = 1 Then Sum = Sum + Val(Text4.Text)
If Check5.Value = 1 Then Sum = Sum + Val(Text5.Text)
Text6.Text = Sum
End Sub
【例4-1】
Private Sub Command1_Click() ‘在其单击事件中编程
For i = 1 To 6 ‘外循环,控制输出几行
For j = 1 To i ‘内循环,控制输出几列
Print " * ";
Next j
Print ‘换行
Next i
End Sub
【例4-2】
Private Sub Text1_Change()
Text2.Text = LCase(Text1.Text)
Text3.Text = UCase(Text1.Text)
End Sub
【例4-3】
Private Sub Check1_Click()
Text1.FontUnderline = Not Text1.FontUnderline
End Sub

Private Sub Check2_Click()
Text1.FontItalic = Not Text1.FontItalic
End Sub

Private Sub Option1_Click()
Text1.Font = “黑体”
End Sub

Private Sub Option2_Click()
Text1.Font = “宋体”
End Sub
【例4-4】
Private Sub Command1_Click()
If Option1 Then
Text1.FontName = “宋体”
Else
Text1.FontName = “黑体”
End If
If Option3 Then
Text1.FontSize = 8
Else
Text1.FontSize = 10
End If
End Sub
Private Sub Command2_Click()
End
End Sub
【例4-5】
Private Sub Form_Load()
‘在窗体的Load事件中输入列表框的各个项目
lstBooks.AddItem “计算机应用基础”
lstBooks.AddItem “操作系统”
lstBooks.AddItem “数据结构”
lstBooks.AddItem “网络技术基础”
End Sub
Private Sub cmdAdd_Click()
‘单击添加命令按钮时将文本框中输入的内容添加到列表框中
lstBooks.AddItem txtItem
txtItem = “”
End Sub

Private Sub cmdDelete_Click()
‘删除列表框中选中的项目
lstBooks.RemoveItem lstBooks.ListIndex
End Sub

Private Sub cmdModify_Click()
‘所选项目显示在文本框中,等待修改
txtItem.Text = lstBooks.Text
cmdAdd.Enabled = False
cmdDelete.Enabled = False
cmdModify.Enabled = False
cmdModify_OK.Enabled = True
End Sub

Private Sub cmdModify_OK_Click()
‘所选项目显示在文本框中修改完成后,按下修改确定按钮,更新列表框内容
lstBooks.List(lstBooks.ListIndex) = txtItem
cmdModify_OK.Enabled = True
cmdAdd.Enabled = True
cmdDelete.Enabled = True
cmdModify.Enabled = True
txtItem = “”
End Sub
【例4-6】
Private Sub Form_Click()
Picture3.Picture=Picture1.Picture
Picture1.Picture=Picture2.Picture
Picture2.Picture=Picture3.Picture
Pciture3.Picture=LoadPicture() ‘把第3个图片框设置为空
End sub
【例4-7】
Private Sub HScroll1_Change()
Text1.Text = HScroll1.Value
End Sub
【例4-8】
Private Timer1_Timer()
Labe1.Caption=Time$
End Sub
实训
Private Sub Command1_Click()
Debug.Print “姓名:”; Text1.Text
Debug.Print “出生年月:”; Text2.Text
Debug.Print “籍贯:”; Text3.Text
If Option1.Value Then Debug.Print “性别:”; “男”
If Option2.Value Then Debug.Print “性别:”; “女”
Debug.Print “民族:”; Combo1.Text
If Check1.Value = 1 Then Debug.Print “健康” Else Debug.Print “不健康”
Debug.Print “职称:”; Combo3.Text
Debug.Print “工资:”; Text4.Text
Debug.Print “外语熟练程度”; HScroll1.Value
Debug.Print “简历:”; Text5.Text
End Sub
第5章
课前体验
Private Sub Command6_Click()
Const n = 10 ‘定义常量n的值为10
Max = 0: K = 0 ‘最高分及所在位置赋初值
For i = 1 To n
b(i) = InputBox(“请输入第”& i &“个同学的成绩”,求最高分) ‘输入成绩
If b(i) > Max Then
Max = b(i)
K = I ‘将第i个成绩与最高分Max相比,如果比最高分高,则保存起来
End If
Next i
Print"最高分是第"& K &“个同学,其成绩是:”& Max
End Sub
【例5-1】
Option Base 1
Private Sub Command1_Click()
Dim a(3) As Integer
a(1) = 1: a(2) = 3: a(3) = 5
Print a(1)
Print a(2)
Print a(3)
End Sub
【例5-2】
For i=1 To 10
b(i) = InputBox(“请输入第” & i & “个数”)
Next i
【例5-3】
For i=1 To 2
For j=1 To 2
b(i,j) = i+j
Next j
Next i
【例5-4】
Dim S(3,2) As Integer
程序如下:
For i = 0 To 3
Print Tab(5); ‘输出位置定位
For j = 0 To 2
S(i, j) = i * 2 + j ‘给各元素赋值
Print S(i, j);
Next j
Print ‘换行
Next i
【例5-5】
Private Sub Form_Click()
Dim s(5) As Integer '定义数组S
Const n = 5
For i = 1 To n
s(i) = Val(InputBox(“请输入第” & LTrim ( S t r (Str (Str(i)) & “个数”, 数据排序))
‘输入n个数,转换成数值后保存在数组中。
Next i
For i = 1 To n-1 ‘进行n-1趟比较
Max = I ‘对第i遍比较时,初始假定第i个元素最小。
For j = i + 1 To n ‘在数组i~n个元素中选最小元素
If s(j) < s(Max) Then Max = j
Next j
t = s(i)
s(i) = s(Max)
s(Max) = t ‘i~n个元素中选出的最小元素与第i个元素交换
Next i
For i = 1 To 5
Print s(i)
Next i
End Sub
【例5-6】
Dim b() As Integer
Private Sub Form_Click()
ReDim b(2)
For i = 0 To 2
b(i) = i
Next i
ReDim Preserve b(3)
b(3) = 7
For i = 0 To 3
Print b(i);
Next i
End Sub
【例5-7】
Dim a(8, 8) As Integer '定义一个二维数组
Private Sub Form_Click()
‘下面的二层循环语句给数组赋值
For i = 1 To 8
For j = 1 To i
If i = 1 Or j = 1 Then
a(i, j) = 1 '数组中每一行第一个,最后一个数均为1
Else
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
'数组中其余数据等于它上一行的相邻两列之和
End If
Next j
Next i
'下面的二层循环语句将数组中的值打印出来
For i = 1 To 8
Print Tab(20 - 2 * i); '定位打印位置
For j = 1 To i
If a(i, j) < 10 Then '将数组中的值转换成长度为3的字符串,可使打印数据整齐
s = " " + Str(a(i, j)) + " "
ElseIf a(i, j) < 100 Then
s = " " + Str(a(i, j))
End If
Print s;
Next j
Print '换行
Next i
End Sub
【例5-8】
Private Sub Option1_Click(Index As Integer)
Select Case Index
Case 0
Label1.ForeColor = RGB(255, 0, 0)
Case 1
Label1.ForeColor = RGB(0, 255, 0)
Case 2
Label1.ForeColor = RGB(255, 255, 0)
End Select
End Sub
实训
Option Base 1 ‘定义数组下标从1开始
Dim arr() ‘定义动态数组arr
Private Sub Form_Click()
n = Val(InputBox(“请输入矩阵的行数”)) ‘输入矩阵行数
m = Val(InputBox(“请输入矩阵的列数”)) ‘输入矩阵列数
ReDim arr(n, m) ‘重定义数组arr为n行m列的二维数组
‘下列程序段为数组输入数据
For i = 1 To n
For j = 1 To m
arr(i, j) = Val(InputBox(“请输入矩阵第” & i & “行第” & j & “列的数据”))
Next j
Next i
‘下列程序段在数组中找出最大值及所在位置
row = 1: col = 1
For i = 1 To n
For j = 1 To m
If arr(i, j) > arr(row, col) Then
row = i: col = j
End If

《姓名大乐斗》各版本下载:https://github.com/airingursb/nameplayer/releases 姓名大作战 1.0 游戏内容: 输入两个人的姓名,即可进行姓名PK。 有六项属性值: 生命值,攻击,防御,速度,命中,运气。 除了运气,其他5项属性每个姓名都有唯一的属性值相匹配。 目前只支持输入中文名。 有四项特殊技能:九阳神功,降龙十八掌,快速治疗,垂死挣扎 具体内容,大家玩玩就知道啦~ 欢迎各位提出宝贵意见,提交BUG,升级意见欢迎投稿邮箱:gx-deng@163.com 另外欢迎联系QQ:361411192 创作日期:2014.4.5 ---------------------------------------------------------------------- 姓名大作战 1.1 更新内容如下: 1.修复了速度属性值可能为0的BUG 2.修复了运气值相等时无法开始游戏的BUG 3.优化了游戏界面 4.增加了调整游戏速度的按钮 5.增加了作弊器 6.增加了复位键 至于增加新的技能,等下个版本再吧!这个版本还是遵循网页传统版本做的,贸然增加新的东西进去不但可能破坏游戏平衡性,还会引来不必要的BUG。 谢谢游戏! 更新日期:2014.4.6 ---------------------------------------------------------------------- 姓名大作战 1.2 更新内容如下: 1.优化了游戏页面,删除了一些多余的按钮 2.修改了战斗先手系统,融入了速度属性值因素 3.修改了游戏速度按钮 4.优化了作弊器 5.降低触发“垂死挣扎”的条件:触发血量上调至15 6.修复了text控件可编辑的BUG 7.发现了“降龙十八掌”中的巨大BUG,删除了此项技能 8.丰富了提示系统,并添加了登录窗口 用户名:Airing 密码:123 9.增强了“快速治疗”回复的最大生命值(由原来的20上调至30) 10.增加了“吸星大法”,可以吸收对方生命值和属性值 此次修改之后游戏算是成型了,新添加“吸星大法”或许有些BT,会在以后慢慢调整的,另外增加恢复HP系统是为了变相削弱攻击力属性。在测试中,发现攻击力过于逆天,有些姓名的攻击可以相差到100点,以至于秒杀,毫无游戏观赏性。伤害计算公式较为合理,所以只能够通过技能来增加伤害。另外,原来的“降龙十八掌”很鸡肋,初期释放过于逆天,后期释放相当于没放,运气成分过大,所以将其删除。今后会就持续游戏做出调整,比如增加姓名的HP、增加防御或者削弱攻击来达到持续战斗的目的。下个版本会融入命中率参数。 有任何新的游戏建议请联系本人,谢谢支持! 更新日期:2014.4.9 ---------------------------------------------------------------------- 姓名大作战 1.3 更新内容如下: 1.优化了登陆窗口,增加了登录系统 系统试用账号:2014612,密码:222222 2.增加了注册系统,用户名与姓名关联,一人一号 3.增加了密码找回系统 4.增加了管理员系统 5.削弱了“吸星大法”,削弱释放几率,限制使用次数 (由原本的47.5%下调为7%,全场限制施放3次) 6.增加了新技能“八门遁甲” 7.增强了“九阳神功”,取消了施放失败的情况,增强了技能威力,释放几率大 幅增加(由原本下降最大属性10点,上调为15点,释放几率由2.5%升为15%) 8.增强了“快速治疗”,释放几率大幅增加(由原本的2.5%上调至10%) 9.增强了普通攻击,基础攻击上调,释放几率增加 (基础攻击最大值由10点上升到30点,释放几率由47.5%上调至60%) 10.修复了连续与同一人作战产生相同作战过程的BUG 12.增加了胜场显示标签 新技能介绍:八门遁甲:增加自身属性值300~400点,自使用起,三个回合未解决战斗,则施放者功力枯竭而死,全场使用次数上限为1次,释放几率为5%。 更新中断了两个月,其实是在弄别的游戏,这次将技能大改动,削弱了上个版本很BUG的吸星大法。吸星大法本身效果BT,然后释放几率高达50%,所以两个人来回吸,你吸我一口我吸你一口,打个三五分钟都无法结束战斗。故本版本从几率和施放上限上削弱了吸星大法。本版本在增加普攻几率的同时,通过增加破甲基本攻击,削弱了高防御属性的姓名。平衡了各个技能的出现几率。最主要的是增加了数据库,做出登录系统,采用一人一号制,为未来的更新打下的基础。 更新日期:2014.6.13 ---------------------------------------------------------------------- 姓名大乐斗 1.4 更新内容如下: 1.《姓名大作战》正式更名《姓名大乐斗》 2.加密了数据库 3.增加了人物等级和技能等级系统 4.增加了金钱系统 4.增加了属性窗口 5.增加了显示失败场次 6.增加了商店系统,并引入新物品:小红药 7.增加了物品系统,加入新物品“小红药”和“复活药” 8.增加了新技能“金蝉脱壳” 9.“垂死挣扎”更名为“回光返照” 10.修复了使用八门遁甲功力枯竭身亡不算失败的BUG 11.修复了一方攻击比另一方防御高的时候,普攻有几率给对方加血的BUG 12.修复了可以输入不规范对手名的BUG 13.将命中属性更名为敏捷属性 14.增加了游客试玩界面(v1.3版本) 15.增加了新副本——试炼之塔 16.增加了乐斗模式 新物品介绍: 小红药:限试炼之塔使用,售价100/个,效果HP+50 复活药:限试炼之塔死亡时使用,目前只有通关试炼之塔才可获得,死亡时原地满状态复活 新技能介绍:金蝉脱壳:HP降为0时有几率以一定血量复活,每人限用1次 Lv1:触发几率5%,复活后血量20 Lv2:触发几率6%,复活后血量30 Lv3:触发几率7%,复活后血量40 新副本介绍:试炼之塔:共十层,守塔人为教技十男子。挑战过程中可以使用物品,挑战过程中状态不会回复,一旦挑战失败便会掉到第一层。通关奖励:金币5000,小红药*10,复活药*1 新模式介绍:乐斗模式:节操无下限,血量无上限!!取消等级系统,所有角色血量上限扩大20倍,八门遁甲释放几率上升为20%,并且取消限制使用次数,使用之后也不会死亡!!!金蝉脱壳触发几率上调为50%,取消限制使用次数,复活血量升为100~300!!九阳神功威力提升三倍!!尽情疯狂的打架吧!! 人物等级介绍: Lv1:胜场0~2 Lv2:胜场3~9 Lv3:胜场10~19 Lv4:胜场20~ 技能等级介绍:(主动技能的释放几率不会随等级变化) 破甲攻击: Lv1:伤害值0~30 Lv2:伤害值5~30 Lv3:伤害值5~35 九阳神功: Lv1:属性下降值1~15 Lv2:属性下降值2~17 Lv3:属性下降值3~20 八门遁甲: Lv1:属性提升值300~400 Lv2:属性提升值320~420 Lv3:属性提升值340~440 快速回复: Lv1:治疗值0~30 Lv2:治疗值10~40 Lv3:治疗值20~50 吸星大法: Lv1:吸收比率10% Lv2:吸收比率11% Lv3:吸收比率12% 回光返照: Lv1:属性提升值0~10,触发血量上限15 Lv2:属性提升值2~15,触发血量上限17 Lv3:属性提升值5~20,触发血量上限20 试炼之塔NPC介绍: 第1层:刘杰容——50,20,10,15,14 第2层:张荣佳——100,50,10,42,41 第3层:赵俊杰——2500,0,0,0,0 第4层:陈谊明——300,100,20,50,50 第5层:黄晓剑——100,300,100,50,50 第6层:赖鹏津——2000,0,500,0,0 第7层:梅震坤——500,200,200,50,50 第8层:缎嘉文——300,200,100,5000,50 第9层:范振威——3000,100,200,50,50 第10层:邓国雄——5000,500,500,500,500 经过几天几夜的更新,终于迎来了《姓名大乐斗1.4》,这次改动是几次来最大的,加入了新技能,副本系统,金钱系统,等级系统,乐斗模式,游客模式,物品系统,商店系统~~哇塞,居然改了这么多!嗯,努力往全球第一发展,争取游戏越做越大,玩家越来越多!!接下来会丰富物品系统和副本,推出越来越多的新模式,加入更多的新技能!!动画版是下一个大目标,在动画版做出来之前先慢慢丰富游戏内容,平衡游戏,增加游戏可玩度!之后的大目标的实现联网PVP对战,相信不久的将来,呈现给大家的是全新的《姓名大乐斗》!谢谢支持! 更新日期:2014.6.15 ---------------------------------------------------------------------- 姓名大乐斗 1.5 更新内容如下: 1.支持联机PVP,所有注册资源共享 2.新增了擂台战模式,只要打赢了擂主就能成为擂主,每次挑战消耗100金币,成为擂主有丰厚奖励!(金币*200,复活药*1) 3.新增了联机对战模式,只要输入对方的ID便能够PK 4.降低了小红药的售价,从200金币/个改为100金币/个 5.试炼之塔进入需要购买门票——100金币/次 6.试炼之塔不再触发八门遁甲 7.提高试炼之塔的奖励制度(第三层之后每层奖励200金币,并且回复300HP,通过之后复活药奖励改为3个) 8.新增了更新检查系统 经过几天几夜的更新,终于迎来了《姓名大乐斗1.5》,这次最重大的改动是可以联网了!!没错,新增的决斗场和擂台战绝对可以让玩家们感受到竞技的乐趣。上个版本关于试炼之塔的BUG已经修复,比如可以无限刷“刘杰容”来刷金币刷等级,莫名其妙触发八门遁甲而死的⋯⋯增加了门票收费制度的同时也丰富了奖励制度。嗯,差不多就是这样。另外新增了更新检查,有更新会提示的,暂时无法做到自动更新,注意关注我的微博,会有更新说明的。另外,招美工,为2.0版本做准备!谢谢支持! 微博:Airing-安灵 更新日期:2014.6.17 ----------------------------------------------------------------------- 更多更新可以关注:https://github.com/airingursb/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨小杨先生

你的鼓励是我的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值