Hướng đối tượng C++ - Nhập, xuất thông tin

Xây dựng lớp Person gồm các thông tin: Họ và tên, Ngày sinh, Quê quán. Sau đó, xây dựng lớp dẫn xuất “Kỹ sư” ngoài các thông tin của lớp Person, lớp kỹ sư còn có các thông tin về: Ngành học, Năm tốt nghiệp (int) và các phương thức:

Phương thức nhập: nhập các thông tin của kỹ sư.

Phương thức xuất: xuất các thông tin lên màn hình.

Xây dựng chương trình chính nhập vào một danh sách các kỹ sư. In danh sách của các kỹ sư lên màn hình và thông tin của các kỹ sư tốt nghiệp gần đây nhất (năm tốt nghiệp lớn nhất).


Lớp Person:

class Person
{
	char name[30]; 
	char Birthday[30]; 
	char Places[30];
public:	
	void Input()
	{
		cin.ignore(); 
		cout<<"Nhap ho ten: ";
		gets(name);fflush(stdin); 
		cout<<"Ngay sinh: ";
		gets(Birthday);fflush(stdin); 
		cout<<"Que quan: ";
		gets(Places);fflush(stdin);
		
	}
	
	void Output()
	{
		cout<<"Ho ten: "<<name<<endl; 
		cout<<"Ngay sinh: "<<Birthday<<endl; 
		cout<<"Que quan: "<<Places<<endl;		
	}
};

Lớp Engineer:

class Engineer:public Person
{

	char majors[30]; 
	int graduationyear;
public:	
	void Input()
	{
		Person::Input();
		cout<<"Nganh hoc: ";
		gets(majors);fflush(stdin);
		cout<<"Nam tot nghiep: ";
		cin>>graduationyear;
	}
	void Output()
	{
		Person::Output();
		cout<<"Nganh hoc: "<<majors<<endl; 
		cout<<"Nam tot nghiep: "<<graduationyear<<endl;
	}
	int getGraduationYear()
	{
		return graduationyear;
	}
};

Hàm main:

int main()
{
	int i,n;
	Engineer a[100];
	cout<<"n= ";
	cin>>n; 
	for(i=0;i<n;i++)	
	{
		cout<<"Ky su thu "<<(i+1)<<": \n"; 
		a[i].Input();	
	}
	cout<<"Thong tin vua nhap:\n"; 
	for(i=0;i<n;i++)
		a[i].Output();
		
	int Max=a[0].getGraduationYear(); 
	for(i=0;i<n;i++)
	 if(a[i].getGraduationYear()>Max)	
		Max=a[i].getGraduationYear();
	cout<<"Ky su co nam tot nghiep gan day nhat la: \n"; 
	for(i=0;i<n;i++)
		if(a[i].getGraduationYear()==Max)
			a[i].Output();
	getch();
	return 0;
}
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<string.h>
using namespace std;
class Person
{
	char name[30]; 
	char Birthday[30]; 
	char Places[30];
public:	
	void Input()
	{
		cin.ignore(); 
		cout<<"Nhap ho ten: ";
		gets(name);fflush(stdin); 
		cout<<"Ngay sinh: ";
		gets(Birthday);fflush(stdin); 
		cout<<"Que quan: ";
		gets(Places);fflush(stdin);
		
	}
	
	void Output()
	{
		cout<<"Ho ten: "<<name<<endl; 
		cout<<"Ngay sinh: "<<Birthday<<endl; 
		cout<<"Que quan: "<<Places<<endl;		
	}
};

class Engineer:public Person
{

	char majors[30]; 
	int graduationyear;
public:	
	void Input()
	{
		Person::Input();
		cout<<"Nganh hoc: ";
		gets(majors);fflush(stdin);
		cout<<"Nam tot nghiep: ";
		cin>>graduationyear;
	}
	void Output()
	{
		Person::Output();
		cout<<"Nganh hoc: "<<majors<<endl; 
		cout<<"Nam tot nghiep: "<<graduationyear<<endl;
	}
	int getGraduationYear()
	{
		return graduationyear;
	}
};


int main()
{
	int i,n;
	Engineer a[100];
	cout<<"n= ";
	cin>>n; 
	for(i=0;i<n;i++)	
	{
		cout<<"Ky su thu "<<(i+1)<<": \n"; 
		a[i].Input();	
	}
	cout<<"Thong tin vua nhap:\n"; 
	for(i=0;i<n;i++)
		a[i].Output();
		
	int Max=a[0].getGraduationYear(); 
	for(i=0;i<n;i++)
	 if(a[i].getGraduationYear()>Max)	
		Max=a[i].getGraduationYear();
	cout<<"Ky su co nam tot nghiep gan day nhat la: \n"; 
	for(i=0;i<n;i++)
		if(a[i].getGraduationYear()==Max)
			a[i].Output();
	getch();
	return 0;
}

Kết quả:

 2
Ky su thu 1:
Nhap ho ten: Nguyen Huu C
Ngay sinh: 02/09/2001
Que quan: Cân Thơ
Nganh hoc: CNTT
Nam tot nghiep: 2015
Ky su thu 2:
Nhap ho ten: Thích Học Lại
Ngay sinh: 12/12/1981
Que quan: Long An
Nganh hoc: IT
Nam tot nghiep: 2003
Thong tin vua nhap:
Ho ten: Nguyen Huu C
Ngay sinh: 02/09/2001
Que quan: Cân Tho
Nganh hoc: CNTT
Nam tot nghiep: 2015
Ho ten: Thích H?c L?i
Ngay sinh: 12/12/1981
Que quan: Long An
Nganh hoc: IT
Nam tot nghiep: 2003
Ky su co nam tot nghiep gan day nhat la:
Ho ten: Nguyen Huu C
Ngay sinh: 02/09/2001
Que quan: Cân Tho
Nganh hoc: CNTT
Nam tot nghiep: 2015