
C/C++
Что нужно добавить в код, с++, очень нужно срочно
Ребят, подскажите пожалуйста, что нужно добавить в код, чтобы он вывел определенные машины, которые выпустились более года назад и грузоподъемностью более 3-х тонн, пожалуйста


#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Truck {
public:
Truck()
: brand_("Daimler-Lastwagen")
, country_("Германская империя")
, year_(1896)
, carrying_(1.5) {}
void brand(const string& value) { brand_ = value; }
void country(const string& value) { country_ = value; }
void year(const int value) { year_ = value; }
void carrying(const double value) { carrying_ = value; }
string brand()const { return brand_; }
string country()const { return country_; }
int year()const { return year_; }
double carrying()const { return carrying_; }
private:
string brand_;
string country_;
int year_;
double carrying_;
friend ostream& operator<<(ostream& out, const Truck& truck) {
out << "Марка автомобиля: " << truck.brand_ << '\n'
<< "Страна производитель: " << truck.country_ << '\n'
<< "Грузоподъёмность: " << truck.carrying_ << '\n'
<< "Год выпуска: " << truck.year_ << '\n';
return out;
}
};
class Trucks {
public:
Trucks() = default;
Trucks(const vector<Truck>& trucks) : trucks_(trucks) {}
Trucks(vector<Truck>&& trucks) : trucks_(trucks) {}
void add(const Truck& truck) { trucks_.push_back(truck); }
void add(Truck&& truck) { trucks_.emplace_back(truck); }
Trucks select(const int year, const double carrying) {
vector<Truck> trucks;
for (const auto& track : trucks_) {
if (track.year() < year && track.carrying() > carrying) {
trucks.push_back(track);
}
}
return Trucks{ trucks };
}
private:
vector<Truck> trucks_;
friend ostream& operator<<(ostream& out, const Trucks& box) {
auto number = 0;
for (const auto& truck : box.trucks_) {
out << "Номер автомобиля: " << ++number << '\n'
<< truck << '\n';
}
return out;
}
};
Truck input_truck() {
Truck truck;
string svalue;
cout << "Марка автомобиля: ";
getline(cin, svalue);
truck.brand(svalue);
cout << "Страна производитель: ";
getline(cin, svalue);
truck.country(svalue);
cout << "Год выпуска: ";
int ivalue;
cin >> ivalue;
truck.year(ivalue);
cout << "Грузоподъёмность: ";
double dvalue;
cin >> dvalue;
truck.carrying(dvalue);
cin.ignore(numeric_limits<streamsize>::max(), '\n');
return truck;
}
int main() {
system("chcp 1251 > nul");
const auto limit = 5U;
Trucks trucks;
for (auto i = 0U; i < limit; ++i) trucks.add(input_truck());
system("cls");
cout << "\tПолный список: \n\n" << trucks;
auto query = trucks.select(2019, 3.5);
cout << "\tМассой более 3.5 т и старше 2019 г. в.: \n\n" << query;
system("pause > nul");
}
#include <string>
#include <vector>
using namespace std;
class Truck {
public:
Truck()
: brand_("Daimler-Lastwagen")
, country_("Германская империя")
, year_(1896)
, carrying_(1.5) {}
void brand(const string& value) { brand_ = value; }
void country(const string& value) { country_ = value; }
void year(const int value) { year_ = value; }
void carrying(const double value) { carrying_ = value; }
string brand()const { return brand_; }
string country()const { return country_; }
int year()const { return year_; }
double carrying()const { return carrying_; }
private:
string brand_;
string country_;
int year_;
double carrying_;
friend ostream& operator<<(ostream& out, const Truck& truck) {
out << "Марка автомобиля: " << truck.brand_ << '\n'
<< "Страна производитель: " << truck.country_ << '\n'
<< "Грузоподъёмность: " << truck.carrying_ << '\n'
<< "Год выпуска: " << truck.year_ << '\n';
return out;
}
};
class Trucks {
public:
Trucks() = default;
Trucks(const vector<Truck>& trucks) : trucks_(trucks) {}
Trucks(vector<Truck>&& trucks) : trucks_(trucks) {}
void add(const Truck& truck) { trucks_.push_back(truck); }
void add(Truck&& truck) { trucks_.emplace_back(truck); }
Trucks select(const int year, const double carrying) {
vector<Truck> trucks;
for (const auto& track : trucks_) {
if (track.year() < year && track.carrying() > carrying) {
trucks.push_back(track);
}
}
return Trucks{ trucks };
}
private:
vector<Truck> trucks_;
friend ostream& operator<<(ostream& out, const Trucks& box) {
auto number = 0;
for (const auto& truck : box.trucks_) {
out << "Номер автомобиля: " << ++number << '\n'
<< truck << '\n';
}
return out;
}
};
Truck input_truck() {
Truck truck;
string svalue;
cout << "Марка автомобиля: ";
getline(cin, svalue);
truck.brand(svalue);
cout << "Страна производитель: ";
getline(cin, svalue);
truck.country(svalue);
cout << "Год выпуска: ";
int ivalue;
cin >> ivalue;
truck.year(ivalue);
cout << "Грузоподъёмность: ";
double dvalue;
cin >> dvalue;
truck.carrying(dvalue);
cin.ignore(numeric_limits<streamsize>::max(), '\n');
return truck;
}
int main() {
system("chcp 1251 > nul");
const auto limit = 5U;
Trucks trucks;
for (auto i = 0U; i < limit; ++i) trucks.add(input_truck());
system("cls");
cout << "\tПолный список: \n\n" << trucks;
auto query = trucks.select(2019, 3.5);
cout << "\tМассой более 3.5 т и старше 2019 г. в.: \n\n" << query;
system("pause > nul");
}
Владимир Лакман
Спасибо))
я новичок, но можно бы добавить в класс
bool check() { return (year < 2019) && (volume > 3); }
а цикл вывода изменить как то так
for (int i = 0; i < number; ++i)
{
if (a[i].check())
{
cout << "\nauto number " << i + 1 << '\n';
a[i].disp();
}
}
но, возможно, есть способы проще.
bool check() { return (year < 2019) && (volume > 3); }
а цикл вывода изменить как то так
for (int i = 0; i < number; ++i)
{
if (a[i].check())
{
cout << "\nauto number " << i + 1 << '\n';
a[i].disp();
}
}
но, возможно, есть способы проще.
Похожие вопросы
- С++, реализовать код с помощью функции, помогите пожалуйста, очень нужно
- Нужно срочно решить задачу на C++
- Не могу написать код на с++ нужно решать через циклы но если у вас другие варианты пишите тоже желательно циклы
- Прошу помогите написать код на c++, нужно сдать сегодня ?
- Помогите, пож, задача с++ очень нужно
- Помогите пожалуйста написать программу на C++. Очень нужно!
- Программирование, пожалуйста помогите очень нужно решить
- Сделать в с++ очень нужно
- Добавить функцию в код [C++]
- Напишите пожалуйста код на 5 вариант очень простой я на 1 курсе вуза и нужен простой код.