русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Обробка файлів структурованих даних


Дата додавання: 2014-11-27; переглядів: 835.


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

Виконання завдання

Алгоритм рішення

 

Програма рішення.

 

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

struct ant

{char im[30];

char fam[50];

char kls[2];

char rik[256];};

FILE *f,*g;

ant x;

//створення

void stv(void)

{ if ((f=fopen("x.dat","w"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\nВведіть інформацію про учня:\n";

do

{cout<<"\nВведіть імя учня: ";

cin>>x.im;

cout<<"\nВведіть прізвище учня: ";

cin>>x.fam;

cout<<"\nВведіть клас: ";

cin>>x.kls;

cout<<"\nВведіть рік навчасння : ";

cin>>x.rik;

fwrite(&x,sizeof(x),1,f);}

while(getch()!=27);

fclose(f);}

//доповнення

void dod(void)

{ if ((f=fopen("x.dat","a"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\nВведіть інформацію про учня:\n";

do

{cout<<"\nВведіть імя учня: ";

cin>>x.im;

cout<<"\nВведіть прізвище учня: ";

cin>>x.fam;

cout<<"\nВведіть клас: ";

cin>>x.kls;

cout<<"\nВведіть рік навчасння (буквами): ";

cin>>x.rik;

fwrite(&x,sizeof(x),1,f);}

while(getch()!=27);

fclose(f);}

//перегляд

void per(void)

{ if ((f=fopen("x.dat","r"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\n Інформація про учня:\n";

while(fread(&x,sizeof(x),1,f)!=NULL)

{cout<<"\nімя учня: ";

cout<<x.im;

cout<<"\nпрізвище учня: ";

cout<<x.fam<<"\n";

cout<<"\nклас: ";

cout<<x.kls;

cout<<"\nрік навчасння (буквами): ";

cout<<x.rik;

getch();}

fclose(f);}

//вилучення

void del(void)

{ if ((f=fopen("x.dat","r"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

if((g=fopen("x1.dat","w"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\n Інформація про учнів: \n";

while(fread(&x,sizeof(x),1,f)!=NULL)

{cout<<"\nІмя учня: ";

cout<<x.im;

cout<<"\nПрізвище учня: ";

cout<<x.fam;

cout<<"\nКлас: ";

cout<<x.kls;

cout<<"\nРік навчасння (буквами): ";

cout<<x.rik;

getch();

cout<<"\n\n Вилучати(y/n)?";

if(getch()=='n') fwrite(&x,sizeof(x),1,g);}

fclose(f);

fclose(g);

unlink("x.dat");

rename("x1.dat","x.dat");}

void posh(void)

{ char s1[40],s2[50],s3[10];

if ((f=fopen("x.dat","r"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\nВведіть імя для пошуку:";

cin>>s1;

cout<<"\nВведіть прізвище для пошуку:";

cin>>s2;

{cout<<"\nКлас: ";

cin>>s3;

while(fread(&x,sizeof(x),1,f)!=NULL)

if((strcmp(s1,x.im)==0)&&(strcmp(s2,x.fam)==0)&&(strcmp(s3,x.kls)==0))

cout<<"\nРік навчасння (буквами): ";

cout<<x.rik; }

getch();

}

#pragma argsused

int main(int argc, char* argv[])

{SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int r;clrscr();

do

{clrscr();

cout<<"\n\n\n\t\t Головне меню \n\t1-Створеня\n\t2-Перегляд";

cout<<"\n\t3-Доповнення\n\t4-Вилучення\n\t5-Пошук\n\t6-Вихід\n\t Вкажіть

cin>>r;

switch(r)

{case 1:{stv();break;}

case 2:{per();break;}

case 3:{dod();break;}

case 4:{del();break;}

case 5:{posh();break;}

case 6: exit(1);} }

while(1);

return 0;

}

 

 

Рисунок 2.6.2 – Вікно результатів роботи програми

(функція створення файлу)

 

Рисунок 2.6.3 – Вікно результатів роботи програми

(функція перегляду файлу)

 

Рисунок 2.6.4 – Вікно результатів роботи програми

(функція доповнення файлу)

 

Рисунок 2.6.5 – Вікно результатів роботи програми

(функція вилучення даних з файлу)

Рисунок 2.6.6 – Вікно результатів роботи програми

 

 


<== попередня лекція | наступна лекція ==>
Обробка рядків | Пользователь вводит расстояние. Подсчитать стоимость одного билета.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн