Загрузка...

Дописать программу на C++ (большая часть сделана)

Тема в разделе C/C++ создана пользователем saintmaster 9 ноя 2021. (поднята 9 ноя 2021) 155 просмотров

  1. saintmaster
    saintmaster Автор темы 9 ноя 2021 48 12 апр 2021
    [IMG]

    1 пункт - добавление новой записи сделал, но добавляется в конец, а надо в начало
    5 пункт - вообще не понял как сделать сортировку по возрастанию средних габаритов ( оставил в коде свободное место под этот пункт)

    Код
    #include <fstream>
    #include <iostream>
    #include <locale.h>

    using namespace std;
    int main()
    {
    setlocale(LC_ALL, "ru");

    fstream fin("input.txt");
    ofstream fout("output.txt");

    const int n = 50;

    int id[n];
    int sector[n];
    double length[n];
    double width[n];
    double height[n];

    int count = 0;

    char c; // Символ, определяющий выбранное пользователем действие
    do
    {
    cout << "Выберите действие:" << endl;


    cout << "1 - Добавление данных в начало таблицы," << endl;
    cout << "2 - Удаление по ID," << endl;
    cout << "3 - Поиск по ID," << endl;
    cout << "4 - Поиск по сектору" << endl;
    cout << "5 - Сортировка по возрастанию средних габаритов," << endl;
    cout << "6 - Вывод данных на экран," << endl;
    cout << "7 - Чтение данных из файла," << endl;
    cout << "8 - Запись данных в файл," << endl;
    cout << "0 - Выход." << endl;
    cin >> c;
    switch (c)
    {
    case '1':
    {
    if (count < n)
    {
    cout << "ID: ";
    cin >> id[count];
    cout << "Введите номер сектора хранения: ";
    cin >> sector[count];
    cout << "Введите длину: ";
    cin >> length[count];
    cout << "Введите ширину: ";
    cin >> width[count];
    cout << "Введите высоту: ";
    cin >> height[count];
    count++;
    }
    else
    cout << "Таблица переполнена." << endl;
    break;
    }

    case '2': //Удаление по ID
    {
    cout << "Введите ID:" << endl;
    int cid; // ID
    cin >> cid;

    if (id[count - 1] == cid) {
    cout << "удаление элемента с ID = " << id[count - 1] << "прошло удачно" << endl;
    count--;
    break;
    }

    for (int i = 0; i < count - 1; i++)
    if (id[i] == cid) {
    id[i] = id[i + 1];
    sector[i] = sector[i + 1];
    length[i] = length[i + 1];
    width[i] = width[i + 1];
    height[i] = height[i + 1];
    cout << "удаление элемента с ID = " << cid << " прошло успешно" << endl;
    count--;
    break;
    }

    break;
    }

    case '3': //поиск по ID
    {
    cout << "Введите ID:" << endl;
    int cid; // ID
    cin >> cid;

    for (int i = 0; i < count; i++)
    if (id[i] == cid)
    {
    cout << "ID сектор длина ширина высота" << endl;
    cout << id[i] << "\t" << sector[i] << "\t" << length[i] << "\t" << width[i] << "\t" << height[i] << endl;
    }

    break;
    }

    case '4': //Поиск по сектору
    {
    cout << "Введите номер сектора хранения:" << endl;
    int s; // sector
    cin >> s;

    for (int i = 0; i < count; i++)
    if (sector[i] == s)
    {
    cout << "ID сектор длина ширина высота" << endl;
    cout << id[i] << "\t" << sector[i] << "\t" << length[i] << "\t" << width[i] << "\t" << height[i] << endl;
    }

    break;
    }
    case '5':
    {

    // тут должен быть пятый пункт
    }


    case '6': //Печать записей на экран
    {
    cout << "ID сектор длина ширина высота" << endl;
    for (int i = 0; i < count; i++)
    cout << id[i] << "\t" << sector[i] << "\t" << length[i] << "\t" << width[i] << "\t" << height[i] << endl;

    break;
    }

    case '7':
    {
    if (!fin)
    {
    cout << "Невозможно открыть файл input.txt." << endl;
    exit(1);
    }
    while (fin >> id[count])
    {
    fin >> sector[count];
    fin >> length[count];
    fin >> width[count];
    fin >> height[count];
    count++;
    }
    cout << "Чтение из файла завершено успешно." << endl;
    break;
    }

    case '8':
    {
    for (int i = 0; i < count; i++)
    {
    fout << id[i] << "\t" << sector[i] << "\t" << length[i] << "\t" << width[i] << "\t" << height[i] << endl;
    }
    cout << "Запись в файл output.txt произведена успешно." << endl;
    }

    }
    } while (c != '0');
    fin.close();
    fout.close();
    return 0;
    }
     
Top
Загрузка...