Ví dụ e có 2 lớp ChuyenBay và DSCB như sau.. trong lớp ChuyenBay co hàm so sánh ngày thang để su dụng trong hàm SapXep trong lớp DSCB, e nghi hoài chưa ra dc cach nao de so sanh dc nên phải dùng đại cach so sanh dễ hiểu nhất, có a chị nào biết code nào ngắn hơn thì chỉ e voi ![Big Grin](https://forum.uit.edu.vn/core/images/smilies/biggrin.png)
![Big Grin](https://forum.uit.edu.vn/core/images/smilies/biggrin.png)
Code:
#include <iostream.h> struct Ngay { int d, m, y; //Ngày, tháng, n?m }; struct Gio { int h, m, s; //Gi?, phút, giây }; class ChuyenBay { private: Ngay ngay_bay; //Ngày bay Gio gio_bay; //Gi? bay char Noi_di[30]; //N?i ?i char Noi_den[30]; //N?i ??n public: ChuyenBay (); //Hàm thi?t l?p không ??i s? void Nhap(); //Nh?p m?t chuy?n bay void Xuat(); //Xu?t m?t chuy?n bay int SoSanh(const ChuyenBay &u); //So sánh ngày bay c?a hai chuy?n bay }; class DSCB //L?p danh sách chuy?n bay { private: int n; //S? chuy?n bay ChuyenBay *p; //Con tr? t?i vùng nh? ch?a danh sách chuy?n bay public: DSCB (); //Hàm thi?t l?p không ??i s? DSCB (int nn); //Hàm thi?t l?p m?t ??i s? DSCB (const DSCB &u); //Hàm thi?t l?p sao chép DSCB & operator=(const DSCB &u); //Hàm toán t? gán ~ DSCB (); //Hàm hu? b? void Nhap(); //Hàm nh?p danh sách chuy?n bay void Xuat(); //Hàm xu?t danh sách chuy?n bay void SapXep(); //S?p x?p danh sách chuy?n bay t?ng d?n theo ngày bay }; int ChuyenBay::SoSanh(const ChuyenBay &u) { int ret; if (ngay_bay.y > u.ngay_bay.y) ret = 1; else { if(ngay_bay.y < u.ngay_bay.y) ret = 0; else { if(ngay_bay.m > u.ngay_bay.m) ret = 1; else { if(ngay_bay.m < u.ngay_bay.m) ret = 0; else { if(gio_bay.h > u.gio_bay.h) ret = 1; else { if(gio_bay.h < u.gio_bay.h) ret = 0; else { if(gio_bay.m > u.gio_bay.m) ret = 1; else { if(gio_bay.m < u.gio_bay.m) ret = 0; else { if(gio_bay.s > u.gio_bay.s) ret = 1; else { if(gio_bay.s < u.gio_bay.s) ret = 0; else ret = -1; } } } } } } } } }[QUOTE][/QUOTE] return ret; } void DSCB::SapXep() { for(int i=0;i<n-1;i++) for(int j=i+1;j<n;j++) if(p[i].SoSanh(p[j]) == 1) { ChuyenBay tam = p[i]; p[i] = p[j]; p[j] = tam; } }
Comment