当前位置:编程学习 > VB >>

机软件技术基础(VB) 编程

河北工业大学计算机软件技术基础(VB)

课 程 设 计 任 务 书

本题难度级别:C 实现基本要求代码: 80行 主要涉及: 基本控件及算法

一、设计题目:led显示器(出题人:陈冀川)


二、目的与要求

1.目的

培养学生综合利用VB语言进行程序设计的能力,主要是培养学生利用动态生成控件数组的方法进行创新设计。

2.基本要求

  • 要求使用面向对象和结构化程序设计的编程思路。
  • LED显示器是由控件数组构成。
  • 在文本框中输入数字单击显示按钮后由LED显示器显示。
  • 显示十六进制数据、或者设计点阵式的LED显示器。

三、设计方法和基本原理        

 

1.问题描述:

LED显示器是指类似数字式电子表或计算器的显示方式。每个数字位的显示如右图,每位数字位由7个标签控件构成,通过控制这些控件的背景颜色,使得显示不同的数字。例如显示数字“1”,将2号标签和3号标签的背景颜色设置为与窗体背景颜色不同,其他标签的背景颜色设置为与窗体背景颜色相同,就可以显示出数字“1”。以上是1个数字位的显示方法。构造8个数据位,就可以显示8为数字。

2.问题的解决方案

①设计程序界面

由文本输入框输入数字,单击显示按钮在LED显示器上显示相应的数字。

构成LED显示的56个标签控件(每个数据位需要7个,共8位)是动态生成的控件数组。

每个数字所需要发光的控件号码,预先存储好。例如数字“0”需要1号、2号、3号、4号、5号、6号设置不同的背景颜色。定义一个一维字符串数组EI(0 to 9),EI(0)的值置为“123456”,EI(1)的值置为“23”……依此类推。显示时把所有标签的背景颜色置为与窗体背景颜色一样,然后根据要显示的数字把EI数组中的对应字符串中的所有数字作为下标的组成部分,例如要显示的是数字0,则把1号、2号、3号、4号、5号、6号标签的背景颜色置为与窗体背景颜色不同的颜色值。

②编写代码

代码包括事件处理过程和功能函数,还有必要的声明。变量声明部分声明本程序所需要的变量和数组。

事件处理包括下面的主要事件:

Form_Load()

作一些初始化的工作。

Private Sub Command1_Click()

在文本框中输入数字单击显示按钮后在led显示器上显示。

四、主要技术问题的描述

1.动态数组的建立

利用load 控件数组名(下标)语句 建立控件数组。并为每个控件数组元素设置大小、位置(参考附录生成象棋棋盘的程序)。

2.数字的显示

依据存储的EI数组对相应的控件的背景颜色属性进行设置。

五、参考资料

  • Visual Basic 程序设计教程 及 Visual Basic 实验教程
  • VB6.0程序员指南
  • VB6.0控件参考手册
  • MSDN中文版,课程设计网站上提供的其它资料。

六、设计部分的评分标准(本题难度为D级,综合时要乘系数0.75)

完成基本要求前3项(项目符号为“■”部分)

60

基本要求全部完成

80

有创新

100

[注:最后得分是根据本部分得分(占最大比例)以及课程设计期间纪律、设计报告书、答辩情况综合得出)

VB课程设计任务书 – led显示器 第页共页

答案:80行代码包括控件的事件吗。。我比较喜欢用换行的。。。

我这81行。。多了一行必要定义。。。可以删除。。。

 

 

 Option Explicit
Private I As Long
Private A As Long
Private EI(0 To 9) As String
Private Sub SetEI()
    EI(0) = "012456"
    EI(1) = "25"
    EI(2) = "02346"
    EI(3) = "02356"
    EI(4) = "1325"
    EI(5) = "01356"
    EI(6) = "013456"
    EI(7) = "025"
    EI(8) = "0123456"
    EI(9) = "012356"
End Sub
Private Sub Command1_Click()
    If Text1.Text = "" Then Exit Sub
    SetEI
    SetLedBasicColor Label1, vbBlack
    Dim BB() As Byte, AA() As Byte
    BB = Text1.Text
    For I = 0 To UBound(BB) Step 2
        AA = EI(Chr(BB(I)))
        For A = 0 To UBound(AA) Step 2
            Label1(Chr(AA(A)) + (I / 2) * 7).BackColor = vbRed
        Next A
    Next I
End Sub
Private Sub Form_Load()
    SetLed Label1, 100, 50, 500, 500
    SetLedBasicColor Label1, vbBlack
End Sub
Private Sub SetLed(Obj, ObjW As Long, ObjH As Long, ObjT As Long, ObjL As Long)
    Obj(0).Top = ObjT
    Obj(0).Left = ObjL
    SetLedWH Obj(0), ObjW, ObjH
    For I = 1 To 55
        If I <> 0 Then Load obj(I)
        obj(I).Visible = True
        A = I
        While A >= 7
            A = A Mod 7
        Wend
        If A = 0 Or A = 3 Or A = 6 Then
            SetLedWH Obj(I), ObjW, ObjH
        Else
            SetLedWH Obj(I), ObjH, ObjW
        End If
        If A = 0 Then
            Obj(I).Top = Obj(I - 7).Top
            Obj(I).Left = Obj(I - 7).Left + Obj(I - 7).Width + ObjW * 2
        ElseIf A = 1 Or A = 2 Then
            SetLedLR Obj(I - A), Obj(I), A - 1
        ElseIf A = 4 Or A = 5 Then
            SetLedLR Obj(I - A + 3), Obj(I), A - 4
        ElseIf A = 3 Or A = 6 Then
            Obj(I).Top = Obj(I - 1).Top + Obj(I - 1).Height
            Obj(I).Left = Obj(I - A).Left
        End If
    Next I
End Sub
Private Sub SetLedWH(Obj, ObjW As Long, ObjH As Long)
    Obj.Width = ObjW
    Obj.Height = ObjH
End Sub
Private Sub SetLedLR(ObjC, Obj, Index As Integer)  'ObjC 为中间的横条   obj为两边的竖条
    Select Case Index
        Case 0  'Obj在ObjC左下
            Obj.Left = ObjC.Left - Obj.Width
            Obj.Top = ObjC.Top + ObjC.Height
        Case 1  'Obj在ObjC右下
            Obj.Left = ObjC.Left + ObjC.Width
            Obj.Top = ObjC.Top + ObjC.Height
    End Select
End Sub
Private Sub SetLedBasicColor(Obj, Color1 As ColorConstants)
    For I = 0 To Obj.Count - 1
        Obj(I).BackColor = Color1
    Next I
End Sub

 

哈哈,你辛苦了!请勿追问!
 计算机软件技术基础Visual Basic Visual Basic 程序设计 程序设计 计算机软件技术基础Visual Basic Visual Basic 程序设计 程序设计 1、课程简介:Visual Basic是按照高等院校教学 需要开设的课程,详细介绍Visual Basic的基础知识。 2、课程要求:要求学生能利用VB编写简单Windows 应用程序。 3、前序课程:计算机文化基础 计算机软件技术基础Visual Basic Visual Basic 程序设计 程序设计 4、本课程特点: 入门

上一个:为什么说现在c比vb更有前景
下一个:vb用对话框打开txt文件,并保存

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,