- •Лабораторная работа № 1
- •Далее создадим файл:
- •Задания1
- •Лабораторная работа № 2
- •Консольный ввод-вывод
- •Чтение и запись символов
- •Чтение и запись строк
- •Форматированный консольный ввод-вывод
- •Форматированный вывод
- •Форматированный ввод
- •7. Варианты задания
- •Лабораторная работа № 3
- •5.2 Оператор if
- •Лабораторная работа № 4
- •Содержание отчета
- •Постановка задачи.
- •Общие сведения
- •Лабораторная работа № 5
- •Оператор for
- •Вариации цикла for
- •Бесконечный цикл
- •Циклы for без тела
- •Задание 2. Циклический вычислительный процесс конечные суммы и произведения
- •Лабораторная работа № 6
- •Оператор цикла while
- •Оператор do … while
- •Оператор break
- •Оператор continue
- •Лабораторная работа № 7
- •5.1 Одномерный массив
- •Создание указателя на массив
- •5.3 Индексация с помощью указателей
- •Сортировка
- •Методические указания.
- •Лабораторная работа № 8
- •Двухмерные массивы
- •Лабораторная работа № 9
- •Лабораторная работа № 11
- •Задача 2. Параметры функции
- •Лабораторная работа № 12
- •Варианты заданий
- •Лабораторная работа № 13
- •Некоторые операции над матрицами
- •Методические указания
- •Варианты заданий
- •Лабораторная работа № 14
- •Решение уравнения методом деления отрезка пополам (бисекций)
- •Методические указания
- •Лабораторная работа № 15
- •Вычисление определенного интеграла
- •6.2.1 Метод средних прямоугольников
- •6.2.1 Метод трапеций
- •Методические указания
- •Варианты заданий
- •Лабораторная работа № 10
- •Структуры (struct)
- •Лабораторная работа № 16
- •Директива #include
- •7. Методические указания
- •8. Варианты заданий.
- •Лабораторная работа № 17
- •Указатель на файл
- •Открытие файла
- •Перенаправление потока
- •Чтение из потока и запись в поток
- •Закрытие потока
- •Использование функций feof() и ferror()
- •Варианты заданий
- •Лабораторная работа № 18
- •Функции обработки символов
- •Функции обработки строк
- •Варианты заданий
- •Лабораторная работа № 19
- •Структуры
- •6.1.1 Доступ к элементам структуры
- •6.1.2 Присваивание структур
- •Массивы структур
- •Передача структур в функции
- •Передача членов структур в функции
- •Передача всей структуры в функцию
- •Указатели на структуры
- •Объявление указателя на структуру
- •Использование указателей на структуру
- •Массивы и структуры в структурах
- •Функции fread () и fwrite ()
- •Варианты заданий
- •Лабораторная работа № 20
- •Например, формула
- •Задание на программирование
Лабораторная работа № 19
Тема: «Работа с файлами, содержащими структуры»
Цель работы
1.1 Получение навыков программирования с использованием структур.
1.2 Получение навыков обработки файлов, содержащих структуры.
Техническое обеспечение
Персональная ЭВМ IBM PC/286 и более поздних моделей.
Клавиатура.
Дисплей.
Печатающее устройство.
Программное обеспечение
Операционная система Windows
Система программирования Visual C++ версия 6.0 или Borland C++ версия 3.1 и более поздние версии.
Постановка задачи
с
5. Содержание отчета
5.1. Тема и цель работы.
5.2. Схема алгоритма решения задачи.
5.3. Текст программы.
5.4. Результаты выполнения программы.
Общие сведения
Структуры
Структура – это совокупность переменных разного типа, объединенных одним именем, предоставляющая общепринятый способ совместного хранения информации. Объявление структуры приводит к образованию шаблона, используемого для создания объектов структуры. Переменные, образующие структуру, называются элементами структуры (или полями структуры).
Обычно все элементы структуры связаны друг с другом. Например, информация об имени и адресе, находящаяся в списке рассылки, обычно представляется в виде структуры. Следующий фрагмент кода объявляет шаблон структуры. Ключевое слово struct сообщает компилятору об объявлении структуры.
struct addr {
char name[30];
char street[40];
char city[20];
char state[40];
unsigned long int zip;
};
Имя структуры addr идентифицирует структуру данных и является спецификатором типа. Имя структуры часто используется как ярлык.
На данный момент на самом деле не создано никакой переменной. Определена только форма данных. Для объявления переменной следует написать:
struct addr addr_info;
В данной строке происходит объявление переменной addr_info типа addr.
При объявлении структуры можно одновременно объявить одну или несколько переменных. Например:
struct addr {
char name[30];
char street[40];
char city[20];
char state[40];
unsigned long int zip;
} addr_info, binfo, cinfo;
объявляет структуру addr и объявляет переменные addr_info, binfo, cinfo данного типа.
Важно понять, что каждая структурная переменная содержит свои собственные копии элементов, образующих структуру. Например, поле zip переменной binfo отделено от поля zip переменной cinfo.
Если необходима только одна структурная переменная, то нет необходимости в ярлыке структуры. Это означает, что
struct {
char name[30];
char street[40];
char city[20];
char state[40];
unsigned long int zip;
} addr_info;
объявляет одну переменную addr_info с типом, определенным предшествующей ей структурой.
6.1.1 Доступ к элементам структуры
Доступ к отдельным членам структуры осуществляется с помощью оператора «точка» (.). Например, следующий фрагмент присваивает элементу zip структурной переменной addr_info значение 12345:
addr_info.zip = 12345;
Стандартный вид доступа следующий:
<имя_структуры> . <имя_элемента>
Следовательно, для вывода поля zip на экран следует написать:
cprintf(“%ld”, addr_info.zip);
Для доступа к отдельным символам addr_info.name можно использовать индекс name. Например, можно вывести содержимое addr_info.name посимвольно с помощью следующего фрагмента:
register int t;
for (t=0; addr_info.name[t];t++) putchar(addr_info.name[t]);