 
        
        
          Добавил:
          
          
        
        
    
            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 семестр ИКТ
          
      
    
    
    
          