MyTetra Share
Делитесь знаниями!
Списки студентов
Время создания: 10.08.2017 16:03
Раздел: Computer - Programming - C++ - Coursera White_Belt

Определите структуру «Студент» со следующими полями: имя, фамилия, день, месяц и год рождения. Создайте вектор из таких структур, заполните его из входных данных и затем по запросам выведите нужные поля.

Формат ввода

Первая строка содержит одно целое число N от 0 до 10000 — число студентов.

Далее идут N строк, каждая из которых содержит две строки длиной от 1 до 15 символов — имя и фамилию очередного студента, и три целых числа от 0 до 1000000000 — день, месяц и год рождения.

Следующая строка содержит одно целое число M от 0 до 10000 — число запросов.

Следующие M строк содержат строку длиной от 1 до 15 символов — запрос, и целое число от 0 до 1000000000 — номер студента (нумерация начинается с 1).

Формат вывода

Для запроса вида name K, где K от 1 до N, выведите через пробел имя и фамилию K-го студента.

Для запроса вида date K, где K от 1 до N, выведите через точку день, месяц и год рождения K-го студента.

Для остальных запросов выведите bad request.

Пример ввода

3
Ivan Ivanov 1 1 1901
Petr Petrox 2 2 1902
Alexander Sidorov 3 3 1903
3
name 1
date 3
mark 5

Пример вывода

Ivan Ivanov
3.3.1903
bad request



#include <iostream>

#include <vector>


using namespace std;


struct Student

{

string name;

string surname;

unsigned long int bday;

unsigned long int bmonth;

unsigned long int byear;

};


int main()

{

unsigned int n;

vector<Student> students;


cin >> n;

while(n)

{

Student new_student;

/* unsigned long int value;

string line;


cin >> line;

new_student.name = line;

cin >> line;

new_student.surname = line;

cin >> value;

new_student.bday = value;

cin >> value;

new_student.bmonth = value;

cin >> value;

new_student.byear = value;


*/

cin >> new_student.name >> new_student.surname >>

new_student.bday >> new_student.bmonth >> new_student.byear;

students.push_back(new_student);

--n;

}

cin >> n;

while(n)

{

string command;

unsigned long int number;

cin >> command >> number;

if(number > students.size() || number == 0)

cout << "bad request" << endl;

else

{

unsigned long int i = number - 1;

if(command == "name")

{

cout << students[i].name << " " << students[i].surname << endl;

}

else if(command == "date")

{

cout << students[i].bday << "." << students[i].bmonth << "." << students[i].byear << endl;

}

else

cout << "bad request" << endl;

}

--n;

}

// getchar();

return 0;

}

Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования