Вторник, 14.05.2024, 04:38
"I-School" - школа знаний XXI века
     In doing we learn
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Форма входа
Категории раздела
Пользователь ПК [0]
WEB-дизайн [0]
Программирование [18]
Корзина
Пользователь ПК [0]
WEB-дизайн [0]
Программирование [18]
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Главная » Статьи » Информатика, программирование » Программирование

    Структуры в С++
    #include <iostream>
    #include <fstream>
    #include<limits>
    #define DIM 10
    #define SLEN 70
    using namespace std;

    struct Application {
           char name[SLEN];
           char developer[SLEN];
           int code;
           double price;
           int year;
    };
    int setData(Application A[], int n);
    void showConsole(const Application* pA);
    void outData(Application A[], int n);
    void inDataYear(int y);
     
    int main()
    {   setlocale(LC_ALL,"");
        cout<<"Приложение позволяет ввести и сохранить информацию\n";
        cout<<"о программных продуктах в файле\n";
        cout<<"Максимальное количество записей за один сеанс - 10\n";
        cout<<"Чтобы закончить раньше - введите пустую строку в поле <Название>\n";

        Application *pApp = new Application[DIM];
        int fact = setData(pApp, DIM);//фактически введенное к-во записей за сеанс

        system("cls");
        cout<<"Вами введено "<<fact<<" записей\n\n";
        for (int i = 0; i < fact; i++)
           showConsole(&pApp[i]);
      
        cout<<"Идет запись в файл...\n";
        outData(pApp,fact);
        delete [] pApp;

        system("pause");
        system("cls");
        int release;
        cout<<"Выборка по всему файлу. Критерий: год выпуска приложений\n";
        cout<<"Введите год выпуска\n";
        cin>>release;
        inDataYear(release);

        system("pause");
        return 0;
    }
     
    int setData(Application A[], int n)
    {   int i = 0;
        for (i = 0; i < n; i++)
        {
            cout<<"\n\n";
            cout << "НАЗВАНИЕ:\t\t";
            cin.getline(A[i].name, SLEN);
            if(strlen(A[i].name)<1) break;
            cout << "ФИРМА-РАЗРАБОТЧИК:\t";
            cin.getline(A[i].developer, SLEN);
            cout<<"КОД:\t";
            cin>>A[i].code;
            cout <<"ЦЕНА:\t";
            cin >> A[i].price;
            cout<<"ГОД:\t";
            cin>>A[i].year;
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
               }
        return i;
    }
     
    void showConsole(const Application* pA)
    {      cout <<"НАЗВАНИЕ:\t\t"<< pA->name << "\n";
        cout <<"ФИРМА-РАЗРАБОТЧИК:\t"<< pA->developer << "\n";
        cout<<"КОД:\t"<< pA->code<<"\n";
        cout <<"ЦЕНА:\t"<< pA->price << "\n";
        cout<<"ГОД:\t"<< pA->year << "\n";
        cout<<"_________________________________________\n";
    }
     
    void outData(Application A[], int n)
    {    ofstream dataOut;
        dataOut.open("Application.dat",ofstream::app);
        if (dataOut.is_open())
        {    for(int i=0;i<n;i++)
                dataOut.write((char *)&A[i],sizeof(Application));
            dataOut.close();
            cout<<"Все записи успешно занесены в файл\n";
        }
        else cout<<"Не удалось открыть файл для записи\n";
    }

    void inDataYear(int y)
    {
        ifstream dataIn;
        Application Cur;
        dataIn.open("Application.dat");
        if(dataIn.is_open())
        {    while(dataIn.good())
            {    dataIn.read((char *)&Cur,sizeof(Application));
                if(Cur.year==y)
                {    cout <<"НАЗВАНИЕ:\t\t"<<Cur.name << "\n";
                    cout <<"ФИРМА-РАЗРАБОТЧИК:\t"<<Cur.developer << "\n";
                    cout<<"КОД:\t"<<Cur.code<<"\n";
                    cout <<"ЦЕНА:\t"<<Cur.price << "\n";
                    cout<<"ГОД:\t"<<Cur.year << "\n";
                    cout<<"_________________________________________\n";
                }
            }
            dataIn.close();
        }
        else cout<<"Не удалось открыть файл для чтения\n";
    }
    Категория: Программирование | Добавил: IrineK (15.03.2011)
    Просмотров: 1191 | Теги: обучение C/C++/CLI, Киев обучение, обучение English, программирование С++, задача бесплатно | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Copyright MyCorp © 2024
    Конструктор сайтов - uCoz