英文打字练习程序报告.docx

上传人:b****8 文档编号:12552559 上传时间:2023-06-06 格式:DOCX 页数:21 大小:266.32KB
下载 相关 举报
英文打字练习程序报告.docx_第1页
第1页 / 共21页
英文打字练习程序报告.docx_第2页
第2页 / 共21页
英文打字练习程序报告.docx_第3页
第3页 / 共21页
英文打字练习程序报告.docx_第4页
第4页 / 共21页
英文打字练习程序报告.docx_第5页
第5页 / 共21页
英文打字练习程序报告.docx_第6页
第6页 / 共21页
英文打字练习程序报告.docx_第7页
第7页 / 共21页
英文打字练习程序报告.docx_第8页
第8页 / 共21页
英文打字练习程序报告.docx_第9页
第9页 / 共21页
英文打字练习程序报告.docx_第10页
第10页 / 共21页
英文打字练习程序报告.docx_第11页
第11页 / 共21页
英文打字练习程序报告.docx_第12页
第12页 / 共21页
英文打字练习程序报告.docx_第13页
第13页 / 共21页
英文打字练习程序报告.docx_第14页
第14页 / 共21页
英文打字练习程序报告.docx_第15页
第15页 / 共21页
英文打字练习程序报告.docx_第16页
第16页 / 共21页
英文打字练习程序报告.docx_第17页
第17页 / 共21页
英文打字练习程序报告.docx_第18页
第18页 / 共21页
英文打字练习程序报告.docx_第19页
第19页 / 共21页
英文打字练习程序报告.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

英文打字练习程序报告.docx

《英文打字练习程序报告.docx》由会员分享,可在线阅读,更多相关《英文打字练习程序报告.docx(21页珍藏版)》请在冰点文库上搜索。

英文打字练习程序报告.docx

英文打字练习程序报告

武汉工业学院

计算机与信息工程系

VB课程设计

设计题目:

英文打字练习

专业信息管理与信息系统

班级

学号090502229

姓名钟雅婷

指导教师林菁

2011年1月5日

——目录

一、系统概述2

1.1.系统基本要求和问题描述…2

1.2.系统实现的内容2

1.3系统的设计目的.2

二、系统分析2

2.1数据分析2

2.2功能分析2

三、系统详细设计2

3.1主界面详细设计2

3.2工具栏详细设计3

3.3菜单栏详细设计4

四、系统编码及实现…4

4.1工具栏按钮代码设计4

4.2窗体的代码设计8

4.3用户输入判断操作代码设计9

4.4打字实时评价代码设计10

4.5“文件”菜单代码设计...10

4.6“帮助”菜单代码设计11

五、系统运行测试..11

六、系统调试及代码改进12

七、系统总结13

7.1程序中相关知识点的应用13

7.2本程序的不足之处13

7.3课程设计感想13

亠、系统概述:

1.1系统基本要求和问题描述:

VB打字游戏,要求从屏幕上方随机落下若干字母、数字或其他符号,并能实时给分数。

1.2系统实现的内容:

这是一个带有计时功能的简易英文打字练习程序,运行该程序后会随机产生一些英文字母供用户进行简单的打字练习的功能。

同时还会根据用户的成绩进行一个简单的评分。

1.3系统的设计目的:

在一定程度上可以为用户提供一个练习打字的简易平台。

通过这样的打字练习达到更高效、快速的输出英文单词目的。

使使用者可以更快的熟悉键盘和英文打字。

1、系统分析:

2.1数据分析:

系统的数据主要是随机产生英文字母供使用者实现打字练习的操作。

此过程中使用了subRandom函数和subOpenTxt函数来随机生成打字源文件和引用外部文本文件。

2.2功能分析:

在功能方面,系统实现了随机产生英文字母或用户直接打开相应的文件夹来进行打字练习。

这个过程中用到了随机生成字母函数。

随后进入测试模块,在

用时和正确率方面对用户的打字练习进行评估。

此时对测试函数进行了调用。

三、系统详细设计

3.1主界面详细设计:

在该界面中,添加一个OpenFileDialog控件、Timer控件、Panel控件、十六个Label控件,控件的属性如下图所示:

控件

属性

设置结果

FORM

Name

TextMaximizeBoxMinimizeBox

FrmTT

英文打字软件

False

False

OpenFileDialog

Name

OpenFileDialog1

Timer

Name

Interval

Timer1

1000

Panel

Name

BackColor

Panel1

White

Label1、3、5、7、9、11、13

Label2、4、6、8、10、12、14

BackColor

BackColor

YellowGreen

White

Label

Name

BackColor

Text

LbPerformanee

Ivory

点击开始输入

Label

Name

ForeColor

Text

LbStart

Black

按"Enter"键计时开始

得到程序主界面设计如下:

开始打幵普停退出

点去歼始擔入

Label!

Label2LabelLabel4Label5LabelsLabel?

LabelSLabel9LabellOLabelllLabell2Label13Label14

按"Enter*键计时开鳍

3.2工具栏界面设计:

使用ToolBar控件和ImagerList控件实现工具栏的制作。

实现“开始”、“打开”、“暂停”、“退出”四个按钮。

具体实现过程如下:

1、单击ToolBar控件属性栏的“Bottons”属性,在弹出的对话框中编辑工具栏按钮。

2、按照下面的属性表设置按钮的属性。

按钮名称(Name

Text

ImageIndex

TbRnd

随机(&R

0

TbOpen

打开(&O

1

TbPause

暂停(&P)

2

TbEixt

推出(&X

3

设置完生成的工具栏的效果如图:

編辑⑥

开始

打开

皙停退出

打开文本

随机生成

停退出

3.3菜单栏详细设计:

按照下表添加菜单项,完成英文打字程序的界面设计

菜单名称(Name

类别

文本(Text)

快捷键

MenuFile

父菜单

文件

ALT+F

MenuOpen

子菜单

打开文件

ALT+O

MenuRand

子菜单

随机生成

ALT+R

MenuExit

子菜单

推出

ALT+X

MenuHelp

子菜单

帮助

ALT+H

MenuAbout

子菜单

关于英文打字

ALT+F

效果图如下:

濡辑(!

退出也)

Label1Label2Label3Label4Label?

Label6Label7Label8Label9LabellOLabelllLabel12

L

Label14

W^Enter^W计时开给

四、系统编码实现:

4.1、工具栏按钮的代码设计:

工具栏要实现如下的功能:

随机生成打字源文件、引入外部文件、暂停、退出。

首先在Toolbar的ButtonClick事件中添加的代码如图所示:

PrivateSubToolBar1_ButtonClick(ByValsenderAsSystem.Object,ByValeAs

System.Windows.Forms.ToolBarButtonClickEventArgs)HandlesToolBar1.ButtonClick

SelectCaseToolBar1.Buttons.lndexOf(e.Button)

Case0

subRandom()

'随机产生原始文本

Case1

subOpenTxt()

'从文本文件中读入文本

Case2

IfToolBarButton3.Text="暂停(&P)"Then

Timerl.Enabled=False

ToolBarButton3.Text="计时(&S)"

Else

Timer1.Enabled=True

ToolBarButton3.Text="暂停(&P)"

EndIf

'根据按钮显示的文本内容来控制计时的暂停和开始

Case3

Close()

'退出

EndSelect

'根据点击的ToolBar中的Button的索引值来判断用户点击的按钮

EndSub

以上代码使用了subRandom函数和subOpenTxt函数来随机生成打字源文件和引用外部文本文件,subRandonm勺代码如下:

PrivateSubsubRandom()

DimiAsInteger,jAsInteger,sAsString

Fori=1To7

lbSource(i).Text=""

Next

'清空原始文本

Randomize()

'随机函数种子

Fori=1To462

IfiMod8=0Then

sSource(i)=""

lbSource(Int((i-1)/66+1)).Text=lbSource_

(Int((i-1)/66+1)).Text&””

'每隔五个字母就自动产生一个空格

Else

sSource(i)=Chr(Int(Rnd()*25+97))

lbSource(Int((i-1)/66+1)).Text=lbSource_

(Int((i-1)/66+1)).Text&sSource(i)

'在小写字母“a”-“z”中随机产生一个字母

'并将其加入sSource字符数组和lbSource中。

EndIf

Next

iNum=0

iCorrect=0

iSecond=0

Fori=1To7

Iblnput(i).Text=

Next

Fori=1To462sinput(i)=

Next

IbPerformance.Text=

TooIBarButton3.Enabled=

重置各控件和变量的值

EndSub

Rand函数生成小于1但大于或等于0的随机数,使用方法如下:

Rn(number),参数number是一个single值或任意有效的single表达式。

函数返回值。

Number值为

Rnd生成

小于零

每次都相同的数字并将number用作种子

大于零

序列中的下一个随机数

等于零

最近生成的数字

未提供

序列中的下一个随即数

代码中的IbSource、Iblnput,是在窗体类开头定义的全局控件数组变量,sSource、sinput是在窗体类开头定义的全局字符数组变量,用于存储原始文本和用户输入的文本,还有其他的一些变量声明如下:

PublicClassForml

inheritsSystem.Windows.Forms.Form

DimIbSource(7)AsLabel,lbinput(7)AsLabel

'分别定义用户输入和原始文本的Label控件数组

DimsSource(463)AsChar,sinput(463)AsChar

'分别定义用于存储用户输入和原始文本的字符数组

DimiNumAsinteger,iCorrectAsinteger

DimiSecondAsinteger

Dimx,y,kAsinteger

DimflagAsBoolean=True'标签方向朝左

'iNum用于记录用户已经输入的字符数,

'iCorrect用于记录用户输入正确的字符数

'iSecond用于记录已经用去的时间

subOpenTxt函数的代码如下:

Then

PrivateSubsubOpenTxt()

ifOpenFileDialog1.ShowDialog()=DialogResult.OK

'用户用“打开按钮”选择了文本文件,并单击了确定按钮

DimiAsInteger,jAsInteger,sAsString

Fori=1To7lbSource(i).Text=""

Next

'清空原始文本

FileOpen(1.OpenFileDialog1.FileName,OpenMode.lnput)

'以“Input”方式打开文本文件

DoWhileNotEOF⑴

s=s&Linelnput

(1)

Ifs.Length>462Then

ExitDo

EndIf

Loop

'将文本文件内容读入s中

'当读至文件尾,或字符串s的长度超过的时候,就结束循环。

DoWhiles.Length<462

s=s&s

Loop

'若s的长度小于,则对S进行自身复制,以保证S的长度

FileClose⑴

'关闭文本文件

sSource=s.Substring(1,462).ToCharArray()

'将字符串s的前个字符复制到字符数组sSource中

Fori=1To462

lbSource(Int(i/66+1)).Text=lbSource(Int_

(i/66+1)).Text&sSource(i)

Next

Label中

'将字符数组sSource中的字符分行放入用于显示原始文本的个

iNum=0

iCorrect=0

iSecond=0

Fori=1To7

lbInput(i).Text=

Next

Fori=1To462

sinput(i)=

Next

lbPerformance.Text=

False

ToolBarButton3.Enabled=

'重置各控件和变量的值

EndIf

EndSub

4.2、窗体的代码设计:

在窗体的代码设计中,主要实现如下的功能:

初始化、窗体响应键盘的操作、实时评价打字结果。

代码如下:

PrivateSubform1_Load(ByVaisenderAsSystem.Object,_

ByVaieAsSystem.EventArgs)HandlesMyBaseLoad

y=8

ibPerformance.Location=NewPoint(x,y)

lbSource

(1)=Labell

ibSource

(2)=Label3

ibSource(3)=Label5

lbSource(4)=Label7

ibSource(5)=Label9

ibSource(6)=Labeill

ibSource⑺=Label13

iblnput

(1)=Label2

iblnput

(2)=Label4

iblnput(3)=Label6

iblnput(4)=Label8

iblnput(5)=Label10

iblnput(6)=Label12

iblnput(7)=Label14

'将用于显示原始文本和用户输入文本的Label赋给数组

'以便我们在后面的程序中使用这些控件

ibStart.Text="按回车键开始计时”

ibStart.Visibie=False

Timerl.Enabled=False

Timerl.Interval=1000

TooiBarButton3.Enabled=False

DimiAsInteger,jAsInteger

Fori=1To7

lbSource(i).Text=""

Iblnput(i).Text=""

Next

'对控件的属性值初始化

iNum=0

iCorrect=0

iSecond=0

'对变量初始化

EndSub

4.3、用户输入判断操作代码设计:

PrivateOverloadsSubPanel1_KeyPress(ByVaisenderAsObject,

ByVaieAsSystem.Windows.Forms.KeyPressEventArgs)_

HandiesPanell.KeyPress

'本函数用于对用户的每次输入进行判断,并对部分变量进行相应的计数

'当用户已经输入了个字符,则测试完成

'此时终止时钟,并给出提示信息

IfInt(60*iNum/iSecond)>=550AndInt(100*iCorrect/iNum)>=

90Then

MessageBox.Show("真棒!

您的打字速度和正确率都是一流的哦!

秀",_

MessageBoxButtons.OK,MessageBoxIcon.lnformation)

EndIf

IfInt(60*iNum/iSecond)>=450AndInt(100*iCorrect/iNum)>=

80Then

MessageBox.Show("还不错,不过还要继续努力哦!

",”良",—

MessageBoxButtons.OK,MessageBoxIcon.lnformation)

EndIf

IfInt(60*iNum/iSecond)>=350AndInt(100*iCorrect/iNum)>=

60Then

MessageBox.Show("还差一点哦!

要多多练习。

","及格",

MessageBoxButtons.OK,_

MessageBoxIcon.lnformation)

EndIf

IfInt(60*iNum/iSecond)<=350AndInt(100*iCorrect/iNum)<=

50Then

MessageBox.Show("还要继续努力才行哦,加油吧。

",”不及格",

MessageBoxButtons.OK,MessageBoxIcon.lnformation)

EndIf

'对成绩进行统计并给出评价

 

Ife.KeyChar=Chr(13)Then

ibStart.Visibie=Faise

Timerl.Enabled=True

True

TooiBarButton3.Enabled=

EndIf

'如果尚未开始测试,当用户输入回车键时,开始测试,并计时

EiseIfTimerl.Enabled=TrueThen

SelectCasee.KeyChar

CaseChr(13)

Iblnput

(1).Text=Iblnput

(1).Text+""

iNum=iNum+1

slnput(iNum)=""

'用户开始测试后,用户输入的回车键被当作空格键处理

CaseElse

lbInput(lnt(iNum/66+1)).Text=Iblnput_

(Int(iNum/66+1)).Text&e.KeyChar

iNum=iNum+1

sinput(iNum)=e.KeyChar

'变量iNum进行累加,对用户输入的字符进行分行显示,

'并存储到slnput中()

EndSelect

lfsinput(iNum)=sSource(iNum)Then

iCorrect=iCorrect+1

'如果输入的字符和原始文本中相对应的字符相等,

'则对变量iCorrect累加()

Endlf

Endlf

EndSub

4.4、打字的实时评价代码设计:

PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,_ByValeAsSystem.EventArgs)

HandlesTimerl.Tick

iSecond=iSecond+1

'在计时器中对时间进行累加

lbPerformance.Text="共用了”&iSecond&”秒,速度”&_

Int(60*iNum/iSecond)&”字/分,正确率:

”&iCorrect&_

"/"&iNum&"="&Int(100*iCorrect/iNum)&"%"

'每次计时都对当前的时间、速度、

'正确率等信息进行统计,并显示出来

EndSub

4.5、“文件”菜单的代码设计:

“文件”菜单只有三个子菜单“打开文件”、“随机生成”、“退出”,代码如下:

PrivateSubmRandom_Click(ByValsenderAsSystem.Object,ByValeAs

System.EventArgs)HandlesmRandom.Click

subRandom()

'随机产生原始文本

EndSub

PrivateSubmOpen_Click(ByValsenderAsSystem.Object,ByValeAs

System.EventArgs)HandlesmOpen.Click

subOpenTxt()

'从文本文件中读入文本

EndSub

PrivateSubmExit_Click(ByVaisenderAsSystem.Object,ByVaieAsSystem.EventArgs)HandiesmExit.Click

End

'退出

EndSub

4.6、“帮助”菜单代码设计:

“帮助”菜单下有子菜单“关于打字练习”单击该菜单会弹出一个窗口,如图所示。

五、系统运行测试:

整个程序制作完成。

运行后效果图如下图所示:

英左打字篦习程序

交件©嗝辑⑥帮助01)

幵始打开皙停退岀

zzatgrabxfocchcrhtjrxgcghgaeuedindabispuyqqkcoijmysttrtdpuyeulkyefwldpl^uvyvovgjj口biqkrcihbthukxfbalwykrasapqfywjnircvxcyfanbfssrbgceepfgmxriopyeqbvjcitnvjtgqhknvxiwbqbaomkjlmvbneneulingfsjtkdmjvgciitwwoqshblqjfyiauygaqetagxaehjdqtpuusmdedflcarsfxnctjxoiahbtnlnleuvqjffimjfcglhgvucksehflwnduqwtibbisykgxpygejnlklfvxykahlpdkcqaaajsdvjieounbqyhjcqyinneknfqqaknyhxuudnwbxsuekdenlcrdbebmulqtlquapskavlHitai_ivp1qdvx

 

 

跌用予120轡\建度229

dedflcarsfxnctjxciiahbtnlnleuvqjffimjfcglhgvucksehflwnduqwt

liiiiuliiLin^iLiiiiiliiiiuuiuiiBiiiiiinmillliiiiuuibbisykgipygejnlklfviykahlpdkcqaaajsdwjieounbqyhjcnyinnekn

milliiiiuliiiiulinmlimnlimnnum1111111inifqqaknydixuudnwbxsuekdenlcrdbebmulqt1quapskct^l1iitauvplqdvxinuiuiilimnlimnuiuiiuuluminiuiuiimu

淡j试结束

六、系统调试及代码改进:

此次试验中出现了很多错误,特别是在字长方面。

开始每次录入时都不能显

示测评部分并显示字长过长或而且警告变量在赋值之前被使用可能引起null异常。

后来在字长的函数表达式

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

当前位置:首页 > 农林牧渔 > 林学

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

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