Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

C++ задача с файл

Featured Replies

Здравейте, нуждая се от помощ или напъствия по завършването на функция на програма по задача.

Задачата е следната:
 

Съставете програма с фунцкии за:

А) Създаване на файл и масив за регистриране на полети от летище Варна през м. Март на текущата година чрез добавяне на данни за полета: ден от месеца, номер на полета, трите имена на пилота, брой пътници(първа и втора класа), цена на билетите(първа и втора класа).

Б) Редактиране на съдържанието на файла чрез:

                -Корекция на данни в полета брой пътници по въведен номер на полет;

В) Извеждане на справки за :

                -Полета на зададен пилот;

                -Всички регистрирани през месец март полети.

  Главна функция main()-с меню за избор на функции и проверка за състояние на данните .

Въпросната функция която ме затруднява е точка Б) ,а името и в кода е void redaktirane(flight inf[], int n)
Това което съм пробвал записва нови ст-сти, но не изтрива старите. Моля за напъствия и благодаря предварително! :)
 

#include<iostream>
#include<fstream> 
#include<string>
using namespace std;

struct flight
{
    int den; //ден на полета
    int fln; //номер на полета
    char ime[14]; //име на пилота
    char prezime[14]; // презиме на пилота
    char familia[14]; //фамилия на пилота
    int br1; //брой пътници първа класа
    int br2; //брой пътници втора класа
    float price1; //цена за пътници първа класа
    float price2; //цена за пътници втора класа
};
fstream poleti;
int add_flight(flight inf[]) //добавяне на полети
{
    int n;
    poleti.open("Poleti.txt", ios::out);
    if (poleti.fail())
    {
        cout << "Неуспешно отваряне";
        exit(1);
    }
    cout << "Въведете число (до 30) което ще отговаря на броя полети които ще вкарате: ";
    do 
    {
        cin >> n;
    } while (n < 0 || n > 30);
    for (int i = 0; i < n; i++)
    {
        cout << "Въведете денят (от 1-ви до 31-ви) в който ще се състой полетът: ";
        do{
            cin >> inf.den;
        } while (inf.den < 1 || inf.den > 31);
        poleti << inf.den << endl;
        cout << "Номер на полетът: ";
        cin >> inf.fln;
        poleti << inf.fln << endl;
        cout << "Име на пилота: ";
        cin >> inf.ime;
        poleti << inf.ime << endl;
        cout << "Презиме: ";
        cin >> inf.prezime;
        poleti << inf.prezime << endl;
        cout << "Фамилия: ";
        cin >> inf.familia;
        poleti << inf.familia << endl;
        cout << "Брой пътници от първа класа (от 0 до 24): ";
        do{
            cin >> inf.br1;
            poleti << inf.br1 << endl;
        } while (inf.br1 < 0 || inf.br1 > 24);
        cout << "Брой пътници от втора класа (от 0 до 500): ";
        do{
            cin >> inf.br2;
            poleti << inf.br2 << endl;
        } while (inf.br2 < 0 || inf.br2 > 500 );
        cout << "Цена на билет за първа класа: ";
        do{
            cin >> inf.price1;
            poleti << inf.price1 << endl;
        } while (inf.price1 < 1);
        cout << "Цена на билет за втора класа: ";
        do{
            cin >> inf.price2;
            poleti << inf.price2 << endl;
        } while (inf.price2 < 1);
        cout << endl << endl;
    }
    poleti.close();
    return n;
}
void redaktirane(flight inf[], int n) //редактиране на пътници
{
    int t_fln; //временен полетен номер
    poleti.open("Poleti.txt", ios::out);
    poleti.seekg(0);
    if (poleti.fail())
    {
        cout << "Неуспешно отваряне";
        exit(1);
    }
    cout << "Въведете номерът на полета чиито информация желаете да промените: ";
    cin >> t_fln;
    for (int i = 0; i < n; i++)
    {
        poleti >> inf.den;
        poleti >> inf.fln;
        poleti >> inf.ime;
        poleti >> inf.br1;
        poleti >> inf.br2;
        poleti >> inf.price1;
        poleti >> inf.price2;
        if (t_fln == inf.fln)
        {
            cout << "Добавете нова ст-ст за пътници първа класа: ";
            do{
                cin >> inf.br1;
                poleti << inf.br1 << endl;
            } while (inf.br1 < 0 || inf.br1 > 24);
            cout << "Добавете нова ст-ст за пътници втора класа: ";
            do{
                cin >> inf.br2;
                poleti << inf.br2 << endl;
            } while (inf.br2 < 0 || inf.br2 > 500);

        }
    }
    poleti.close();
}
void spravka(flight inf[], int n) //справка за всички полети и за полети на зададен пилот
{
    int choice2, flag = 0;
    string t_ime;
    string t_prezime;
    string t_familia;
    poleti.open("Poleti.txt", ios::in);
    poleti.seekg(0);
    if (poleti.fail())
    {
        cout << "Неуспешно отваряне";
        exit(1);
    }
    do{
        cout << endl << "Изберете..." << endl;
        cout << "1. Изкарване на полет по зададено име на пилот" << endl;
        cout << "2. Изкарване на справка за всички полети за месеца" << endl;
        cout << "3. Изход" << endl;
        cout << "Избор: ";
        cin >> choice2;
        switch (choice2)
        {
        case 1:{cout << "Въведете търсеният пилот..." << endl;
            cout << "Име: ";
            cin >> t_ime;
            cout << "Презиме: ";
            cin >> t_prezime ;
            cout << "Фамилия: ";
            cin >> t_familia;
            for (int i = 0; i < n; i++)
            {
                poleti >> inf.den;
                poleti >> inf.fln;
                poleti >> inf.ime;
                poleti >> inf.prezime;
                poleti >> inf.familia;
                poleti >> inf.br1;
                poleti >> inf.br2;
                poleti >> inf.price1;
                poleti >> inf.price2;
                if (t_ime == inf.ime && t_prezime == inf.prezime && t_familia == inf.familia)
                {
                    cout << "Ден: " << inf.den << endl;
                    cout << "Номер на полет: " << inf.fln << endl;
                    cout << "Име на пилота: " << inf.ime << endl;
                    cout << "Презиме: " << inf.prezime << endl;
                    cout<< "Фамилия " << inf.familia << endl;
                    cout << "Брой на пътници първа класа: " << inf.br1 << endl;
                    cout << "Цена на билет за пътници първа класа: " << inf.price1 << endl;
                    cout << "Брой на пътници втора класа: " << inf.br2 << endl;
                    cout << "Цена на билет за пътници втора класа: " << inf.price2 << endl;
                    cout << endl;
                    flag++;
                }
            } break; }
        case 2: for (int i = 0; i < n; i++)
        {
                    poleti >> inf.den;
                    poleti >> inf.fln;
                    poleti >> inf.ime;
                    poleti >> inf.prezime;
                    poleti >> inf.familia;
                    poleti >> inf.br1;
                    poleti >> inf.br2;
                    poleti >> inf.price1;
                    poleti >> inf.price2;
                    cout << "Ден: " << inf.den << endl;
                    cout << "Номер на полет: " << inf.fln << endl;
                    cout << "Име на пилота: " << inf.ime << " " << inf.prezime << " " << inf.familia << endl;
                    cout << "Брой на пътници първа класа: " << inf.br1 << endl;
                    cout << "Цена на билет за пътници първа класа: " << inf.price1 << endl;
                    cout << "Брой на пътници втора класа: " << inf.br2 << endl;
                    cout << "Цена на билет за пътници втора класа: " << inf.price2 << endl;
                    cout << endl;
        }
        }
    } while (choice2 != 3);
    poleti.close();
}

void main()
{
    setlocale(LC_ALL, "Bulgarian");
    int choice1;
    int n;
    flight inf[30];
    do
    {
        cout << "Меню..." << endl;
        cout << "1. Записване на полети (изтрива предишното съдържание при отваряне, ако има такова)" << endl;
        cout << "2. Редактиране на съдържание" << endl;
        cout << "3. Изкарване на справка" << endl;
        cout << "4. Край" << endl;
        cout << "Въведете вашият избор: ";
        cin >> choice1;
        switch (choice1)
        {
        case 1:n = add_flight(inf); break;
        case 2: redaktirane(inf, n); break;
        case 3:spravka(inf, n);
        }
    } while (choice1 != 4);
    
    
}



Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.