Описание входных и выходных данных




Введение

 

Основная цель курсовой работы - усовершенствование навыков работы в среде C#.

При изучении предметной области, выяснилось, что «EuroBasket» на первый взгляд простая игра, но для ее реализации необходимо обратится практически ко всем разделам программирования в среде C#.

Суть самой игры заключается в следующем:В чемпионате Европы по баскетболу среди мужских команд участвуют 24 сборных, разбитых на 6 групп. Места в группах в случае равенства очков у двух и более команд определяются следующим образом:

а) по результатам игр между собой;

б) по лучшей разнице заброшенных и пропущенных мячей;

в) по наибольшему числу 3-х очковых попаданий за все игры в группе.

Сборные, занявшие 1 места в группах, выходят в 1/4 финала. Кроме того, в 1/4 финала выходят 2 сборные из числа команд, занявших 2 места в группах, имеющие лучшие показатели по набранным очкам, а в случае их равенства:

а) по лучшей разнице заброшенных и пропущенных мячей;

б) по наибольшему числу 3-х очковых попаданий за все игры в группе. Пары в 1/4 и в 1/2 финала определяются жребием. Определить чемпиона Европы по баскетболу.

 

1.
Назначение и область применения

 

Данная программа может быть использована в качестве развлечения.

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

 

Постановка задачи

 

Целью данной курсовой работы является углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере. Курсовая работа выполнена в среде C#.

В курсовой работе используются основные возможности языка в работе со структурами, файлами.

В данной игре предполагалось создание:

1. легко осваиваемого интерфейса;

2. графическое окно, удобным расположением кнопок и вкладок;

. доступного для понимания руководства пользователя;

. Возможность в любой момент покинуть игру.

 

Используемые методы

 

В данной программе использовались следующие разделы C#:

Управляющие структуры (условие, циклы);

Массивы (одномерные, двумерные);

Символы и строки;

Процедуры;

Работа с файлами;

В итоги получилась программа - игра, в которой использовались основные возможности среды C#.

Список переменных и типов данных.

 

Класс Form1

Имя переменной Тип данных Описание
Teams Team[] Начальный массив команд
TM   Новый массив команд (чтоб не смешать старый)
TC   Массив команд в полуфинальных играх
index_step int Индекс текущего этапа
Number_group   Номер группы
Count_teams   Количество команд
Group_count   Счёт в группе
Output_data DataGridViev Таблица команд по группам

 

Класс Championship

Наименование Тип данных Описание
Games Int[,] Игровая сетка в группах

 

Класс Team

Наименование Тип данных Описание
Name String Переменная для хранения имён участников
Country   Переменная для хранения стран участников
All_Scores int Переменная для хранения суммы забитых мячей
All_Lose_Points   Переменная для хранения суммы пропущенных мячей
Difference   Переменная для хранения разницы между забитыми и пропущенными мячами
Three_Points   Переменная для хранения количества 3-х очковых

 

4.
Описание алгоритма программы

Текстовый алгоритм

1. Начало

. Вводим названия сборных и соответствующих им стран

Цикл пока i < числа команд

Массив команд[i] = Новая команда (Таблица1 [1, i].значение. ToString(),

Таблица2 [2, i].значение. ToString());

Следующий шаг i

3. Строим групповую таблицу для N-й группы

Групповая_таблица (Таблица2, 24/6, индекс_этапа)

4. Строим игровую сетку

Игровая_сетка = Новая игровая_сетка();

Игровая_сетка. Игра = новая int [24, 24, 6]

5. Заполняем игровую сетку для текущей группы

Цикл пока i < Таблицы2. СтрокаСтолбец

Цикл пока p < 4*индекс_этапа+4

Если Таблица2 [1, i].Значение. ToString()==Массив_команд[p].имя

Массив_команд[p].Сумма_забитых_очков += Convert. NoInt32 (Таблица2 [2, i].Значение);

Массив_команд[p].Сумма_пропущенных_очков += Convert. NoInt32 (Таблица2 [2, i+1].Значение);

Массив_команд[p].Сумма_3-х_очковых += Convert. NoInt32 (Таблица2 [3, i+1].Значение);

Цикл m< 4*индекс_этапа+4

Если Таблица2 [1, i+1].Значение. ToString()==Массив_команд[m].имя

Массив_команд[m].Сумма_забитых_очков += Convert. NoInt32 (Таблица2 [2, i+1].Значение);

Массив_команд[m].Сумма_пропущенных_очков += Convert. NoInt32 (Таблица2 [2, i].Значение);

Массив_команд[m].Сумма_3-х_очковых += Convert. NoInt32 (Таблица2 [3, i].Значение);

Игровая_сетка. Игра [p, m, индекс_этапа]= Convert. NoInt32 (Таблица2 [2, i].Значение);

Игровая_сетка. Игра [p, m, индекс_этапа]= Convert. NoInt32 (Таблица2 [2, i+1].Значение);

Следующий шаг i

Следующий шаг p

Следующий шаг m

6. Считываем данные с таблицы и сортируем

Цикл i<4

Цикл o=4*номер_группы, p=4*номер_группы+1 p<4*номер_группы+4

Если Массив_команд[o].Сумма забитых< Массив_команд[p].Сумма забитых

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Массив_команд[o].Сумма забитых=Массив_команд[p].Сумма забитых

Если Игровая_сетка. Игра [o, p, Номер_группы]< Игровая_сетка. Игра [p, o, Номер_группы]

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Игровая_сетка. Игра [o, p, Номер_группы] = Игровая_сетка. Игра [p, o, Номер_группы

Если Массив_чемпионата[o].Разница> Массив_чемпионата[p].Разница

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Массив_чемпионата[o].Разница = Массив_чемпионата[p].Разница

Если Массив_чемпионата[o].Сумма_3-х_очковых< Массив_чемпионата[p]. Сумма_3-х_очковых

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Следующий шаг i

Следующий шаг o

Следующий шаг p

7. Выводим Результаты

Цикл i=0, k= 4*номер_группы; i<4

Таблица_вывода [0, i].Значение=i+1;

Таблица_вывода [1, i].Значение=Массив_команд[k].Имя;

Таблица_вывода [2, i].Значение=Массив_команд[k].Сумма_пропушенны;

Таблица_вывода [3, i].Значение=Массив_команд[k].Сумма_забитых;

Таблица_вывода [4, i].Значение=Массив_команд[k].Сумма_3-х_оковых;

Следующий шаг i

Следующий шаг k

8. Выводим команды вышедшие в 1/4

А) Занявшие первые места в группах

Цикл i<6

Таблица4 [0, i].Значение=i+1;

Таблица4 [1, i].Значение=Массив_команд [i*4].Страна;

Таблица4 [2, i].Значение=Массив_команд [i*4].Имя;

Таблица4 [3, i].Значение=Массив_команд [i*4].Сумма_пропушенны;

Таблица4 [4, i].Значение=Массив_команд [i*4].Сумма_забитых;

Таблица4 [5, i].Значение=Массив_команд [i*4].Сумма_3-х_оковых;

Следующий шаг i

Б) сортируем и выводим 2 команды занявшие 2-е места

Цикл o=0, p=1 p<6-i

Если Массив_команд[o].Сумма забитых< Массив_команд[p].Сумма забитых

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Массив_команд[o].Сумма забитых=Массив_команд[p].Сумма забитых

Если Массив_чемпионата[o].Разница< Массив_чемпионата[p].Разница

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Массив_чемпионата[o].Разница = Массив_чемпионата[p].Разница

Если Массив_чемпионата[o].Сумма_3-х_очковых< Массив_чемпионата[p]. Сумма_3-х_очковых

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Следующий шаг o

Следующий шаг p

Таблица4 [0, 6].Значение=7;

Таблица4 [1, 6].Значение=Массив_команд [i*4].Страна;

Таблица4 [2, 6].Значение=Массив_команд [i*4].Имя;

Таблица4 [3, 6].Значение=Массив_команд [i*4].Сумма_пропушенны;

Таблица4 [4, 6].Значение=Массив_команд [i*4].Сумма_забитых;

Таблица4 [5, 6].Значение=Массив_команд [i*4].Сумма_3-х_оковых;

Таблица4 [0, 7].Значение=8;

Таблица4 [1, 7].Значение=Массив_команд [i*4].Страна;

Таблица4 [2, 7].Значение=Массив_команд [i*4].Имя;

Таблица4 [3, 7].Значение=Массив_команд [i*4].Сумма_пропушенны;

Таблица4 [4, 7].Значение=Массив_команд [i*4].Сумма_забитых;

Таблица4 [5, 7].Значение=Массив_команд [i*4].Сумма_3-х_оковых;

9. Строим таблицу игр 1/4 и заполняем результаты

10. Сортируем результаты и выводим команды вышедшие в полуфинал

Цикл i < 4

Если Массив полуфинала[i].Сумма_забитых< Массив полуфинала [i+1].Сумма_забитых

Обмен (Массив полуфинала[i], Массив полуфинала [i+1])

Иначе Если Массив полуфинала[i].Сумма_забитых= Массив полуфинала [i+1].Сумма_забитых

Если Массив полуфинала[i].Сумма_3-х_очковых= Массив полуфинала [i+1].Сумма_3-х_очковых

Обмен (Массив полуфинала[i], Массив полуфинала [i+1])

Следующий шаг i

11. Вводим результаты 1/2

12. Выводим команды вышедшие в финал и заполняем результаты. Текст=Массив полуфинала[0].Имя. Текст=Массив полуфинала[2].Имя

13. Выводим победителя чемпионата

Если numericUpDown1. Значение> numericUpDown3. Значение. Текст= GroupBox1. Текст+ «Победитель чемпионата»

Иначе Если numericUpDown1. Значение< numericUpDown3. Значение. Текст= GroupBox2. Текст+ «Победитель чемпионата»

Иначе Если numericUpDown2. Значение> numericUpDown4. Значение. Текст= GroupBox1. Текст+ «Победитель чемпионата»

Иначе. Текст= GroupBox2. Текст+ «Победитель чемпионата»_In_Group (DataGridView OutPutData, Team[] Teams, int number_group)

 

Описание входных и выходных данных

 

Ниже в таблице описываются входные и выходные данные, которые выстроены примерно в том порядке, в котором они должны взаимодействовать с пользователем.

 


Описание входных и выходных данных

Входные Выходные
2. Выбор раздела в Главном меню программы 4. Ввод при помощи клавиатуры название команд и стран, либо при помощи кнопки случайно, случайно заполняем таблицу. 5. Ввод при помощи клавиатуры очков за забитые голы команд в Игре 1/8, либо при помощи кнопки случайно, случайно заполняем таблицу. 8. Ввод при помощи клавиатуры очков за забитые голы команд в Игре 1/4, либо при помощи кнопки случайно, случайно заполняем таблицу. 10. Ввод при помощи клавиатуры очков за забитые голы команд в Игре 1/2, либо при помощи кнопки случайно, случайно заполняем таблицу. 12. Ввод при помощи клавиатуры очков за забитые голы команд в Финале, либо при помощи кнопки случайно, случайно заполняем таблицу. 1. Отображение на экране Главного меню 3. Вывод на экран ранее выбранного раздела: - Ввод команды - вывод на экран окна Ввод команды - Игры 1/8 - вывод на экран окна Игры 1/8 - Игры 1/4 - вывод на экран окна Игры 1/4 - Команды вышедшие в 1/2 - вывод на экран окна Команды вышедшие в 1/2 - Игры 1/2 - вывод на экран окна Игры 1/2 - Финал - вывод на экран окна Финал - Поздравление - Вывод на экран окна Поздравление 6. Вывод на экран окна Результаты. 7. Вывод на экран окна Команды вышедшие в 1/4. 9. Вывод на экран окна Команды вышедшие в 1/2. 11. Вывод на экран окна Команды вышедшие в финал. 14. Вывод на экран окна Поздравление.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-03-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: