ĐỀ
Viết một chương trình xây dựng hai lớp: một lớp thí sinh và một lớp danh sách thí sinh. Trong đó lớp thí sinh có dữ liệu bao gồm các thông tin: số báo danh, điểm toán, điểm hoá, điểm lý. Lớp danh sách thí sinh có dữ liệu một mảng các thí sinh và số lượng phần tử thuộc mảng đó. Viết chương trình thực hiện các công việc sau:
1. Nhập và hiển thị một danh sách các thí sinh từ bàn phím
2. Sắp xếp danh sách các thí sinh theo thứ tự tăng dần về điểm số
3. Hiển thị thông tin của các sinh viên có tổng điểm trên 18
Trích từ: http://kenhdaihoc.com/forum/showthread.php?t=2809
Code
#include <iostream.h>
#include <conio.h>
class thisinh
{
private:
char sbd[25];
float dtoan,dly,dhoa;
public:
void nhap();
void in();
float tdiem();
};
void thisinh::nhap()
{
cout<<"Nhap vao so bao danh :";
cin>>sbd;
cout<<"Nhap diem toan :";
cin>>dtoan;
cout<<"Nhap diem ly:";
cin>>dly;
cout<<"Nhap diem hoa:";
cin>>dhoa;
}
void thisinh::in()
{
cout<<"So bao danh "<<sbd;
cout<<" Diem toan:"<<dtoan<<" Diem ly:"<<dly<<" Diem hoa:"<<dhoa;
cout<<" Tong diem: "<<tdiem()<<endl;
}
float thisinh::tdiem()
{
return(dtoan+dly+dhoa);
}
class dsts
{
private:
int n;
thisinh dsts[100];
public:
void nhapds();
void inds();
void sapxep();
void tdtren18();
};
void dsts::nhapds()
{
cout<<"Nhap vao so luong thi sinh:";
cin>>n;
for(int i=0;i<n;i++)
dsts[i].nhap();
}
void dsts::inds()
{
for(int i=0;i<n;i++)
dsts[i].in();
}
void dsts::sapxep()
{
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(dsts[i].tdiem()>dsts[j].tdiem())
{
thisinh temp;
temp= dsts[i];
dsts[i]=dsts[j];
dsts[j]=temp;
}
}
void dsts::tdtren18()
{
for(int i=0;i<n;i++)
if(dsts[i].tdiem()>18)
dsts[i].in();
}
void main()
{
dsts ds;
ds.nhapds();
cout<<"Sap xep danh sach cac thi sinh theo thu tu tang dan ve tong diem:"<<endl;
ds.sapxep();
ds.inds();
cout<<"Danh sach cac thi sinh co tong diem tren 18 la:"<<endl;
ds.tdtren18();
getch();
}
0 nhận xét:
Đăng nhận xét