Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив2 / курсовая docx100 / Voropaev_kursovaya.docx
Скачиваний:
86
Добавлен:
07.08.2013
Размер:
535.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. Тест программы

Соседние файлы в папке курсовая docx100