Главная » 2020 » Май » 19 » Файл. Меню. Массив. Макс
11:01
Файл. Меню. Массив. Макс

#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);
}

Просмотров: 391 | Добавил: denjes | Рейтинг: 0.0/0
Всего комментариев: 0
avatar