killeroflove1989
Youtube Master Race
- 26/4/06
- 35
- 0
mình đang học lập trình hướng đối tượng trên C++, có 1 bài tập như thế này:
xây dựng class sinh viên với các thành phần tên, mã sinh viên,điểm trung bình, các hàm thành phần làm nhiệm vụ nhập,hiển thị dữ liệu của sinh viên, sau đó viết hàm main() thực hiện các công việc sau: đưa ra danh sách các sinh viên có điểm trung bình lớn nhất, đưa ra danh sách các sinh viên có điểm trung bình trên 5.
đây là code mà mình viết:
#include<iostream.h>
#include<conio.h>
enum sosanh{nhohon,lonhon,bang};
class sinh_vien
{private:
int MaSV;
char HoTen[50];
float DiemTB;
public:
void Nhap();
void HT();
int KiemTraDiem();
sosanh SoSanhDiem(sinh_vien);
};
void sinh_vien::Nhap()
{cout<<"ten : ";cin>>HoTen;cout<<"\n";
cout<<"diem : ";cin>>DiemTB;cout<<"\n";}
void sinh_vien::HT()
{cout<<"ten : "<<HoTen<<"\n";
cout<<"diem : "<<DiemTB<<"\n";
int sinh_vien::KiemTraDiem()
{ if(DiemTB>5)
return(1);
else
return(0);}
sosanh sinh_vien::SoSanhD(sinh_vien p)
{if(DiemTB<p.DiemTB)
return(nhohon);
else
if(DiemTB>p.DiemTB)
return(lonhon);
else
return(bang);}
main()
{ clrscr();
sinh_vien SinhVien[100];
sinh_vien MaxDiem;
int i,n;
cout<<"hay cho biet so sinh vien : ";cin>>n;
cout<<"\n";
cout<<"hay cho biet ten va diem trung binh tung nguoi: \n";
for(i=0;i<n;i++)
{cout<<"sinh vien thu"<<(i+1);
SinhVien.Nhap();}
cout<<"danh sach sinh vien co diem trung binh tren 5 la: ";
for(i=0;i<n;i++)
if(SinhVien.KiemTraDiem()==1)
{cout<<"sinh vien thu "<<(i+1);
SinhVien.HT();}
MaxDiem=SinhVien[0];
for(i=1;i<n;i++)
if(MaxDiem.SoSanhDiem(SinhVien)==nhohon)
MaxDiem=SinhVien;
cout<<"danh sach sinh vien co diem trung binh lon nhat la: \n";
for(i=0;i<n;i++)
if(SinhVien.SoSanhDiem(MaxDiem)==bang)
SinhVien.HT(); }
sau khi chạy chương trình thì nó báo lỗi là giới hạn đối với hàm SoSanhDiem(); mình đã chạy trên turbo c++ và dev C++; ai biết lỗi nằm ở đâu và cách khắc phục thì vào chỉ mình với
.
___________Auto Merge________________
.
ah nhầm,sorry là lỗi với hàm KiemTraDiem() chứ ko phải SoSanhDiem() ai biết giúp mình với nha, thanks::)
xây dựng class sinh viên với các thành phần tên, mã sinh viên,điểm trung bình, các hàm thành phần làm nhiệm vụ nhập,hiển thị dữ liệu của sinh viên, sau đó viết hàm main() thực hiện các công việc sau: đưa ra danh sách các sinh viên có điểm trung bình lớn nhất, đưa ra danh sách các sinh viên có điểm trung bình trên 5.
đây là code mà mình viết:
#include<iostream.h>
#include<conio.h>
enum sosanh{nhohon,lonhon,bang};
class sinh_vien
{private:
int MaSV;
char HoTen[50];
float DiemTB;
public:
void Nhap();
void HT();
int KiemTraDiem();
sosanh SoSanhDiem(sinh_vien);
};
void sinh_vien::Nhap()
{cout<<"ten : ";cin>>HoTen;cout<<"\n";
cout<<"diem : ";cin>>DiemTB;cout<<"\n";}
void sinh_vien::HT()
{cout<<"ten : "<<HoTen<<"\n";
cout<<"diem : "<<DiemTB<<"\n";
int sinh_vien::KiemTraDiem()
{ if(DiemTB>5)
return(1);
else
return(0);}
sosanh sinh_vien::SoSanhD(sinh_vien p)
{if(DiemTB<p.DiemTB)
return(nhohon);
else
if(DiemTB>p.DiemTB)
return(lonhon);
else
return(bang);}
main()
{ clrscr();
sinh_vien SinhVien[100];
sinh_vien MaxDiem;
int i,n;
cout<<"hay cho biet so sinh vien : ";cin>>n;
cout<<"\n";
cout<<"hay cho biet ten va diem trung binh tung nguoi: \n";
for(i=0;i<n;i++)
{cout<<"sinh vien thu"<<(i+1);
SinhVien.Nhap();}
cout<<"danh sach sinh vien co diem trung binh tren 5 la: ";
for(i=0;i<n;i++)
if(SinhVien.KiemTraDiem()==1)
{cout<<"sinh vien thu "<<(i+1);
SinhVien.HT();}
MaxDiem=SinhVien[0];
for(i=1;i<n;i++)
if(MaxDiem.SoSanhDiem(SinhVien)==nhohon)
MaxDiem=SinhVien;
cout<<"danh sach sinh vien co diem trung binh lon nhat la: \n";
for(i=0;i<n;i++)
if(SinhVien.SoSanhDiem(MaxDiem)==bang)
SinhVien.HT(); }
sau khi chạy chương trình thì nó báo lỗi là giới hạn đối với hàm SoSanhDiem(); mình đã chạy trên turbo c++ và dev C++; ai biết lỗi nằm ở đâu và cách khắc phục thì vào chỉ mình với
.
___________Auto Merge________________
.
ah nhầm,sorry là lỗi với hàm KiemTraDiem() chứ ko phải SoSanhDiem() ai biết giúp mình với nha, thanks::)
.
.........