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

1.2. Файл input.C

#include<fcntl.h>

#include<sys/types.h>

#include<unistd.h>

#include<malloc.h>

#include<stdio.h>

#include<process.h>

#include<iostream.h>

int stud_num; //kolichestvo studentov

int i; //vremennaya peremennaya

int Handle; // descriptor fayla

long FSize; //razmer fayla(bayt)

char FName[15];//imya fayla

struct stud {char stud_surname[20]; //familiya studenta

int stud_group; //gruppa

int stud_mark;};//ocenka

struct stud *Buffer;//bufer dlya hraneniya zapisey

int main()

{cout<<"\n PID tekywego processa raven: "<<getpid();

cout<<"\n Vvedite kolichestvo stydentov:";

cin>>stud_num;

cout<<"\n Rezervirivanie pamyati v razmere bait"<<stud_num*sizeof(struct stud);

if((Buffer=(struct stud*)malloc(stud_num*sizeof(struct stud)))==NULL)

{cout<<"\n Ne xvataet pamyati. Programma zavershena c kodom vozvrata -1";

exit(-1);}

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

{cout<<"\n\n Vvedite informaciy o studente iz \n",i+1,stud_num;

cout<<"Vvedite imya stydenta:";

cin>>Buffer[i].stud_surname;

cout<<"Vvedite nomer gryppu stydenta:";

cin>>Buffer[i].stud_group;

cout<<"Vvedite ocenky stydenta:";

cin>>Buffer[i].stud_mark;}

cout<<"\n Zapolnenie bazi dannux zaversheno!";

cout<<"\n\n Vvedite imya faila dlya coxraneniya bazu dannux:";

cin>>FName;

if((Handle = open(FName, O_RDWR|O_CREAT))==-1)

{cout<<"\n Vuxodnoi fail ne moget but' sozdan. Programma prervana.";

exit(-1);}

write(Handle, Buffer, stud_num*sizeof(struct stud));

close(Handle);}

1.3. Файл output.C

#include<fcntl.h>

#include<sys/types.h>

#include<unistd.h>

#include<malloc.h>

#include<stdio.h>

#include<process.h>

#include<iostream.h>

int stud_num; //kolichestvo studentov

int i; //vremennaya peremennaya

int Handle; // descriptor fayla

long FSize; //razmer fayla(bayt)

char FName[15];//imya fayla

struct stud {char stud_surname[20];//familiya

int stud_group; //gruppa

int stud_mark;};//ocenka

struct stud *Buffer; //bufer dlya hraneniya

int main()

{cout<<"\n PID tekushego processa raven:"<<getpid();

cout<<"\n Vvedite imya faila bazi dannih: ";

cin>>FName;

if ((Handle=open(FName, O_RDONLY))==-1)

{cout<<"\n Nevozmogno otkrit' fayl. Vipolnenie programmi prervano.";

exit (-1);}

//vichislenie razmera fayla bazi dannih

FSize=lseek(Handle, 0, SEEK_END);

lseek(Handle, 0, SEEK_SET);

//vichislenie kolichestva zapisey v baze dannih

stud_num=FSize/sizeof(struct stud);

cout<<"\n Baza dannih hranit zapisi o studentah"<<stud_num;

cout<<"\n Rezervirovanie pamyati v razmere bayt..."<<stud_num*sizeof(struct stud);

if ((Buffer=(struct stud*) malloc (stud_num*sizeof(struct stud)))==NULL)

{cout<<"\n Ne hvataet pamyati. Programma zavershena s kodom vozvrata -1.";

exit (-1);}

if (FSize!=read (Handle, Buffer, FSize))

{cout<<"\n Chtenie bazi dannih nevozmogno. \n Programma prervana.";

close (Handle);

exit (-1);}

close (Handle);

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

{cout<<"\n\n Informaciya o studente iz "<<i+1,stud_num;

cout<<"\n Familiya studenta: "<<Buffer[i].stud_surname;

cout<<"\n Gruppa studenta: "<<Buffer[i].stud_group;

cout<<"\n Ocenka studenta: "<<Buffer[i].stud_mark;}

cout<<"\n\n Vivod bazi dannih na ekran zavershen!\n";

}

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