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

2 семестр ИКТ / Novy_textovy_dokument (1)

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

#include <iostream>

#include "stdbool.h"

#include <string>

#include <stdio.h>

using namespace std;

struct car {

char* mark;

char* surname;

char* name;

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) {

char* buff = new char[100];

int i = n-k;

for (i; i < n; i++) {

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

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

cin >> buff;

cars[i].mark = new char[strlen(buff) + 1];

strcpy(cars[i].mark, buff);

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

cin >> buff;

cars[n].surname = new char[strlen(buff) + 1];

strcpy(cars[n].surname, buff);

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

cin >> buff;

cars[n].name = new char[strlen(buff) + 1];

strcpy(cars[n].name, buff);

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

cin >> cars[i].power;

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

cin >> cars[i].milage;

}

delete[] buff;

buff = NULL;

}

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 семестр ИКТ