VB设计报告.docx

上传人:b****6 文档编号:8020107 上传时间:2023-05-12 格式:DOCX 页数:10 大小:117.11KB
下载 相关 举报
VB设计报告.docx_第1页
第1页 / 共10页
VB设计报告.docx_第2页
第2页 / 共10页
VB设计报告.docx_第3页
第3页 / 共10页
VB设计报告.docx_第4页
第4页 / 共10页
VB设计报告.docx_第5页
第5页 / 共10页
VB设计报告.docx_第6页
第6页 / 共10页
VB设计报告.docx_第7页
第7页 / 共10页
VB设计报告.docx_第8页
第8页 / 共10页
VB设计报告.docx_第9页
第9页 / 共10页
VB设计报告.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VB设计报告.docx

《VB设计报告.docx》由会员分享,可在线阅读,更多相关《VB设计报告.docx(10页珍藏版)》请在冰点文库上搜索。

VB设计报告.docx

VB设计报告

南京工程学院

课程设计说明书(论文)

题目打字练习

课程名称VB语言课程设计

院(系、部、中心)

专业

班级

学生姓名

学号

设计地点图书馆基础教学机房

指导教师

 

设计起止时间:

201x年x月x日至201x年x月x日

一、设计任务

1.题目介绍

在计算机及其他数码产品日益普及的今天,人们使用键盘应像用笔写字一样熟练。

进行打字练习时熟悉键盘并提高打字速度的好方法。

本体要求编制一个打字练习游戏程序,使用户在游戏过程中进行打字练习。

2.功能要求

(1)启动界面如图1

(2)选择难度和速度后,单击“开始”按钮,界面如图1。

若选择简单,则落下字母;若选择复杂,单击开始后出现对话框,如图2.单击确定,开始练习,落下单词。

(2)若用户在字符落到屏幕底部之前敲击了相应的键盘键,则该字符被“击中”然后消失。

根据程序速度和难度的设置自动进行积分,实时分数时间正确率掉落个数显示在窗体的上部。

积分规则:

正确击中一个字母或一个单词,加一分;反之,不得分,亦不扣分。

(4)当游戏者单击“暂停”按钮时,程序停止运行,在单击“开始”按钮,程序继续运行;当单击“退出”按钮时,则弹出对话框(如截图示例3),单击“取消”按钮,程序继续运行,单击“确定”按钮,则弹出对话框(如截图4),此时对话框显示分数,单击“确定”按钮,退出程序。

(5)为了增加视觉效果,每个掉落的字符的颜色随机产生。

二、方法原理

根据题目要求,使用控件数组,用标签标题表示字符,键盘事件的处理判断打字正确与否,随机值的产生方法随机产生字符,用Timer控件属性反映时间、控制字符下落速度。

三、总体设计思路

首先在窗体上画出三个按钮标题分别为开始、暂停、退出。

画六个标签分别表示已落字母个数、已花时间、得分与正确率。

画出一个含有五个元素的标签控制数组用以显示字符。

画出两个时间控件,一个用来返回已用时间,一个控制字符下落。

最后编写相关代码

四、程序调试和解决问题

五个标签所显示的字符始终不变。

调试:

当打字正确或标签落到屏幕底部之后重新让标签标题取随机字符

五、完善及存在的问题

存在的问题:

打错字后没有相应的减分措施。

正常打字应是练习打汉字,而不是打西文字母,应该进成打汉字练习。

完善:

取一百个汉字,赋值给一个字符串类型的数组,用产生随机数的方法确定数组下标从而随机取汉字,标签的标题用随机产生的汉字字符表示。

六、收获体会

“纸上得来终觉浅,绝知此事要躬行”。

通过这次课程设计我懂得了vb课程设计就是培养我们综合运用所学知识、提高我们发现问题、分析问题、解决问题的能力的。

通过这一周的课程设计我不仅巩固了所学vb知识,还接触到了很多新的知识点。

我了解到很多时候理论远远比实践简单,很多时候我们只有把所学的理论知识与实践结合起来才能真正理解理论,才能得到真正的提高。

由于是第一次做这种相对复杂的程序设计,在课程设计中我遇到了很多困难发现了自己在vb这门课上的很多不足之处,很多知识只有模糊的记忆,不能灵活地运用,通过这次实践我体会到神么叫温故而知新。

学习中我们要不断对前面所学进行回顾。

这次实践不仅增加了我的vb知识,还让我明白了遇到困难我们要保持沉着冷静的心态,只要我们有有一种坚定不移的执着以及永不言弃的精神坚持做下去很多困难就会迎刃而解。

做一个程序设计实在很不容易,其中要用到很多知识,需要翻阅大量书籍,尤其是在资料上根本找不到的设计,但是收获同样是很大的,在翻阅书籍的过程中,再请教别人的过程中,我得到的不仅仅是知识,还有很多经验,我学会了自学,学会了和别人交流合作。

七、意见建议

也许老师平时讲到一个代码或者函数的时候,随即讲解一个与之相关的程序,运行下,会更好。

也可以在电脑房上课。

或者下次上课的时候还可以让我们自己带上电脑,随时随地就可以练习。

八、示例截图

图1

图2

图3

图4

九、附录1(代码)

DimhAsInteger

DimnAsInteger

PrivateFunctionsuiji()'随机产生字母和随机选取单词函数

DimaAsInteger

DimciAsString

DimbAsString

Randomize

word=Array("sway","sneak","naked","maple","ample","lough","plasma","tude","plague","pledge","play","prowl","pluckbandit","gangster","commemorate","solar","elipse","luna","lunatic","tumble","mortal","moral","fade","flinch","spout","sprout","spurn","spoil","sparrow","sprain","plasma","mare","malady","glisten","bereave","glimme","rslim","crave","amiable","able","blizzard","lizard","bruise","bromide","place","bale")'存放供练习的单词

b=Int(Rnd*(UBound(word)+1))'产生单词序号

a=Int((122-97+1)*Rnd+97)'产生97到122之间的整数

IfOption1.ValueThen

suiji=Chr(a)'如果选择简单单选框,则函数的返回值为小写字母

Else

suiji=word(b)'如果选择复杂单选框,则函数的返回值为单词

EndIf

EndFunction

 

PublicSubCommand1_Click()'开始按钮

Dimi%

IfOption2.ValueThen

i=MsgBox("输入单词后,请按空格键确认",,"注意")'操作提示

EndIf

Fori=0ToLabel1.Count-1

Label1(i).Visible=True

Label1(i).Caption=suiji

Label1(i).ForeColor=RGB(Rnd*255,Rnd*255,Rnd*255)'随机产生字母,单词,颜色随机

Next

Timer1.Enabled=True

Timer2.Enabled=True

Option1.Enabled=False

Option2.Enabled=False

Command1.Enabled=False'将计时器,速度调节,难度选择和开始按钮禁用

Text1.SetFocus'将焦点转移到文本框

EndSub

 

PrivateSubCommand2_Click()'暂停按钮

Timer1.Enabled=False

Timer2.Enabled=False

Command1.Enabled=True

EndSub

PrivateSubCommand3_Click()'退出按钮

IfMsgBox("确定要退出?

",vbYesNo)=vbYesThen

MsgBox"得分"&h&"分",,"成绩"'退出提示

UnloadMe'关闭窗体

EndIf

EndSub

 

PrivateSubForm_KeyPress(KeyAsciiAsInteger)

DimbAsInteger

DimcAsInteger

IfKeyAscii>=97AndKeyAscii<=122Then

ci=ci+Chr(KeyAscii)'将输入的单词赋值给空字符串ci

EndIf

b=-1

c=-1

IfOption1.ValueThen'选择简单

Fori=0ToLabel1.Count-1'遍历所有产生字母

IfLabel1(i).Caption=Chr(KeyAscii)Then'判断产生的字母和输入的字母是否相等

IfLabel1(i).Top>bThen'判断字母是否已经落出

c=i

EndIf

EndIf

Next

Else

IfKeyAscii=32Then'如果敲了空格,则进行单词比较操作

Fori=0ToLabel1.Count-1'遍历所有产生字母

IfLabel1(i).Caption=ciThen'判断产生的单词和输入的单词是否相等

IfLabel1(i).Top>bThen'判断字母是否已经落出

c=i

EndIf

EndIf

Next

ci=""

EndIf

EndIf

Ifc>-1Then

Label1(c).Top=-10'如果输入正确,则将字母标签隐藏到顶部

Label1(c).Caption=suiji'字母标签随机产生字母

h=h+1'如果输入正确,则得分加1

Label5.Caption="当前得分:

"&h'显示当前得分

Else:

n=n+1

Label3.Caption="掉落个数:

"&n'显示掉落个数

EndIf

EndSub

 

PrivateSubTimer1_Timer()

Timer1.Interval=1000

Fori=0ToLabel1.Count-1

Label1(i).Top=Label1(i).Top+500'控制字母,单词移动,以及移动速度

IfLabel1(i).Top>Form1.HeightThen

n=n+1'记录掉落个数

Label3.Caption="掉落个数:

"&n

Label1(i).Top=-10

Randomize

Label1(i).ForeColor=RGB(Rnd*255,Rnd*255,Rnd*255)'产生颜色

EndIf

Ifn=26Then

IfMsgBox("已经错过"&n&"个,重新开始?

",vbYesNo)=vbYesThen'提示框

Form_Load

Form1.Command1_Click

Else

Form_Load'控制重新游戏还是结束游戏

EndIf

EndIf

Next

EndSub

 

PrivateSubTimer2_Timer()

Timer2.Interval=1000

If(n+h)<>0Then

Label6.Caption="正确率:

"&h/(n+h)*100\1&"%"'显示正确率

EndIf

Statics

s=s+1

DimmiaoAsString

DimfenAsString

DimshiAsString

IfsMod60<10Then

miao=0

Else

miao=""

EndIf

If(sMod3600)\60<10Then

fen=0

Else

fen=""

EndIf

Ifs\3600<10Then

shi=0

Else

shi=""

EndIf

Label4.Caption="时间"&shi&s\3600&":

"&fen&(sMod3600)\60&":

"&miao&sMod60'显示已用时间

EndSub

 

PrivateSubForm_Load()

Text1.Top=-1000

Label6.Caption="正确率:

0"

Label4.Caption="时间00:

00:

00"

Label3.BackStyle=0

Label4.BackStyle=0

Label5.BackStyle=0

Label6.BackStyle=0'将标签2到6的背景设为透明

Fori=0ToLabel1.Count-1

Label1(i).Visible=False'将标签Label1

(1)到Label1(5)的初始状态设为不可见

Label1(i).Top=600*(i+1)'设置字母或单词的的位置

Label1(i).Caption=suiji'最初出现的字母或者单词

Label1(i).FontSize=25'设置字体大小

Label1(i).AutoSize=True'标签大小自动可调

Label1(i).BackStyle=0'透明

Next

Label3.Caption="掉落个数:

"&n

Label5.Caption="当前得分:

"&h

Label5.ForeColor=RGB(0,255,0)

Label3.ForeColor=RGB(0,255,0)

Label6.ForeColor=RGB(255,0,0)

Label4.ForeColor=RGB(255,0,255)'设置字体颜色

EndSub

十、附录2(主要参考资料)

1.VB课程设计简明教程(第三版)(高等教育出版社)

2.VB课程设计(清华出版社)

 

教师评语:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2