Главная » 2015 » Май » 14 » файлы. структура. найти самого младшего и самого старшего
09:06
файлы. структура. найти самого младшего и самого старшего

#include <iostream>
#include <ctime>
using namespace std;
void sozdanie(FILE *x);
void maxmin(FILE *x);
char s[10]="3.txt";
struct chel
{
    char surname[20];
    char name[10];
    char pol;
    int age;
};
int main()
{
    setlocale(LC_ALL, "Russian"); 
    FILE *f;
    cout <<"Введите режим работы: 1 - создание файла; 2- чтение из файла"<<endl;
    int vibor;
    cin >>vibor;
    if (vibor==1)
        sozdanie(f);
    else
        if (vibor==2)
            maxmin(f);

    system ("pause");
    return 0;
}
void sozdanie(FILE *x)
{
    cout <<"Создание файла"<<endl;
    x=fopen(s,"wb");
    int n;
    cout <<"Введите количество записей ="<<endl;
    cin >>n;
    chel dat;
    for (int i=1;i<=n;i++)
    {
        cout<<"Запись "<<i<<endl;
        cout<<"Введите фамилию ";
        cin>>dat.surname;
        cout<<"Введите имя ";
        cin>>dat.name;
        cout<<"Введите пол m/w, мужской - m, женский - w";
        cin>>dat.pol;
        cout<<"Введите возраст ";
        cin>>dat.age;
        fwrite(&dat,sizeof(chel),1,x);
    }
    cout <<endl;

    fclose(x);
}
void maxmin(FILE *x)
{
    cout <<"Чтение из файла"<<endl;
    x=fopen(s,"rb");
    chel dat, datmax, datmin;
    fread(&dat,sizeof(chel),1,x);
    int max=dat.age;
    datmax=dat;
    datmin=dat;
    int min=dat.age;
    do
    {
        if (dat.age>max) 
        {
            max=dat.age;
            datmax=dat;
        }
        if (dat.age<min) 
        {
            min=dat.age;
            datmin=dat;
        }
        cout<<dat.surname<<" ";
        cout<<dat.name<<" ";
        cout<<dat.pol<<" ";
        cout<<dat.age<<" ";
        cout <<endl;
    }
    while (fread(&dat,sizeof(chel),1,x));
    
    cout <<endl<<"Максимальный возраст у "<<endl;
    cout<<datmax.surname<<" ";
    cout<<datmax.name<<" ";
    cout<<datmax.pol<<" ";
    cout<<datmax.age<<" ";
    cout <<endl;
    cout <<"Минимальный возраст у "<<min<<endl;
    cout<<datmin.surname<<" ";
    cout<<datmin.name<<" ";
    cout<<datmin.pol<<" ";
    cout<<datmin.age<<" ";
    cout <<endl;
    fclose(x);
}

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