Информатика: Методические указания к лабораторным работам № 1-5. Функции. Обработка символьных данных. Организация работы с файлами, страница 26

В структурном типе описаны характеристики шести машин: марка, год выпуска, стоимость. Определить самую дорогую машину.

Вариант 21

Определить новый тип данных – структуру, хранящую координаты точки на плоскости  x и  y.  Написать функцию, возвращающую 1, если один из углов треугольника, заданного тремя переданными ей в параметрах точками, тупой, и 0 в противном случае.

Вариант 22

Определить новый тип данных – структуру, хранящую координаты точки в пространстве  xy  и  z.  Написать функцию, вычисляющую расстояние между двумя переданными ей в параметрах точками. Продемонстрировать работу.

Контрольные вопросы

1.  Назначение структуры.

2.  Дайте определение структуры.

3.  Форма записи структуры.

4.  Как объявить структурную переменную?

5.  Доступ к структурной переменной.

6.  Присвойте значение структурной переменной с помощью указателя.

7.  Как передать структурную переменную из функции в функцию?

8.  Объявите массив структурных переменных и инициализируйте его.

 
 



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

ОРГАНИЗАЦИЯ РАБОТЫ С ФАЙЛАМИ

Цель работы

1.  Приобретение навыков создания текстовых файлов и файлов данных.

2.  Организация работы с файлами

Пояснения к работе

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

Работа с файлами в C++ может производиться как в стиле С, так и в стиле С++. И в том и другом случае файл рассматривается как поток (stream), представляющий собой последовательность считываемых или записываемых байт.

До сих пор вы имели дело с двумя стандартными потоками:

cout – выходной поток, связанный с экраном (поток вывода на экран);

cin – входной поток, связанный с клавиатурой.

Потоки же для работы с файлами создаются как объекты следующих классов:

ofstream – для вывода (записи) данных в файл;

ifstream для ввода (чтения) данных из файла.

Чтобы использовать эти классы, необходима директива

#include <fstream>.

После этого в программе можно определять конкретные файловые потоки соответствующих типов (объекты классов ofstream и ifstream), например, таким образом:

ofstream outfile; // Определяется выходной файловый поток c именем outfile;

ifstream infile; // Определяется входной файловый поток c именем infile.

В классах ifstream, ofstreamописаны конструкторы, позволяющие одновременно с определением файловых потоков выполнять создание и открытие файлов. Например,

ifstream infile ("file1.txt");

создается входной файловый поток с именем infileдля чтения данных из файла. Разыскивается файл с названием file1.txt. Если такой файл не существует, то конструктор завершает работу аварийно.

ofstream outfile ("file2.txt "); создается выходной файловый поток с именем outfile для записи информации в файл. Если файл с названием  file2.txt  не существует, он будет создан, открыт и соединен с потоком  outfile. Если файл уже существует, то предыдущий вариант будет удален и пустой файл создается заново.

Мы с вами будем работать с файлами в стиле С++, так как он имеет ряд достоинств по сравнению со стилем С. Пожалуй, основным из них является возможность применения очень удобных операций «поместить в поток» (<<) и «взять из потока» (>>) .

Выполнение операций чтения и записи

Для начала вы должны объявить объект типа ofstream, указав имя требуемого выходного файла как символьную строку, что показано ниже:

ofstream outfile("test.txt");

Аналогично может создаваться входной поток, связанный с файлом:

ifstream infile("test.txt");

К созданным таким образом потокам можно применять операции «поместить в поток» (<<) и «взять из потока» (>>). Преимущество этих операций, работающих с текстовыми файлами, по сравнению с аналогичными функциями языка С заключается в простоте использования и автоматическом распознавании типов данных.