Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЗОТФ-ЗФ / 4.10. Модули и классы. Введение в объективно-ориентированное программирование

.docx
Скачиваний:
17
Добавлен:
06.11.2017
Размер:
338.73 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ

Государственное образовательное учреждение

Высшего профессионального образования

Московский технический университет связи и информатики

Курсовая работа

по дисциплине «Программирование и алгоритмизация».

Тема 4.10. «Модули и классы. Введение в объективно-ориентированное программирование».

Вариант №6.

2016 г.

Задание.

Цель работы. Изучение средств, приемов и получения практических навыков разработки, написания и отладки проектов, использующих несколько форм, закреплении материала по обработке строковых данных и текстовых файлов, и практическом использовании объектно-ориентированной технологии, стандартных модулей и классов при решении различных задач.

Задание.

1. Выбрать задание в соответствии с вариантом. И выбрать не менее двух вариантов реализации проекта: один со стандартным модулем и двумя формами и второй - со стандартным модулем, классом и двумя формами.

2. Провести формализацию задачи, для чего необходимо:

* определить перечень исходных данных и предусмотреть для них проверку правильности ввода;

* представить смысловые данные, которые будут использоваться в ходе решения задачи в виде переменных или массивов, присвоив им соответствующие имена;

* определить размерности и типы используемых данных;

* привести геометрическую иллюстрацию решения задачи;

* при необходимости привести расчетные формулы, которые будут использоваться для преобразования исходных данных в результаты.

3. Разработать интерфейс пользователя:

* разработать форму, предназначенную для ввода исходных данных как с клавиатуры, так и из текстового файла, и для отображения входных данных на форме;

* разработать выходную форму, предназначенную для вывода результатов решения задачи как на форму, так и для записи в файл.

4. Составить общую (укрупненную) схему алгоритма решения задачи.

5. Составить схемы алгоритмов решения функциональных задач с учетом того, что они будут реализованы в виде процедур.

6. Создать программный код проекта, реализующий поставленную задачу.

7. Подготовить текстовые наборы исходных данных, соответствующие смысловой направленности решаемой задачи как для ввода с клавиатуры, так и из текстового файла.

8. Получить решение.

9. Обосновать правильность полученных результатов.

Задача.

Имеется список n команд, принимающих участие в чемпионате мира по футболу. Перед турниром проведен опрос k человек, каждый из которых назвал по 3 команды, которые с его точки зрения, займут 1-е, 2-е и 3-е место. Составить алгоритм и программу, которые по результату турнира определяют приз каждого из тех опрошенных, которые точно угадали последовательность победителей, если общий призовой фонд - S.

Графический интерфейс.

Таблица объектов.

Имя

Свойство

Значение свойства

Form1

Name

Form1

Label1

Text

Введите людей и их прогнозы

Label2

Text

Введите имя файла

TextBox1

Name

TextBox1

TextBox2

Name

TextBox2

Button1

Name

Button1

Text

Ок

Button2

Name

Button2

Text

Стереть

Button3

Name

Button3

Text

Считать из файла

Имя

Свойство

Значение свойства

Form2

Name

Form2

Label1

Text

Результаты

TextBox1

Name

TextBox1

Button1

Name

Button1

Text

Рассчитать

Button2

Name

Button2

Text

Стереть

Программный код.

Module Module1

Public massiv() As String

Public pobed As String

Public sum As Double

End Module

__________________________________________________________

Public Class Form1

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

TextBox1.Text = My.Computer.FileSystem.ReadAllText(TextBox2.Text)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

TextBox1.Text = ""

TextBox2.Text = ""

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

massiv = Split(TextBox1.Text, Chr(13) + Chr(10)) 'Запись введёных людей и их прогнозов в массив

pobed = InputBox("Введите через пробел команды занявшие соответственно 1,2 и 3 места") 'Запись команд победителей

sum = Val(InputBox("Введите общую сумму выигрыша")) 'Запись общей суммы выигрыша

Me.Hide() 'Скрыть текущую форму

Form2.Show() 'Показать форму 2

End Sub

End Class

__________________________________________________________

Public Class Form2

Private Sub Form2_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing

Application.Exit()

End Sub

'Процедура очистки поля результата

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

TextBox1.Text = ""

End Sub

'Процедура расчёта по нажатию кнопки

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

raschet(massiv, pobed, sum)

End Sub

'Процедура расчёта

Sub raschet(ByVal massiv_vxod() As String, ByVal pobediteli As String, ByVal summa As Double)

Dim i As Short 'Переменная счётчик цикла

Dim vixod As String 'Переменная для хранения имён победителей

Dim k As Short 'Переменная для хранения количества победителей

k = 0

vixod = ""

For i = 0 To massiv_vxod.Length - 1 'Цикл перебора участников и их прогнозов

If massiv_vxod(i) = pobediteli Then 'Проверка условия, что прогноз участника оказался верным

'Занесение участника в список победителей

k = k + 1

vixod = vixod + massiv_vxod(i - 1) + Chr(13) + Chr(10)

'

End If

Next i

If k > 0 Then 'Проверка условия, что победители есть

summa = summa / k 'Разделение суммы выигрыша между количеством победителей

summa = Int(summa)

If k > 1 Then 'Если победителей больше одного

TextBox1.Text = "По" + Str(summa) + " рублей(ля) получат:" + Chr(13) + Chr(10) + vixod 'Вывод данных на форму в случае если победителей больше одного

Else

TextBox1.Text = Str(summa) + " рублей(ля) получит:" + Chr(13) + Chr(10) + vixod 'Вывод данных на форму в случае если победитель один

End If

Else

TextBox1.Text = "Победителей нет" 'Вывод данных на форму в случае если победителей нет

End If

End Sub

End Class

Блок-схема.

~ 9 ~