VB课程设计.docx

上传人:b****8 文档编号:9141763 上传时间:2023-02-03 格式:DOCX 页数:21 大小:240.09KB
下载 相关 举报
VB课程设计.docx_第1页
第1页 / 共21页
VB课程设计.docx_第2页
第2页 / 共21页
VB课程设计.docx_第3页
第3页 / 共21页
VB课程设计.docx_第4页
第4页 / 共21页
VB课程设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

VB课程设计.docx

《VB课程设计.docx》由会员分享,可在线阅读,更多相关《VB课程设计.docx(21页珍藏版)》请在冰豆网上搜索。

VB课程设计.docx

VB课程设计

VB课程设计报告

课程题目:

打字练习应用程序

班级:

学号:

姓名:

专业:

计算机科学与技术

指导老师:

时间:

2013年5月12日

目录

 

一、概述1

1、课程设计的目的1

2、课程设计的内容1

3、课程设计的基本要求1

二、总体设计方案2

1、软件的选择和功能2

2、设计的总框图2

(1)程序总框图2

(2)设计思想:

3

三、详细设计3

1、界面的属性设计3

2、流程图4

3、实现各事件过程代码5

四、课程设计总结(心得)15

一、概述

1、课程设计的目的

培养学生综合利用VB语言进行程序设计的能力,主要是培养学生利用系统提供的标准函数和标准控件进行创新设计。

学生应通过接触客观实际,了解和认识所学的专业知识,掌握所学知识在客观实际中的应用,并能亲自动手完成设计,把所学的理论知识与实际能力紧密的结合在一起。

2、课程设计的内容

应用所学的VB程序设计知识,编写一个中英文打字应用程序。

SSTab打字应用程序是用选项卡控件的每个选项卡做一个应用程序界面。

为了实现选项卡打字应用程序的要求需添加4个控件:

TabbedDialogControl(SSTab)、RichTextBox、Adodc、DataGrid。

3、课程设计的基本要求

(1)打字程序运行后,首先在窗体上显示设计者的基本信息,用户按任意键或等待30秒后进入练习者登录窗口。

(2)用户登录(输入学号和姓名)将用户的信息记录在Access数据库的表中(学号、姓名),数据控件用MicrosoftADODataControl控件。

(3)登录后点击“开始”,随机打开以文件的形式保存的样本文本,显示在样本框中。

(用MicrosoftRichTextBox控件作为样本框。

(4)练习者可在文本框中输入样本内容,并以倒计时显示剩余时间。

(5)打字过程中即时提示正确与错误(用蓝色标识正确、用红色标识错误)。

(6)打字过程中可随时暂停打字,停止倒计时。

并将打字信息存入Access数据库表中练习者的记录中(总字符数、正确数、错误数、剩余时间和打字日期)。

暂停后可继续打字练习。

(7)打字过程中可随时查询所有打字者记录,查询记录时停止计时。

查询记录用MicrosoftDataGridControl控件。

(8)打字练习过程中,能随时修改输入错误,并能随时继续未完成的打字练习。

(9)倒计时结束,禁止练习者输入,并将结果存入Access数据库的表中该练习者相应的记录中。

(10)SSTab打字应用程序界面用MicrosoftTabbedDialogControl实现。

二、总体设计方案

1、软件的选择和功能

打字练习软件是基于Windows操作平台,以VisualStudio2005为开发环境,利用MFC编写的,可在WindowsXP操作系统中安全运行。

本软件界面的设计主要通过VisualC++提供的多种控件来构建的,例如,RicheEdit2.0控件用来实现显示和输入字符串;ListControl控件读取并显示数据库内容等。

本软件采用Access2007作为数据库,用来记录软件使用者的部分信息,如姓名、学号、剩余时间、正确数、错误数、字符数和练习日期等数据。

2、设计的总框图

(1)程序总框图

 

 

(2)设计思想:

当使用者开始使用此打字练习程序时,弹出窗体提醒用户按任意键进入或等待30秒进入登入界面。

只有用户同时输入学号和姓名后才可以进入打字练习选项卡,否者进不去。

输入完学号和姓名后,单击“登录”按钮,进入打字练习,单击“开始”按钮Rtext1自动从指定文件夹中随机读取文件,并同时进行10分钟倒计时,当单击“暂停”或“停止”按钮时停止计时并且Text3文本框被锁定不能再输入,同时统计正确数、错误数和字符数。

用户练习完后,单击“查看记录”选项卡,就可查看打字记录,也可单击此选项卡里的“返回打字”按钮即可返回打字,也可单击“结束”按钮结束打字练习。

单击“退出”选项卡退出程序。

三、详细设计

1、界面的属性设计

对象

属性

属性值

Tab(0)

Caption

登录

Tab

(1)

Caption

打字练习

Tab

(2)

Caption

查看记录

Tab(3)

Caption

退出

Command1

Caption

登录

Font

华文行楷,一号,粗体

Command2

Caption

取消

Font

华文行楷,一号,粗体

Command3

Caption

退出

Font

华文行楷,一号,粗体

Command4

Caption

开始

Font

华文中宋,小一,粗体

Command5

Caption

暂停

Font

华文中宋,小一,粗体

Command6

Caption

停止

Font

华文中宋,小一,粗体

Command7

Caption

返回打字

Font

华文新魏,二号,粗体

Command8

Caption

结束

Font

华文新魏,二号,粗体

Label4

Caption

剩余时间

Font

宋体,三号,粗体

Forecolor

Label1.Forecolor=vbBlue

Label6

Caption

正确数

Font

宋体,三号,粗体

Forecolor

Label1.Forecolor=RGB(10,100,200)

Label8

Caption

错误数

Font

宋体,三号,粗体

Forecolor

Label1.Forecolor=RGB(0,100,200)

Label11

Caption

字符数

Font

宋体,三号,粗体

Forecolor

Label1.Forecolor=RGB(102,10,200)

Label2

Caption

姓名

Font

宋体,三号,粗体

Forecolor

Label2.ForeColor=RGB(100,190,200)

Label1

Caption

学号

Font

宋体,三号,粗体

Forecolor

Label2.ForeColor=vbBlue

Text3

BackColor

Text3.BackColor=vbBlue

2、流程图

 

 

 

 

3、实现各事件过程代码

’在通用声明处声明

OptionExplicit

PrivateconstrAsString

DimXHAsString,t0%,m0,s0

DimXMAsString,t,a,n%,P%,v%

’“登录”按钮代码

PrivateSubCommand1_Click()

SSTab1.Tab=1

SSTab1.TabEnabled(0)=True

SSTab1.TabEnabled

(1)=True

SSTab1.TabEnabled

(2)=True

SSTab1.TabEnabled(3)=True

XH=Trim(Text1)

XM=Trim(Text2)

Adodc1.CommandType=adCmdText

Adodc1.RecordSource="select*fromDengLuwhere学号='"&XH&"'and姓名='"&XM&"'"

’若数据表中已存在用户信息(即数据表的记录指针指向该记录,否则指向表的最后一条记录之后)。

Adodc1.Refresh’刷新Adodc1

IfAdodc1.Recordset.EOFThen’如果表中已存在该用户,学号,姓名不变,其余全部初始化

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields("学号")=XH

Adodc1.Recordset.Fields("姓名")=XM

Adodc1.Recordset.Fields("剩余时间")=0

Adodc1.Recordset.Fields("练习日期")=Date

Adodc1.Recordset.Fields("字符数")=0

Adodc1.Recordset.Fields("正确数")=0

Adodc1.Recordset.Fields("错误数")=0

Adodc1.Recordset.Update’将改动的数据写入数据库中

Else

Adodc1.Recordset.Fields("剩余时间")=0

Adodc1.Recordset.Fields("练习日期")=Date

Adodc1.Recordset.Fields("字符数")=0

Adodc1.Recordset.Fields("正确数")=0

Adodc1.Recordset.Fields("错误数")=0

Adodc1.Recordset.Update

EndIf

EndSub

 

当进入登录页面后,运行界面如下

 

只有当输入学号和姓名后登录按钮才可操作,运行界面如下

’“取消”按钮代码

PrivateSubCommand2_Click()

Text1=""

Text2=""

Text1.SetFocus

EndSub

’“退出”按钮代码

PrivateSubCommand3_Click()

End

EndSub

’“开始”按钮代码

PrivateSubCommand4_Click()

Dimpf$,n,P$,s,t0,s0

IfCommand4.Caption="开始"Then

Command4.Caption="继续"

s=""

Randomize

n=Int(Rnd*15+1)

pf="z:

\SSTab打字\"&n&".txt"’随机选定其中之一文档

OpenpfForInputAs#1

DoWhileNotEOF

(1)

LineInput#1,a

s=s&a

Loop

RText1=s

Close#1

EndIf

Command4.Enabled=False

Timer2.Enabled=True

Timer2.Interval=1000

Text3.Enabled=True

EndSub

单击开始“按钮”后运行界面如下

PrivateSubCommand5_Click()

Timer2.Interval=0

Command4.Enabled=True

Text3.Enabled=False

EndSub

PrivateSubCommand6_Click()

Dimx%,y%,t2%,i%,c1,c2

Command4.Caption="继续"

Timer2.Enabled=False

Command5.Enabled=False

Text3.Locked=True

Label7=P

Label9=n

Label12=P+n

IfLen(Text3)>0Then

Timer2.Interval=0

EndIf

Adodc1.Recordset.Fields("学号")=XH

Adodc1.Recordset.Fields("姓名")=XM

Adodc1.Recordset.Fields("剩余时间")=Val(Int((t0Mod3600)\60)&"."&Int((t0Mod3600)\60))

Adodc1.Recordset.Fields("练习日期")=Date

Adodc1.Recordset.Fields("字符数")=Val(RText1)

Adodc1.Recordset.Fields("正确数")=Label7

Adodc1.Recordset.Fields("错误数")=Label9

Adodc1.Recordset.Update

EndSub

PrivateSubCommand7_Click()

SSTab1.Tab=1

EndSub

PrivateSubCommand8_Click()

End

EndSub

PrivateSubForm_KeyPress(KeyAsciiAsInteger)

SSTab1.Visible=True

SSTab1.Tab=0

SSTab1.TabEnabled(0)=True

SSTab1.TabEnabled

(1)=False

SSTab1.TabEnabled

(2)=True

SSTab1.TabEnabled(3)=True

t0=600

EndSub

’装载窗体事件

PrivateSubForm_Load()

SSTab1.Visible=False

Adodc1.Visible=False

Command1.Enabled=False

Timer2.Enabled=False

Show

Form1.FontSize=45

Form1.Font="华文中宋"

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

Form1.PrintSpc(7);"中英文打字练习"

Print

Form1.Font="华文新魏"

Form1.FontSize=25

Form1.PrintSpc(10);"学院:

信息工程学院"

Print

Form1.PrintSpc(10);"学号:

201230050117"

Print

Form1.PrintSpc(10);"班级:

1230501"

Print

Form1.PrintSpc(10);"制作人:

张阳辉"

Print

Form1.PrintSpc(10);"专业:

计算机科学与技术"

Print

Label10.FontSize=30

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

a="按任意键进入主界面............."

Label10=a

t=30

Timer1.Interval=1000

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

Text2.ForeColor=RGB(82,160,210)

Label4.ForeColor=RGB(10,10,200)

Label6.ForeColor=RGB(10,100,200)

Label8.ForeColor=RGB(0,100,20)

Label11.ForeColor=RGB(102,10,200)

Label1.ForeColor=vbBlue

Label2.ForeColor=RGB(100,190,200)

Text3.BackColor=vbBlue

WMP1.settings.playCount=30’添加背景音乐

WMP1.settings.volume=100

WMP1.URL="z:

\by2、汪苏泷-有点甜.mp3"

WMP1.Visible=False

EndSub

’运行界面如下

 

PrivateSubSSTab1_Click(PreviousTabAsInteger)

IfSSTab1.Tab=3Then

End

EndIf

IfSSTab1.Tab=2Then

Adodc1.CommandType=adCmdText

Adodc1.RecordSource="select*fromdenglu"

Adodc1.Refresh

EndIf

EndSub

PrivateSubText1_Change()

IfText1<>""AndText2<>""ThenCommand1.Enabled=True

EndSub

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

Text2.SetFocus

EndIf

EndSub

PrivateSubText2_Change()

IfText1<>""AndText2<>""ThenCommand1.Enabled=True

EndSub

PrivateSubText2_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

Command1.SetFocus

EndIf

EndSub

’对样本的文字进行着色

PrivateSubText3_Change()

Dimi%,Yb,Sr

n=0

P=0

v=P+n

IfText3<>""Then

Fori=1ToLen(Text3)

Yb=Mid(RText1.Text,i,1)

Sr=Mid(Text3.Text,i,1)

RText1.SelStart=i-1

RText1.SelLength=1

IfYb<>SrThen

n=n+1

RText1.SelColor=vbRed

Else

P=P+1

RText1.SelColor=vbBlue

EndIf

Nexti

EndIf

IfLen(Text3)=Len(RText1)ThenText3.Locked=True

RText1.SelStart=Len(Text3)

RText1.SelLength=Len(RText1.Text)-Len(Text3.Text)

RText1.SelColor=vbBlack

EndSub

单击“开始”按钮进行打字练习后运行界面如下

 

’进入登录界面倒计时的代码

PrivateSubTimer1_Timer()

Label10=a&t

Ift=0Then

Timer1.Enabled=False

SSTab1.Tab=0

SSTab1.TabEnabled(0)=True

SSTab1.TabEnabled

(1)=False

SSTab1.TabEnabled

(2)=True

SSTab1.TabEnabled(3)=True

SSTab1.Visible=True

Else

t=t-1

EndIf

EndSub

’开始打字练习的倒计时代码

PrivateSubTimer2_Timer()

Dimm0,s0

Ift0=0Then

Timer2.Enabled=False

Text3.Locked=True

Else

m0=t0\60

s0=t0Mod60

t0=t0-1

Label5="00:

"&Format(m0,"00:

")&Format(s0,"00")

EndIf

Label5.ForeColor=vbBlue

EndSub

 

单击“查看记录”后,运行后界

 

四、课程设计总结(心得)

通过本次的VB实验程序设计,使我对VB课程有进一步的了解,使自己的上机能力有大幅度提升,在设计这个程序时,首先我开始构思程序的内容,再从书本、网上找了一些有关打字程序设计的资料,但是当把基本的弄好了之后,发现了一些棘手的问题,使我无从下手,经过与同学的商讨和老师的指导后,终于明白了其中的奥妙:

其实在打字程序上花费最多事时间是在进行字母的比较正确与否并进行记录。

最后经过自己的反复尝试以及与同学的讨论,打字练习应用程序最终设计成功。

从这一个多星期的设计过程中,使我明白自己动手编程序原来是这么一件快乐的事情。

俗话说得好“熟能生巧”,所以不仅是要学会它更加需要会运用它,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会,同时感谢赵老师的耐心指导。

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

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1