Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 семестр ИКТ / Novy_textovy_dokument

.txt
Скачиваний:
0
Добавлен:
21.02.2024
Размер:
3.43 Кб
Скачать
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include "stdbool.h"

#include <string>

#include <stdio.h>

using namespace std;

struct car {

	char mark[20];

	char surname[20];

	char name[20];

	int power;

	int milage;

};

void input(car* cars, int n, int k);

void addCar(car* &cars, int &n, int k);

void printTable(car* cars, int n);

int main() {

	setlocale(LC_ALL, "");

	cout << " База данных машин\n";

	int n = 0;

	car* cars = new car;

	int k = 0;

	cout << "----------------------------------------------------------------------------------------------------------------------------------------------------\n";

	cout << "Добавить новую машину в базу..................1\n";

	cout << "Распечатать базу машин........................2\n";
	
	cout << "Поиск машин по марке..........................3\n";

	cout << "Найти машины с пробегом больше заданного......4\n";

	cout << "Выйти из программы............................5\n";

	int c;

	bool exit = false;

	while (exit == false) {

		cout << "Введите номер функции: ";

		cin >> c;

		switch (c) {

		case 1:

			cout << "Сколько машин добавить? ";

			int k;

			cin >> k;

			addCar(cars, n, k);

			break;

		case 2:

			printTable(cars, n);

			break;

			/*case 3:

			cout << "Введите марку для поиска: ";

			cin >> ;*/

		case 5:

			exit = true;

			break;

		}
	}

	cin >> n;

	return 0;

}

void input(car* cars, int n, int k) {

	int i = n-k;
	
	for (i; i < n; i++) {

		cout << "Машина " << i + 1 << endl;

		cout << "\tМарка машины: ";

		cin >> cars[i].mark;

		cout << "\tФамилия владельца: ";

		cin >> cars[n].surname;

		cout << "\tИмя владельца: ";

		cin >> cars[n].name;

		cout << "\tМощность двигателя: ";

		cin >> cars[i].power;

		cout << "\tПробег: ";

		cin >> cars[i].milage;

	}

}

void addCar(car* &cars, int &n, int k) {

	if (n != 0) {

		car* cars1 = new car[n]; // временное

		for (int i = 0; i < n; i++) // перенос во временную

			cars1[i] = cars[i];

		delete[] cars; // удаляем основу

		n = n + k;

		cars = new car[n]; // создаем новую


		for (int i = 0; i < n - k; i++) // переносим в новую

			cars[i] = cars1[i];

		delete[] cars1;

	}

	else
	{
		n = k;
		delete[] cars;
		cars = new car[n];
	}

	// новый элемент

	input(cars, n, k);
}

void printTable(car* cars, int n) {

	cout << "Марка машины\t" << "Фамилия владельца\t" << "Имя владельца\t" << "Мощность двигателя\t" << "Пробег\t\n";

	cout << "--------------------------------------------------------------------------------------------------------------------------------------------------\n";

	for (int i = 0; i < n; i++) {

		cout << cars[i].mark << "\t" << cars[i].surname << "\t" << cars[i].name << "\t" << cars[i].power << "\t" << cars[i].milage << endl;

	}

}

void findOwner(car* cars) {

}

void exit(car* cars) {

}

void input(car* cars) {

}
Соседние файлы в папке 2 семестр ИКТ