VB课程设计益智类算数小游戏.docx
《VB课程设计益智类算数小游戏.docx》由会员分享,可在线阅读,更多相关《VB课程设计益智类算数小游戏.docx(37页珍藏版)》请在冰豆网上搜索。
VB课程设计益智类算数小游戏
吉林工程技术师范学院
《VB课程设计》
设计题目:
益智类算数小游戏
专业:
信息管理与信息系统
班级:
X0841学号:
33
学生姓名:
刘忠宇
指导教师:
孟宇桥高汝仪
2010年7月
信息工程学院
摘要:
………………………02
第一章绪论………………………03
第二章系统分析………………………04
第三章总体设计………………………06
第四章编码实现………………………07
第五章调试与测试………………………10
总结:
………………………14
附录:
1源代码………………………16
2参考资料………………………34
摘要
随着软件技术以及互联网技术的不断发展,游戏产业发展迅速,已经成为经济增民的一个亮点。
实践是软件开发的核心,对代码要求精益求精,在开发的过程中,简单设计,用测试驱动,通过重构和迭代代码实现设计。
VisualBasic,其中主要地介绍了VisualBasic6.0,以及VisualBasic的编程环境。
同时通过小游戏简单介绍了利用VisualBasic6.0开发游戏的处理过程。
主要介绍了24点游戏的开发,包括界面的设计和相应的界面设计原则,还介绍了其开发环境。
同时也对游戏系统的公共功能模块做了阐述。
通过对该课题的研究设计,对如何运用VisualBasic来设计游戏有了一定程度的了解,并对如何设计游戏的构架有所掌握。
关键词:
编程VisualBasic模块算法
第一章绪论
可视化前台编程的思想应用于软件开发过程中,指导开发活动的系统方法,它吸取了结构化程序设计的精华,以更接近人们通常思维的方式来处理问题,是一种全新的软件开发技术。
作为一种编程语言,VisualBasic很大程度推广了可视化窗体思想。
随着计算机技术的发展,VB.NET的强大展现出它不可替代的作用,VB的功能不仅体现在网络方面的应用,对于应用程序设计、游戏设计等都能满足需求。
本文针对的具体应用,设计了VB一个小游戏。
根据游戏的规则,用户将可以和计算机进行简单对战。
程序实现了友好的用户交互界面,让用户能很好地对游戏进行操作
计算机技术的应用正在朝着网络化的方向阔步前进。
VB为其提供了简便并且功能强大的编程接口。
开发人员生成独立于平台的应用程序,用VB编写的程序可以在许多硬件平台上运行而不需要重新编译。
VB最强大的是网络方面的应用,本课程设计不涉及网络方面的应用。
第二章系统分析
程序用到了很多有关VB.NET的语法:
Msgbox(Prompt[,Buttons][,Title])方法,这个方法主要用于弹出消息框,在这个程序中,你会经常看到这样的语法,主要用于提示玩家相关的信息。
Prompt:
消息框中的提示信息。
Enabled语句,这个语句在程序里主要是用于控制按钮,标签等控件是否可用。
Val语句,这个语句主要用于类型转换,TextBox.text只支持字符串格式,而加、减、乘、除等的运算需要时数字才可以,所以要通过Val将字符串类型转换为数字类型,让后进行运算。
Buttons。
显示按钮,是个枚举类型MsgBoxStyle值。
用来控制在对话框内显示的按钮类型、数目及图标样式。
Title。
消息框的标题。
若省略,则默认为当前的应用程序的名称。
Try…catch…Endtry语句。
这是个异常处理的语法,在本程序中主要用于判断玩家输入的是否为字母,如果是字母或者是不正确的数字,则会被该语句捕捉到错误,然后抛出异常。
Tostring语法
该语法主要用于类型转换。
在次程序中,类似于x,n之类的数字类型变量无法被label.text的字符串类型接受,所以需要用到该语法进行强制的类型转换,将数字类型转换为字符串类型。
Inputbox(prompt[,Title][,Default][,XPos][YPos])
(1)Prompt。
输入框中的提示文字。
(2)Title。
输入框的标题。
(3)Default。
显示在输入文本框中的默认内容,省略则显示空串。
(4)XPos。
指定对话框左边界和屏幕左边界的间距。
省略时对话框位于水平方向中心。
(5)YPos。
指定对话框上边界和屏幕上边界的间距。
省略时对话框位于竖直方向,大约在屏幕上边界往下三分之一的地方
If…else语法
主要用语判断玩家的余额和输入的数字是否超出规定的范围。
Me.width的意思是该窗体的宽度。
在此程序中主要是调整欢迎语句的位置。
Backcolor用于改边背景颜色。
此程序主要用来改变标签的背景颜色。
在此程序中我用到了Rnd()方法,它的功能主要是在0到1之间随机的生成个小数,再通过Int()方法强制转换为整型,就实现了所有数字的随机产生。
。
在设计Sub过程的时候,考虑到简单明了,Sub开始EndSub结束方法都是在默认属性中创建和实现的。
我们设计的优点是:
条理清晰,容易理解,容易修改。
第三章总体设计
一对Form1窗体的设定,在窗体中添加LableBox,Button按钮的添加,及对整个界面布局!
二在相应的控件中添加程序,在Button1中赋予点击按钮将加号给指定的标签label5,Button2中赋予点击按钮将减号给指定的标签label6,Button3中赋予点击按钮将除号给指定的标签label7.这样可以实现符号的操作,
三在开始按钮中设置默认值,并将控件中的数据清空,设置按钮不可用,及在开始按钮中随机给一组数字在1到13之间的数,这是通过Rnd来实现的在这其中还需要考虑不出现零的情况,避免带来不必要的麻烦。
四在确认按钮中设置程序实现的过程,最主要的算法,是通过select语句来实现的,通过select语句分情况逐个实现可能遇到的问题并将其成功的解决。
五最后通过MsgBox语句来实现输出实现的运行结果。
这是通过IfElse语句来实现判断的过程。
六在找不到答案的情况下或一时想不起的时候可以放弃此组数据,可以选择放弃按钮,放弃按钮主要是对数据清空工作。
第四章编码实现
一加法button1按钮中设置
IfLabel5.Text=""Then
Label5.Text="+"
ElseIfLabel6.Text=""Then
Label6.Text="+"
ElseIfLabel7.Text=""Then
Label7.Text="+"
ElseIfButton1.Enabled=FalseThen
EndIf
减法Button2按钮中设置
IfLabel5.Text=""Then
Label5.Text="-"
ElseIfLabel6.Text=""Then
Label6.Text="-"
ElseIfLabel7.Text=""Then
Label7.Text="-"
ElseIfButton1.Enabled=FalseThen
EndIf
除法Button3按钮中设置
IfLabel5.Text=""Then
Label5.Text="/"
ElseIfLabel6.Text=""Then
Label6.Text="/"
ElseIfLabel7.Text=""Then
Label7.Text="/"
ElseIfButton1.Enabled=FalseThen
EndIf
乘法Button4按钮中设置
IfLabel5.Text=""Then
Label5.Text="*"
ElseIfLabel6.Text=""Then
Label6.Text="*"
ElseIfLabel7.Text=""Then
Label7.Text="*"
ElseIfButton1.Enabled=FalseThen
EndIf
二开始按钮中设置
Label1.Text=Int(13*Rnd()+1)
Label2.Text=Int(13*Rnd()+1)
Label3.Text=Int(13*Rnd()+1)
Label4.Text=Int(13*Rnd()+1)
Button4.Enabled=True
Button3.Enabled=True
Button2.Enabled=True
Button1.Enabled=True
Button8.Enabled=True
Button9.Enabled=True
Label5.Text=""
Label6.Text=""
Label7.Text=""
三在确认按钮中设置
DimaAsInteger
SelectCaseLabel5.Text
Case"+"
a=Val(Label1.Text)+Val(Label2.Text)+Val(Label3.Text)+Val(Label4.Text)
Case"-"a=Val(Label1.Text)+Val(Label2.Text)+Val(Label3.Text)-Val(Label4.Text)
Case"/"a=Val(Label1.Text)+Val(Label2.Text)+Val(Label3.Text)/Val(Label4.Text)
Case"*"a=Val(Label1.Text)+Val(Label2.Text)+Val(Label3.Text)*Val(Label4.Text)
EndSelect
四在放弃按钮中设置
Button9.Enabled=False
Button8.Enabled=False
Button4.Enabled=False
Button3.Enabled=False
Button2.Enabled=False
Button1.Enabled=False
Label1.Text=""
Label2.Text=""
Label3.Text=""
Label4.Text=""
Label5.Text=""
Label6.Text=""
Label7.Text=""
第五章调试与测试
一控件布置及相关的设置:
二控件中的源代码的实现
三程序的试运行
总结语:
作为率先推广前台编程思想的语言,VB却不是革命性的东西,所有现有的VB的思想都是继承自其他的语言和技术,没有什么革命的地方。
但是VB在真正推动可视化前台编程思想方面是功不可没的。
使用VB编程,你无需考虑到向后兼容什么语言的问题,它是重新建立的语言,你在掌握这门语言之前,你必须将自己的编程思想由过程编程彻底转向编程,因为每个VB程序,你编写任何VB程序,你都不自觉的在构造一个模块,过程。
相对于另一门面向对象的语言C++而言,VB在面向对象的贯彻方面要比C++彻底。
有人说“C++是打着面向对象的幌子,干着过程编程的勾当”或许不是言过其辞,C++继承了C的面向过程的一些特性,而VB几乎都用了面向对象的思想来实现程序。
但是无论是c++还是VB都有可能走过程编程的老路,VB降低的过程编写的可能性,但是如果你没有具备面编程思想,你还是可能走面向过程的老路的。
程序中生成了几个对象,均为较简单的对象,而却难免会步入面向过程的老路,但这看似是却是难免的:
实现游戏规则,就要把过程写出来。
最近接触了许多软件工程方面的知识,深深感到程序设计要走的路之漫长。
理解课程设计如果想要做好,绝不是一朝一夕的事。
本次设计的每一个阶段:
系统分析、总体设计、编码实现、调试与测试,都是我在不断学习的情况下完成的。
而在这些过程中不断体会软件设计的各个步骤、各个环节,又转到不断学习中去。
古语有云“工欲善其事,必先利其器”,当初朦朦胧胧地写了代码,就体会到学习VB仍然是处于初步阶段,远远不够“善其事”。
只是VB的学习是要不断把所学和所用结合的,一次课程设计可以体会到知识的不足,而后补充所需的知识,再进行实践,再发现不足,如此不断,才能慢慢体会这门语言的精髓。
再如软件设计。
毋庸置疑,本次课程设计只是让我“摸一下软件设计”。
如专家所说,软件文档的编写是应当占了软件设计的90%的时间精力的,文档写好了,随便一个程序员都能做出软件来。
可见软件文档的重要性。
对于只是“了解软件工程”的我们来说,编写文档莫过于一件痛苦的事――并没有系统地学习过,却要一点一点地用出来。
洋洋洒洒的一本书,不禁为要走的路之漫长艰辛感慨不已。
但是倘若是真的有兴趣有毅力,这些应当不在话下。
是故,本次课程设计带给我的不仅仅是为未来打基础这么简单的收获,更多的是一种认识。
小至一门课程、一门语言,大至一门专业、一段人生,若不是热情主动刻苦地学习,将一无所获。
附录:
1源代码
PublicClassForm1
InheritsSystem.Windows.Forms.Form
#Region"Windows窗体设计器生成的代码"
PublicSubNew()
MyBase.New()
'该调用是Windows窗体设计器所必需的。
InitializeComponent()
'在InitializeComponent()调用之后添加任何初始化
EndSub
'窗体重写dispose以清理组件列表。
ProtectedOverloadsOverridesSubDispose(ByValdisposingAsBoolean)
IfdisposingThen
IfNot(componentsIsNothing)Then
components.Dispose()
EndIf
EndIf
MyBase.Dispose(disposing)
EndSub
'Windows窗体设计器所必需的
PrivatecomponentsAsSystem.ComponentModel.IContainer
'注意:
以下过程是Windows窗体设计器所必需的
'可以使用Windows窗体设计器修改此过程。
'不要使用代码编辑器修改它。
FriendWithEventsLabel1AsSystem.Windows.Forms.Label
FriendWithEventsLabel2AsSystem.Windows.Forms.Label
FriendWithEventsLabel3AsSystem.Windows.Forms.Label
FriendWithEventsLabel4AsSystem.Windows.Forms.Label
FriendWithEventsLabel5AsSystem.Windows.Forms.Label
FriendWithEventsLabel6AsSystem.Windows.Forms.Label
FriendWithEventsLabel7AsSystem.Windows.Forms.Label
FriendWithEventsLabel16AsSystem.Windows.Forms.Label
FriendWithEventsButton1AsSystem.Windows.Forms.Button
FriendWithEventsButton2AsSystem.Windows.Forms.Button
FriendWithEventsButton3AsSystem.Windows.Forms.Button
FriendWithEventsButton4AsSystem.Windows.Forms.Button
FriendWithEventsButton7AsSystem.Windows.Forms.Button
FriendWithEventsButton8AsSystem.Windows.Forms.Button
FriendWithEventsButton9AsSystem.Windows.Forms.Button
FriendWithEventsLabel8AsSystem.Windows.Forms.Label
PrivateSubInitializeComponent()
DimresourcesAsSystem.Resources.ResourceManager=NewSystem.Resources.ResourceManager(GetType(Form1))
Me.Label1=NewSystem.Windows.Forms.Label
Me.Label2=NewSystem.Windows.Forms.Label
Me.Label3=NewSystem.Windows.Forms.Label
Me.Label4=NewSystem.Windows.Forms.Label
Me.Label5=NewSystem.Windows.Forms.Label
Me.Label6=NewSystem.Windows.Forms.Label
Me.Label7=NewSystem.Windows.Forms.Label
Me.Label16=NewSystem.Windows.Forms.Label
Me.Button1=NewSystem.Windows.Forms.Button
Me.Button2=NewSystem.Windows.Forms.Button
Me.Button3=NewSystem.Windows.Forms.Button
Me.Button4=NewSystem.Windows.Forms.Button
Me.Button7=NewSystem.Windows.Forms.Button
Me.Button8=NewSystem.Windows.Forms.Button
Me.Button9=NewSystem.Windows.Forms.Button
Me.Label8=NewSystem.Windows.Forms.Label
Me.SuspendLayout()
'
'Label1
'
Me.Label1.BackColor=System.Drawing.Color.Transparent
Me.Label1.Font=NewSystem.Drawing.Font("宋体",24.0!
System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,CType(134,Byte))
Me.Label1.Location=NewSystem.Drawing.Point(56,56)
Me.Label1.Name="Label1"
Me.Label1.Size=NewSystem.Drawing.Size(56,56)
Me.Label1.TabIndex=0
Me.Label1.Text="Label1"
Me.Label1.TextAlign=System.Drawing.ContentAlignment.MiddleCenter
'
'Label2
'
Me.Label2.BackColor=System.Drawing.Color.Transparent
Me.Label2.Font=NewSystem.Drawing.Font("宋体",24.0!
System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,CType(134,Byte))
Me.Label2.Location=NewSystem.Drawing.Point(168,56)
Me.Label2.Name="Label2"
Me.Label2.Size=NewSystem.Drawing.Size(56,56)
Me.Label2.TabIndex=1
Me.Label2.Text="Label2"
Me.Label2.TextAlign=System.Drawing.ContentAlignment.MiddleCenter
'
'Label3
'
Me.Label3.BackColor=System.Drawing.Color.Transparent
Me.Label3.Font=NewSystem.Drawing.Font("宋体",24.0!
System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,CType(134,Byte))
Me.Label3.Location=NewSystem.Drawing.Point(272,56)
Me.Label3.Name="Label3"
Me.Label3.Size=NewSystem.Drawing.Size(56,48)
Me.Label3.TabIndex=2
Me.Label3.Text="Label3"
Me.Label3.TextAlign=System.Drawing.ContentAlignment.MiddleCenter
'
'Label4
'
Me.Label4.BackColor=System.Drawing.Color.Transparent
Me.Label4.Font=NewSystem.Drawing.Font("宋体",24.0!
System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,CType(134,Byte))
Me.Label4.Location=NewSystem.Drawing.Point(392,56)
Me.Label4.Name="Label4"
Me.Label4.Size=NewSystem.Drawing.Size(56,48)
Me.Label4.Tab