Tạo kiểu dữ liệu sinh viên với che giấu dữ liệu (data hiding) và đóng gói (encapsulation). Thuộc tính: first_name, last_name, age, class (private). Các hàm getter/setter cho từng thuộc tính. Hàm to_string() trả về chuỗi "(age, first_name, last_name, class)". Đọc 4 giá trị từ console, set bằng setter, in bằng getter và to_string().
Ví dụ: "priyam kundu 16 10" → "16 priyam kundu 10 (16, priyam, kundu, 10)"
Giải thuật
- Lớp Student: private age, cl, first_name, last_name
- Getter: get_age(), get_class(), get_firstname(), get_lastname()
- Setter: set_age(), set_class(), set_firstname(), set_lastname()
- to_string(): dùng stringstream tạo "(age, first_name, last_name, cl)"
- Main: đọc 4 giá trị, gọi setter, in getter, in to_string()
Ví dụ minh họa
#include <iostream>
#include <sstream>
using namespace std;
class Student{
private:
int age, cl;
string first_name, last_name;
public:
int get_age(){return age;}
int get_class(){return cl;}
string get_firstname(){return first_name;}
string get_lastname(){return last_name;}
void set_age(int a){age = a;}
void set_class(int c){cl = c;}
void set_firstname(string fn){first_name = fn;}
void set_lastname(string ln){last_name = ln;}
string to_string(){
stringstream ss;
ss << "(" << age << ", " << first_name << ", " << last_name << ", " << cl << ")";
return ss.str();
}
};
int main() {
Student stud;
int age, cl;
string first_name, last_name;
cin >> first_name >> last_name >> age >> cl;
stud.set_age(age);
stud.set_class(cl);
stud.set_firstname(first_name);
stud.set_lastname(last_name);
cout << stud.get_age() << endl;
cout << stud.get_firstname() << endl;
cout << stud.get_lastname() << endl;
cout << stud.get_class() << endl;
cout << endl << stud.to_string();
}
Đầu vào
priyam kundu 16 10
Đầu ra
16 priyam kundu 10 (16, priyam, kundu, 10)