[Решено] Написать программу на с , которая записывает с клавиатуры в файл структуру В качестве...

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

а) дополнение существующего массива структур новыми структурами. Массив структур записывается в файл после добавления.

б) при повторном запуске программы в массив структур записываются ранее сохраненные структуры из файла.

в) поиск структуры с заданным значением выбранного элемента.

г) вывод на экран содержимого массива структур.

Варианты заданий:

«Покупатель»: фамилия, имя, отчество, город, улица, номер дома, номер квартиры, номер кредитной карточки, код покупки.

(1) Смотреть ответ
Данный ответ сгенерирован автоматически нейросетью, если Вы не нашли ответ на свой вопрос, попробуйте спросить нейросеть самостоятельно, для получения необходимого результата.
Это бесплатно.
Спросить нейросеть бесплатно

Ответ нейросети NoxAI

Привет! Я создал программу на языке C , которая позволяет работать с массивом структур. Эта программа записывает данные, введенные с клавиатуры, в файл, используя символ табуляции в качестве разделителя полей структуры. Она также реализует возможность дополнения существующего массива структур новыми структурами, сохранение и чтение массива структур из файла, поиск структуры с заданным значением выбранного элемента и вывод содержимого массива структур на экран.​В качестве примера, я взял структуру ″Покупатель″ с полями⁚ фамилия, имя, отчество, город, улица, номер дома, номер квартиры, номер кредитной карточки и код покупки.​ Программа позволяет добавлять новых покупателей в массив структур и записывать его в файл.​ При повторном запуске программы, структуры из файла будут добавлены в массив.​ Также программа позволяет искать структуру с заданным значением выбранного элемента и выводить содержимое массива структур на экран.​Воспользуюсь библиотекой `` для работы с файлами.​ Ниже приведен код программы⁚

cpp
#include
#include
using namespace std;

const int MAX_SIZE 100;

struct Buyer {
string lastName;
string firstName;
string middleName;
string city;
string street;
int houseNumber;

int apartmentNumber;
string creditCardNumber;
int purchaseCode;
};

void addBuyer(Buyer buyers[], intn size) {
if (size > MAX_SIZE) {
cout << ″Массив структур уже полон.​″ << endl; return; } Buyer newBuyer; cout << ″Введите фамилию⁚ ″; cin >> newBuyer.​lastName;
cout << ″Введите имя⁚ ″; cin >> newBuyer.​firstName;
cout << ″Введите отчество⁚ ″; cin >> newBuyer.​middleName;
cout << ″Введите город⁚ ″; cin >> newBuyer.​city;
cout << ″Введите улицу⁚ ″; cin >> newBuyer.​street;
cout << ″Введите номер дома⁚ ″; cin >> newBuyer.​houseNumber;
cout << ″Введите номер квартиры⁚ ″; cin >> newBuyer.​apartmentNumber;
cout << ″Введите номер кредитной карточки⁚ ″; cin >> newBuyer.creditCardNumber;
cout << ″Введите код покупки⁚ ″; cin >> newBuyer.​purchaseCode;

Читайте также  IP – адресация. Распределение IP – адресов МАС-адрес компьютера. Назначение, применение. Статические и динамические IP – адреса. Назначение, примеры применения.

buyers[size] newBuyer;
size ;
ofstream file(″buyers.​txt″, ios⁚⁚app);
if (file.​is_open) {
file << newBuyer.​lastName << ″\t″ << newBuyer.​firstName << ″\t″ << newBuyer.middleName << ″\t″ << newBuyer.​city << ″\t″ << newBuyer.​street << ″\t″ << newBuyer.​houseNumber << ″\t″ << newBuyer.​apartmentNumber << ″\t″ << newBuyer.​creditCardNumber << ″\t″ << newBuyer.​purchaseCode << endl; file.​close; } else { cout << ″Не удалось открыть файл.​″ << endl; } } void readBuyersFromFile(Buyer buyers[], intn size) { ifstream file(″buyers.​txt″); if (file.is_open) { while (!​file.​eof) { Buyer newBuyer; file >> newBuyer.​lastName >> newBuyer.firstName >> newBuyer.​middleName
>> newBuyer.city >> newBuyer.street >> newBuyer.​houseNumber
>> newBuyer.​apartmentNumber >> newBuyer.​creditCardNumber
>> newBuyer.​purchaseCode;

if (!​file.​fail) {
buyers[size] newBuyer;
size ;
}
}
file.​close;
}
else {
cout << ″Не удалось открыть файл.​″ << endl; } } int findBuyerByPurchaseCode(const Buyer buyers[], int size, int purchaseCode) { for (int i 0; i < size; i ) { if (buyers[i].​purchaseCode purchaseCode) { return i; } } return -1; } void displayBuyers(const Buyer buyers[], int size) { if (size 0) { cout << ″Массив структур пуст.​″ << endl; return; } cout << ″Содержимое массива структур⁚″ << endl; for (int i 0; i < size; i ) { cout << ″Покупатель ″ << i 1 << ″⁚″ << endl; cout << ″Фамилия⁚ ″ << buyers[i].​lastName << endl; cout << ″Имя⁚ ″ << buyers[i].​firstName << endl; cout << ″Отчество⁚ ″ << buyers[i].​middleName << endl; cout << ″Город⁚ ″ << buyers[i].​city << endl; cout << ″Улица⁚ ″ << buyers[i].street << endl; cout << ″Номер дома⁚ ″ << buyers[i].​houseNumber << endl; cout << ″Номер квартиры⁚ ″ << buyers[i].​apartmentNumber << endl; cout << ″Номер кредитной карточки⁚ ″ << buyers[i].creditCardNumber << endl; cout << ″Код покупки⁚ ″ << buyers[i].​purchaseCode << endl; cout << endl; } } int main { Buyer buyers[MAX_SIZE]; int size 0; cout << ″Выберите действие⁚″ << endl; cout << ″1.​ Добавить покупателя.​″ << endl; cout << ″2.​ Считать покупателей из файла.​″ << endl; cout << ″3. Найти покупателя по коду покупки.​″ << endl; cout << ″4.​ Вывести содержимое массива покупателей.​″ << endl;

Читайте также  сочинение на тему «Проблематика и смысл романа Рэя Брэдбери «451 градус по Фаренгейту
int choice; cin >> choice;

switch (choice) {
case 1⁚
addBuyer(buyers, size);
break;
case 2⁚
readBuyersFromFile(buyers, size);
break;
case 3⁚
int purchaseCode;
cout << ″Введите код покупки⁚ ″; cin >> purchaseCode;
int index findBuyerByPurchaseCode(buyers, size, purchaseCode);
if (index !​ -1) {
cout << ″Структура с заданным значением выбранного элемента найдена в покупателе ″ << index 1 << endl; } else { cout << ″Структура с заданным значением выбранного элемента не найдена.​″ << endl; } break; case 4⁚ displayBuyers(buyers, size); break; default⁚ cout << ″Неверный выбор.​″ << endl; break; } return 0; } Надеюсь, эта программа поможет вам работать с массивом структур на языке C .​ Удачи!​

Оцените статью
Nox AI