最新VB课程设计报告-打字练习(1).doc
《最新VB课程设计报告-打字练习(1).doc》由会员分享,可在线阅读,更多相关《最新VB课程设计报告-打字练习(1).doc(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateVB课程设计报告-打字练习(1)课程设计题目 打字练习 VISUAL BASIC 课程设计报告题目:打字练习姓名 :* 学号: 班级: 1题目介绍在计算机及其它数码产品日益普及的今天,人们使用键盘应像使用笔写字一样熟练。进行打字练习是熟悉键盘并提高打字速度的豪放法。本题目要求编制一个打字练习游戏,是用户在游戏过程中练习指法。2设计过程中用到的知识点(1) 控件数组 (
2、2)键盘事件处理 (3)文本文件的读写 (4)多模块程序设计 (5) 随机值的生成 3课题要求和承担的任务(1) 游戏开始时出现“打字设置”窗口,在“您的姓名”文本框中输入用户名。若未输入名字,就点击“开始练习”与“查看成绩”按钮,则提示用户输入姓名。若未输入时间,就点击“开始练习”与“查看成绩”按钮,则提示用户输入时间。在“打字设置”窗口可以设置打字速度和难度,速度决定字母下落的快慢,共分高,中,低速三档。难度等级也分为三档:小写字母,大写字母,所有混合(字母,数字和符号)(2) 选择速度和难度之后,单击“开始练习”按钮后,主页面以全屏方式显示。根据难度的设置,屏幕上随即产生并落下各种字符。
3、若用户在字符落到屏幕底部之前敲击了相应的键盘键,则该字符被“击中”后消失,击中时在字符位置上显示一个爆炸的效果。程序根据速度和难度的不同自动进行计分,分数实时地显示在主界面的顶部。计分标准为:1, 慢速+小写字母:打中一个1分2, 慢速+大写字母:打中一个2分3, 慢速+混合字符:打中一个3分4, 中速+小写字母:打中一个4分5, 中速+大写字母:打中一个5分6, 中速+混合字符:打中一个6分7, 高速+小写字母:打中一个7分8, 高速+大写字母:打中一个8分9, 高速+混合字符:打中一个9分 (3) 打字前可以选择打字的时间,时间一到弹出消息框显示用户本次练习得分,并提示是否继续练习,如果选
4、“否”,返回“打字设置”窗口。用户的成绩被保存在“SCORE.TXT”文件中,供以后查询。(4) 当下落字符中有相同字符时,一次只能打掉一个(5) 在打字过程中,可以按ESC键中止游戏,返回打字设置窗口。但游戏的成绩并不保存。(6) 打字过程中如果按F1功能键,弹出键盘布局窗口供用户参考,显示该窗口时主窗口的字符暂停下落,关闭此窗口游戏继续进行。(7) 在“打字设置”窗口中,点击“查看成绩”按钮,显示当前用户的历次练习的成绩和时间。(8) 要求程序运行时将各个字符均匀地分布占满屏幕宽度。4 程序关键代码 frmSet界面代码 Option Explicit 强制变量声明Private Sub
5、Form_Load() Label2.Caption = Now()End SubPrivate Sub cmdPlay_Click() If txtName.Text = Then MsgBox 您还没有输入姓名。, 32, 打字设置 txtName.SetFocus Exit Sub End If If Text1.Text = Then MsgBox 您还没有输入时间。, 32, 打字设置 Text1.SetFocus Exit Sub End If games.Show games.deadtime = Val(Text1.Text) * 60 Me.Hide End SubPriva
6、te Sub cmdScore_Click() Dim pd1 As PersonData Dim pd2 As PersonData Dim str As String Dim strFind As Boolean pd1.name = txtName.Text If Dir(App.Path & Score.txt) = Then 测试一个指定的路径下是否有指定的文件或文件夹 MsgBox 文件不存在!, 48, 成绩查看 Exit Sub Else Open App.Path & Score.txt For Input As #1 If txtName.Text = Then 读取成绩
7、Do While Not EOF(1) Input #1, pd2.name, pd2.score, pd2.time 读入值赋给相应的变量 strFind = True Grade.Text1.Text = Grade.Text1.Text & pd2.name & Space(2) & pd2.score & 分 & Space(2) & pd2.time & Chr(13) & Chr(10) Loop Else Do While Not EOF(1) Input #1, pd2.name, pd2.score, pd2.time If pd2.name = pd1.name Then
8、strFind = True Grade.Text1.Text = Grade.Text1.Text & pd2.name & Space(2) & pd2.score & 分 & Space(2) & pd2.time & Chr(13) & Chr(10) End If Loop End If Close #1 If strFind = True Then Grade.Show Me.Hide Else MsgBox 没有您的成绩记录!, 48, 成绩查看 End If End IfEnd SubPrivate Sub cmdExit_Click() Unload MeEnd SubPri
9、vate Sub Form_Unload(Cancel As Integer) Unload gamesEnd SubPrivate Sub Frame2_DragDrop(Source As Control, X As Single, Y As Single)End SubPrivate Sub Label2_Click()End SubGames界面代码 Option ExplicitDim second As IntegerPublic deadtime As IntegerPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Int
10、eger) If KeyCode = vbKeyF1 Then Timer1.Enabled = False frmKB.Show 1 Timer1.Enabled = True End If End SubPrivate Sub Form_Load() Dim i As Integer For i = 1 To 9 Load lblLetter(i) Next For i = 0 To 9 lblLetter(i).Left = Screen.Width / 11 * (i + 1) lblLetter(i).Top = 0 lblLetter(i).Visible = True Next
11、StartEnd SubPrivate Sub Form_KeyPress(KeyAscii As Integer) Dim i As Integer For i = 0 To lblLetter.Count - 1 If Chr(KeyAscii) = lblLetter.Item(i).Caption Then 有匹配字符 ScoreCount imgExplode.Left = lblLetter.Item(i).Left imgExplode.Top = lblLetter.Item(i).Top imgExplode.Visible = True Timer2.Enabled = T
12、rue lblLetter.Item(i).Top = 0 Letter (i) Label2.Caption = frmSet.txtName.Text & , 你现在的得分是: & TotalScore & 分 Exit Sub End If Next If KeyAscii = 27 Then If MsgBox(真的要结束练习吗?, vbYesNo + vbQuestion, 打字练习) = vbYes Then Unload Me frmSet.Visible = True End If End If TotalScore = TotalScore - 1 Label2.Captio
13、n = frmSet.txtName.Text & , 你现在的得分是: & TotalScore & 分 End SubPrivate Sub Image1_Click()End SubPrivate Sub Timer1_Timer() Dim i As Integer For i = 0 To lblLetter.Count - 1 Randomize Speed (i) Next Label2.Caption = frmSet.txtName.Text & , 你现在的得分是: & TotalScore & 分 End SubPrivate Sub Timer2_Timer() Dim
14、 i As Integer For i = 0 To lblLetter.Count - 1 If lblLetter.Item(i).Top Me.Height Then Letter (i) End If Next imgExplode.Visible = False Timer2.Enabled = FalseEnd SubPrivate Sub Timer3_Timer() Dim person As PersonData second = second + 1 lblTime = second 60 & : & second Mod 60 If second = deadtime T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 VB 课程设计 报告 打字 练习
限制150内