#include <iostream>
#include <string>
#include <vector>

class Student
{
private:
	std::string _name;
	std::string _code;
public:
	Student();
	Student(std::string name, std::string code) : _name(name), _code(code){}
	std::string getName()
	{
		return _name;
	}

	std::string getCode()
	{
		return _code;
	}
};

// function outside class:
void createStudentList(unsigned int num_of_student, std::vector<Student>& list)
{
	std::string name;
	std::string code;
	for(unsigned int i = 0; i < num_of_student; i++)
	{
		std::cout<<"Enter name of student ["<<i+1<<"]: ";
		std::cin>>name;
		std::cout<<"Enter code of student ["<<i+1<<"]: ";
		std::cin>>code;

		list.push_back(Student(name, code));
	}
}

void printStudentList(std::vector<Student>& list)
{
	for(unsigned int i = 0; i < list.size(); i++)
	{
		std::cout<<list.at(i).getName()<<" - " << list.at(i).getCode() <<std::endl;
	}
}
int main()
{
	unsigned int num_of_students = 0;
	std::cout<<"Enter the number of student: " <<std::endl;
	std::cin>>num_of_students;

	std::vector<Student> list_of_student;

	createStudentList(num_of_students, list_of_student);
	printStudentList(list_of_student);
	

	std::cin.get();
	return 0;
}