VB课程设计Word下载.docx
- 文档编号:22277862
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:21
- 大小:240.09KB
VB课程设计Word下载.docx
《VB课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《VB课程设计Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
应用所学的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)程序总框图
当使用者开始使用此打字练习程序时,弹出窗体提醒用户按任意键进入或等待30秒进入登入界面。
只有用户同时输入学号和姓名后才可以进入打字练习选项卡,否者进不去。
输入完学号和姓名后,单击“登录”按钮,进入打字练习,单击“开始”按钮Rtext1自动从指定文件夹中随机读取文件,并同时进行10分钟倒计时,当单击“暂停”或“停止”按钮时停止计时并且Text3文本框被锁定不能再输入,同时统计正确数、错误数和字符数。
用户练习完后,单击“查看记录”选项卡,就可查看打字记录,也可单击此选项卡里的“返回打字”按钮即可返回打字,也可单击“结束”按钮结束打字练习。
单击“退出”选项卡退出程序。
三、详细设计
1、界面的属性设计
对象
属性
属性值
Tab(0)
Caption
登录
Tab
(1)
打字练习
Tab
(2)
查看记录
Tab(3)
退出
Command1
Font
华文行楷,一号,粗体
Command2
取消
Command3
Command4
开始
华文中宋,小一,粗体
Command5
暂停
Command6
停止
Command7
返回打字
华文新魏,二号,粗体
Command8
结束
Label4
剩余时间
宋体,三号,粗体
Forecolor
Label1.Forecolor=vbBlue
Label6
正确数
Label1.Forecolor=RGB(10,100,200)
Label8
错误数
Label1.Forecolor=RGB(0,100,200)
Label11
字符数
Label1.Forecolor=RGB(102,10,200)
Label2
姓名
Label2.ForeColor=RGB(100,190,200)
Label1
学号
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
姓名"
)=XM
剩余时间"
)=0
练习日期"
)=Date
字符数"
正确数"
错误数"
Adodc1.Recordset.Update’将改动的数据写入数据库中
Else
Adodc1.Recordset.Update
EndIf
EndSub
当进入登录页面后,运行界面如下
只有当输入学号和姓名后登录按钮才可操作,运行界面如下
’“取消”按钮代码
PrivateSubCommand2_Click()
Text1="
Text2="
Text1.SetFocus
’“退出”按钮代码
PrivateSubCommand3_Click()
End
’“开始”按钮代码
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
Command4.Enabled=False
Timer2.Enabled=True
Timer2.Interval=1000
Text3.Enabled=True
单击开始“按钮”后运行界面如下
PrivateSubCommand5_Click()
Timer2.Interval=0
Command4.Enabled=True
Text3.Enabled=False
PrivateSubCommand6_Click()
Dimx%,y%,t2%,i%,c1,c2
Timer2.Enabled=False
Command5.Enabled=False
Text3.Locked=True
Label7=P
Label9=n
Label12=P+n
IfLen(Text3)>
0Then
)=Val(Int((t0Mod3600)\60)&
."
Int((t0Mod3600)\60))
)=Val(RText1)
)=Label7
)=Label9
PrivateSubCommand7_Click()
PrivateSubCommand8_Click()
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
SSTab1.Visible=True
SSTab1.Tab=0
SSTab1.TabEnabled
(1)=False
t0=600
’装载窗体事件
PrivateSubForm_Load()
SSTab1.Visible=False
Adodc1.Visible=False
Command1.Enabled=False
Show
Form1.FontSize=45
Form1.Font="
华文中宋"
Form1.ForeColor=RGB(0,0,255)
Form1.PrintSpc(7);
中英文打字练习"
华文新魏"
Form1.FontSize=25
Form1.PrintSpc(10);
学院:
信息工程学院"
201230050117"
1230501"
制作人:
张阳辉"
计算机科学与技术"
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
Text3.BackColor=vbBlue
WMP1.settings.playCount=30’添加背景音乐
WMP1.settings.volume=100
WMP1.URL="
\by2、汪苏泷-有点甜.mp3"
WMP1.Visible=False
’运行界面如下
PrivateSubSSTab1_Click(PreviousTabAsInteger)
IfSSTab1.Tab=3Then
IfSSTab1.Tab=2Then
Adodc1.CommandType=adCmdText
Adodc1.RecordSource="
select*fromdenglu"
Adodc1.Refresh
PrivateSubText1_Change()
IfText1<
>
AndText2<
ThenCommand1.Enabled=True
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
Text2.SetFocus
PrivateSubText2_Change()
PrivateSubText2_KeyPress(KeyAsciiAsInteger)
Command1.SetFocus
’对样本的文字进行着色
PrivateSubText3_Change()
Dimi%,Yb,Sr
n=0
P=0
v=P+n
IfText3<
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
IfLen(Text3)=Len(RText1)ThenText3.Locked=True
RText1.SelStart=Len(Text3)
RText1.SelLength=Len(RText1.Text)-Len(Text3.Text)
RText1.SelColor=vbBlack
单击“开始”按钮进行打字练习后运行界面如下
’进入登录界面倒计时的代码
PrivateSubTimer1_Timer()
Label10=a&
t
Ift=0Then
Timer1.Enabled=False
t=t-1
’开始打字练习的倒计时代码
PrivateSubTimer2_Timer()
Dimm0,s0
Ift0=0Then
m0=t0\60
s0=t0Mod60
t0=t0-1
Label5="
00:
Format(m0,"
)&
Format(s0,"
00"
Label5.ForeColor=vbBlue
单击“查看记录”后,运行后界
四、课程设计总结(心得)
通过本次的VB实验程序设计,使我对VB课程有进一步的了解,使自己的上机能力有大幅度提升,在设计这个程序时,首先我开始构思程序的内容,再从书本、网上找了一些有关打字程序设计的资料,但是当把基本的弄好了之后,发现了一些棘手的问题,使我无从下手,经过与同学的商讨和老师的指导后,终于明白了其中的奥妙:
其实在打字程序上花费最多事时间是在进行字母的比较正确与否并进行记录。
最后经过自己的反复尝试以及与同学的讨论,打字练习应用程序最终设计成功。
从这一个多星期的设计过程中,使我明白自己动手编程序原来是这么一件快乐的事情。
俗话说得好“熟能生巧”,所以不仅是要学会它更加需要会运用它,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会,同时感谢赵老师的耐心指导。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 课程设计