Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Создать список из объектов разных классов, которые наследуются от какого-то общего
- Отобрать из списка те классы, которые удовлетворяют каким-либо условиям
- */
- #include <iostream>
- #include <string>
- // #include <vector>
- using namespace std;
- struct Node {
- string name;
- int date;
- Node *next, *prev;
- };
- class Car {
- private:
- Node *Top;
- public:
- Car() {
- Top = NULL;
- }
- void add(string t, int DATE) {
- Node *pnew = new Node;
- if (t[t.length() - 1] == ';')
- t.erase(t.length() - 1, 2);
- if (Top == NULL) {
- Top = pnew;
- pnew -> name = t;
- pnew -> date = DATE;
- pnew -> next = NULL;
- pnew -> prev = NULL;
- }
- else {
- pnew -> name = t;
- pnew -> date = DATE;
- pnew -> next = NULL;
- pnew -> prev = Top;
- Top -> next = pnew;
- Top = pnew;
- }
- }
- void getList() {
- while (Top -> prev != NULL)
- Top = Top -> prev;
- while (Top -> next != NULL) {
- cout << Top -> name << " - " << Top -> date << endl;
- Top = Top -> next;
- }
- cout << Top -> name << " - " << Top -> date << "\n";
- }
- void getListYear(int year) {
- while (Top -> prev != NULL) {
- if (Top -> date == year) {
- cout << Top -> name << endl;
- }
- Top = Top -> prev;
- }
- if (Top -> date == year) {
- cout << Top -> name << endl;
- }
- }
- void getListNames(string type) {
- while (Top -> prev != NULL) {
- if (Top -> name == type) {
- cout << Top -> date << endl;
- }
- Top = Top -> prev;
- }
- if (Top -> name == type) {
- cout << Top -> date << endl;
- }
- }
- };
- int main() {
- setlocale(LC_ALL, "Russian");
- Car cars;
- string names;
- int year;
- cout << "Введите название год и марку машины через пробел последовательно: ";
- do {
- cin >> year;
- cin >> names;
- cars.add(names, year);
- } while (names[names.length() - 1] != ';');
- cars.getList();
- cout << "Введите по какому критерию выводить на экран информацию (1 - год выпуска, 2 - марка машины): ";
- char choice;
- cin >> choice;
- if (choice == '1') {
- int year;
- cout << "Введите год: ";
- cin >> year;
- cars.getListYear(year);
- } else {
- string type;
- cout << "Введите марку: ";
- cin >> type;
- cars.getListNames(type);
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment