记忆力测试 课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Visual Basic

课程设计报告

所属课程名称:Visual Basic程序设计

课程设计题目:记忆力测试

课程设计难度:2星

课程设计时间:2012.2.27~3.23

学号:

姓名:

南京理工大学机械工程学院

二〇一二年三月

一、程序功能

(1)启动程序时显示图1所示的启动界面。单击“开始”按钮,如图2所示,程序一次弹出3个随机生成的大写字母。半秒钟后,字母消失,一个竖线光标提示用户重新输入刚才的字母(图3)

图1启动界面图2显示字母图3输入字母

(2)用户输入3个字母后,程序判断输入的字母是否和随机产生的完全相同。如果相同,程序再随机生成4个字母让用户记忆输入;如果不相同,以图4所示的方式将生成的字母与输入的字母进行对比,用户可以发现自己那个字母输入不正确。

(3)在图4所示状态下,用户可以选择“重复本步”让程序再生成相同个数的字母重试;如果选择“从头开始”则从3个字母重新开始。

图4输入错误时的显示内容

(4)要求字母以突出的立体效果显示,像是写在有厚度的木板上。

(5)用户输入字母时,无论其键盘是否处于大写锁定状态,都以大写形式显示。在用户没有输入完当前要求的字母个数前,可以通过“退格键”逐个删除以输入的字母。

(6)窗口上命令按钮的标题文字和有效状态应根据程序的状态不断变化。在用户输入字母时,只有“退出键”可用;当输入错误时,“开始按钮变为重复本步”按钮。在不同阶段,提示文字的内容页不同。

知识点:控件数组;Timer定时器控件;Line直线、Shape形状、Label标签控件的使用;键盘事件处理;随机值生成。

二、课程设计的详细设计

显示字母时使用随机函数产生字母。定义一个静态变量来控制直线光标的显现与消失。键盘的KeyPress 事件是整个程序的主要时事件。使用静态变量来储存游戏进行的关数。用两个数组分别储存程序显示的字母和用户输入的字母,并进行比较。用一个数组来储存成绩,当查看排名时使用比较排序法选出前三名,显示并保存到文件中。

三、程序调试过程

【问题1】:可以输入字母的个数超过所要求的(如第一关可以输入8个字母)

【解决办法】:If k >z Then Exit Do

【问题2】:字母无法显示0.5秒

【解决办法】:使用一个静态变量x ,当x=1时显示字母,当x=2时字母消失。其中x 变为2时,该过程是第二次执行,时间间隔为0.5秒(由计时器的Interval 属性决定)。

四、更上一层楼

新功能:当输入字母错误时,程序会使用红色将其突出显示;增加了成绩的储存及显示成绩排行榜的功能。

改进:每通一关就有提醒,完成整个游戏后也有提醒;退出游戏时后会提醒用户是否保存成绩。

五、课程设计总结

要灵活使用静态变量和控件数组。适当地使用过程能使程序代码简洁。

这次的课程设计让我掌握了键盘的KeyPress 事件,明白静态变量的使用一定要注意判断是否需要归零或继续使用,以及计时器控件的使用一定要注意判断和使用Enable 属性。在判断两个或多个变量的关系时一定要注意边界值。

六、源程序代码

Dim zimushow(0To7)As String,zimukey(0To7)As String

Dim k As Integer,z As Integer

Dim order(1To4)As String

'zimushow()用于储存显示了0.5秒的字母,zimukey()用于储存键入的字母

'k主要用在键盘事件中,相当于Index,还在cmdrestart和cmdstart过程中调用'z用于记录游戏进行的关卡数(=z+1)

'order()用于成绩保存中

================================================================================ Private Sub cmdstart_Click()

Dim index As Integer

If cmdstart.Caption="开始"Then'开始游戏

For index=0To2

lbzimu(index).Visible=True

Shapeheng(index).Visible=True

Shapeshu(index).Visible=True

Next

Timershow.Enabled=True

cmdstart.Enabled=False

cmdrestart.Enabled=False

cmdpaiming.Enabled=False

z=2'记录游戏进行到几关

Label2.Caption="记住下列每个字母"

ElseIf cmdstart.Caption="重复本步"Then'重复本关游戏

For index=0To z

lbchacuo(index).Caption=""

ShPheng(index).Visible=False

Shpshu(index).Visible=False

Next

cmdstart.Enabled=False

cmdrestart.Enabled=False

cmdpaiming.Enabled=False

Label3.Caption=""

k=0

Call changcolor

Timershow.Enabled=True

End If

End Sub

================================================================================ Private Sub cmdrestart_Click()'重新开始

Dim index As Integer,i As Integer

If cmdstart.Caption<>"重复本步"Then'说明游戏还没开始,点击无效

Exit Sub

End If

Call saving

cmdstart.Caption="开始"

相关文档
最新文档