Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
02.05.2014
Размер:
30.21 Кб
Скачать

Лабораторная работа №8

Тема: файловые потоки.

Цель работы: Знакомство и получение навыков работы с файловыми потоками.

Задание : соответствует заданию №7, но данные вводятся из текстового файла и результаты выводятся в текстовый файл.

Листинг программы:

#include <iostream.h>

#include <string.h>

#include <fstream.h>

#include <stdlib.h>

#include <conio.h>

const int L=31;

struct flat

{

char adr [L];

int kk;

int plo;

int skm;

};

struct gruppa

{

char adr [L];

int kk;

int plo;

};

void inputfile(flat x[ ],int &n);

void output(flat x[ ],int n);

void outputgr (flat y[ ], int n);

void outputgrfile (gruppa y[ ],int n);

void inputfile (flat x[ ],int &n)

{

ifstream fin;

char file [L];

cout<< "ima faila:";

cin>> file;

fin.open ( file );

if (fin.fail ()) { cout<<file<< " " << "ne otkr";

getch (); exit (1);

}

n=0;

do {

fin>>x[n].adr>>x[n].kk>>x[n].plo>>x[n].skm;

n++;

}

while (fin.good());

n--;

fin.close ();

}

void output(flat x[ ],int n)

{

int i;

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

cout << i + 1 <<" "<< x[i].adr <<" "<< x[i].kk <<" "<< x[i].plo <<" "<< x[i].skm << endl;

}

void outputgr(gruppa y[ ],int n)

{

int i;

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

cout << i + 1 <<" "<< y[i].adr <<" "<< y[i].kk <<" "<< y[i].plo << endl;

}

void outputgrfile ( gruppa y[ ], int n)

{

ofstream fout;

char file [L];

int i;

cout << "ima vihodn faila";

cin>>file;

fout.open (file);

if (fout.fail ()) {cout<< file << "ne coxdan";

getch (); exit (1);

}

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

fout<< y[i].adr<<" "<< y[i].kk <<" "<< y[i].plo << endl;

fout.close ();

}

void main()

{

clrscr();

const int N=100;

flat a[N];

gruppa b[N];

for (int i = 0; i < N; i++)

{

a[i].adr[0] = NULL;

a[i].kk = 0;

a[i].plo = 0;

a[i].skm = 0;

b[i].adr[0] = NULL;

b[i].kk = 0;

b[i].plo = 0;

}

int i, k, s, m, v;

inputfile (a,m);

cout<<"ishodn massiv";

output(a,m);

cout<<"vvedite stoim";

cin>>s;

k=0;

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

{

v=a[i].plo*a[i].skm;

if((a[i].kk == 2) && (v<=s))

{

strcpy (b[k].adr,a[i].adr);

b[k].kk=a[i].kk;

b[k].plo=a[i].plo;

k++;

}

}

outputgrfile (b,k);

cout<<"perechen";

outputgr(b,k);

getch();

}

Соседние файлы в папке Лабораторная работа №8