Задание на курсовуюx

advertisement
В качестве курсовой работы необходимо написать программу, которая позволяет работать
с зашифрованной базой абитуриентов. Имеется некоторый файл, в котором содержится
зашифрованная при помощи некоторого ключа информация об абитуриентах, необходимо
написать программу, которая позволяет расшифровать данные в этом файле и считать их.
После чего реализовать интерфейс, который позволит обрабатывать считанные данные.
Разобьём условно курсовую работу на 2 этапа.
1 этап:
Осуществить считывание зашифрованных данных. Известен алгоритм, которым был
зашифрован файл с данными, необходимо написать функцию, которая расшифровывает
файл и сохраняет полученные данные во временном файле. Временный файл в конце
работы программы необходимо удалять. После внесения изменений в данные, их
необходимо обратно зашифровать и сохранить в исходном файле. В начале работы
программы пользователь вводит значение ключа, при помощи которого и происходит
расшифровка файла.
Варианты алгоритмов шифрования:
1.
2.
3.
4.
Шифр Цезаря
Шифр Виженера
Шифр Бофора
Шифр Хилла
Номер варианта первого этапа определяется по следующей формуле ⌊𝑁⁄5⌋, где 𝑁 - номер
в журнале.
2 этап:
Необходимо реализовать интерфейс работы со считанным списком абитуриентов.
Требуется реализовать сортировку списка, поиск в нём элемента, удаление элемента,
очистка списка, изменение элемента, добавление элемента. Ключ для сортировки и поиска
определяется по варианту. Кроме того, согласно варианту необходимо реализовать
дополнительную функцию для работы со списком. Список должен быть динамическим
(стек, очередь или двусвязный список на выбор автора).
Структура абитуриент состоит из следующих полей: Фамилия, имя, отчество, дата
рождения, форма обучения (очное, заочное), основание поступления (льгота, бюджет,
внебюджет, целевое), баллы ЕГЭ по математике, баллы ЕГЭ по русскому языку, баллы
ЕГЭ по физике, баллы ЕГЭ по информатике, направление обучения (будем считать
направлением обучения факультет).
Варианты:
1. Ключ: Фамилия, имя, отчество. Реализовать функцию для определения среднего
суммарного балла для каждого направления.
2. Ключ: Баллы по математике, баллы по информатике, баллы по физике, баллы по
русскому. Написать функцию, которая выводит список поступающих на некоторое
направление.
3. Ключ: Фамилия, имя, баллы по математике. Написать функцию, которая выводит
список льготников, у которых сумма баллов больше 200.
4. Ключ: Баллы по математике, баллы по русскому, фамилия. Написать функцию,
которая рассчитывает процентное распределение поступающих абитуриентов для
всех направлений обучения.
5. Ключ: Фамилия, имя, направление обучения. Написать функцию, которая
определяет для каждой формы обучения минимальный, максимальный и средний
суммарный балл поступающих.
Номер варианта второго этапа определяется по следующей формуле: (𝑁%5) + 1, где 𝑁 номер в журнале.
Download