打字游戏课程设计.doc_第1页
打字游戏课程设计.doc_第2页
打字游戏课程设计.doc_第3页
打字游戏课程设计.doc_第4页
打字游戏课程设计.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机技能训练(2012届)(打字游戏)学生姓名 学 号 系 别 专业班级 自动化 指导教师 完成日期 目 录1、 功能描述-2-2、 概要设计-2-3、 详细设计-3-4、 效果-4-5、 心得体会-6-6、 附录-6-7、 参考文献-10-一、课程设计题目:打字游戏二、功能描述:该程序编写的是打字游戏,按下开始键后在屏幕上会出现字符,在其降落过程中可按键盘相应位置将其击落。如果击打错误系统即会自动提示“error!”,如果击打正确,就会在成绩里加上相应分数,考虑到系统实际操作环境,程序设置了字符随机下落位置、以及随机产生26个字母,这样就不会使用户感觉死板,更值得强调的是如果打击正确会使下一个字母下落速度加快,反之,就会速度减缓,这样的人性化设置更有利于用户的使用。而且在界面上也设有帮助菜单,可提供一些必要信息,如使用说明、版权所有等。三、概要设计:模块一:菜单。点击“帮助”可显示下设子菜单“使用说明”、“版权所有”、“取消”三项,点击的是“使用说明”,界面就会显示一个文本档告诉你一些使用方法等信息,点击版权所有同样显示文本档告诉你版权信息。按下取消键就会把文本档清除,回到运行模式。模块二:开始。点击开始则激活了“timer”控件,使其“enable”属性为“true”,可方便控制程序开始。模块三:结束。结束按钮则将“timer”的“enable”属性改为“false”,可方便控制程序暂停。模块四:成绩。通过“keypress”触发系统可确认击打正确与否,正确的话会在成绩里加分。模块五:错误提示。击打错误时,弹出“error!”提示信息。 模块六:label下落。Label1、Label2、Label3、Label4的“caption”属性即是显示的字母,移动位置可以随机产生,而且如果击打正确会使下一次下落速度加快,反之,速度减慢。模块七:键盘击打。将焦点移到picture里,击打字母。菜单开始成绩错误提示字母下落键盘击打结束四、详细设计:模块一:菜单。在“工具”里的菜单编辑器里制作,添加“帮助”、“版权说明”和“取消”,点击各子菜单可编辑代码,“Text3.Visible = True”、“Text4.Visible = false”分别对相应的text的“visable”属性设定为“true”,点击不同的之菜单即可弹出不同的text。模块二:开始。在界面上添加“command1”,对其click 事件编辑代码,“Timer1.Enabled = True”设timer的enable属性为“true”,即可运行。模块三:结束。在界面上添加“command2”,对其click事件编辑代码,“Timer1.Enabled = True”设timer的enable属性为“true”,即可运行。模块四:成绩。Keypress后如果正确,“score=score+1”将值累加,“Text1.Text = score”把score赋值给text1.text,即实现计分功能。模块五:错误提示。Keypress后如果错误,用“msgbox=(“error!”)”弹出一个提示信息。模块六:label下落。将代码“label.left= label.left+100”添加到各label,使其自动,“ Label1.Caption = Chr(Int(Rnd * 26) + 97)”下落并设定击打正确后随机改变为任意字母,“Label1.Left = Int(Rnd * Picture1.Width)”随机在任意left处开始下落,同时加快下落速度;若错误,则减缓速度。模块七:键盘击打。即“keypress”,将焦点移到picture里,“keyascii = Asc(Label1.Caption)”可检验击打正确与否。里面用到很多“if else”语句来区分不同情况。五、效果:1、当按下开始键,字母即会随机产生并下落,如图一中产生了“g”、“z”、“l”、“p”四个字母,由于作者起先已击打正确两次,所以成绩一栏被计入2分。如果按下暂停键就会使字母下落停止,按开始键再继续。 ( 图一)2、当用户击打错误时并不会计入成绩栏里,而是如图二,系统会自动弹出一个“msgbox”提示对话框,提示信息为“error!”,并把系统运行停止,确定后重新开始,这样有利于用户了解到错误所在,即可及时做到修正。 ( 图二)3、 在新手用户刚接触此系统时,可先点击图三所示的“帮助”菜单,下设子菜单“使用说明”、“版权所有”、“取消”三项。如图点击的是“使用说明”,界面就会显示一个文本档告诉你一些使用方法等信息,点击版权所有同样显示文本档告诉你版权信息。按下取消键就会把文本档清除,回到运行模式如图(三)。 图(三)六、心得体会:此次微机技能(vb)训练课程设计给我的最大收获是让我有了一次自主学习知识的机会,因为vb课在计算机二级考试之后就没再继续,当然也没再继续自我巩固,很多知识点都将近忘记,然而这次在老师的初步指导与监督下,我第一次自己设计、编写并顺利完成调试,系统也初步能达到预期效果,其中难免碰到很多相关困难,也正是这让我很好的锻炼了自己学习并解决的能力,我喜爱那个这也就是大学老强调的“自学”吧。关于在vb专业技能方面的话,我做的这个系统它主要是设计到了“timer”触发,和控件的移动,当然也设计了菜单的制作,这个“打字游戏”效果已基本达到,但我想还是太单调,可添加一些附属功能,比如对不同成绩进行评论,还有对游戏的时间限定,这些还有待完善吧,当然是要以更扎实的vb知识为基础的。总的说,平时多练习,课后常自学。七、附录:整个系统的全代码如下:Option ExplicitDim score As IntegerDim speed As IntegerPrivate Sub use_Click()Text2.Visible = TrueText3.Visible = FalseEnd SubPrivate Sub below_Click()Text3.Visible = TrueText2.Visible = FalseEnd SubPrivate Sub cancle_Click()Text3.Visible = FalseText2.Visible = FalseEnd SubPrivate Sub Command1_Click() Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click() Timer1.Enabled = FalseEnd SubPrivate Sub form_load() Label1.FontSize = 30End Sub Private Sub command1_keypress(keyascii As Integer) If keyascii = Asc(Label1.Caption) Then score = score + 1 Text1.Text = score Randomize: Label1.Caption = Chr(Int(Rnd * 26) + 97) Randomize: Label1.Left = Int(Rnd * Picture1.Width) Timer1.Interval = Timer1.Interval - 10 Label1.Top = 0ElseIf keyascii = Asc(Label3.Caption) Then score = score + 1 Text1.Text = score Randomize: Label3.Caption = Chr(Int(Rnd * 26) + 97) Randomize: Label3.Left = Int(Rnd * Picture1.Width) Timer1.Interval = Timer1.Interval - 10 Label3.Top = 0ElseIf keyascii = Asc(Label4.Caption) Then score = score + 1 Text1.Text = score Randomize: Label4.Caption = Chr(Int(Rnd * 26) + 97) Randomize: Label4.Left = Int(Rnd * Picture1.Width) Timer1.Interval = Timer1.Interval - 10 Label4.Top = 0ElseIf keyascii = Asc(Label5.Caption) Then score = score + 1 Text1.Text = score Randomize: Label5.Caption = Chr(Int(Rnd * 26) + 97) Randomize: Label5.Left = Int(Rnd * Picture1.Width) Timer1.Interval = Timer1.Interval - 10 Label5.Top = 0Else Timer1.Interval = Timer1.Interval + 10 MsgBox (error!) End If End SubPrivate Sub Timer1_Timer() If Label1.Top = Picture1.Height Then Label1.Top = 0 Randomize: Label1.Caption = Chr(Int(Rnd * 26) + 97) Randomize: Label1.Left = Int(Rnd * Picture1.Width) Else Label1.Top = Label1.Top + 100 End If If Label3.Top = Picture1.Height Then Label3.Top = 0 Randomize: Label3.Caption = Chr(Int(Rnd * 26) + 97) Randomize: Label3.Left = Int(Rnd * Picture1.Width) Else Label3.Top = Label3.Top + 100 End If If Label5.Top = Picture1.Height Then Label5.Top = 0 Randomize: Label5.Caption = Chr(Int(Rnd * 26) + 97) Randomize: Label5.Left = Int(Rnd * Picture1.Width) Else Label5.Top = Label5.Top + 100 End If If Label4.Top = Picture1.Height Then Label4.To

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论