Поделитесь своими знаниями, ответьте на вопрос:
А как решить эту задачу на с++задача: напишите программу выводящих на экран список всех программистов и дополнительный список программистов на С++ решить нужно через структуры , программу написать на С++
Приложение принимает на ввод информацию о Именах и Фамилиях программистов, а также используемом языке и позволяет найти среди записей информацию о программистах 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;
}