А как решить эту задачу на с++задача: напишите программу выводящих на экран список всех программистов и дополнительный список программистов на С++ решить нужно через структуры , программу написать на С++

vitalicc vitalicc    2   23.08.2020 00:46    2

Ответы
sabin200089 sabin200089  15.10.2020 16:09

Приложение принимает на ввод информацию о Именах и Фамилиях программистов, а также используемом языке и позволяет найти среди записей информацию о программистах C++.

Иллюстрации кода и тестовых ввода-вывода прикреплены во вложениях.

Ваши оценки и отзывы позволяют лучше оценить решение.

Если ответ удовлетворил, отметь его как "Лучший".

Успехов в учёбе!

Код:

#include <iostream>

#include <string>

#include <utility>

#include <vector>

#include <exception>

struct Coder {

   std::string name;

   std::string lastname;

   std::string language;

   Coder(std::string name, std::string lastname, std::string language) :

       name(std::move(name)),

       lastname(std::move(lastname)),

       language(std::move(language))

   { }

   explicit operator std::string() const

   {

       return name + " " + lastname + " " + language;

   }

};

struct DataBase {

private:

   std::vector<Coder> _base;

public:

   bool add_coder(Coder coder) {

       _base.push_back(std::move(coder));

       return true;

   }

   std::vector<Coder> search_by_language(const std::string& language_name) {

       std::vector<Coder> search_results;

       for(auto & coder : _base) {

           if (coder.language == language_name) {

               search_results.push_back(std::move(coder));

           }

       }

       return search_results;

   }

};

int main() {

   DataBase base;

   std::cout << "Please enter information about programmers like this \"Bjarne Stroustrup C++\" bellow" << std::endl;

   std::cout << "You can type .find command for finding all added programmers who have developed with C++" << std::endl;

   std::string input, name, lastname, language;

   while(true) {

       std::cout << "> ";

       std::cin >> input;

       if(input == ".find") break;

       name = input;

       std::cin >> lastname >> language;

       base.add_coder(Coder(input, lastname, language));

   }

   std::vector<Coder> search_results = base.search_by_language("C++");

   for(auto & search_result : search_results){

       std::cout << (std::string)search_result << std::endl;

   }

   return 0;

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика