Другие языки программирования и технологии

Помогите с кодом на c++

У меня есть код.
В нём нужно ввести марку, кузов и тд.
После ввода выводит всё введённое.
Мне нужно чтобы был выбор:
Вывод сразу заданных значений в коде или ввод данных с клавиатуры как сейчас реализовано.
Пробовал сделать, есть ошибки, помогите как это реализовать.
#include "stdafx.h"
#include "iostream"
#include "string"
#include
#include
using namespace std;
class Auto
{
public:
string mark;
string model;
string paint;
string cusov;
string engine;
int price;

void vvod()
{
cout << "Введите марку автомобиля" << endl;
cin >> mark;
cout << "Введите модель автомобиля" << endl;
cin >> model;
cout << "Введите цвет автомобиля" << endl;
cin >> paint;
cout << "Введите тип кузова" << endl;
cin >> cusov;
cout << "Введите тип двигателя" << endl;
cin >> engine;
cout << "Введите цену автомобиля" << endl;
cin >> price;
}
void vivod()
{
cout << "***" << endl;
cout << "Марка - ";
cout << mark << endl;
cout << "Модель - ";
cout << model << endl;
cout << "Цвет - ";
cout << paint << endl;
cout << "Вид кузова - ";
cout << cusov << endl;
cout << "Тип двигателя - ";
cout << engine << endl;
cout << "Цена - " << price << endl;
}
string vivodmarka()
{
return mark;
}
string vivodmodel()
{
return model;
}
};
Auto avto[3];
int main()
{
string searchmark;
string searchmodel;
setlocale(0, "RUS");
avto[0].vvod();
avto[1].vvod();
avto[2].vvod();
system("cls");
avto[0].vivod();
avto[1].vivod();
avto[2].vivod();
system("cls");
cout << "Введите марку нужного автомобиля" << endl;
cin >> searchmark;
cout << "Введите модель нужного автомобиля" << endl;
cin >> searchmodel;
for (int i = 0; i < 3; i++)
{

if (searchmark != avto[i].vivodmarka() && searchmodel != avto[i].vivodmodel())//==( ошибка)
{
avto[i].vivod();
}
}
system("pause");
return 0;
}
Тебе правильно указали, у тебя скобки не расставлены в условии.

А выбор - просто через if, между двумя методами.
В чем проблема, сделай конструктор для машины и задавай какие-нибудь значения на рандом, или нужно те которые вбили раньше?
А во втором случае - используй ввод вручную.

Я так понимаю тебе нужно сделать что-то вроде маленькой БД?

Если так то можно сделать класс autodb в нем массив Auto.
Выполнение зацикленно, в начале предлагается выбор, можно сделать типо press 1 чтобы найти модель, и press 2 чтобы ввести.

Соответственно добавление в массив - при press 2 - ввод ручную пользователем данных.
Поиск по массиву при press 1, если поиск не дал результатов (я не помню есть в ++ count свойство у массива), то выводишь на экран, мол такого авто не найдено, и снова предлагаешь выбор.

В идеале такая штука реализуется не через массив, а через список, но тут нужно больше гемора с указателями, если вы не проходили списки и указатели, до забей и делай через массив.
Владимир Остроумов
Владимир Остроумов
36 730
Лучший ответ
Сергей Прохоров Список проходили, только не особо понял. У меня задачка про поиск машин по марке и модели. Вводя марку и модель должно вывести все данные о машине, но так не получается сделать. Вот решил с выбором сделать. Как ты сказал введя press 1 выводит всё как в коде, ну нужно ввести марку, модель, кузов и тд и тогда выводит данные. А нужно например введя press 1 (всё вводится с клавы, в командной строке в vs2013) то он выводит уже готовый список ( список который уже бдет в коде, например через cout<<"марка и тд". Так это в начале должен быть выбор, или так или по другому.
Пробовал сделать, но ошибки..
Например хочу ввести t ( это так как в коде) то работает, но когда ввожу y(это то что написал через cout,), то ничего не выводит.
как то так можно сделать

struct automobile{
automobile(string _mark, string _model, string _paint, string _cusov, string _engine, int _price) {
mark = _mark;
model = _model;
paint = _paint;
cusov = _cusov;
engine = _engine;
price = _price;
}
string mark;
string model;
string paint;
string cusov;
string engine;
int price;
}
class Autos
{
public:
vector"automobile" v_auto;

void add_auto(automobile new_auto){
v_auto.push_back( automobile(new_auto) );
}

automobile* get_auto_by_mark( string _mark ){
for(int i = 0; i<v_auto.size(); ++i)
if(v_auto[i].mark == _mark)
return v_auto[i];
return 0;
}
}

/////
Autos cars;
//begin add car
cars.add_auto(automobile("UAZ", "Patriot", "Black", "Jeep", "W12", 3000000));
//end add car
automobile* p_auto = cars.get_auto_by_mark("UAZ")
if(p_auto)
{
//вывод информации типа cout -- p_auto -угловая скобка закрывается cusov;
}
else{
//ошибка имя не найдено
}

не тестировал прям так набрал
Ксандр Ж.
Ксандр Ж.
30 074
Сергей Прохоров Не то, мне к своему коду нужно приделать.
Нужно чтобы в коде был выбор или заполнять как на 1-м фото или же ввести определённую команду и тогда на экране будет сразу всё написано, ну там марка, модель и тд. То что выдаст командой должно написано в коде.
Я пытался сделать, но есть ошибки,:
например команда t, ввожу её, и нужно вводить всё.
Кода ввожу например y, то не выводит текст который уже в коде.
Как исправить?
Могу код оправить.
if ( (searchmark == avto[i].vivodmarka() ) && ( searchmodel == avto[i].vivodmodel() ) ) { нашли }
Сергей Прохоров Нет, это не то. Пользователь запускает программу и на экране должен быть выбор. Пользователь может ввести все данные сам, ну там марка, модель и тд или же введя определённую команду, например b выводится уже готовое, которое в коде. Как это реализовать в моём коде. Просто не знаю куда писать в код и что. Если можешь помоги.
Сергей Прохоров Если в начало кода пишу:
cin >> e;
if (acomand == "a")
//далее идёт мой код. После него пишу
cin >> e;
if (acomand == "b")
//то работает только a