Добавил:
a_lex_71
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:2 семестр ИКТ / Novy_textovy_dokument (1)
.txt#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 семестр ИКТ