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

Программирование на C / C++ / Лабораторные работы / Лабораторная работа №8

.doc
Скачиваний:
23
Добавлен:
02.05.2014
Размер:
173.06 Кб
Скачать

Уфимский Государственный Авиационный Технический Университет

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

Файлы

Вариант 5.

Выполнил студент группы

Проверил доцент

кафедры АПрИС

Бежаева О.Я.

Уфа-2008.

1.Цель работы:

Знакомство и получение навыков работы с файлами на языке С++.

2. Условия задания:

Сведения о квартире состоят из адреса, количества комнат, площади и стоимости. Дан массив записей, содержащий сведения о нескольких квартирах. Записать информацию в файл. По стоимости определить адреса квартир и их количество.

3. Решение задания:

  1. Алгоритм решения задания в виде блок- схемы:

-

+

fout.open(''new_flat.txt''); i=0

-

+

i++

i=0

-

+

-

+

-

+

-

+

-

+

2)Текст программы на языке С++:

#include<iostream.h>

#include<string.h>

#include<conio.h>

#include<stdlib.h>

#include<fstream.h>

const n=5;

struct flat

{char adres[20];

long int kolvo;

long int stoimost;

long int ploshad;

};

void input(flat a[n])

{ifstream fin;

int i;

fin.open("flat.txt");

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

fin>>a[i].adres>>a[i].kolvo>>a[i].ploshad>>a[i].stoimost;

fin.close();

}

void sort (flat a[n])

{int i,j;

flat t;

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

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

if(strcmp(a[i].adres,a[j].adres)>0)

{t=a[i];

a[i]=a[j];

a[j]=t;

}

}

void output(flat a[n])

{ofstream fout;

fout.open("new_flat.txt");

int i;

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

fout<<a[i].adres<<" "<<a[i].kolvo<<" "<<a[i].ploshad<<" "<<a[i].stoimost<<" "<<endl;

fout.close();

}

void main()

{clrscr();

double stoim,k;

k=0;

flat b[n];

cout.setf(ios::left);

input(b);

sort(b);

output(b);

cout<<"BBeguTe stoimost\n";

cin>>stoim;

cout<<"\nAdress/------/Kolichestvo_komnat/----/Ploshad/----/Stoimost/\n\n";

int i;

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

if(b[i].stoimost<=stoim)

{cout.width(20);cout<<b[i].adres;

cout.width(20);cout<<b[i].kolvo;

cout.width(12);cout<<b[i].ploshad;

cout.width(15);cout<<b[i].stoimost<<"\n";

k++;

}

cout<<"\nHaugeHo "<<k<<" "<<"Kvartir\n";

getch();

}

3)Результат тестирования программы:

Текстовый файл до сортировки:

Текстовый файл после сортировки: