0 / 0 / 0
Регистрация: 14.11.2022
Сообщений: 7
|
|
1 | |
Работа с динамическим массивом структур. Ввод количества структур с клавиатуры12.02.2023, 12:59. Показов 268. Ответов 3
Добрый день! На днях выполнял данное задание. В данном коде нужно реализовать ввод количества структур с клавиатуры, т.е. чтобы их было не 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
|
12.02.2023, 12:59 | |
Ответы с готовыми решениями:
3
Работа с динамическим массивом структур Запись\чтение файла, динамическим массивом структур Пояснить листинг программы с динамическим массивом структур (и создание файлов) Создать класс, позволяющий выполн. задачу и оперирующий одномерным динамическим массивом структур (аналог баз данн |
Модератор
|
|||||||||||||||||||||
12.02.2023, 14:38 | 2 | ||||||||||||||||||||
Сообщение было отмечено Lordessss как решение
Решение
Lordessss,
1. Заменить
i < 3 на i < n 3. В main() , добавить перед циклом while() :
} , которая закрывает мэйн, добавить:
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 |
0
|
12.02.2023, 15:42 | |
12.02.2023, 15:42 | |
Помогаю со студенческими работами здесь
4
Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур Работа с массивом структур Работа с массивом структур Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |