#include <iostream>
#include <cmath>
#include <string>
using namespace std;
struct NgaySinh
{
int d, m, y;
};
class Nguoi
{
private:
string ten;
NgaySinh ngaySinh;
string diaChi;
public:
Nguoi();
Nguoi(string hoTen, int d, int m, int y, string diaChi);
int tinhTuoi();
void nhap();
void xuat();
~Nguoi();
};
Nguoi::Nguoi(): ten(""), ngaySinh({1,1,2000}), diaChi(""){}
Nguoi::Nguoi(string hoTen, int d, int m, int y, string diaChi)
: ten(hoTen), ngaySinh({d, m, y}), diaChi(diaChi) { }
int Nguoi::tinhTuoi()
{
return 2025 - ngaySinh.y;
}
void Nguoi::nhap()
{
cout << "Nhap ten: ";
getline(cin, ten);
cout << "Nhap ngay, thang, nam: ";
cin >> ngaySinh.d >> ngaySinh.m >> ngaySinh.y;
cin.ignore();
//fflush(stdin);
cout << "Nhap dia chi: ";
getline(cin, diaChi);
}
void Nguoi::xuat()
{
cout << "Ten: " << ten << endl;
cout << "Ngay sinh: " << ngaySinh.d << "/" << ngaySinh.m << "/" << ngaySinh.y << endl;
cout << "Dia chi: " << diaChi << endl;
cout << "Tuoi: " << tinhTuoi() << " tuoi" << endl;
}
Nguoi::~Nguoi()
{
}
int main()
{
Nguoi a;
a.nhap();
a.xuat();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxzdHJpbmc+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE5nYXlTaW5oCnsKCWludCBkLCBtLCB5Owp9OwoKY2xhc3MgTmd1b2kKewpwcml2YXRlOiAKCXN0cmluZyB0ZW47CglOZ2F5U2luaCBuZ2F5U2luaDsKCXN0cmluZyBkaWFDaGk7CnB1YmxpYzoKCU5ndW9pKCk7CglOZ3VvaShzdHJpbmcgaG9UZW4sIGludCBkLCBpbnQgbSwgaW50IHksIHN0cmluZyBkaWFDaGkpOwoJaW50IHRpbmhUdW9pKCk7Cgl2b2lkIG5oYXAoKTsKCXZvaWQgeHVhdCgpOwoJfk5ndW9pKCk7Cn07CgpOZ3VvaTo6Tmd1b2koKTogdGVuKCIiKSwgbmdheVNpbmgoezEsMSwyMDAwfSksIGRpYUNoaSgiIil7fQoKTmd1b2k6Ok5ndW9pKHN0cmluZyBob1RlbiwgaW50IGQsIGludCBtLCBpbnQgeSwgc3RyaW5nIGRpYUNoaSkgCgk6IHRlbihob1RlbiksIG5nYXlTaW5oKHtkLCBtLCB5fSksIGRpYUNoaShkaWFDaGkpIHsgfQoKaW50IE5ndW9pOjp0aW5oVHVvaSgpCnsKCXJldHVybiAyMDI1IC0gbmdheVNpbmgueTsKfQoKdm9pZCBOZ3VvaTo6bmhhcCgpCnsKCWNvdXQgPDwgIk5oYXAgdGVuOiAiOwoJZ2V0bGluZShjaW4sIHRlbik7Cgljb3V0IDw8ICJOaGFwIG5nYXksIHRoYW5nLCBuYW06ICI7CgljaW4gPj4gbmdheVNpbmguZCA+PiBuZ2F5U2luaC5tID4+IG5nYXlTaW5oLnk7CgljaW4uaWdub3JlKCk7CgkvL2ZmbHVzaChzdGRpbik7Cgljb3V0IDw8ICJOaGFwIGRpYSBjaGk6ICI7CglnZXRsaW5lKGNpbiwgZGlhQ2hpKTsKfQoKdm9pZCBOZ3VvaTo6eHVhdCgpCnsKCWNvdXQgPDwgIlRlbjogIiA8PCB0ZW4gPDwgZW5kbDsKCWNvdXQgPDwgIk5nYXkgc2luaDogIiA8PCBuZ2F5U2luaC5kIDw8ICIvIiA8PCBuZ2F5U2luaC5tIDw8ICIvIiA8PCBuZ2F5U2luaC55IDw8IGVuZGw7Cgljb3V0IDw8ICJEaWEgY2hpOiAiIDw8IGRpYUNoaSA8PCBlbmRsOwoJY291dCA8PCAiVHVvaTogIiA8PCB0aW5oVHVvaSgpIDw8ICIgdHVvaSIgPDwgZW5kbDsKfQoKTmd1b2k6On5OZ3VvaSgpCnsKCn0KCmludCBtYWluKCkKewoJTmd1b2kgYTsKCWEubmhhcCgpOwoJYS54dWF0KCk7CgoJcmV0dXJuIDA7Cn0=