Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2014, 15:50   #1
skoch
 
Регистрация: 31.03.2013
Сообщений: 5
По умолчанию Однонаправленный неоднородный список

Помогите пожалуйста с решением задачи, уже есть сделанное первое задание

Код:
#include <Windows.h>
#include <iostream>
#include <string>

using namespace std;

struct Auto
{
	string mark;
	string color;

	size_t price;
	size_t doorsCount;
	size_t editionYear;
	size_t serialNumber;
	size_t registrationNumber;
};

void inputData(Auto *ptrData, size_t dataSize);
void searchData(Auto *ptrData, size_t dataSize);

int main()
{
	setlocale(LC_ALL, "RUS");
	//SetConsoleCP(1251);
	//SetConsoleOutputCP(1251);

	size_t dataSize;
	cout << "Введите кол-во автомобилей для записи в структуру: ";
	cin >> dataSize;

	Auto *data = new Auto[dataSize];

	inputData(data, dataSize);
	searchData(data, dataSize);

	delete[] data;
	data = nullptr;

	system("pause");
	return 0;
}

void inputData(Auto *ptrData, size_t dataSize)
{
	for (size_t i = 0; i < dataSize; i++) {
		system("cls");
		cout << "Данные об автомобиле №" << (i + 1) << ": " << endl;
		cin.sync();

		cout << "Марка автомобиля: ";
		getline(cin, ptrData[i].mark);
		cout << "Цвет автомобиля: ";
		getline(cin, ptrData[i].color);

		cout << "Серийный номер: ";
		cin >> ptrData[i].serialNumber;
		cout << "Регистрационный номер: ";
		cin >> ptrData[i].registrationNumber;

		cout << "Количество дверей: ";
		cin >> ptrData[i].doorsCount;
		cout << "Год выпуска: ";
		cin >> ptrData[i].editionYear;
		cout << "Цена: ";
		cin >> ptrData[i].price;
	}
}

void searchData(Auto *ptrData, size_t dataSize)
{
	system("cls");
	cout << "Выберите поиск по нужному критерию: " << endl;
	cout << "1. Марка" << endl;
	cout << "2. Цвет " << endl;
	cout << "3. Серийный номер" << endl;
	cout << "4. Регистрационный номер" << endl;
	cout << "5. Количество дверей " << endl;
	cout << "6. Год выпуска " << endl;
	cout << "7. Цена " << endl;

	size_t searchField;
	do {
		cin >> searchField;
	} while ((searchField < 1) && (searchField > 7));

	switch (searchField) {
	case 1:
		string userMark;
		cout << "Введите марку для поиска: ";
		cin.sync();
		getline(cin, userMark);

		cout << "Автомобили марки \"" << userMark << "\": " << endl;
		for (size_t i = 0; i < dataSize; i++) {
			if (ptrData->mark == userMark) {
				cout << "-----------------------------------" << endl;
				cout << "Цвет автомобиля: " << ptrData[i].color << endl;
				cout << "Серийный номер: " << ptrData[i].serialNumber << endl;
				cout << "Регистрационный номер: " << ptrData[i].registrationNumber << endl;
				cout << "Количество дверей: " << ptrData[i].doorsCount << endl;
				cout << "Год выпуска: " << ptrData[i].editionYear << endl;
				cout << "Цена: " << ptrData[i].price << endl;
				cout << "-----------------------------------" << endl;
			}
		}
		break;
	}
}

Последний раз редактировалось Stilet; 14.12.2014 в 18:00.
skoch вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Односвязный неоднородный список, язык СИ. Salatiq Общие вопросы C/C++ 0 15.05.2012 21:08
Неоднородный список на языке Си. Salatiq Помощь студентам 0 14.05.2012 18:30
однонаправленный список Arthur92 Общие вопросы C/C++ 5 03.07.2011 20:51
Однонаправленный неоднородный (гетерогенный) список с однородными подсписками. Chudo4258 Помощь студентам 22 08.03.2009 19:11