Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные по программированию.doc
Скачиваний:
37
Добавлен:
29.02.2016
Размер:
1.78 Mб
Скачать

Лабораторная работа № 19

Тема: «Работа с файлами, содержащими структуры»

  1. Цель работы

1.1 Получение навыков программирования с использованием структур.

1.2 Получение навыков обработки файлов, содержащих структуры.

  1. Техническое обеспечение

    1. Персональная ЭВМ IBM PC/286 и более поздних моделей.

    2. Клавиатура.

    3. Дисплей.

    4. Печатающее устройство.

  2. Программное обеспечение

    1. Операционная система Windows

    2. Система программирования Visual C++ версия 6.0 или Borland C++ версия 3.1 и более поздние версии.

  1. Постановка задачи

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

5. Содержание отчета

5.1. Тема и цель работы.

5.2. Схема алгоритма решения задачи.

5.3. Текст программы.

5.4. Результаты выполнения программы.

  1. Общие сведения

    1. Структуры

Структура– это совокупность переменных разного типа, объединенных одним именем, предоставляющая общепринятый способ совместного хранения информации.Объявление структурыприводит к образованию шаблона, используемого для создания объектов структуры. Переменные, образующие структуру, называютсяэлементамиструктуры (илиполямиструктуры).

Обычно все элементы структуры связаны друг с другом. Например, информация об имени и адресе, находящаяся в списке рассылки, обычно представляется в виде структуры. Следующий фрагмент кода объявляет шаблон структуры. Ключевое слово 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]);