Строки являются, пожалуй, самым используемым типом данных (возможно, после целых чисел) при программировании на С++. Мы неоднократно задействовали строки в различных примерах программ. В С++ в настоящее время поддержаны два вида символьных строк: строки в стиле С и строки в стиле С++. Строки в стиле С — это символьные массивы, строки в стиле С++ — это строки класса
basic_string<>
, который определен в стандарте (см. п. 21 в [1]). Строковые константы являются строками в стиле С и имеют тип константного символьного массива:
• const char[] — для обычных символов;
• const wchar_t [] — для широких символов. Обычные строковые константы записываются как последовательность символов в кавычках, например:
"строка"
"это очень длинная строка с управляющим символом в конце\п"
Широкие строковые константы пишутся с символом L перед последовательностью символов, например:
1."широкая строка"
1_"это очень длинная строка с управляющим символом в конце\п"
Символьные константы по умолчанию завершаются нулевым символом.
1. Написать функцию, которая записывает в текстовый файл 100 случайных целых чисел в диапазоне от -30 до +70 по одному в строке. Использовав этот файл как входной, сформировать выходной текстовый файл, добавив к каждому числу входного файла последнее число файла.
2. Выполнить упражнение 1, сделав входной файл двоичным. Для получения последнего числа файла использовать методы прямого доступа. Для проверки входного файла написать функцию вывода двоичного файла на экран.
3. Выполнить упражнение 1 с широкими потоками.
4. Выполните упражнение 1 с одним двоичным файлом, перезаписав файл на месте. Для проверки результата написать функцию вывода двоичного файла на экран.
5. Добавить в класс Li stPerson (см. упражнение 10 в главе 4) метод save О, записывающий данные на диск, и метод load (), обеспечивающий загрузку данных, сохраненных методом save (). Методы должны получать файловый поток в качестве параметра.
6. Выполнить упражнения 2 и 3 из главы 11, добавив в классы TSimpleArray и TDeque метод save (), сохраняющий данные в файл, и метод load (), обеспечивающий загрузку данных, записанных методом save(). Методы должны получать файловый поток в качестве параметра.
7. Запись о преподаваемой дисциплине представляется следующей структурой: код дисциплины в учебном плане, наименование дисциплины, фамилия преподавателя, код группы, количество студентов в группе, количество часов лекций, количество часов практики, наличие курсовой работы, вид итогового контроля (зачет или экзамен). Зачет — 0,35 часа на одного студента; экзамен — 0,5 часа на студента. Написать функцию, с помощью которой осуществляется первичный ввод информации с клавиатуры в двоичный файл. Написать функцию, преобразующую данные исходного файла в текстовый файл в виде ведомости с графой общих итогов. С файлом выполняются операции поиска, добавления, удаления и замены записи. Удаление и замену записей выполнять перезаписью исходного файла в новый. Поиск вести по фамилии преподавателя, коду группы, наличию курсовой работы, виду итогового контроля. При поиске сохранять выбранные записи в новом файле.
8. Выполнить упражнение 7, написав вместо функции класс, обеспечивающий нужные операции. Для форматирования записи выходного текстового файла написать класс-манипулятор. Использовать широкие потоки.
9. Выполнить упражнение 7, реализовав замену записи по месту старой записи без перезаписи файла. Операцию удаления выполнять тоже без перезаписи файла. Для этого добавить в структуру поле-признак удаления (true — удалена). Реализовать операцию раск(), выполняющую уплотнение файла посредством перезаписи исходного файла с физическим изъятием помеченных на удаление записей.
10. Для упражнения 7 разработать класс Index, выполняющий построение простейшего индексного массива. Индексный массив — динамический, состоя^ щий из пар «ключ-адрес». Массив должен быть отсортирован по возрастанию ключа. Ключ — это одно из полей, по которому производится поиск. Поиск нужной записи выполняется по индексу. Класс должен обеспечить индексирование по любому из требуемых полей класса. Класс должен включать в себя методы save() и load().
11. Выполнить упражнение 1, использовав строковые потоки. Исходный файл является текстовым, выходной — двоичным. Входное число считывается как строка и преобразуется во внутренний формат с помощью входного строкового потока.
12. Выполнить упражнение 11 при условии, что входной файл является двоичным, а выходной — текстовым. Выходное число преобразуется в строку с помощью выходного строкового потока.
Опубликовал Kest
May 30 2014 22:02:57 ·
0 Комментариев ·
3656 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.