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

1.4. Файл process.C

#include<fcntl.h>

#include<sys/types.h>

#include<fcntl.h>

#include<stdio.h>

#include<malloc.h>

#include<process.h>

#include<iostream.h>

int stud_num; //kolichestvo studentov

int mark; //ocenka, poisk kotoroy proizvoditsya

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 Vvedite imya faila, v kotorom hranitsya baza dannih: ";

cin>>FName;

//Otkrutie faila bazi dannux

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

{cout<<"Fail ne moget but' otkrut. Programma prervana.";

exit(-1);}

//Vuchislenie razmera faila

FSize=lseek(Handle,0,SEEK_END);

lseek(Handle,0, SEEK_SET);

stud_num=FSize/sizeof(struct stud);

cout<<"\n baza dannux xranit informaciyu po studentam \n"<<stud_num;

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

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

{cout<<"\nNedostatochno pamyati. Programma ostanovlena.";

exit(-1);}

//Chtenie vsego sodergimogo faila bazu dannux v pamyat'

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

{cout<<"\n Oshibka chteniya faila. Programma ostanovlena.";

exit(-1);

close(Handle);}

close(Handle);

cout<<"\n Vuvodit studentov, ch'ya ocenka ravna:";

cin>>mark;

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

if(Buffer[i].stud_mark==mark)

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

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

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

cout<<"\n\n Obrabotka bazu dannux zavershena!\n";

}

Результат выполнения:

# QCC main.cpp -l/lib/libm.a -o main

# ./main

Identifikator roditelskogo processa raven

909350

Identifikator dochernego processa raven:

913447

Identifikator roditelskogo processa raven

909350

. 111 input.cpp main.cpp output.cpp process.cpp

.. input main output process

Vipolnenenie vneshney programmi posredstvom funkcii spawnl

PID tekywego processa raven: 925736

Vvedite kolichestvo stydentov:3

Rezervirivanie pamyati v razmere 84 bait

Vvedite informaciy o 1 studente iz 3

Vvedite imya stydenta:stas

Vvedite nomer gryppu stydenta:1

Vvedite ocenky stydenta:9

Vvedite informaciy o 2 studente iz 3

Vvedite imya stydenta:stas2

Vvedite nomer gryppu stydenta:2

Vvedite ocenky stydenta:9

Vvedite informaciy o 3 studente iz 3

Vvedite imya stydenta:stas3

Vvedite nomer gryppu stydenta:1

Vvedite ocenky stydenta:7

Zapolnenie bazi dannux zaversheno!

Vvedite imya faila dlya coxraneniya bazu dannux:baza

Vipolnenenie vneshney programmi posredstvom funkcii spawnl

PID tekushego processa raven:929832

Vvedite imya faila bazi dannih: baza

Baza dannih hranit zapisi o studentah3

Rezervirovanie pamyati v razmere 84 bayt...

Informaciya o 1 studente iz 3

Familiya studenta: stas

Gruppa studenta: 1

Ocenka studenta: 10

Informaciya o 2 studente iz 3

Familiya studenta: stas2

Gruppa studenta: 2

Ocenka studenta: 10

Informaciya o 3 studente iz 3

Familiya studenta: stas3

Gruppa studenta: 1

Ocenka studenta: 8

Vivod bazi dannih na ekran zavershen!

Vipolnenenie vneshney programmi posredstvom funkcii execl

Vvedite imya faila, v kotorom hranitsya baza dannih: baza

baza dannux xranit informaciyu po 3 studentam

Rezervirovanie pamiyati v razmere 84 bait

Vuvodit studentov, ch'ya ocenka ravna:10

Imya studenta:stas

Groppa studenta:1

Ocenka studenta:10

Imya studenta:stas2

Groppa studenta:2

Ocenka studenta:10

Obrabotka bazu dannux zavershena!

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