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

Курсовая работа / Готовая КР(Тема Конкурс)

.pdf
Скачиваний:
2
Добавлен:
23.12.2024
Размер:
878.65 Кб
Скачать

ID, имена, заработанные баллы.

3.7Выходные данные

Выходные данные – это файл с списком участников упорядоченный по

набранным баллам.

24

ЗАКЛЮЧЕНИЕ

Разработанная программа «Конкурс» полностью соответствует требованиям технического задания. Она успешно выполняет все заявленные функции: регистрацию участников, ввод и сохранение баллов, подведение итогов и сохранение результатов в файл. Программа эффективно автоматизирует процесс проведения конкурсных мероприятий, обеспечивая точный подсчет баллов и формирование рейтингов участников. Результаты работы программы представлены в четком и понятном формате. Программа готова к использованию для автоматизации различных конкурсных процедур.

25

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Лозовский В.В. Алгоритмические основы обработки данных: учебное пособие / Лозовский В.В., Платонова О.В., Штрекер Е.Н. — М.: МИРЭА – Российский технологический университет, 2022. – 337 с.

2.Платонова О.В. Алгоритмические основы обработки данных:

методические указания / Платонова О.В., Асадова Ю.С., Расулов М.М. — М.:

МИРЭА – Российский технологический университет, 2022. — 73 с.

3.Белик А.Г. Алгоритмы и структуры данных: учебное пособие / А.Г.

Белик, В.Н. Цыганенко. — Омск: ОмГТУ, 2022. — 104 с. — ISBN 978-5-8149- 3498-7. —

Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/343688 (дата обращения:28.10.2024)

4.Павлов Л.А. Структуры и алгоритмы обработки данных / Л.А. Павлов,

Н.В. Первова. — 2-е изд., стер. — Санкт-Петербург: Лань, 2022. — 256 с. —

ISBN 978- 5-507-44105-1. — Текст: электронный // Лань: электронно-

библиотечная система.

— URL: https://e.lanbook.com/book/207563 (дата обращения: 28.10.2024)

5. Пантелеев Е.Р. Алгоритмы и структуры данных: учебное пособие / Е.Р. Пантелеев, А.Л. Алыкова. — Иваново: ИГЭУ, 2018. — 142 с. —

Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/154576 (дата обращения:28.10.2024)

26

ПРИЛОЖЕНИЕ А

Листинг A.1 — Основная программа

#include <iostream> #include <vector> #include <fstream> #include <algorithm> #include <string>

using namespace std;

struct Contestant { int id;

string name; int score;

};

int main() { setlocale(LC_ALL, "Rus");

vector<Contestant> contestants; int maxContestants, maxPrizes, x;

cout << "Выберите:" << endl << "Начать новую запись на конкурс?(1)" << endl

<<

"Продолжить запись на конкурс?(2)" << endl; cin >> x;

if (x == 1) {

std::cout << "Введите максимальное количество участников: "; cin >> maxContestants;

std::cout << "Введите максимальное количество призовых мест: "; cin >> maxPrizes;

std::cout << "Конкурс открыт!\n";

int choice; do {

std::cout << "\nВыберите действие:\n"; std::cout << "1. Зарегистрировать участника\n";

std::cout << "2. Завершить регистрацию участников\n"; std::cout << "3. Приостоновка регистрации участников\n"; cin >> choice;

if (choice == 1) {

if (contestants.size() < maxContestants) { Contestant newContestant;

std::cout << "Введите идентификационный номер участника: "; cin >> newContestant.id;

std::cout << "Введите имя участника: "; cin >> newContestant.name;

newContestant.score = 0; // Изначально баллы 0 contestants.push_back(newContestant); std::cout << "Участник зарегистрирован.\n";

} else {

std::cout << "Достигнут максимальный лимит участников.\n";

}

}

if (choice == 3) {

ofstream outfile("contestants.txt"); outfile << maxContestants << endl;

27

Продолжение листинга A.1

outfile << maxPrizes << endl;

for (const Contestant& contestant : contestants) {

outfile << contestant.id << endl << contestant.name << endl << contestant.score << endl;

}

outfile.close();

exit(1);

}

} while (choice != 2);

ofstream outfile("contestants.txt");

for (const Contestant& contestant : contestants) {

outfile << contestant.id << "," << contestant.name << "," << contestant.score << endl;

}

outfile.close(); } else if (x == 2) {

ifstream infile("contestants.txt"); string t;

getline(infile, t); maxContestants = stoi(t); getline(infile, t); maxPrizes = stoi(t);

while (getline(infile, t)) { Contestant newContestant; int c = stoi(t); newContestant.id = c; getline(infile, t); newContestant.name = t; getline(infile, t);

newContestant.score = stoi(t); contestants.push_back(newContestant);

}

int choice; do {

std::cout << "\nВыберите действие:\n"; std::cout << "1. Зарегистрировать участника\n";

std::cout << "2. Завершить регистрацию участников\n"; std::cout << "3. Приостоновка регистрации участников\n"; cin >> choice;

if (choice == 1) {

if (contestants.size() < maxContestants) { Contestant newContestant;

std::cout << "Введите идентификационный номер участника: "; cin >> newContestant.id;

std::cout << "Введите имя участника: "; cin >> newContestant.name;

newContestant.score = 0; // Изначально баллы 0 contestants.push_back(newContestant); std::cout << "Участник зарегистрирован.\n";

} else {

std::cout << "Достигнут максимальный лимит участников.\n";

}

}

if (choice == 3) {

ofstream outfile("contestants.txt"); outfile << maxContestants << endl; outfile << maxPrizes << endl;

for (const Contestant& contestant : contestants) {

outfile << contestant.id << endl << contestant.name << endl

28

Продолжение листинга A.1

<< contestant.score << endl;

}

outfile.close();

exit(1);

}

} while (choice != 2);

}

std::cout << "Конкурс начался!\n"; int cho;

do {

int id, score;

std::cout << "\nВведите идентификационный номер участника: "; cin >> id;

std::cout << "Введите баллы участника: "; cin >> score;

// Нахождение участника по ID bool found = false;

for (Contestant& contestant : contestants) { if (contestant.id == id) {

contestant.score = score; found = true;

break;

}

}

if (!found) {

std::cout << "Участник с таким идентификационным номером не

найден.\n";

}

std::cout << "Продолжить регистрацию баллов? (1 - да, 0 - нет): "; cin >> cho;

} while (cho != 0);

std::cout << "Конкурс завершен!\n";

// Сортировка участников по убыванию баллов std::sort(contestants.begin(), contestants.end(), [](const Contestant& a,

const Contestant& b) {

return a.score > b.score;

});

// Вывод результатов на экран

std::cout << "\nРезультаты конкурса:\n"; std::cout << "ID, Имя, Баллы\n";

int k = 0;

for (const Contestant& contestant : contestants) { if (k == maxPrizes) {

cout << "^^^^^^^^^^^\n|||||||||||\n<ПРИЗОВЫЕ>\n";

}

std::cout << contestant.id << ", " << contestant.name << ", " << contestant.score << endl;

k = k + 1;

}

// Сохранение результатов в файл ofstream outfil("results.txt"); outfil << "ID, Имя, Баллы\n";

for (const Contestant& contestant : contestants) {

outfil << contestant.id << "," << contestant.name << "," << contestant.score << endl;

}

outfil.close();

// Adding a pause before exiting system("pause");

return 0;

}

29