资源描述
(北京)
计算机语言课程设计
——背单词
院 系:地球物理与信息工程学院
专 业: 自动化09
小构成员:常润秀、覃丹丹、周衍彤
陈建龙、黄冬
完毕日期: 7月14 日
小组设计成绩:
评阅:
1. 程序运营状况:
2. 答辩状况:
3. 平时体现:
4. 设计报告:
一、设计目:
综合运用面向对象开发工具,设计Windows风格软件。通过本次程序设计题目,使学生纯熟掌握Windows应用程序开发过程,为后来专业课学习奠定基本。
二、所选编程语言:Visual Basic 6.0
三、系统总体设计思路:
背单词软件是英语学习类软件分支,是专门针对顾客背诵英语单词,掌握词汇量而制作辅助学习软件。由于媒介为个人电脑,因此背单词软件有着其他背单词工具无法达到智能化与互动性,但相相应,过于依赖电脑和较差便携性成为其缺陷。因此作为背单词软件设计思路应当简朴为原则。顾客操作必要简朴、以便为原则。
(1) 本题目共提供了“大学英语四级词汇”和“大学英语六级词汇”两个词库文献(分别是grade4.txt和grade6.txt),通过“词库设立”中“词库”组合框可以选取想要词库。默认词库是“大学英语四级词汇”。
(2) 为了便于顾客使用,程序容许选取想要记忆单词范畴。默认单词范畴是“A至Z”,即所有单词。如果选取范畴是“A至C”,那么程序只显示以A、B和C字母开头单词。程序应保证“起始字母”在“终结字母”之前,即不会浮现类似于“C至A”状况。
(3) 据需要选取“随机”或“循环”复选框。如果不选取“随机”,则显示单词时是以单词在词库中顺序(即字母顺序)显示,否则以随机顺序显示。如果不选取“循环”复选框,单词显示一遍之后自动停止回到起始状态。如果选取了“循环”复选框,显示一遍之后会自动从头开始显示。
在随机方式之下,循环是没故意义,因此当“随机”复选框选定期,“循环”复选框应变为无效且呈现未选定状态。
(4) 毕后,单击“开始”按钮,窗口最上方显示区域从右向左以字幕方式动态显示所选单词,涉及词性和词义。在显示过程中可以变化字体大小、滚动速度和背景显示颜色。单击“暂停”按钮可以暂停滚动,这时“暂停”按钮变为“继续”,单击会继续滚动。单击“退出”按钮退出主界面。
设计任务分工安排:
由于小组由五名成员构成,可将界面模块分为五个某些:
1.滚动字幕以及某些有关控制控件。设计人员:陈建龙。
2.字体大小,滚动速度,背景颜色控制。设计人员:常润秀。
3.词库选取。设计人员:覃丹丹,黄冬。
4.显示方式(随机,循环) 设计人员:覃丹丹,黄冬。
5.主界面其她有关控件,以及其她弹出界面和进入界面。设计人员:周衍彤。
设计进度安排:
设计时间:.7.7~.7.8, .7.11~.7.13
7、8号找到各某些设计思路,进行初步设计
11号各控件、模块设计完毕
12号各控件、模块组合
13号设计报告撰写
四、系统各功能模块设计
涉及采用核心控件、核心技术、重要界面
通过运营本程序,可以轻松背单词。重要功能涉及选取词库范畴(大学英语四级词汇、大学英语六级词汇)、选取首字母范畴、选取播放方式(随机、循环)、变化字体大小、变化滚动速度、变化滚动条背景颜色等。
(一) 重要界面
A、首界面:可以选取“点击进入”按钮或者“退出”按钮,继续程序。
B、选取点击进入之后,进入主程序界面。
C、单击使用阐明按钮,弹出对话框。
(二) 核心控件
A、 按钮控件:
本程序中运用大量按钮控件,分别控制首界面中“点击进入”、“退出”,主程序界面中“开始”、“暂停”、“退出”、“使用阐明”以及滚动条两侧“左移”、“右移”功能。
在首界面中,单击“点击进入”按钮后,首界面消失,进入主程序界面。单击“退出”按钮,弹出”与否退出”对话框。
在主程序界面中,单击“开始”按钮之前, “暂停”按钮为灰显状态。单击“开始”按钮,滚动条开始滚动,此时单击“暂停”按钮,滚动条停止滚动,“暂停”按钮变更为“继续”按钮,单击”继续“按钮,滚动条继续滚动。单击“退出”按钮,回归首界面。单击“使用阐明”,弹出“使用阐明”窗体。点击“左移” 、“右移”按钮,滚动条相应左右移动。
B、 标签控件:
本程序使用大量标签控件,以便标注各个控件功能。
C、 组合框控件
本程序中共有三个组合框,分别控制词库范畴(大学英语四级词汇、大学英语六级词汇)、首字母范畴选取。
D、 滚动条控件
本程序中共有四个滚动条控件,分别控制滚动速度、滚动条背景颜色更改。
E、 复选框控件
通过对复选框按钮选取,选取播放方式(随机、循环)。点击“随机”框 ,“循环”框为灰显状态,滚动单词内容随机播放。点击“循环”框,选取首字母范畴之后,在该字母范畴内循环播放。
F、 单选按钮控件
通过对单选按钮选取,选取滚动字体大小。单击“大字体”框时,字体变为20号字。单击“小字体”框时,字体为14号字。
G、 图像框控件
首界面中图片放置。
H、 文本框控件
构成滚动字体
(三)核心技术
A、时钟与滚动
将时钟Interval设定为显示速度滚动条值线性函数(Timer1.Interval = HScroll1.Value * 20),时钟速度便由滚动条值控制,成为为可调。为了循环执行,这里定义一种随机变量k。随着时钟计时,当text1中显示内容从左起第一种字符ASCII码不不大于零,则其字幕显示为前一种词从第四位开始取长度为这个词长度减三某些和后一种词前三位某些,k=k+3。而当text1中显示内容从左起第一种字符ASCII码不大于零,则其字幕显示为前一种词从第二位开始取长度为这个词长度减一某些和后一种词第一位某些,k=k+1。如此便形成了字幕可以以不同速度滚动效果。
B、词库选取与调用文档
当词库选取组合框1选取大学英语四级词汇时,便open大学英语四级词汇文本文档命名为#1以input形式使用;当词库选取组合框1选取大学英语六级词汇时,便open大学英语六级词汇文本文档命名为#1以input形式使用。注意:文档中单词按顺序排列,一行一种,首字前有四个空格,每一次首字母变化前加入书写“/”一行,以便背面设定范畴之用。通过while循环,文档内容以字符串nextline按行输入遇到“/”则显示空白。
C、范畴设定
范畴设定有两个方面。1)若下限比上限小,下限设定为空白。如此便满足了下限不比上限小规定。2)组合框2和3 是用来设定范畴,她们每个选项均有一种编号ListIndex。设定上限时,咱们再一次用到ASCII码。当用来存储nextline数组s( )元素s(m)第五位(即单词首字母)ASCII码比组合框2 ListIndex+96值大时候,用来存储有效字符串数组t(r)下标r开始计数。令s(m)=t(r),则上限设定成功。设定下限时,咱们用变量j 来对“ /”计数。当j比组合框3ListIndex大时,跳出while循环。如此,下限便得到了控制。
D、对随机显示控制
未选取复选框1时,用for循环按Text1.Text = Text1.Text & t(n)使字幕顺序显示;选取时,用Randomize产生1到r-1之间随机数,将r值依次存入到数组a(n)中,用for循环按 Text1.Text = Text1.Text & t(a(n))使字幕随机显示。
E、循环控制
由于时钟不会停,系统默认是循环,因此咱们只需对不选复选框2状况进行控制。咱们在A中提到k值,在这里开始显示作用。当k值不不大于text1显示内容总长度后,输出空白,即不循环。
F、字幕左右移动
当点击按钮5时,咱们用Text1.Text = Mid(Text1.Text,11,Len(Text1.Text) - 10) & Left(Text1.Text,10)来使字幕左移;当点击按钮6时,咱们用 Text1.Text = Mid(Text1.Text,Len(Text1.Text) - 9,10) & Left(Text1.Text,Len(Text1.Text) - 10)来使字幕右移。
五、软件运营成果
(1)、运营程序,可显示一种背单词首界面。
“点击进入”即可进入背单词主界面
(2)、提供了“大学英语四级词汇”和“大学英语六级词汇”两个词库文献,通过“词库”组合框可以选取想要题库,默认词库是“大学英语四级词汇”。
(3)、为了便于顾客使用,可以选取想要记忆单词范畴,默认单词范畴是“A~Z”。
.
(4)、依照需要选取“随机”或“循环”复选框。如果两者都不选,则默认显示单词表显示到最后一种单词即停止;如果选取“随机”复选框,“循环”复选框变为无效且不可选定状态。如果选取了“循环”复选框,显示一遍之后会自动从头开始显示。
(5)、通过“其她设立”中“字体大小”单选框可以选取滚动单词时字体大小。
(6)、通过操作滚动条可以设立字幕滚动速度。
(7)、通过颜色设立里面对R、G、B调节可以实现对显示单词栏背景颜色调节。
(8)、设立完毕后,单击“开始”按钮,窗口最上方显示区域从右向左以字幕方式动态显示所选单词,涉及词性和词义,如图14.4所示。在显示过程中可以变化字体大小、滚动速度和显示颜色。单击“暂停”按钮可以暂停滚动,这时“暂停”按钮变为“继续”,单击会继续滚动。
(9)、单击该主界面“退出”,及时回到咱们进入界面,继续单击“退出”,即可完全退出背单词程序。
(10)、若对本运营软件操作有疑问,进入主界面后可以单击左下角使用阐明。
六、设计总结
通过这次课程设计,VB编程水平有了很大提高。从最开始编写这个程序到程序运营,通过对程序重复调试与修改,深刻感受到编写一种程序是一种漫长而辛苦过程,需要编程人员具备足够耐心与细心。与此同步也培养咱们查阅知识并通过自学掌握知识能力。
程序入手阶段是困难,刚刚接触一种新程序会感到无从下手。一方面要做某些准备工作。要理解这个程序是干什么,它应具备如何功能。当明确了这些问题 后来,就要针对不同功能逐个思考实现该功能办法。对于每一种功能实现需要用到那些知识,通过查阅有关知识,做到心中有数,再进行编程。编程时要先 制定一种大框架,用几种模块,什么模块,那些事件过程,那些通用过程,当大体轮廓出来后再进行深一步编写,考虑语句语法、逻辑,各个通用过程调用,事件过程实现。这里会遇到真正难以解决问题,要再次通过查阅多方资料并结合认真思考来寻找解题思路。固然在编程过程中最重要一点就是善于总结,这样可以避免重蹈覆辙。
在程序编写结束后,更要进行总结,认真思考如何编写一种过程是简便快捷,在下次遇到同样问题时可以节约时间,提高效率。
这次做课程设计,理解了程序编制过程和基本思维办法,同步也对编程产生了浓厚兴趣,但愿能在课余时间多编制某些这样小程序,可以学到更多知识,同步提高编程速度,锻炼思考方式,开拓思维空间,为咱们此后学习打下一种良好基本。
七、参照文献
书籍参照:
教学课件
附录:源程序
(1)主界面(Form1):
Dim i%,k%,m%,r%
Private Sub Check1_Click()
Check2.Value = 0
If Check1.Value = 1 Then
Check2.Enabled = False
Else
Check2.Enabled = True
End If
End Sub
‘实现随机与循环复选框选取
Private Sub Combo2_click()
Combo3_Click
End Sub
Private Sub Combo3_Click()
If Combo3.ListIndex < Combo2.ListIndex Then
Combo3.Text = ""
End If
End Sub
‘防止浮现上标不不大于下标浮现
Private Sub Command1_Click()
Command2.Enabled = True
Dim j%,n%
Dim s() As String
Dim t() As String
j = 0
k = 0
m = 0
r = 0
Timer1.Interval = HScroll1.Value * 20
If Combo1.Text = "大学英语四级词汇" Then
Open "E:\背单词程序完整\大学英语四级.txt" For Input As #1
ElseIf Combo1.Text = "大学英语六级词汇" Then
Open "E:\背单词程序完整\大学英语六级词汇.txt" For Input As #1
End If
‘词库选取
Do While Not EOF(1)
On Error Resume Next
Line Input #1,nextline
m = m + 1
ReDim Preserve s(m)
s(m) = nextline
If nextline = " /" Then
j = j + 1
s(m) = ""
End If
If Asc(Mid(s(m),5,1)) > Combo2.ListIndex + 96 Then
r = r + 1
ReDim Preserve t(r)
t(r) = s(m)
End If
If j > Combo3.ListIndex Then
Exit Do
End If
Loop
‘将词库每行数据存入s(n)中,下标相应行号。实现范畴选取,并将范畴内每行数据存入t(r)中,下标相应行号。
Select Case Check1.Value
Case 0
Text1.Text = ""
For n = 1 To r
Text1.Text = Text1.Text & t(n)
Next n
Text1.Text=" " & Text1.Text
‘未选取随机时文本输出
Case 1
Dim a() As String
Dim Y%,X%,z%
Text1.Text = ""
z = r - 1
For n = 1 To r - 1
Randomize
Y = Int((z - 1) * Rnd) + 1
ReDim Preserve a(n)
a(n) = t(Y)
For X = Y To z - 1
t(X) = t(X + 1)’将t()中已经选取存入a(n)中元素剔除
Next X
z = z - 1
Next n’将t(r)中所有元素以随机顺序存入a(n)
For n = 1 To r - 1
Text1.Text = Text1.Text & a(n)
Next n
Text1.Text=" " & Text1.Text
‘随机方式输出
End Select
Close
Timer1.Enabled = True
If Command2.Caption = "继续" Then
Command2.Caption = "暂停"
i = i + 1
End Sub
Private Sub Command2_Click()
If i Mod 2 = 0 Then
Command2.Caption = "继续":Timer1.Enabled = False
Else
Command2.Caption = "暂停":Timer1.Enabled = True
End If
i = i + 1
End Sub
Private Sub Command3_Click()
大学英语四六级.Visible = True
Form1.Visible = False
End Sub
Private Sub Command4_Click()
Form2.Visible = True
End Sub
Private Sub Command5_Click()
Text1.Text = Mid(Text1.Text,11,Len(Text1.Text) - 10) & Left(Text1.Text,10)’使滚动字幕左移10位
End Sub
Private Sub Command6_Click()
Text1.Text = Mid(Text1.Text,Len(Text1.Text) - 9,10) & Left(Text1.Text,Len(Text1.Text) - 10)’使滚动字幕右移10位
End Sub
Private Sub Form_Load()
Move (Screen.Width - Width) / 2,(Screen.Height - Height) / 2’窗口显示居中
Combo1.List(0) = "大学英语四级词汇"
Combo1.List(1) = "大学英语六级词汇"
Command2.Enabled = False
Combo1.Text = Combo1.List(0)
Combo2.List(0) = "A"
Combo2.List(1) = "B"
Combo2.List(2) = "C"
Combo2.List(3) = "D"
Combo2.List(4) = "E"
Combo2.List(5) = "F"
Combo2.List(6) = "G"
Combo2.List(7) = "H"
Combo2.List(8) = "I"
Combo2.List(9) = "J"
Combo2.List(10) = "K"
Combo2.List(11) = "L"
Combo2.List(12) = "M"
Combo2.List(13) = "N"
Combo2.List(14) = "O"
Combo2.List(15) = "P"
Combo2.List(16) = "Q"
Combo2.List(17) = "R"
Combo2.List(18) = "S"
Combo2.List(19) = "T"
Combo2.List(20) = "U"
Combo2.List(21) = "V"
Combo2.List(22) = "W"
Combo2.List(23) = "X"
Combo2.List(24) = "Y"
Combo2.List(25) = "Z"
Combo2.ListIndex = 0
Combo2.Text = Combo2.List(0)
Combo3.List(0) = "A"
Combo3.List(1) = "B"
Combo3.List(2) = "C"
Combo3.List(3) = "D"
Combo3.List(4) = "E"
Combo3.List(5) = "F"
Combo3.List(6) = "G"
Combo3.List(7) = "H"
Combo3.List(8) = "I"
Combo3.List(9) = "J"
Combo3.List(10) = "K"
Combo3.List(11) = "L"
Combo3.List(12) = "M"
Combo3.List(13) = "N"
Combo3.List(14) = "O"
Combo3.List(15) = "P"
Combo3.List(16) = "Q"
Combo3.List(17) = "R"
Combo3.List(18) = "S"
Combo3.List(19) = "T"
Combo3.List(20) = "U"
Combo3.List(21) = "V"
Combo3.List(22) = "W"
Combo3.List(23) = "X"
Combo3.List(24) = "Y"
Combo3.List(25) = "Z"
Combo3.ListIndex = 25
Combo3.Text = Combo3.List(25)
Option1.Value = True
Check1.Value = 0
Check2.Value = 0
HScroll2.Value = 255
HScroll3.Value = 255
HScroll4.Value = 255
End Sub
Private Sub HScroll1_Change()
Timer1.Interval = HScroll1.Value * 20
End Sub
Private Sub HScroll2_Change()
Text1.BackColor = RGB(HScroll2.Value,HScroll3.Value,HScroll4.Value)
End Sub
Private Sub HScroll3_Change()
Text1.BackColor = RGB(HScroll2.Value,HScroll3.Value,HScroll4.Value)
End Sub
Private Sub HScroll4_Change()
Text1.BackColor = RGB(HScroll2.Value,HScroll3.Value,HScroll4.Value)
End Sub
Private Sub Option1_Click()
If Option1.Value = True Then
Text1.FontSize = 14
End If
End Sub
Private Sub Option2_Click()
If Option2.Value = True Then
Text1.FontSize = 20
End If
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
If Asc(Left(Text1.Text,1)) > 0 Then
Text1.Text = Mid(Text1.Text,4,Len(Text1.Text) - 3) & Left(Text1.Text,3)
k = k + 3
Else
Text1.Text = Mid(Text1.Text,2,Len(Text1.Text) - 1) & Left(Text1.Text,1)
k = k + 1
End If
Select Case Check2.Value
Case 0
If k > Len(Text1.Text) Then
Text1.Text = ""
End If
End Select’终结默认循环
End Sub
(2).首界面:
Private Sub Command1_Click()
Form1.Visible = True
大学英语四六级.Visible = False
End Sub
Private Sub Command2_Click()
X = MsgBox("与否退出程序",36,"退出")
If X = 6 Then
End
Else
大学英语四六级.Visible = True
End If
End Sub
Private Sub Form_Load()
Move (Screen.Width - Width) / 2,(Screen.Height - Height) / 2
End Sub
(3).使用阐明(Form2):
Private Sub Command1_Click()
Form2.Visible = False
End Sub
Private Sub Form_Load()
Move (Screen.Width - Width) / 2,(Screen.Height - Height) / 2
End Sub
展开阅读全文