Вопрос задан 10.05.2019 в 21:17. Предмет Информатика. Спрашивает Мулюкин Ваня.

Написать программу записи в файл и чтение из файла элементов массива структур для регистрации

автомашин с полями: марка машины, год выпуска, цвет, номер. Организовать поиск по цвету машины.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Зеленцов Егор.
Вот пример записи в типизированный файл
uses
  crt;

type
  car = record
    mark: string[64];
    year: integer;
    colour: string[32];
    number: string[12];
  end;

var
  text_out: file of car;
  cars: array[1..1] of car;
  count,limit: integer;
  temp:car;
 
begin
  writeln('vvod');
  assign(text_out, 'input.txt');
  rewrite(text_out);
 
  cars[1].mark := 'Lada Vesta bbb';
  cars[1].year := 2000;
  cars[1].colour := 'красный';
  cars[1].number := 'а111ааrus000';
  write(text_out, cars[1]);
  writeln('');
  readln(limit);
  for count:=1 to limit do begin
  writeln('Введите марку автомобиля');
  readln(temp.mark);
  writeln('Введите год выпуска автомобиля');
  readln(temp.year);
  writeln('Введите цвет автомобиля');
  readln(temp.colour);
  writeln('Введите номер автомобиля');
  readln(temp.number);
  write(text_out, temp);
  end;
  close(text_out);
end.

И пример поиска в том же типизированном файле

uses
  crt;

type
  car = record
    mark: string[64];
    year: integer;
    colour: string[32];
    number: string[12];
  end;

var
  text_in: file of car;
  temp: car;
  count: integer;
  mask: string;

begin
  writeln('Введите искомый цвет');
  readln(mask);
  assign(text_in, 'input.txt');
  reset(text_in);
  while not eof(text_in) do
  begin
    read(text_in, temp);
    if temp.colour = mask then
    begin
      write('Машина заданного цвета ');
      writeln(temp.mark);
      write(temp.year);
      writeln(' года выпуска');
      write('Государственный знак номер ');
      writeln(temp.number);
      writeln();
    end;
  end;
end.

Можно и обычным текстовым файлом, но проще типизированным.






0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи, нам понадобится создать структуру "Car" с полями "марка", "год выпуска", "цвет" и "номер". Затем мы сможем объявить массив таких структур для хранения информации о регистрации автомашин.

Для записи данных в файл и чтения из файла, мы будем использовать функции записи и чтения файлов в языке программирования, например, C++.

Ниже приведен пример программы:

```cpp #include #include #include

struct Car { std::string brand; int year; std::string color; std::string number; };

// Функция для записи данных в файл void writeToFile(const std::string& filename, Car cars[], int size) { std::ofstream outputFile(filename); if (outputFile.is_open()) { for (int i = 0; i < size; i++) { outputFile << cars[i].brand << ";" << cars[i].year << ";" << cars[i].color << ";" << cars[i].number << std::endl; } outputFile.close(); } else { std::cout << "Не удалось открыть файл " << filename << " для записи" << std::endl; } }

// Функция для чтения данных из файла void readFromFile(const std::string& filename, Car cars[], int& size) { std::ifstream inputFile(filename); std::string line; int index = 0; if (inputFile.is_open()) { while (getline(inputFile, line)) { std::string brand, color, number; int year;

size_t pos = 0; pos = line.find(";"); brand = line.substr(0, pos); line.erase(0, pos + 1);

pos = line.find(";"); year = std::stoi(line.substr(0, pos)); line.erase(0, pos + 1);

pos = line.find(";"); color = line.substr(0, pos); line.erase(0, pos + 1);

number = line;

cars[index].brand = brand; cars[index].year = year; cars[index].color = color; cars[index].number = number;

index++; } size = index; inputFile.close(); } else { std::cout << "Не удалось открыть файл " << filename << " для чтения" << std::endl; } }

// Функция для поиска автомобиля по цвету void searchByColor(Car cars[], int size, const std::string& color) { for (int i = 0; i < size; i++) { if (cars[i].color == color) { std::cout << "Марка: " << cars[i].brand << std::endl; std::cout << "Год выпуска: " << cars[i].year << std::endl; std::cout << "Цвет: " << cars[i].color << std::endl; std::cout << "Номер: " << cars[i].number << std::endl; std::cout << std::endl; } } }

int main() { const std::string filename = "cars.txt"; const int maxSize = 100;

// Создаем массив структур Car cars[maxSize]; int size = 0;

// Записываем данные в файл writeToFile(filename, cars, size);

// Читаем данные из файла readFromFile(filename, cars, size);

// Поиск по цвету std::string colorToSearch = "красный"; searchByColor(cars, size, colorToSearch);

return 0; } ```

В данном примере, программы объявляются функции "writeToFile" для записи данных в файл, "readFromFile" для чтения данных из файла и "searchByColor" для поиска автомобилей по цвету.

Функция "writeToFile" принимает имя файла, массив структур "Car" и размер массива. Она открывает файл для записи и записывает данные из массива в файл, разделяя поля структуры символом ";".

Функция "readFromFile" принимает имя файла, массив структур "Car" и ссылку на переменную размера массива. Она открывает файл для чтения и читает данные из файла, разделяя поля структуры символом ";". Прочитанные данные сохраняются в элементы массива структур "Car".

Функция "searchByColor" принимает массив структур "Car", размер массива и цвет для поиска. Она перебирает все элементы массива и выводит информацию о найденных автомобилях с заданным цветом на экран.

В функции "main" мы объявляем массив структур "Car" и переменную размера, а затем вызываем функции для записи данных в файл, чтения данных из файла и поиска по цвету.

Обратите внимание, что в данном примере используется символ ";" для разделения полей структуры в файле. Вы можете изменить этот символ или использовать другой символ разделения в зависимости от ваших требований.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос