VB课程设计滚动字幕板.doc
VB课程设计(论文)任务书机电工程 学院物流 专业 2 班一、课程设计(论文)题目 : 滚动字幕板 二、课程设计(论文)工作自 2013 年 6 月26日起至 2011 年 7 月 3 日止 三、课程设计(论文) 地点: 计算中心8#601 四、课程设计(论文)内容要求:1. 本课程设计的目的(1)进一步巩固和加深对“VB程序设计”课程基本知识的理解和掌握,了解VB语言在项目开发中的应用。(2)学习程序设计开发的一般方法,了解和掌握项目开发过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。(3)通过对标准化、规范化文档的掌握并查阅有关技术资料等,培养项目设计开发能力。 2. 课程设计的任务及要求(1) 基本要求:(1) 对系统功能进行需求分析;(2) 使用Visual basic开发环境进行程序开发;(3) 提出系统的设计方案;(4) 编写源程序代码并进行调试。(2) 创新要求在基本要求达到后,可进行创新设计。(3) 课程设计报告撰写及装订要求课程设计报告的撰写要求表述简明,图表准确。报告按如下内容和顺序用A4纸进行打印并装订成册。(1)封面采用统一的课程设计封面,并按要求填写好封面要求的个人信息和选题。(2)设计任务书(3)评阅书(4)目录 (5)正文 (6)主要参考文献(4) 课程设计评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分;(2)能正确回答设计的中老师所提问题,可增加10分;(3)课程设计报告书写规范整齐,可增加10分;(4)心得体会认真总结,可增加10分;(5)程序有创新性,可增加10分;成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。(5) 课程设计进度安排(1)准备阶段(6学时):选择设计题目、了解设计目的要求、查阅相关资料。(2)程序模块设计分析阶段(8学时):程序总体设计、详细设计。(3) 代码编写调试阶段(10学时):程序模块代码编写、调试、测试。(4) 撰写论文阶段(6学时):总结课程设计任务和设计内容,撰写课程设计论文。(6)课程设计题目具体要求:设计要求:设计一个滚动字幕板。第一:启动程序,同时显示两个窗口,一是用来显示滚动字幕的显示板,二是窗口控制板。第二:单击控制窗口的“开始”按钮,显示窗口中的文字开始滚动显示。滚动方式由控制窗口中“字幕滚动方向控制”框中的四个单选框决定的。共有四种方式:“从左往右”、“从右往左”、“穿透式左右摆动”和“壁面反射式摆动”。“从左往右是默认方式。第三:本程序提供了8种内置文字内容,单击“内置字幕”框中的一个按钮可以改变滚动字幕的内容。第四:通过“前景色”和“背景色”组合框可以改变滚动字幕的前景色和背景色。第五:单击控制窗口中的“退出”按钮,同时关闭两个窗口,并程序结束。学生签名: 2011年 6月 26 日课程设计(论文)评阅意见序号项 目等级优秀良好中等及格不及格1课程设计态度评价2出勤情况评价3任务难度评价4工作量饱满评价5设计中创新性评价6论文书写规范化评价综合评定等级评阅人 吴昊 职称 讲师 2011年7月3 日 目 录第1章 系统概要11.1功能大概介绍1第2章总体设计22.2 属性窗口2第3章源程序代码43.1 Form1窗口上的代码43.2 Form2的窗口代码15第4章 运行结果及分析164.1 运行结果164.2程序分析174.3运行程序使用说明18第5章 心得体会19参考文献20第1章 系统概要 “滚动字幕板”是指人们在公共场所(如车站、机场、办公大厅等)经常见到的用来显示消息、广告、通知等内容的显示屏。滚动字幕的方式容易引起观众的注意,具有很好的宣传作用。本程序要求编制一个模拟滚动字幕板的实用程序。1.1功能大概介绍 启动程序,同时显示两个窗口,窗口一是用来显示滚动字幕的显示板,窗口二是控制板。 单击控制窗口中的“开始滚动”按钮,显示窗口中的文字开始滚动显示。滚动的方式由控制窗口中“字幕滚动方向控制”框中四个单选框决定的,共有四种方式:“从左往右”、“从右往左”、“穿透式左右摆动”和“壁面反射式摆动”, “从右往左”是默认方式。选择“滚动字幕的文字大小控制”框中的“大字体”或“小字体”单选框,可以改变显示窗口中文字的大小。从“滚动字幕字体控制”框中可以为显示窗口中的文字选择一种字体。表示字体的四个按钮实际上是按钮样式的单选框(设置其Style属性)。 本程序提供了8种内置文字内容,单击“内置字幕” 框中一个按钮可以改变滚动字幕的内容。如果要显示自定义的文字内容,可以直接在控制窗口底部的文本框中输入,然后按回车键即可。 通过“前景色”和“背景色”组合框,可以改变滚动字幕的前景色和背景色。第2章总体设计2.1设计思路通过控制窗口上的各个控件来控制显示窗口的各种字幕运行状态。 如图2-1为程序流程图。单击控制窗体的“开始”按钮进入程序其他控制控制背景色和前景色控制显示内容控制字的滚动速度控制字的滚动方式控制字体控制字的大小随机输入显示内容图2-1 流程图2.2 属性窗口各个控件的caption属性的字形不作变更;Timer1的interval属性为1000,Timer2和Timer3的此属性为1;字体控制及内置字幕上的所有单选框的style属性均改为1;“暂停”控件和“继续”控件的Visible属性值为False;文本框的text属性改为“请直接在此输入字幕文字”;Combo1、Combo2list属性均添加上红色,蓝色,紫色,黄色,黑色,绿色。Form1的属性设置如图2-2所示。图2-2 form1属性窗口Form2的属性设置如图2-3所示。图2-3 form2属性窗口第3章源程序代码3.1 Form1窗口上的代码Dim intSpeed As IntegerConst strPrompt1 As String = "我们的实习生活结束了!"Const strPrompt2 As String = "春眠不觉晓,处处闻啼鸟。!"Const strPrompt3 As String = "夜来风雨声,花落知多少?"Const strPrompt4 As String = "宝剑锋从磨砺出,梅花香自苦寒来"Const strPrompt5 As String = "吃得苦中苦,方为人上人"Const strPrompt6 As String = "No Pay, no Gain"Const strPrompt7 As String = "书山有路勤为径,学海无涯苦作舟"Const strPrompt8 As String = "团结就是力量!"Dim blnDirection As Boolean 'False 表示从右往左移动 True 表示从左往右移动Dim blnAutoShift As Boolean 'True 表示左右摆动, False表示从左往右或从右往左Dim blnShiftDirection As Boolean ' True 表示向左摆动, False 表示向右摆动Dim blnShiftMode As Boolean ' True表示摆动方式一, False 表示摆动方式二Dim blnStopMode As Boolean ' True表示暂停摆动,False表示继续摆动Private Sub BKColor_Click() Dim intColor1 As Long Select Case BKColor.ListIndex Case 0 intColor1 = vbBlack Case 1 intColor1 = vbGreen Case 2 intColor1 = vbBlue Case 3 intColor1 = vbCyan Case 4 intColor1 = vbRed Case 5 intColor1 = vbYellow Case 6 intColor1 = vbMagenta Case 7 intColor1 = vbWhite End Select BKColor.Text = BKColor.Text Form1.BackColor = intColor1End SubPrivate Sub Check1_Click()If Check1.Value = 1 Then Form2.BorderStyle = 0 Form2.WindowState = 2Else Form2.BorderStyle = 1 Form2.WindowState = 0End IfEnd SubPrivate Sub Check2_Click() If Check2.Value = 1 Then Frame2.Visible = True Else Frame2.Visible = False End IfEnd SubPrivate Sub Check3_Click() If Check3.Value = 1 Then Frame4.Visible = True Else Frame4.Visible = False End IfEnd SubPrivate Sub Check4_Click() If Check4.Value = 1 Then Timer3.Enabled = True Else Timer3.Enabled = False End IfEnd SubPrivate Sub Check5_Click() If Check5.Value = 1 Then Form2.Label1.FontSize = 72 Form2.Label1.Top = (Form2.ScaleHeight - Form2.Label1.Height) / 1 Form2.WindowState = 2 Timer1.Enabled = True Else Form2.Label1.Top = (Form2.ScaleHeight - Form2.Label1.Height) / 1 Form2.WindowState = 0 Form2.Label1.FontSize = 24 ' Form2.Label1.Top = 270 End If If Check5.Value = 1 Then Frame1.Visible = False Frame2.Visible = False Frame3.Visible = False Frame4.Visible = False HScroll1.Visible = False Label2.Visible = False Label3.Visible = False Label4.Visible = False Command1.Visible = False Command2.Visible = False Command3.Visible = FalseCommand4.Visible = FalseCommand5.Visible = False Command6.Visible = False Command7.Visible = False Command8.Visible = False Command9.Visible = False Command10.Visible = FalseCommand11.Visible = False BKColor.Visible = FalseFGColor.Visible = False Text1.Visible = FalseCheck4.Visible = False Check5.Visible = FalseForm1.Caption = "在窗体空白处双击鼠标左键,退出全屏幕状态" Form2.Label1.FontSize = 72 Form2.Label1.Top = (Form1.ScaleHeight - Form2.Label1.Height) / 1 Form1.WindowState = 2 Timer1.Enabled = True Else Frame1.Visible = True'Frame2.Visible = True Frame3.Visible = True Frame4.Visible = True HScroll1.Visible = True Label2.Visible = True Label3.Visible = True Label4.Visible = True Command1.Visible = TrueCommand2.Visible = True Command3.Visible = True Command4.Visible = True Command5.Visible = TrueCommand6.Visible = True Command7.Visible = True Command8.Visible = True Command9.Visible = True Command10.Visible = True Command11.Visible = True BKColor.Visible = True FGColor.Visible = True Text1.Visible = True Check1.Value = 1 Check2.Value = 1 Check3.Value = 1 Check4.Visible = True Check5.Visible = True Form1.WindowState = 0 Form2.Label1.FontSize = 24 Form2.Label1.Top = 270' End IfEnd SubPrivate Sub Command1_Click() '这种代码的写法更加简炼 If Command1.Caption = "暂停" Then Command1.Caption = "继续" Timer1.Enabled = False blnStopMode = True Else Command1.Caption = "暂停" Timer1.Enabled = True blnStopMode = False End If End SubPrivate Sub Command10_Click() Form2.Label1.Caption = strPrompt7 Form2.Label1.Left = (Form1.ScaleWidth - Form2.Label1.Width) / 2End SubPrivate Sub Command11_Click() Form2.Label1.Caption = strPrompt8 Form2.Label1.Left = (Form1.ScaleWidth - Form2.Label1.Width) / 2End SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Command3_Click() Form2.Label1.Caption = strPrompt1 Form2.Label1.Left = (Form1.ScaleWidth - Form2.Label1.Width) / 2End SubPrivate Sub Command4_Click() Form2.Label1.Caption = strPrompt4 Form2.Label1.Left = (Form1.ScaleWidth - Form2.Label1.Width) / 2End SubPrivate Sub Command5_Click() Form2.Label1.Caption = strPrompt3 Form2.Label1.Left = (Form1.ScaleWidth - Form2.Label1.Width) / 2End SubPrivate Sub Command6_Click() Form2.Label1.Caption = strPrompt2 Form2.Label1.Left = (Form1.ScaleWidth - Form2.Label1.Width) / 2End SubPrivate Sub Command7_Click() Form_LoadEnd SubPrivate Sub Command8_Click() Form2.Label1.Caption = strPrompt5 Form2.Label1.Left = (Form1.ScaleWidth - Form2.Label1.Width) / 2End SubPrivate Sub Command9_Click() Form2.Label1.Caption = strPrompt6 Form2.Label1.Left = (Form1.ScaleWidth - Form2.Label1.Width) / 2End SubPrivate Sub FGColor_Click() Dim intColor1 As Long Select Case FGColor.ListIndex Case 0 intColor1 = vbBlack Case 1 intColor1 = vbGreen Case 2 intColor1 = vbBlue Case 3 intColor1 = vbCyan Case 4 intColor1 = vbRed Case 5 intColor1 = vbYellow Case 6 intColor1 = vbMagenta Case 7 intColor1 = vbWhite End Select Form2.Label1.ForeColor = intColor1End SubPrivate Sub Form_DblClick() Check5.Value = 0 Check5_ClickEnd SubPrivate Sub Form_Load() Form2.Show intSpeed = 20 Option2_Click 'Check1_Click 'Check2_Click' Combo1.ListIndex = 0 BKColor.ListIndex = 1 FGColor.ListIndex = 6 Form2.Label1.Left = (Form2.ScaleWidth - Form2.Label1.Width) / 2 Form2.Label1.Caption = strPrompt5 blnDirection = True ' 表示从右往左移动 blnAutoShift = False ' 表示单一方向移动 blnShiftDirection = True '一开始向左摆动 blnShiftMode = True '一开始选择摆动方式一 blnStopMode = False '一开始工作于可以摆动的状态 Check4.Value = 0 '一开始颜色手动控制End SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu mnuPopupMenu End IfEnd SubPrivate Sub Form_Unload(Cancel As Integer) Unload Form2End SubPrivate Sub HScroll1_Change() intSpeed = HScroll1.ValueEnd SubPrivate Sub HScroll1_Scroll() HScroll1_ChangeEnd SubPrivate Sub mnuFileExit_Click() Command2_ClickEnd SubPrivate Sub mnuFontSize12_Click() Form2.Label1.FontSize = 12End SubPrivate Sub mnuFontSize128_Click() Form2.Label1.FontSize = 128End SubPrivate Sub mnuFontSize24_Click() Form2.Label1.FontSize = 24End SubPrivate Sub mnuFontSize36_Click() Form2.Label1.FontSize = 36End SubPrivate Sub mnuFontSize48_Click() Form2.Label1.FontSize = 48End SubPrivate Sub mnuFontSize64_Click() Form2.Label1.FontSize = 64End SubPrivate Sub mnuFontSize72_Click() Form2.Label1.FontSize = 72End SubPrivate Sub mnuFontSize96_Click() Form2.Label1.FontSize = 96End SubPrivate Sub Option1_Click() Form2.Label1.FontSize = 48End SubPrivate Sub Option10_Click() blnAutoShift = True ' 进行左右摆动 blnShiftMode = False ' 左右摆动方式二 Timer1.Enabled = False Timer2.Enabled = TrueEnd SubPrivate Sub Option2_Click() Form2.Label1.FontSize = 24End SubPrivate Sub Option3_Click() On Error GoTo l Form2.Label1.FontName = "宋体" Exit Subl: MsgBox "对不起,本机无此字体。", vbInformation, "滚动字幕板"End SubPrivate Sub Option4_Click() On Error GoTo l Form2.Label1.FontName = "隶书" Exit Sub l: MsgBox "对不起,本机无此字体。", vbInformation, "滚动字幕板" End SubPrivate Sub Option5_Click() On Error GoTo l Form2.Label1.FontName = "楷体_GB2312" Exit Subl: MsgBox "对不起,本机无此字体。", vbInformation, "滚动字幕板" End SubPrivate Sub Option6_Click() On Error GoTo l Form2.Label1.FontName = "黑体" Exit Subl: MsgBox "对不起,本机无此字体。", vbInformation, "滚动字幕板" End SubPrivate Sub Option7_Click() blnDirection = True blnAutoShift = False Timer2.Enabled = False Timer1.Enabled = TrueEnd SubPrivate Sub Option8_Click() blnDirection = False blnAutoShift = False Timer2.Enabled = False Timer1.Enabled = TrueEnd SubPrivate Sub Option9_Click() blnAutoShift = True ' 进行左右摆动 blnShiftMode = True ' 左右摆动方式一 Timer1.Enabled = False Timer2.Enabled = TrueEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then Form2.Label1.Caption = Text1.Text End IfEnd SubPrivate Sub Timer1_Timer() If Not blnAutoShift Then '表示单一方向移动 If blnDirection Then If Form2.Label1.Left + Form2.Label1.Width > 0 Then Form2.Label1.Left = Form2.Label1.Left - intSpeed Else Form2.Label1.Left = Form1.ScaleWidth End If Else If Form2.Label1.Left < Form2.ScaleWidth Then Form2.Label1.Left = Form2.Label1.Left + intSpeed Else Form2.Label1.Left = -Form2.Label1.Width End If End If End IfEnd SubPrivate Sub Timer2_Timer() If Not blnStopMode Then ' 左右摆动的第一种方式 If blnShiftMode Then If blnShiftDirection Then If Form2.Label1.Left + Form2.Label1.Width > 0 Then Form2.Label1.Left = Form2.Label1.Left - intSpeed Else blnShiftDirection = False End If Else If Form2.Label1.Left < Form2.ScaleWidth Then Form2.Label1.Left = Form2.Label1.Left + intSpeed Else blnShiftDirection = True End If End If Else ' 左右摆动的第二种方式 If blnShiftDirection Then If Form2.Label1.Left > 0 Then Form2.Label1.Left = Form2.Label1.Left - intSpeed Else blnShiftDirection = False End If Else If Form2.Label1.Left + Form2.Label1.Width < Form2.ScaleWidth Then Form2.Label1.Left = Form2.Label1.Left + intSpeed Else blnShiftDirection = True