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

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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

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

2017-06-13 380
Структуры в качестве параметров функции 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 Открытие файла для записи Начало файла

 


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

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

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



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

0.013 с.