Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
12.03.2015
Размер:
526.34 Кб
Скачать

Программирование и структуры данных

2007 г.

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

struct

{ char fio[20];

int gr;

char adr[40]; } a1, a2, *p1;

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

11

Программирование и структуры данных

2007 г.

Память под структурную переменную может быть выделена динамически, при выполнении программы, например:

struct BOOK *p4;

p4 = malloc (sizeof (struct BOOK));

Такая структура имени не имеет; обращаются к ней с помощью указателя p4, например:

gets (p4->name);

scanf (“%d”, &(p4->year));

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

12

Программирование и структуры данных

2007 г.

Работа с файлами

Файл – это поименованная область на диске, содержащая какую-либо информацию, например, текст программы, данные для программы, документ.

Файлы бывают текстовые и двоичные (бинарные). В операционной системе MS DOS текстовые файлы представляют собой последовательность символьных строк. Каждый символ занимает один байт. Строка заканчивается двумя символами: «возврат каретки» (с кодом 13) и «перевод строки» (с кодом 10).

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

13

Программирование и структуры данных

2007 г.

Некоторые функции доступа к файлам

1. fopen – открытие файла.

Прототип функции:

FILE * fopen (char * fname, char * mode);

Первый параметр fname задает имя открываемого файла, второй – режим открытия файла или вид его обработки. Параметр mode может задаваться в виде:

“r” – чтение файла,

“w” – запись в файл (если файл существует, он стирается),

“a” – добавление информации в конец файла, “r+” – чтение и запись.

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

14

Программирование и структуры данных

2007 г.

Пример.

FILE *fin, *fout;

/* указатели на входной и выходной

 

 

файлы */

char fname[13];

/* имя выходного файла */

if

((fin = fopen(“f1.txt”, “r”)) == NULL)

{

puts (“Файл в текущем каталоге не найден”);

exit (1);

}

puts(“Введите имя выходного файла”); gets (fname);

fout = fopen (fname, “w”);

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

15

Программирование и структуры данных

2007 г.

2. Для чтения информации из файла

служат функции:

fscanf() – форматированный ввод,

fgets() – чтение одной строки,

fgetc() – чтение одного символа,

fread() – ввод заданного числа байтов (символов).

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

16

Программирование и структуры данных

2007 г.

Пример.

Файл stud.txt содержит информацию о сдаче сессии студентами. Каждая строка файла содержит фамилию и инициалы студента (20 символов), номер группы и 4 экз. оценки, разделенные пробелами.

Пример строки:

Иванов А.С.

4151 4 5 4 3

Записать информацию из файла в массив структур.

/* фрагмент программы */

struct STUDENT

/* тип элемента массива (записи файла) */

{ char

fio[21];

/* фамилия */

int

gruppa;

/* группа */

int

oc[4];

/* массив оценок */

};

 

 

FILE *fin;

/* указатель на входной файл */

struct STUDENT

ms[300]; /* массив структур */

int i=0;

/* индекс очередного элемента массива ms */

int j;

 

/* индекс очередной оценки */

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

17

Программирование и структуры данных

2007 г.

if ((fin = fopen(“stud.txt”, “r”)

== NULL)

{ puts (“Файл в текущем каталоге не найден”); exit (1);

}

/*чтение информации из файла в массив ms*/ while (!feof(fin))

{ fgets (ms[i].fio, 21, fin);

fscanf (fin, “%d”, &ms[i].gruppa); for (j=0; j<4; j++)

fscanf (fin, “%d”, &ms[i].oc[j]); fgetc(fin);

i++;

}

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

18

Программирование и структуры данных

2007 г.

3. Для записи информации в файл

используются функции:

fprintf() – форматированный вывод,

fputs() – вывод строки,

fputc() – вывод одного символа,

fwrite() – вывод заданного числа байтов (символов).

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

19

Программирование и структуры данных

2007 г.

Часть 2. Структуры данных и методы программирования

Абстрактная структура данных - это структура данных, рассматриваемая с точки зрения применяемых к ней операций без описания способа ее представления в памяти.

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

20

Соседние файлы в папке Презентация лекций (3 семестр)