BT Về Lập trình hướng đối tượng (Mở đầu)
5. Xây dựng lớp sinh viên gồm các thành phần:
-DL: họ tên, ngày sinh, giới tính, lớp (k43/41.01),điểm toán, lý, hóa, đtb
-Pt: nhập, in, tính điểm trung bình
Hàm main:
-Nhập danh sách sinh viên
-Sắp xếp theo điểm trung bình giảm dần
-In danh sách sau khi xếp
Code:
#include <iostream.h>
#include <conio.h>
class date
{
public:
int ngay;
int thang;
int nam;
};
class SV
{
private:
char *hoten;
char *gioitinh;
char *lop;
float dt;
float dl;
float dh;
date ns;
public:
SV()
{
hoten = new char[30];
gioitinh = new char[5];
lop = new char[15];
dt = 0;
dl = 0;
dh = 0;
ns.ngay = 0;
ns.thang = 0;
ns.nam = 0;
}
~SV()
{
delete hoten;
delete gioitinh;
delete lop;
}
float tb()
{
return (dt+dl+dh)/3;
}
friend istream& operator>>(istream& is,SV &x)
{
is.ignore();
cout<<" Ho Ten : ";is.getline(x.hoten,30);
cout<<" Gioi tinh : ";is.getline(x.gioitinh,5);
cout<<" Lop : ";is.getline(x.lop,15);
cout<<" Ngay sinh: ";is>>x.ns.ngay;
cout<<" Thang sinh: ";is>>x.ns.thang;
cout<<" Nam sinh: ";is>>x.ns.nam;
cout<<" Diem toan : ";is>>x.dt;
cout<<" Diem Ly : ";is>>x.dl;
cout<<" Diem hoa : ";is>>x.dh;
return is;
}
friend ostream& operator<<(ostream& os,SV &x)
{
os<<x.hoten<<"\t"<<x.gioitinh<<"\t"<<x.lop<<"\t"<<x.ns.ngay<<"/"<<x.ns.thang<<"/"<<x.ns.nam<<"\t"<<x.dt<<"\t"<<x.dl<<"\t"<<x.dh<<"\t"<<x.tb();
return os;
}
};
void main()
{
int n,i;
SV tg;
SV *p ;
cout<<"Nhap so sinh vien : ";cin>>n;
p = new SV[n+1];
for ( i=1;i<=n;i++)
{
cout<<"Nhap thong tin sinh thu "<<i<<": \n";
cin>>p[i];
}
cout<<"Danh sach sinh vien :\n";
for (int j=1;j<n;j++)
{
for (int k=j+1;k<=n;k++)
if (p[k].tb()>p[j].tb())
{
tg = p[j];
p[j]=p[k];
p[k]=tg;
}
}
for (int l=1;l<=n;l++)
{
cout<<p[l];
cout<<"\n";
}
}
0 Response to "BT Về Lập trình hướng đối tượng (Mở đầu)"
Đăng nhận xét