
Курсовая работа / Готовая КР(Тема Конкурс)
.pdfСОДЕРЖАНИЕ
ВВЕДЕНИЕ .................................................................................................................. |
6 |
|
1 |
ТЕХНИЧЕСКОЕ ЗАДАНИЕ ............................................................................ |
7 |
1.1 |
Назначение разработки ..................................................................................... |
7 |
1.1.1 |
Наименование программы................................................................................ |
7 |
1.1.1 |
Краткая характеристика области применения программы............................ |
7 |
1.2 |
Основание для разработки................................................................................ |
8 |
1.3 |
Назначение разработки ..................................................................................... |
8 |
1.4 |
Требования, предъявляемые к программе....................................................... |
8 |
1.4.1 |
Требования к функциональным характеристикам программы..................... |
8 |
1.4.2 |
Требования к техническим средствам, используемым при работе |
|
программы.................................................................................................................... |
8 |
|
1.4.3 |
Требования к информационным структурам на входе и выходе |
|
программы.................................................................................................................... |
9 |
|
1.5 |
Требования к программной документации ..................................................... |
9 |
1.6 |
Требования к программной документации ..................................................... |
9 |
2 ОБЗОР СПОСОБОВ ОРГАНИЗАЦИИ ДАННЫХ И ОБОСНОВАНИЕ |
|
|
ВЫБОРА СТРУКТУРЫ ДАННЫХ ДЛЯ ЭФФЕКТИВНОГО ВЫПОЛНЕНИЯ |
|
|
ОПЕРАЦИЙ ............................................................................................................... |
10 |
|
2.1 |
Связный список ............................................................................................... |
10 |
2.2 |
Стек ................................................................................................................... |
10 |
2.3 |
Множества........................................................................................................ |
10 |
2.4 |
Массив .............................................................................................................. |
11 |
2.5 |
Вектор............................................................................................................... |
11 |
2.6 |
Выбор структуры данных ............................................................................... |
11 |
3 |
ОПИСАНИЕ ПРОГРАММЫ.......................................................................... |
13 |
3.1 |
Общие сведения............................................................................................... |
13 |
3.1.1 |
Наименование программы.............................................................................. |
13 |
3.1.2 |
Программное обеспечение, необходимое для функционирования |
|
|
4 |
|
программы.................................................................................................................. |
13 |
3.1.3 Язык программирования, на котором написана программа ....................... |
13 |
3.2Функциональное назначение программы (классы решаемых задач и
функциональные ограничения на применения) ..................................................... |
14 |
|
3.3 |
Описание логической структуры программы .............................................. |
14 |
3.3.1 |
Алгоритмы, используемые в программе....................................................... |
14 |
3.3.2 |
Алгоритм запуска программы........................................................................ |
15 |
3.3.3 |
Алгоритм начала регистрации ....................................................................... |
16 |
3.3.4 |
Алгоритм продолжения регистрации ............................................................ |
17 |
3.3.5 |
Алгоритм проведения конкурса..................................................................... |
18 |
3.3.6 |
Структура программы с описанием функций составных частей и связей |
|
между ними ................................................................................................................ |
20 |
|
3.4 |
Технические средства, которые используются при работе программы.... |
21 |
3.5 |
Вызов программы ............................................................................................ |
22 |
3.6 |
Входные данные .............................................................................................. |
23 |
3.7 |
Выходные данные............................................................................................ |
24 |
ЗАКЛЮЧЕНИЕ.......................................................................................................... |
25 |
|
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ................................................ |
26 |
|
ПРИЛОЖЕНИЕ А ..................................................................................................... |
27 |
5
ВВЕДЕНИЕ
В данной работы представлена разработка программного обеспечения для проведения конкурсов. Программа позволяет автоматизировать основные этапы организации и проведения конкурса, начиная с регистрации участников и заканчивая подведением итогов.
Цель работы – разработать программу, которая обеспечивает удобный и эффективный механизм для управления конкурсом. Программа должна предоставлять возможность регистрации участников, ввода их баллов,
сортировки участников по баллу и вывода результатов на экран и в текстовый файл.
В рамках курсовой работы была реализована система для проведения конкурсов, которая включает в себя следующие функции:
Открытие конкурса: Инициализация конкурса, задание количества участников и призовых мест.
1.Открытие конкурса: Инициализация конкурса, задание количества участников и призовых мест.
2.Регистрация участника: Добавление новых участников в список участников конкурса.
3.Окончание регистрации участников: Завершение процесса регистрации, что не позволяет добавлять новых участников.
4.Проведение конкурса: Ввод баллов для каждого участника конкурса.
5.Окончание конкурса: Завершение процесса ввода баллов.
6.Подведение итогов: Сортировка списка участников по баллу в порядке убывания, вывод упорядоченного списка участников в консоль и в текстовый файл.
Данная работа позволяет продемонстрировать практическое применение программирования для решения реальных задач и показать способность разработчика строить программы, удовлетворяющие заданным требованиям.
6
1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ
1.1Назначение разработки
Составленное техническое задание по дисциплине «Алгоритмические основы обработки данных» является документом к курсовой работе, который отображает все этапы разработки программного продукта, а также процесс проектирования и выявление требований, предъявляемых конечному продукту.
1.1.1Наименование программы
Название данного приложения «Конкурс» будет напрямую отражать темой курсовой работы по реализации конкурса. Данное название отражает предназначение будущего приложения. Английский вариант названия:
«Competition».
1.1.1Краткая характеристика области применения программы
Программа “Конкурс” предназначена для автоматизации процесса проведения различных соревнований, выборов, анкетирования и других мероприятий, где требуется подсчет баллов и определение победителей.
Она идеально подходит для школьных и студенческих олимпиад,
корпоративных конкурсов на лучший проект, спортивных соревнований, где необходимо вести учет результатов и формировать рейтинги участников.
Программа также может быть полезна при проведении опросов и анкетирования, позволяя автоматически подсчитывать голоса и формировать отчеты, а также при проведении выборов, где требуется определить победителя по результатам голосования.
Программа “Конкурс” позволяет существенно упростить организацию и проведение различных мероприятий, сокращая время и усилия, затрачиваемые
на ручные операции.
7
1.2Основание для разработки
Основанием для разработки является курсовая работа по дисциплине
«Алгоритмические основы обработки данных», предусмотренная учебным планом направления подготовки профиля «Цифровые комплексы,
системы и сети».
1.3Назначение разработки
Приложение упрощает проведения мероприятий с подсчётом участников, исключая из рисков человеческий фактор и ускоряя регистрацию.
1.4Требования, предъявляемые к программе
1.4.1Требования к функциональным характеристикам программы
В приложении должны быть реализованы следующие операции:
открытие конкурса;
регистрация участника;
окончание регистрации участников;
проведение конкурса: регистрация балла, полученного участником конкурса;
окончание конкурса;
подведение итогов конкурса: сортировка списка участников по убыванию баллов и вывод упорядоченного списка участников на экран и в текстовый файл.
1.4.2 Требования к техническим средствам, используемым при
работе программы
Персональный компьютер пользователя должен быть оснащён
8
графическим адаптером, также должна быть установлена ОС Windows (не ниже
Windows 7).
1.4.3 Требования к информационным структурам на входе и
выходе программы
На входе программа должна получить количество участников конкурса и количество призовых мест, на которые претендуют участники. Для регистрации необходимо вписать имя и фамилию. Каждому зарегистрированному участнику выдается личный номер. При окончании конкурса выводится таблица участников и их полученные баллы.
1.5Требования к программной документации
1.Пояснительная записка оформлена в соответствии с ЛНА РТУ МИРЭА.
2.Проектная документация, составленная в соответствии с ГОСТ.
В процессе создания приложения вся проделанная работа документируется, должны быть сохранены все детали разработки, а также трудности, с которыми пришлось столкнуться. Всё вышеперечисленное должно быть отражено в пояснительной записке, которая прилагается к работе.
1.6Требования к программной документации
1.Обзор способов организации данных и обоснование выбора структуры данных для эффективного выполнения операций 02.09.202422.09.2024.
2.Разработка программы: 22.09.2024-30.11.2024.
3.Разработка программной документации: 01.12.2024-10.12.2024.
4.Оформление пояснительной записки: 11.12.2024-16.12.2024.
5.Защита курсовой работы: 23.12.2024-30.12.2024.
9
2ОБЗОР СПОСОБОВ ОРГАНИЗАЦИИ ДАННЫХ
ИОБОСНОВАНИЕ ВЫБОРА СТРУКТУРЫ ДАННЫХ ДЛЯ ЭФФЕКТИВНОГО ВЫПОЛНЕНИЯ ОПЕРАЦИЙ
Данные могут быть организованы различными способами. Тип структуры данных в программе оказывает большое влияние на ее производительность. Для того чтобы выбрать наиболее простой и эффективный способ организации данных в программе рассмотрим несколько типов структур.
2.1Связный список
Связный список – фундаментальная структура данных, представляющая собой последовательность элементов, связанных между собой. В отличие от массива, элементы связного списка не хранятся в непрерывной памяти, а
каждый элемент (узел) содержит указатель на следующий. Двусвязный список расширяет эту концепцию, добавляя указатель на предыдущий элемент,
обеспечивая двусторонний доступ к данным. Основные операции со списком включают добавление, удаление и поиск элементов.
2.2Стек
Стек – структура данных, организованная по принципу LIFO (Last-In, FirstOut – последний пришёл, первый ушёл). Доступ к элементам стека осуществляется только через его вершину: добавление элемента (операция push) и удаление элемента (операция pop) происходят с этого конца.
2.3Множества
Множество – структура данных, аналогичная математическому понятию множества. Она хранит уникальные элементы заданного типа и предоставляет
10
операции добавления, удаления и проверки наличия элемента. В отличие от массивов или векторов, доступ к элементам множества осуществляется не по индексу, а с помощью итераторов.
2.4Массив
Массив – базовая и широко используемая структура данных, служащая для хранения больших объемов однотипных данных. Элементы массива доступны по индексу. Существуют одномерные (линейные) и многомерные
(вложенные) массивы, причем наиболее распространены одномерные и двумерные. Динамические массивы, размер которых определяется во время выполнения программы, обеспечивают гибкость в управлении памятью.
2.5Вектор
Вектор – это динамический массив, автоматически управляющий размером выделенной памяти. Он позволяет создавать массивы произвольной длины во время выполнения программы без явного выделения и освобождения памяти с помощью new и delete. Векторы упрощают разработку, предотвращая утечки памяти. Доступ к элементам осуществляется по индексу (с помощью квадратных скобок), а для добавления элемента в конец используется метод push_back(). Все элементы вектора должны быть одного типа.
2.6Выбор структуры данных
Для нашей программы используем vector для хранения списка участников. Это динамический массив, позволяющий легко добавлять, удалять и изменять элементы. vector подходит нам так как это динамический массив,
который идеально подходит для хранения списка участников, так как их количество заранее не известно и может меняться во время работы программы.
Для хранения результатов используем map для хранения результатов
11
конкурса. Ключ – это идентификационный номер участника (int), значение – это его количество баллов (int). map обеспечивает быстрое обращение к элементам по ключу, что удобно для регистрации баллов участников.
Чтобы реализовать хранение данных в файле, необходимо использовать файловое хранилище fstream для чтения, записи и хранения файла.
12
3 ОПИСАНИЕ ПРОГРАММЫ
3.1Общие сведения
В ходе выполнения курсовой работы была создана программа с консольным интуитивно понятным интерфейсом для работы с предметным указателем для операционной системы Windows. В ней выполняются все условия, обозначенные в техническом задании, и содержатся все необходимые компоненты, инструменты для корректной работы.
3.1.1Наименование программы
Название программы: «Конкурс» или на английском языке «Сontest». Оно отражает предназначение и главную функцию созданного приложения.
3.1.2 Программное |
обеспечение, |
необходимое |
для |
функционирования программы
Для корректного функционирования данного программного продукта необходимо, чтобы на персональном компьютере или ноутбуке пользователя была установлена ОС от компании Microsoft, а именно Windows (Windows 10).
Также требуется наличие графического адаптера, чтобы устройство могло справляться с обработкой отображения консоли приложения. Другие требования к устройству пользователя не предусмотрены.
3.1.3Язык программирования, на котором написана программа
Для написания программы был выбран язык программирования С++, за его доступность, понятность и высокую производительность.
13