Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
yap.doc
Скачиваний:
2
Добавлен:
19.08.2019
Размер:
4.9 Mб
Скачать

Задание 4. Работа с файлами (бесформатный ввод/вывод; бинарные файлы).

Требования к программам:

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

  1. Текст программы должен быть откомментирован.

В заголовке указать:

  • имя автора, группу,

  • формулировку задания.

Имена переменных, функций и проч. должны иметь осмысленные имена. Желательно объявление переменной снабжать комментарием о ее назначении.

  1. Следует структурировать программу, разбивая ее на (относительно) независимые части.

  1. Интерфейс программы должен быть достаточно удобен для пользователя.

Программа должна быть снабжена удобным интерфейсом на базе меню.

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

  1. Программы должны быть хорошо протестированы перед сдачей.

  1. Требования к разделу:

  • Программа должна запрашивать имена файлов у пользователя.

  • Программа должна проверять данные в файле на наличие ошибок:

        • Неправильная запись чисел

        • Неверное число элементов в файле (EndOfFile)

        • Ошибка записи

  • Программа должна проверять ошибки: открытия файлов, записи и т.п.

  • Все необходимые для данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.

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

Суть такого шифрования заключается в следующем: ключевое слово последовательно складывается по модулю 2 (XOR) с фрагментами текста длиной, равной длине ключевого слова.

Алгоритм шифрования оформить отдельной функцией.

Исходный файл и зашифрованный файл – разные файлы.

Файлы могут быть любых типов : текстовые и бинарные (*.txt, *.exe, *.gif и т.д.).

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

Суть такого шифрования заключается в следующем: каждый символ файла заменяется соответствующим символом из подстановочного алфавита. Подстановочный алфавит формируется сдвигом на N позиций ASCII алфавита.

Например:

Исходный алфавит: абвгдежз……………..

Подстановочный: вгдежзик……………..

Тогда последовательность символов «где» заменяется на «ежз».

При расшифровании производится обратная замена символов.

Алгоритм шифрования и расшифрования оформить отдельной функцией.

Исходный файл и зашифрованный файл – разные файлы.

Файлы могут быть любых типов : текстовые и бинарные (*.txt, *.exe, *.gif и т.д.).

3. Реализовать программу статистического анализа символов, входящих в файл.

Программа, должна выполнить следующее:

  • Рассчитать относительную частоту появления символов в файле

  • Рассчитать энтропию символов в файле.

  • Результаты вывести на экран и в файл типа TEXT:

    1. Общее число символов в файле N.

    2. Таблица, содержащая(5-ть граф):

      • № символа(ASCI код) - i ,

      • символ ai,

      • число символов ai в файле,

      • относительная частота появления символа ai в файле.

    3. Энтропию символов файла.

Таблица должна содержать записи, упорядоченные по убыванию относительной частоты появления символа, поэтому целесообразно определить массив записей (sruct).

Программа должна работать с различными типами файлов (*.txt, *.exe, *.bmp, *.gif, *.doc, *.zip и т.п.).

4. Реализовать программу, работающую с бинарным файлом, который содержит записи о товарах.

Каждая запись – структура с полями:

  • Наименование товара

  • Цена

  • Количество на складе

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Сортировать записи по возрастанию поля «Цена»

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

Алгоритм сортировки оформить отдельной функцией.

5. Реализовать программу, работающую с бинарным файлом, который содержит записи о студентах.

Каждая запись – структура с полями:

  • Фамилия

  • Год рождения

  • Оценка по мат. анализу

  • Оценка по физкультуре

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Найти самого старого среди студентов, отлично успевающего по мат. анализу и не успевающего по физкультуре. Исправить ему оценку по физкультуре.

6. Реализовать программу, работающую с бинарным файлом, который содержит записи о товарах.

Каждая запись – структура с полями:

  • Наименование товара

  • Цена

  • Количество на складе

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Вставлять запись по указанному порядковому номеру N (вводится с клавиатуры). При этом запись c номером N помещается на позицию N+1, аналогично все последующие записи.

Алгоритм вставки оформить отдельной функцией.

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

Каждая запись – структура с полями:

  • Наименование (тип) char[]

  • Тактовая частота

  • Цена

  • Количество на складе

Интерфейс должен позволять (все ниже следующие пункты реализовать как функции):

  • Вносить новые записи

  • Просматривать содержимое файла

  • Делать поиск записи по ее порядковому номеру и выводить ее на экран

  • Выводить на экран число записей в файле

  • Копировать исходный файл f1 в другой файл f2.

8. Реализовать программу, работающую с бинарным файлом f1, который содержит массив строк различной длины.

Строка должна быть описана структурой с полями:

  • Длина строки

  • Массив символов

Прим. : Такой формат имеет тип String в Pascal.

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Рассмотреть файл как последовательность битов.

Если сумма всех битов, содержащих единицы - четна сортировать строки по возрастанию в алфавитном порядке, иначе – по убыванию.

Сортировку выполнить в другой файл f2.

Алгоритм сортировки оформить отдельной функцией.

9. Реализовать программу, работающую с бинарным файлом, который содержит записи о процессорах.

Каждая запись – структура с полями:

  • Наименование (тип) char[]

  • Тактовая частота

  • Цена

  • Количество на складе

Интерфейс должен позволять (все ниже следующие пункты реализовать как функции):

  • Вносить новые записи

  • Просматривать содержимое файла

  • Делать поиск записи по значению поля «Наименование» и выводить на экран все записи, удовлетворяющие запросу

  • Выводить на экран число записей в файле

  • Уплотнять исходный файл f1 в другой файл f2. Под уплотнением понимается удаление всех записей, у которых поле «Наименование» - пустая строка.

10. Реализовать программу, работающую с бинарным файлом.

В бинарном файле записаны числа типа unsigned int.

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Если в файле есть хотя бы одно число, начинающееся цифрой 1 и содержащее цифру 2, упорядочить файл по неубыванию. Промежуточные массивы не использовать!

Алгоритм сортировки оформить отдельной функцией.

11. Реализовать программу, шифрующую файл с помощью следующего простого алгоритма: каждый байт исходного файла циклически сдвигается вправо или влево на N разрядов (N – ввести с клавиатуры).

Прим.: циклический сдвиг выполнить без применения asm-вставки.

Написать функцию шифрования и расшифрования.

Исходный файл и зашифрованный файл – разные файлы.

Файлы могут быть любых типов : текстовые и бинарные (*.txt, *.exe, *.gif и т.д.)

12. Реализовать программу, шифрующую файл с помощью следующего простого алгоритма: каждый байт исходного файла циклически сдвигается вправо или влево на N разрядов (N – ввести с клавиатуры), а затем складываются по модулю 2 (XOR) с числом M (M – ввести с клавиатуры)

Прим.: циклический сдвиг выполнить без применения asm-вставки.

Написать функцию шифрования и расшифрования.

Исходный файл и зашифрованный файл – разные файлы.

Файлы могут быть любых типов : текстовые и бинарные (*.txt, *.exe, *.gif и т.д.)

13. Реализовать программу, работающую с бинарным файлом.

В бинарном файле записаны числа типа short int.

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Если сумма всех чисел – четная упорядочить файл по возрастанию.

Промежуточные массивы не использовать!

Алгоритм сортировки оформить отдельной функцией.

14. Реализовать программу, работающую с бинарным файлом f1, который содержит записи о товарах.

Каждая запись – структура с полями:

  • Наименование товара

  • Цена

  • Количество на складе

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Сортировать записи по возрастанию поля «Цена»

Сортировку выполнить c использованием промежуточного массива, полученный массив записать в другой файл f2.

  • Делать поиск записи по значению поля «Наименование» и выводить на экран все записи, удовлетворяющие запросу

15. Реализовать программу, работающую с бинарным файлом f1, который содержит записи о студентах.

Каждая запись – структура с полями:

  • Фамилия

  • Год рождения

  • Оценка по мат. анализу

  • Оценка по физкультуре

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Делать поиск записи по значению поля «Фамилия» и редактировать эту запись.

  • Копировать файл f1 в другой файл f2.

16. Реализовать программу, работающую с бинарным файлом, который содержит записи о товарах.

Каждая запись – структура с полями:

  • Наименование товара

  • Цена

  • Количество на складе

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Вставлять запись: поля вставляемой записи ввести с клавиатуры и поместить ее содержимое на место 1-ой записи. При этом, запись ранее занившая 1-ю позицию, помещается на 2-ую, 2-ая запись на 3-ю и т.д.

Алгоритм вставки оформить отдельной функцией.

17. Реализовать программу, работающую с бинарным файлом f1, который содержит записи о процессорах.

Каждая запись – структура с полями:

  • Наименование (тип) char[]

  • Тактовая частота

  • Цена

  • Количество на складе

Интерфейс должен позволять (все ниже следующие пункты реализовать как функции):

  • Вносить новые записи

  • Просматривать содержимое файла

  • Делать поиск записей по полю «Тактовая частота» и вывести их на экран и в другой файл f2.

18. Реализовать программу, работающую с бинарным файлом f1, который содержит массив строк фиксированной длины.

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Сортировать строки по возрастанию в алфавитном порядке.

Сортировку выполнить в другой файл f2.

Алгоритм сортировки оформить отдельной функцией.

19. Реализовать программу, работающую с бинарным файлом, который содержит записи о процессорах.

Каждая запись – структура с полями:

  • Наименование (тип) char[]

  • Тактовая частота

  • Цена

  • Количество на складе

Интерфейс должен позволять (все ниже следующие пункты реализовать как функции):

  • Вносить новые записи

  • Просматривать содержимое файла

  • Делать поиск записи по значению поля «Наименование» и добавлять найденную запись в другой файл f2.

20. Реализовать программу, работающую с бинарным файлом.

В бинарном файле записаны числа типа unsigned int.

Интерфейс должен позволять:

  • Вносить новые записи

  • Просматривать содержимое файла

  • Если в файле есть хотя бы одно число, имеет четную сумму его десятичных цифр, упорядочить файл по убыванию. Промежуточные массивы не использовать!

Алгоритм сортировки оформить отдельной функцией.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]