Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C++_РП_2064.doc
Скачиваний:
6
Добавлен:
06.05.2019
Размер:
711.68 Кб
Скачать

8.3 Контрольні запитання

  1. Що таке покажчик на файл?

  2. Стандартні потоки введення/виведення.

  3. Функції введення/виведення.

  4. Як відкрити файл? Ознака успішного відкриття файлу.

  5. Режими доступу.

  6. Для чого необхідно закривати файл? Ознака успішного закриття файлу

  7. Які ви знаєте функції введення/виведення? Ознака правильного виконання операції.

  8. Як змінити поточну позицію у файлі?

Лабораторна робота № 9. Тема роботи: Структури. Робота з бінарними файлами

Мета роботи: програмування із застосуванням структур, одержання практичних навичок для роботи з бінарними файлами

9.1 Теоретичні відомості

Структура об’єднує логічно пов’язані дані різних типів. Структурний тип даних визначається таким описом:

struct ім’я_структури { опис_елементів };

Приклад:

struct dinner { char *place;

float cost; };

Структурна змінна описується за допомогою структурного типу.

Приклад:

struct dinner week_days[7]; // масив структур

Struct dinner best_one; // одна структурна змінна

struct dinner *p; // покажчик на структурну змінну

p = &best_one; // ініціалізація покажчика

Звернення до окремого елементу структури здійснюється через крапку. Наприклад, структура best_one, елемент cost, звертання best_one.cost. Можна використовувати best_one.cost так як будь-яку іншу змінну типу float.

Приклад введення структури у файл та виведення структури з файлу

# include <stdio.h>

void main()

{ FILE *newfile;

struct student

{ char name[25] ;

int gruop ;

int mark1;

int mark2;

};

int i,j ;

//Введення даних у файл test4

if((newfile=fopen("D://prep/Tereschenko2/test4.dat","wb"))==NULL)

{ puts("ERROR\n");

}

struct student stud[30];

n=3;

for(i=0;i<n;i++)

{ printf("\nInput name,gruop,mark1,mark2");

scanf("%s%d%d%d", &stud[i].name, &stud[i].gruop, &stud[i].mark1,&stud[i].mark2);

fwrite(&stud[i],sizeof(student),1,newfile);

}

j=n;

fclose(newfile);

//Виведення даних з файлу test4

newfile=fopen("D://prep/Tereschenko2/test4.dat","rb");

i=0;

while(!feof(newfile))

{ fread( &stud[i],sizeof(student),1,newfile);

i++;

}

for(j=0;j<=i;j++)

{ printf("j=%d name=%s gruop=%d mark1=%d mark2=%d \n",

j,stud[j].name,stud[j].gruop,stud[j].mark1,stud[j].mark2);

}

fclose(newfile);

}

9.2 Індивідуальні завдання

Варіант 1.

Дані про учня складаються з його імені та прізвища і назви класу (рік навчання та буква). Наданий файл, що містить дані на учнів. З’ясувати, чи є в школі учні з однаковими прізвищами.

Варіант 2.

Дані про учня складаються з його імені та прізвища і назви класу (рік навчання та буква). Наданий файл, що містить дані на учнів. З’ясувати, чи є в паралельних класах учні з однаковими прізвищами.

Варіант 3.

Дані про учня складаються з його імені та прізвища і назви класу (рік навчання та буква). Заданий файл, що містить дані на учнів. З’ясувати, чи є в школі учні з однаковими прізвищами та іменами.

Варіант 4.

Дані про учня складаються з його імені та прізвища і назви класу (рік навчання та буква). Наданий файл, що містить дані на учнів. З’ясувати, чи є в паралельних класах учні з однаковими прізвищами та іменами.

Варіант 5.

Дані про учня складаються з його імені та прізвища і назви класу (рік навчання та буква). Наданий файл, що містить дані на учнів. З’ясувати, в яких класах налічується більше ніж 35 учнів.

Варіант 6.

Дані про учня складаються з його імені та прізвища і назви класу (рік навчання та буква). Наданий файл, що містить дані на учнів. З’ясувати, на скільки учнів в десятих класах більше ніж в восьмих.

Варіант 7.

Дані про учня складаються з його імені та прізвища, назви класу (рік навчання та буква) та оцінок, одержав учень за останню четверть. Наданий файл, що містить дані на учнів. З’ясувати, скільки учнів не мають балів нижче десяти.

Варіант 8.

Дані про учня складаються з його імені та прізвища, назви класу (рік навчання та буква) та оцінок, одержав учень за останню четверть. Наданий файл, що містить дані на учнів. З’ясувати, в якому класі кількість учнів, що не мають балів нижче десяти, максимальна.

Варіант 9.

Дані про учня складаються з його імені та прізвища, назви класу (рік навчання та буква) та оцінок, одержав учень за останню четверть. Наданий файл, що містить дані на учнів. З’ясувати, скільки в школі відмінників та в яких класах вони навчаються.

Варіант 10.

Дані про учня складаються з його імені та прізвища, назви класу (рік навчання та буква) та оцінок, одержав учень за останню четверть. Наданий файл, що містить дані на учнів. З’ясувати, скільки учнів мають бали нижче шести.

Варіант 11.

Дані про учня складаються з його імені та прізвища, назви класу (рік навчання та буква) та оцінок, одержав учень за останню четверть. Наданий файл, що містить дані на учнів. З’ясувати, скільки в школі учнів, що мають бали від семи до дев’яти.

Варіант 12.

Заданий файл, що містить різноманітні дати. Кожна дата це число, місяць та рік. Знайти рік з найменшим номером.

Варіант 13.

Наданий файл, що містить різноманітні дати. Кожна дата це число, місяць та рік. Знайти всі весняні дати.

Варіант 14.

Наданий файл, що містить різноманітні дати. Кожна дата це число, місяць та рік. Знайти найпізнішу дату.

Варіант 15.

Наданий файл, що містить різноманітні дати. Кожна дата це число, місяць та рік. Знайти всі осінні дати.

Варіант 16.

Наданий файл, що містить дані про книги. Дані про книгу це прізвище автора, назва та рік видання. Знайти назви книг заданого автора.

Варіант 17.

Наданий файл, що містить дані про книги. Дані про книгу це прізвище автора, назва та рік видання. З’ясувати, чи є книга з назвою “Інформатика”. Якщо є, то вказати рік видання та автора.

Варіант 18.

Наданий файл, що містить дані про книги. Дані про книгу це прізвище автора, назва та рік видання. З’ясувати, чи є книги, що видані пізніше 1999 року. Якщо є, то вказати назву та автора.

Варіант 19.

Наданий файл, який містить номери телефонів співробітників установи: вказуються прізвище співробітника, його ініціали та номер телефону. Знайти телефони співробітників з однаковими прізвищами.

Варіант 20.

Наданий файл, який містить номери телефонів співробітників установи: вказуються прізвище співробітника, його ініціали та номер телефону. Знайти прізвища та ініціали співробітників, у яких співпадають дві перші цифри телефонів.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]