Программирование на C / C++ / Лабораторные работы / Лабораторная работа №8
.docУфимский Государственный Авиационный Технический Университет
Лабораторная работа №8.
Файлы
Вариант 5.
Выполнил студент группы
Проверил доцент
кафедры АПрИС
Бежаева О.Я.
Уфа-2008.
1.Цель работы:
Знакомство и получение навыков работы с файлами на языке С++.
2. Условия задания:
Сведения о квартире состоят из адреса, количества комнат, площади и стоимости. Дан массив записей, содержащий сведения о нескольких квартирах. Записать информацию в файл. По стоимости определить адреса квартир и их количество.
3. Решение задания:
-
Алгоритм решения задания в виде блок- схемы:
-
+
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)Результат тестирования программы:
Текстовый файл до сортировки:
Текстовый файл после сортировки: