11 лаба
.docxФедеральное агентство связи Ордена
Трудового Красного Знамени
федеральное бюджетное образовательное учреждение высшего образования
«Московский Технический Университет Связи и Информатики»
(МТУСИ)
Кафедра Информатики
Лабораторная работа № 11
Тема:
«Модульная структура приложений и стандартные модули в Visual Basic»
Вариант 00
Выполнил:
Москва 0000
Задание
Форма1
Форма2
5.1)Алгоритм решения задачи
5.2)Код
Option Strict On
Option Explicit On
Module Module1
Public n As Integer 'количество рабочих на заводе
Public x() As String 'одномерный массив фамилий
Public y() As Integer 'одномерный массив бригад
Public u() As Double ' одномерный массив с зарплатами
Public a() As Integer 'одномерный массив прохождение по группам
Public Unic() As Integer 'уникальный массив
Public Tips As Integer
End Module
------------------------------------------------------------
Option Strict On
Option Explicit On
Public Class Form1
Sub vivodMassiv(ByRef x() As String, ByRef s As String)
s = ""
For i = 0 To UBound(x)
s = s + x(i) + vbNewLine
Next
End Sub
Sub INTEGERvivodMassiv(ByRef Y() As Integer, ByRef s As String)
s = ""
For i = 0 To UBound(Y)
s = s + CStr(Y(i)) + vbNewLine
Next
End Sub
Sub DOUBLEvivodMassiv(ByRef U() As Double, ByRef s As String)
s = ""
For i = 0 To UBound(U)
s = s + CStr(U(i)) + vbNewLine
Next
End Sub
Sub unic11(ByRef y() As Integer, ByRef Unic() As Integer, ByRef Tips As Integer)
Dim i, j, f As Integer
Tips = 0
Unic(Tips) = y(0)
For i = 1 To n - 1
f = 0
For j = 0 To Tips
If y(i) = Unic(j) Then
f = 1
Exit For
End If
Next j
If f = 0 Then
Tips = Tips + 1
Unic(Tips) = y(i)
End If
Next
ReDim Preserve Unic(Tips)
End Sub
Sub vvod(ByVal n As Integer, ByVal x() As String, ByVal y() As Integer, ByRef u() As Double)
Dim i As Integer
For i = 0 To n - 1
x(i) = InputBox("Фамилия рабочего")
y(i) = CInt(InputBox("бригада"))
u(i) = CDbl(InputBox("Зарплата"))
Next i
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim s As String = ""
n = CInt(InputBox("количетсво студентов"))
ReDim x(n - 1), y(n - 1), u(n - 1), Unic(n - 1)
vvod(n, x, y, u)
vivodMassiv(x, s)
TextBox1.Text = s
INTEGERvivodMassiv(y, s)
TextBox2.Text = s
DOUBLEvivodMassiv(u, s)
TextBox3.Text = s
unic11(y, Unic, Tips)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
End
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form2.Show()
End Sub
End Class
------------------------------------------------------------Option Strict On
Option Explicit On
Public Class Form2
Sub sred(ByVal n As Integer, ByVal a() As Integer, ByRef u() As Double, ByRef k As Integer)
Dim i As Integer
Dim s As Double
k = 0
s = 0
For i = 0 To UBound(a)
s = s + u(a(i))
Next i
s = s / i
For i = 0 To UBound(a)
If u(a(i)) > s Then
k = k + 1
End If
Next
End Sub
Public Sub MaxMin(ByVal n As Integer, ByRef a() As Integer, ByRef u() As Double, ByRef maxid As Integer, ByRef minid As Integer)
Dim i As Integer
Dim MAX, MIN As Double
MAX = -10 ^ 8
MIN = 10 ^ 8
For i = 0 To UBound(a)
If MAX < u(a(i)) Then
MAX = u(a(i))
maxid = a(i)
End If
If MIN > u(a(i)) Then
MIN = u(a(i))
minid = a(i)
End If
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim k, maxid, minid As Integer
Dim l As Integer = 0
Dim s As String = ""
Dim a(l) As Integer
For i = 0 To Tips
l = 0
For j = 0 To UBound(y)
If Unic(i) = y(j) Then
a(l) = j
l = l + 1
ReDim Preserve a(l)
End If
Next
l = l - 1
ReDim Preserve a(l)
sred(n, a, u, k)
MaxMin(n, a, u, maxid, minid)
s += CStr(Unic(i)) + Space(4) + "Ф. рабочего с Max/salary" + Space(15) + x(maxid) + Space(10) + "Ф.рабочего с min/salary" + Space(20) + x(minid) + Space(10) + "Количество >cр" + Space(10) + CStr(k) + vbNewLine
Next
TextBox1.Text = s
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub
End Class
Результат выполнения:
7 Проверка результатов