机软件技术基础(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文件,并保存