A[i]->data=0;//заполняем по умолчанию
}
ReadFromFile(FileName);//вызываем считывания с файла
}
ostream & operator<< (ostream & output, Knigi *A)//перегрузка потока вывода
{
output<<"Фамилия: "<<A->name<<endl;
output<<"Название: "<<A->title<<endl;
output<<"Количество страниц = "<<A->stran<<endl;
output<<"Год книги = "<<A->data<<endl<<endl;
return output;
}
istream & operator>> (istream & input, Knigi *B)//перегрузка потока ввода
{
cout<<"Введите фамилию автора книги: ";
B->name=Read();
B->name=Read();
cout<<"Введите название книги: ";
B->title=Read();
cout<<"Введите количество страниц в книге = ";
input>>B->stran;
cout<<"Введите год издания книги = ";
input>>B->data;
return input;
}
void CStruct::sort()//сортировка
{
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(A[i]->data<A[j]->data)
{
Knigi *temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
void CStruct::Show()//функция вывода результатов
{
sort();
cout<<"Отстортированная структура:"<<endl;
for(int i = 0;i < n; i++)
cout<<A[i];
}
void CStruct::InputData ()//функция заполнения с клавиатуры
{
for(int i = 0;i < n; i++)
{
cin>>A[i];
}
}
void CStruct::SaveToFile (char *FileS)//функция сохранение результатов в файл
{
ofstream f(FileS);//создаём файл
sort();
f<<"Отстортированная структура:"<<endl;
for(int i = 0;i < n; i++)
f<<A[i];
f.close();//закрываем файл
}
void CStruct::ReadFromFile (char *FileR)//Считывание данных с файла
{
ifstream f(FileR);//открываем файл
for(int i = 0;i < n; i++)
{
f>>A[i]->stran;
f>>A[i]->data;
}
for(int i = 0;i < n; i++)
{
int str_size = 0;
char ch;
A[i]->name = (char *) calloc(str_size, sizeof(char));
f>>ch;
while (!f.eof() && int(ch)!=10)//если не конце файла и если не абзац
{
f.unsetf(ios_base:: skipws);
A[i]->name = (char *) realloc(A[i]->name, ++str_size);
A[i]->name[ str_size - 1 ] = int(ch);
f>>ch;
}
A[i]->name = (char *) realloc(A[i]->name, ++str_size);
A[i]->name[ str_size - 1 ] = '\0';
str_size = 0;
A[i]->title = (char *) calloc(str_size, sizeof(char));
f>>ch;
while (!f.eof() && int(ch)!=10)//если не конце файла и если не абзац
{
f.unsetf(ios_base:: skipws);
A[i]->title = (char *) realloc(A[i]->title, ++str_size);
A[i]->title[ str_size - 1 ] = int(ch);
f>>ch;
}
A[i]->title = (char *) realloc(A[i]->title, ++str_size);
A[i]->title[ str_size - 1 ] = '\0';
}
f.close();//закрываем файл
}
CStruct::~CStruct(void)//Декструктор
{
for(int i=0;i<n;i++)
delete A[i];
}
Lab 6
#include "stdafx.h"
#include "Parent.h"
#include "Struct.h"
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.