vb课程设计计算器.docx
- 文档编号:6479719
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:14
- 大小:218.42KB
vb课程设计计算器.docx
《vb课程设计计算器.docx》由会员分享,可在线阅读,更多相关《vb课程设计计算器.docx(14页珍藏版)》请在冰豆网上搜索。
vb课程设计计算器
沈阳航空航天大学
课程设计
学号
班级
姓名
指导教师
2012年7月1日
课程设计任务书
学院:
航空宇航工程学部专业:
飞行器制造工程班级:
学号:
题目:
我爱背单词
一、课程设计时间
2011~12第2学期第17周,共计1周,20学时。
二、课程设计内容
设计一个背单词系统。
词库为“大学英语四级词库”或“大学英语六级词库”,可选择记忆单词的范围可选择单词的显示方式为“循环”或“随机”,可调整单词显示时的字体、大小和颜色等,可选择单词切换的速度。
模拟英语词库由学生自行编写,参考界面如下。
三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课设结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
目录
一、需求分析……………………………3
二、设计分析……………………………4
三、技术要点……………………………5
四、主界面截图…………………………8
五、总结………………………………….11
六、完整的源程序……………………..12
七、参考文献……………………………20
一、需求分析
设计一个背单词系统。
词库为“大学英语四级词库”或“大学英语六级词库”,可选择记忆单词的范围可选择单词的显示方式为“循环”或“随机”,可调整单词显示时的字体、大小和颜色等,可选择单词切换的速度。
模拟英语词库由学生自行编写。
1)运行界面上安放Label,TextBox,CheckBox,OptionButton,ComboBox,HScrollBox,Timer,CommandButton控件。
2)可打开“大学英语四级词库”或“大学英语六级词库”,读取有效内容。
3)能够实现改变背景色,字体大小,显示速度。
4)可选择显示单词的字首字母范围。
5)程序可“暂停”“继续”,并可“退出”。
6)点击“使用说明”,可提示相应说明。
二、设计分析
(1)基本原理:
创建程序和各按钮,建立相应控件与数据文件的连接。
(2):
总体设计:
(3)详细设计:
三、技术要点
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比组合框3的ListIndex大时,跳出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)来使字幕右移。
四、主要界面截图
五、总结
通过这次课程设计,VB编程水平有了很大的提高。
从最开始编写这个程序到程序运行,经过对程序的反复调试与修改,深刻感受到编写一个程序是一个漫长而辛苦的过程,需要编程人员具备足够的耐心与细心。
与此同时也培养我们查阅知识并通过自学掌握知识的能力。
程序的入手阶段是困难的,首先要做一些准备工作。
要了解这个程序是干什么的,它应具备怎样的功能。
当明确了这些问题以后,就要针对不同的功能逐一的思考实现该功能的方法。
对于每一个功能的实现需要用到那些知识,通过查阅相关知识,做到心中有数,再进行编程。
编程时要先制定一个大的框架,用几个模块,什么模块,那些事件过程,那些通用过程,当大致的轮廓出来后再进行深一步的编写,考虑语句的语法、逻辑,各个通用过程的调用,事件过程的实现。
这里会遇到真正难以解决的问题,要再次通过查阅多方资料并结合认真思考来寻找解题思路。
当然在编程的过程中最重要的一点就是善于总结,这样可以避免重蹈覆辙。
在程序编写结束后,更要进行总结,认真思考怎样编写一个过程是简便快捷的,在下次遇到同样问题时可以节省时间,提高效率。
这次做课程设计,了解了程序的编制过程和基本的思维方法,同时也对编程产生了浓厚的兴趣,希望能在课余时间多编制一些这样的小程序,可以学到更多的知识,同时提高编程的速度,锻炼思考方式,为我们今后的学习打下一个良好的基础。
六、完整的源程序
(1)主界面(Form1):
Dimi%,k%,m%,r%
PrivateSubCheck1_Click()
Check2.Value=0
IfCheck1.Value=1Then
Check2.Enabled=False
Else
Check2.Enabled=True
EndIf
EndSub
‘实现随机与循环复选框的选择
PrivateSubCombo2_click()
Combo3_Click
EndSub
PrivateSubCombo3_Click()
IfCombo3.ListIndex Combo3.Text="" EndIf EndSub ‘防止出现上标大于下标出现 PrivateSubCommand1_Click() Command2.Enabled=True Dimj%,n% Dims()AsString Dimt()AsString j=0 k=0 m=0 r=0 Timer1.Interval=HScroll1.Value*20 IfCombo1.Text="大学英语四级词汇"Then Open"E: \背单词程序完整\大学英语四级.txt"ForInputAs#1 ElseIfCombo1.Text="大学英语六级词汇"Then Open"E: \背单词程序完整\大学英语六级词汇.txt"ForInputAs#1 EndIf ‘词库选择 DoWhileNotEOF (1) OnErrorResumeNext LineInput#1,nextline m=m+1 ReDimPreserves(m) s(m)=nextline Ifnextline="/"Then j=j+1 s(m)="" EndIf IfAsc(Mid(s(m),5,1))>Combo2.ListIndex+96Then r=r+1 ReDimPreservet(r) t(r)=s(m) EndIf Ifj>Combo3.ListIndexThen ExitDo EndIf Loop ‘将词库每行数据存入s(n)中,下标对应行号。 实现范围选择,并将范围内的每行数据存入t(r)中,下标对应行号。 SelectCaseCheck1.Value Case0 Text1.Text="" Forn=1Tor Text1.Text=Text1.Text&t(n) Nextn Text1.Text=""&Text1.Text ‘未选择随机时的文本输出 Case1 Dima()AsString DimY%,X%,z% Text1.Text="" z=r-1 Forn=1Tor-1 Randomize Y=Int((z-1)*Rnd)+1 ReDimPreservea(n) a(n)=t(Y) ForX=YToz-1 t(X)=t(X+1)’将t()中已经选择存入a(n)中的元素剔除 NextX z=z-1 Nextn’将t(r)中的全部元素以随机的顺序存入a(n) Forn=1Tor-1 Text1.Text=Text1.Text&a(n) Nextn Text1.Text=""&Text1.Text ‘随机方式输出 EndSelect Close Timer1.Enabled=True IfCommand2.Caption="继续"Then Command2.Caption="暂停" i=i+1 EndSub PrivateSubCommand2_Click() IfiMod2=0Then Command2.Caption="继续": Timer1.Enabled=False Else Command2.Caption="暂停": Timer1.Enabled=True EndIf i=i+1 EndSub PrivateSubCommand3_Click() 大学英语四六级.Visible=True Form1.Visible=False EndSub PrivateSubCommand4_Click() Form2.Visible=True EndSub PrivateSubCommand5_Click() Text1.Text=Mid(Text1.Text,11,Len(Text1.Text)-10)&Left(Text1.Text,10)’使滚动字幕左移10位 EndSub PrivateSubCommand6_Click() Text1.Text=Mid(Text1.Text,Len(Text1.Text)-9,10)&Left(Text1.Text,Len(Text1.Text)-10)’使滚动字幕右移10位 EndSub PrivateSubForm_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 EndSub PrivateSubHScroll1_Change() Timer1.Interval=HScroll1.Value*20 EndSub PrivateSubHScroll2_Change() Text1.BackColor=RGB(HScroll2.Value,HScroll3.Value,HScroll4.Value) EndSub PrivateSubHScroll3_Change() Text1.BackColor=RGB(HScroll2.Value,HScroll3.Value,HScroll4.Value) EndSub PrivateSubHScroll4_Change() Text1.BackColor=RGB(HScroll2.Value,HScroll3.Value,HScroll4.Value) EndSub PrivateSubOption1_Click() IfOption1.Value=TrueThen Text1.FontSize=14 EndIf EndSub PrivateSubOption2_Click() IfOption2.Value=TrueThen Text1.FontSize=20 EndIf EndSub PrivateSubTimer1_Timer() OnErrorResumeNext IfAsc(Left(Text1.Text,1))>0Then 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 EndIf SelectCaseCheck2.Value Case0 Ifk>Len(Text1.Text)Then Text1.Text="" EndIf EndSelect’终止默认循环 EndSub 使用说明 PrivateSubCommand1_Click() Form2.Hide Form1.Show EndSub 七、参考文献 [1]龚沛曾杨志强陆慰民《VisualBasic程序设计教程》,高等教育出版社2009
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 课程设计 计算器