Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Приклад виконання лабораторної роботи. Тема:Робота з файлами даних.
Тема: Робота з файлами даних. Завдання: Скласти файл, що містить дані о працівниках. Дані о працівниках мають таку інформацію: табельний номер, ПІБ, посада, дата прийняття на роботу, оклад. Розпечатати дані про техніка, отриманого найбільшу зарплатню. Програма рішення задачі: /* директиви препроцесору */ #include < iostream.h> #include < stdio.h> #include < сstdlib.h> int main () /* початок головної функції */ { const int n=3; FILE *G; // опис файлу struct rabotnik // опис структури { int nomer, char tip[20]; char FIO[40]; char posada[20]; float oklad; int data; }s1; // опис масиву структур int i; if ((G=fopen(" danie_Rob", " wb"))==NULL) { cout< < " ERROR OPEN1 FAIL"; exit(1); // вихід з програми, якщо файл не створено } for (i=0; i< n; i++) //цикл для введення даних { cout< < " Nomer: "; cin> > s1.nomer; cout< < " FIO: "; cin> > s1.FIO; cout< < " Posada: "; cin> > s1. posada; cout< < " Oklad: "; cin> > s1. oklad; cout< < " Data: "; cin> > s1. data; fwrite(& s1, sizeof(struct rabotnik), 1, G); //запис даних в файл } fclose(G); //закриття файлу char posad[20]; float max=0; cout< < " Input posadu dlya poiska: "; cin> > posad; if ((G=fopen(" danie_Rob", " r"))==NULL) {cout< < " ERROR OPEN2 FAIL "; exit(1); // вихід з програми, якщо файл не створено } cout< < " \n Result" < < endl; for (i=0; i< n; i++) { fread (& s1, sizeof(struct rabotnik), 1, G); // читання даних з файлу if (s1.oklad> max) max= s1.oklad; } fclose(G); //закриття файлу for (i=0; i< n; i++) { fread (& s1, sizeof(struct rabotnik), 1, G); // читання даних з файлу if (s1.oklad== max & & s1.posada==posad) // друк результату cout< < " Nomer: " < < s1.nomer < < endl; cout< < " FIO: " < < s1.FIO < < endl; cout< < " Oklad: " < < s1.oklad < < endl; cout< < " posada: " < < s1.posada< < endl; cout< < " Data: " < < s1.data < < endl; } fclose(G); //закриття файлу return 0; } Результат: Nomer: 1 FIO: Ivanov A.O. Posada: Tehnik Oklad: 750 Data: 2000
Nomer: 2 FIO: Petrova A.O. Posada: Tehnik Oklad: 1750 Data: 2006
Input posadu dlya poiska: Tehnik Result Nomer: 2 FIO: Petrova A.O. Posada: Tehnik Oklad: 1750 Data: 2006
|