#include <iostream>
using namespace std;
struct complex {
double Re,Im;
};
char filename[100]="d:\\file.dat";
void vvod(FILE *f);
void vivod(FILE *f);
void add(FILE *f);
void insert(FILE *f);
void length(FILE *f);
void max(FILE *f);
int main()
{
FILE *f;
int i;
do {
cout<<"1-vvod; 2-add; 3-vivod; 4-length; 10-max; 0-exit ";
cin>>i;
if (i==1) vvod(f);
if (i==2) add(f);
if (i==3) vivod(f);
if (i==4) length(f);
if (i==10) max(f);
} while (i!=0);
system("pause");
}
void max(FILE *f)
{
f=fopen(filename,"rb");
complex dat;
complex a[1000];
int i=0;
while (fread(&dat,sizeof(dat),1,f))
{
a[i]=dat;
i++;
}
fclose(f);
int n=i;
double maxRe=a[0].Re;
int imaxRe=0;
for (i=0;i<n;i++)
if (a[i].Re>maxRe)
{
maxRe=a[i].Re;
imaxRe=i;
}
cout<<"Max Re "<<a[imaxRe].Re<<"+"<<a[imaxRe].Im<<"i"<<endl;
}
void length(FILE *f)
{
f=fopen(filename,"rb");
complex dat;
while (fread(&dat,sizeof(dat),1,f))
{
double len=sqrt(dat.Re*dat.Re+dat.Im*dat.Im);
if (len==(int)len)
cout<<dat.Re<<"+"<<dat.Im<<"i"<<endl;
}
fclose(f);
}
void insert(FILE *f)
{
int n;
complex dat;
cout<<"Vvedite kolvo tochek "; cin>>n;
for (int i=0;i<n;i++)
{
cout<<"Vvedite chislo ";
cin>>dat.Re>>dat.Im;
fwrite(&dat,sizeof(dat),1,f);
}
fclose(f);
}
void add(FILE *f)
{
f=fopen(filename,"ab"); insert(f);
}
void vvod(FILE *f)
{
f=fopen(filename,"wb"); insert(f);
}
void vivod(FILE *f)
{
f=fopen(filename,"rb");
complex dat;
while (fread(&dat,sizeof(dat),1,f))
cout<<dat.Re<<"+"<<dat.Im<<"i ";
cout<<endl;
fclose(f);
}
|