Структуры в качестве параметров функции — КиберПедия 

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Структуры в качестве параметров функции

2017-06-13 372
Структуры в качестве параметров функции 0.00 из 5.00 0 оценок
Заказать работу

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

# include < iostream.h >

struct Student {

int ID;

char name [ 10 ];

int age;

};

void input (Student *);

main () {

Student List;

input (&List);

cout << List.ID << List.name << List.age;

return 0;

}

void input (Student *L) {

cin >> L->ID;

cin >> L->name;

cin >> L->age;

}

 

Задания к самостоятельной работе

1. Описать структуру с именем Student, содержащую следующие поля: name, group, ses(успеваемость - массив из 5 элементов). Ввести с клавиатуры данные в массив stud1, состоящий из 10 структур типа student. Записи упорядочить по алфавиту. Вывести на экран фамилии и номера групп для всех студентов, имеющих оценки 4 и 5, если таких нет, то вывести соответствующее сообщение.

2. Описать структуру с именем Train, содержащую следующие поля: nazn(название пункта назначения), num(номер поезда), time(время отправления). Ввести с клавиатуры данные в массив rasp, состоящий из 6 структур типа Train. Записи упорядочить по номерам поездов. Вывести на экран информацию о поезде, номер которого введен с клавиатуры, если такого поезда нет, то вывести соответствующее сообщение.

3. Описать структуру с именем worker, содержащую следующие поля: name, pos(должность), year(год поступления на работу). Ввести с клавиатуры данные в массив tabl, состоящий из 10 структур типа worker. Записи упорядочить по дате поступления на работу. Вывести на экран фамилии работников, чей стаж работы превышает значение, введенное с клавиатуры, если таких нет, то вывести соответствующее сообщение.


Лабораторная работа 6

Файлы

В С++ ввод и вывод осуществляются через потоки. Поток (stream) - абстрактный канал связи, который создается в программе для обмена данными с файлами и стандартными устройствами ввода-вывода. По направлению передачи данных различают следующие потоки:

1. Входные потоки, из которых извлекаются данные (istream);

2. Выходные потоки, в которые записываются значения из программы (ostream);

3. Двунаправленный поток, который допускает и чтение, и запись.

При подключении библиотечного файла iostream.h создаются потоки cin и cout. Работа с файлами также осуществляется через потоки, при этом требуется подключить файл fstream.h. Этот файл позволяет создавать следующие потоки:

ifstream для чтения данных,

ofstream для записи данных,

fstream для чтения и записи данных.

Работу с файлами можно подразделить на 4 этапа:

1. Создание потока (объявление потоковой переменной). Переменные потока ввода из файла имеют тип ifstream, переменные потока вывода в файл имеют тип ofstream.

2. Связывание потока с файлами и открытие файла для работы в определенном режиме. Для связи файла с потоком используется функция open ().

3. Обмен данными с файлом через поток: запись в поток, чтение из потока. Информация из потоков считывается с помощью операций “ >> ” - извлечь из потока. Запись информации в файл осуществляется с помощью операции “ << ” - отправить в поток.

4. Разрыв связи потока с файлом: закрытие файла и разрыв его связи с потоком. Файл закрывается с помощью функции close ().

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

Для решения этой задачи необходимо создать в программе Блокнот файл Т1.txt и записать два числа, а затем запустить программу.

 

# include < fstream.h >

main () {

ifstream in; // объявление входного потока

ofstream out; // объявление выходного потока

in.open (“ T1.txt ”); // связь потока с файлом

out.open (“T2.txt”);

int a, b, c;

in >> a >> b; // чтение данных из файла

c = a + b;

out << c; // запись результата в файл

in.close (); // разрыв потока с файлом

out.close (); // разрыв потока с файлом

return 0;

}

Режимы открытия файла

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

 

Константа Режим Позиция в файле
ate Используется для работы с файлами произвольного доступа По умолчанию конец файла либо любая позиция в файле
app Используется для добавления данных в файл Конец файла
nocreate Не создает новый файл. Если файл не существует, операция открытия не выполняется  
noreplace Не замещать. Если файл существует, то операция его открытия не выполняется  
in Открытие файла для чтения Начало файла
out Открытие файла для записи Начало файла

 


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.