Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 14.11.2022
Сообщений: 7
1

Работа с динамическим массивом структур. Ввод количества структур с клавиатуры

12.02.2023, 12:59. Показов 268. Ответов 3

Author24 — интернет-сервис помощи студентам
Добрый день! На днях выполнял данное задание. В данном коде нужно реализовать ввод количества структур с клавиатуры, т.е. чтобы их было не 3, а n-ое кол-во, вводимое с клавиатуры.

Заранее благодарю за возможные подсказки, решения!


Код
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

string name;


struct firma
{
    string workerName;
    int hoursPerMonth;
    int rate;
}; 

firma *workers = new firma[3];

int Menu()
{
    cout << "Выберите:" << endl;
    cout << "1. Ввод имени файла" << endl;
    cout << "2. Создать файл" << endl;
    cout << "3. Ввод списка" << endl;
    cout << "4. Открыть файл" << endl;
    cout << "5. Вывести результат в консоль" << endl;
    cout << "6. Вывести результат в файл" << endl;
    cout << "7. Выход" << endl;
    int i;
    cin >> i;
    return i;
}

void enterFileName()
{
    cout << "Пожалуйста, введите имя файла: ";
    cin >> name;

    cout << "Имя было введено успешно!\n";
}

void newFile()
{
    ofstream file(name);
    if (!file) {
        cout << "Ошибка! Файл не был создан\n";
    }
    else cout << "Успех! Файл был создан\n";
    file.close();
}

void fillList()
{
    cout << "Введите данные: ФИО рабочего, часы за месяц, почасовой тариф\n";
    for (int i = 0; i < 3; i++)
    {
        cout << "********************************************************\n";
        cin >> workers[i].workerName >> workers[i].hoursPerMonth >> workers[i].rate;
    }
}

void openFile() // Открытие бинарного файла
{
    ofstream file(name);
    if (!file) {
        cout << "Файл не открыт, введите имя файла!\n";
    }
    else cout << "Успех! Файл открыт и готов для записи!\n";
}

void outputInConsole() // Вывод результата на экран
{
    cout << "\n\n Информация о рабочих, проработанных часах, тарифе: \n";
    for (int i = 0; i < 3; i++)
    {
        cout << workers[i].workerName << " " << workers[i].hoursPerMonth * workers[i].rate << endl;
        cout << "********************************************************\n";
    }
}

void outputInFile()
{
    ofstream file(name);
    if (!file) {
        cout << "Файл не открыт! Попробуйте еще раз!\n";
    }
    else 
    {
        for (int i = 0; i < 3; i++)
        {
            file << workers[i].workerName << " " << workers[i].hoursPerMonth * workers[i].rate << endl;
        }
        cout << "Успех! Данные записаны!\n";
    }
}

int main()
{
    while (true)
    {
        switch (Menu())
        {
        case 1: enterFileName(); break;
        case 2: newFile(); break;
        case 3: fillList(); break;
        case 4: openFile(); break;
        case 5: outputinConsole(); break;
        case 6: outputInFile(); break;
        case 7: delete[] workers; return 0;
        default: cout << "Выбирайте правильно!\n";
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2023, 12:59
Ответы с готовыми решениями:

Работа с динамическим массивом структур
Односвязный список. Проблема (скорее всего) в строке ListPoint1 = pointer; Pointer использую как...

Запись\чтение файла, динамическим массивом структур
День добрый! Хочу записать и считать текстовый файл динамическим массивом струтур. На выводе...

Пояснить листинг программы с динамическим массивом структур (и создание файлов)
/*Sozdaite fail katalog knig. Naidite spetsialinosti p k-roi imeetsea naibolishee 4islo knig.*/ ...

Создать класс, позволяющий выполн. задачу и оперирующий одномерным динамическим массивом структур (аналог баз данн
Помогите пожалуйста, с лета мучаюсь не получается написать. Создать класс, позволяющий...

3
Модератор
Эксперт CЭксперт С++
5174 / 2896 / 1501
Регистрация: 14.12.2018
Сообщений: 5,232
Записей в блоге: 1
12.02.2023, 14:38 2
Лучший ответ Сообщение было отмечено Lordessss как решение

Решение

Lordessss,
1. Заменить
C++
1
firma *workers = new firma[3];
на
C++
1
2
int n;
firma *workers;
2. В циклах во всех функциях: заменить i < 3 на i < n

3. В main(), добавить перед циклом while():
C++
1
2
std::cout << "n = "; std::cin >> n;
workers = new firma[n];
А перед }, которая закрывает мэйн, добавить:
C++
1
delete[] workers;
0
0 / 0 / 0
Регистрация: 14.11.2022
Сообщений: 7
12.02.2023, 15:38  [ТС] 3
Благодарю! Пришлось немного потупить, но я все-таки разобрался, как мне передать динамический массив этих структур в другие функции.
0
2844 / 2345 / 709
Регистрация: 29.06.2020
Сообщений: 8,668
12.02.2023, 15:42 4
Цитата Сообщение от Lordessss Посмотреть сообщение
разобрался, как мне передать динамический массив этих структур в другие функции
И как же ?
0
12.02.2023, 15:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2023, 15:42
Помогаю со студенческими работами здесь

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур
Разработать программу, осуществляющую ввод с клавиатуры, чтение из указанного файла, сохранение в...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур
Доброго времени суток:) Подскажите пожалуйста, как быть с функциями чтения данных из файла и...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур
Разработать программу, осуществляющую ввод с клавиатуры, чтение из указанного файла, сохранение в...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг) не выводит на экран?...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур
Добрый вечер:) Возникли проблемы при написании программы(( Не работает функция поиска по заданному...

Работа с массивом структур
Есть структура: struct student { char fam; }; Объявлена: int N = 3; student *stud; stud =...

Работа с массивом структур
Необходимо создать массив записей (структур) с определенными полями (марка автомобиля, рег. номер,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru