- •Курсовая работа
- •2012 План курсовой работы
- •Теоретическая часть с использованием Microsoft Word
- •Программирование в среде Visual Basic
- •1. Уровни протоколов
- •2. Протоколы канального уровня
- •2.1 Протокол Ethernet (Fast Ethernet, Gigabit Ethernet)
- •2.2 Протокол 100vg-AnyLan
- •2.3 Протокол Token Ring (High Speed Token Ring)
- •2.4 Протокол fddi
- •2.5 Протоколы slip и ppp
- •3. Протоколы сетевого и транспортного уровня
- •3.1 Стек протоколов ipx/spx
- •3.3 Стек протоколов tcp/ip
- •4. Протоколы прикладного уровня
- •4.1 Протоколы http, ftp
- •4.2 Протоколы передачи электронной почты
- •5. Взаимодействие компьютеров в сети и инкапсуляция пакетов
- •Программирование в среде Visual Basic Задача 1
- •1.Условие задачи
Программирование в среде Visual Basic Задача 1
1.Условие задачи
Дано:
количество сотрудников,
Для каждого сотрудника:
Табельный номер, район, фамилия И.О., оклад (О), выслуга в офицерском звании лет (Vl), оклад по офицерскому званию (Vz), Общая выслуга лет (Ov).
Вычислить:
Выслуга в процентах

Надбавка за звание

Размер пенсии в процентах

Денежное довольствие D=O+Vz+Nz
Сумма пенсии Sp=D Rp
Суммарная выплата D+Sp
Найти также:
Сумму выплат всех военнослужащих
Среднюю сумму надбавок
Сумму надбавки за звание для окладов >=3 000
Максимальный и минимальный оклад
Количество военнослужащих с пенсиями.
2.ТАБЛИЦА ОБОЗНАЧЕНИЙ
|
N |
КОЛИЧЕСТВО СОТРУДНИКОВ |
|
TN |
ТАБЕЛЬНЫЙ НОМЕР СОТРУДНИКА |
|
FIO |
ФАМИЛИЯ ИМЯ ОТЧЕСТВО |
|
O |
ОКЛАД |
|
VL |
ВЫСЛУГА ЛЕТ В ОФИЦЕРСКОМ ЗВАНИИ |
|
VZ |
ОКЛАД ПО ОФИЦЕРСКОМУ ЗВАНИЮ |
|
OV |
ОБЩАЯ ВЫСЛУГА ЛЕТ |
|
OVL |
ВЫСЛУГА ЛЕТ |
|
VP |
ВЫСЛУГА В ПРОЦЕНТАХ |
|
NZ |
НАДБАВКА ЗА ЗВАНИЕ |
|
RP |
РАЗМЕР ПЕНСИИ В ПРОЦЕНТАХ |
|
SP |
СУММА ПЕНСИЙ |
|
D |
ДЕНЕЖНОЕ ДОВОЛЬСТВИЕ |
|
I |
ПЕРЕМЕННАЯ |
|
SV |
СУММА ВЫПЛАТ |
|
SN_ZZ |
СУММА НАДБАВКИ ЗА ЗВАНИЕ |
|
SS_N |
СЕРДНЯЯ СУММА НАДБАВОК |
|
SV_VV |
СУММА ВЫПЛАТ ВСЕХ ВОЕННЫХ |
3.Схемма
алгоритма

4. КОД ПРОГРАММЫ
Private Sub Кнопка0_Click()
Dim N As Integer
Dim TN As Long
Dim FIO As String
Dim O As Long
Dim VL As Long
Dim VZ As Long
Dim OV As Long
Dim OVL As Long
Dim VP As Long
Dim NZ As Long
Dim RP As Long
Dim SP As Long
Dim D As Long
Dim I As Long
Dim SV As Long
Dim SV_VV As Long
Dim SN_ZZ As Long
Dim SS_N As Long
N = InputBox(" ВВЕДИТЕ КОЛИЧЕСТВО СОТРУДНИКОВ")
OVL = 0
I = 1
SV_VV = 0
SN_ZZ = 0
NZ = 0
VP = 0
M = I + 0
Do While I <= N
TN = InputBox(" ВВЕДИТЕ ТАБЕЛЬНЫЙ НОМЕР СОТРУДНИКА")
FIO = InputBox(" ВВЕДИТЕ ФАМИЛИЮ, ИМЯ, ОТЧЕСТВО СОТРУДНИКА")
O = InputBox(" ВВЕДИТЕ ОКЛАД СОТРУДНИКА")
VL = InputBox("ВВЕДИТЕ ВЫСЛУГУ ЛЕТ В ОФИЦЕРСКОМ ЗВАНИИ")
VZ = InputBox("ВВЕДИТЕ ОКЛАД ПО ОФИЦАЛЬНОМУ ЗВАНИЮ")
OV = InputBox("ОБЩАЯ ВЫСЛУГА ЛЕТ")
OVL = OVL + OV
If VL >= 30 Then
VP = VP + 35
End If
If VL >= 35 Then
VP = VP + 40
End If
If VL >= 25 Then
VP = VP + 25
End If
If VP >= 30 Then
NZ = VZ - VP
End If
If VP < 30 Then
NZ = (0.9 * VZ) - VP
End If
If OV >= 20 Then
RP = 50 + 3 * (OV - 20)
End If
If OV >= 31.5 Then
RP = 85
End If
If O >= 3000 Then
SN_ZZ = (NZ * N)
End If
D = O + VZ + NZ
SP = (D * RP)
SV = (D + SP)
SV_VV = SV * N
SS_N = (NZ + NZ) / 2
SN_ZZ = (NZ * N)
I = I + 1
MsgBox ("ФИО = " & FIO & Chr(13) & "ТАБЕЛЬНЫЙ НОМЕР = " & TN & Chr(13) & "ВЫСЛУГА В ПРОЦЕНТАХ=" & VP & "%" & Chr(13) & "НАДБАВКА ЗА ЗВАНИЕ= " & NZ & Chr(13) & " РАЗМЕР ПЕНСИИ В ПРОЦЕНТАХ = " & RP & "%" & Chr(13) & "ДЕНЕЖНОЕ ДОВОЛЬСТВИЕ = " & D & Chr(13) & " СУММА ПЕНСИИ = " & SP & Chr(13) & " СУММА К ВЫПЛАТЕ = " & SV)
Loop
MsgBox ("СУММА ВЫПЛАТ ВСЕХ ВОЕННО СЛУЖАЩИХ = " & SV_VV & Chr(13) & "СРЕДНЯЯ СУММА НАДБАВОК = " & SS_N & Chr(13) & "СУММА НАДБАВОК ЗА ЗВАНИЕ ДЛЯ ОКЛАДОВ >3 000 = " & SN_ZZ & Chr(13) & "КОЛИЧЕСТВО ВОЕННОСЛУЖАЩИХ С ПЕНСИЯМИ =" & N)
End Sub
5.Тест программы

Задача 2
1.условия
Дан массив действительных чисел. Среди них есть равные. Найти первый максимальный элемент массива и заменить его нулем.
2.Таблица значений
|
A() |
ЗАДАННЫЙ МАССИВ |
|
STR |
ОБОЗНАЧЕНИЕ МАССИВА |
|
I |
ПОРЯДКОВЫЙ НОМЕР |
|
N |
РАЗМЕРНОСТЬ |
|
MAS |
КОНЕЧНЫЙ МАССИВ |

3.Блок схема

4. Код программы
Private Sub Кнопка2_Click()
Dim A() As Integer, STR As String, I As Integer, N As Integer, MAS As String
N = InputBox("ВВЕДИТЕ РАЗМЕРНОСТЬ")
ReDim A(N)
STR = " "
Randomize
For I = 1 To N
A(I) = Int(10 * Rnd + 1)
STR = STR & A(I) & " "
Next
MsgBox (STR)
If A(1) < A(2) Then
A(2) = 0
Else
If A(2) < A(3) Then
A(3) = 0
Else
If A(3) < A(4) Then
A(4) = 0
Else
If A(4) < A(5) Then
A(5) = 0
Else
If A(5) < A(6) Then
A(6) = 0
Else
If A(6) < A(7) Then
A(7) = 0
Else
If A(7) < A(8) Then
A(8) = 0
Else
If A(8) < A(9) Then
A(9) = 0
Else
If A(9) < A(10) Then
A(10) = 0
End If
End If
End If
End If
End If
End If
End If
End If
End If
MAS = " "
For I = 1 To N
MAS = MAS & A(I) & " "
Next
MsgBox MAS
End Sub
5. Тестирование программы
Тест №1
Тест № 2

1.Условие задачи
У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i-того покупателя равно ti (i =1, ...., n). Определить время Ci пребывания i-го покупателя в очереди.
2.Таблица значений
|
A() |
Массив |
|
STR |
Обозначение массива |
|
I |
Переменная |
|
P |
Время простоя покупателя |
|
N |
Позиция в очереди |
|
TI |
Время обслуживания n-го покупателя |
3.Блок схема

4.Код программы
Private Sub Кнопка3_Click()
Dim A() As Integer
Dim STR As String
Dim I As Integer
Dim P As Integer
Dim N As Integer
Dim TI As Long
P = InputBox("ВВЕДИТЕ ВРЕМЯ ПРОСТОЯ ОДНОГО ПОКУПАТЕЛЯ В МИНУТАХ)))))) ")
N = InputBox(("ВВЕДИТЕ ВАШУ ПОЗИЦИЮ В ОЧЕРЕДИ") & Chr(13) & ("НАПРИМЕР: ВЫ ПЕРВЫЙ ЗНАЧИТ ВВОДИТЕ - 1 "))
ReDim A(N)
STR = " "
For I = 1 To N
A(I) = Int(I)
STR = STR & A(I) & " "
Next
TI = P * N
MsgBox ("Время простоя одного покупателя: ") & P & (" Минут") & Chr(13) & ("Ваша позиция в очереди: ") & N & Chr(13) & ("ВАС ОБСЛУЖАТ ЧЕРЕЗ: ") & TI & (" МИНУТ ")
End Sub
5. Тест программы

