hotboy
Thú CƯng :
Số bài viết : 705 Điểm : 1043 Được cảm ơn : 9 Ngày sinh : 21/03/1990 Tham gia ngày : 13/05/2010 Tuổi : 34 Đến từ : BDU
| Tiêu đề: sửa lỗi dùm 12/8/2010, 19:29 | |
| #include #include #include using namespace std; class nguoi { protected: char ten[30]; char ID[10];//neu la nhan vien thi se la manv con khach thi CMND int gioi;//gioi tinh ||1.nam||2.nu char diachi[50]; public: nguoi(char _ten[30],char _ID[10],int _gioi,char _diachi[50]) { strcpy_s(ten,_ten); strcpy_s(ID,_ID); strcpy_s(diachi,_diachi); gioi=_gioi; } nguoi() { strcpy_s(ten," "); strcpy_s(ID," "); strcpy_s(diachi," "); gioi=1; } nguoi(const nguoi &cp) { strcpy_s(ten,cp.ten); strcpy_s(ID,cp.ID); strcpy_s(diachi,cp.diachi); gioi=cp.gioi; } virtual ~nguoi() { delete[]ten; delete[]diachi; delete[]ID; } nguoi operator =(const nguoi &bn); friend ostream &operator<< (ostream &, nguoi ); friend istream &operator>>(istream &, nguoi &); };
nguoi nguoi::operator =(const nguoi &bn) { delete[]ten; strcpy_s(ten,bn.ten); delete[]diachi; strcpy_s(diachi,bn.diachi); delete[]ID; strcpy_s(ID,bn.ID); gioi=bn.gioi; return *this; }
ostream & operator << (ostream &pout, nguoi a) { pout<<"\n\n---------------------------------\n"; pout<<"\n . Ten :"< pout<<"\n . Dia chi :"< pout<<"\n . ID :"< pout<<"\n . Gioi tinh :"; if(a.gioi==1) pout<<"nam"; else pout<<"nu"; return pout; }
istream & operator >> (istream &pin, nguoi &a) { cout<<"\n\n---------------------------------\n"; cout<<"\n . Ten: "; cin.getline(a.ten,30); cout<<"\n . Dia chi: "; cin.getline(a.diachi,50); cout<<"\n . ID: "; cin.getline(a.ID,10); sex: cout<<"\n . Gioi tinh: "; pin>>a.gioi; if(a.gioi!=1&&a.gioi!=2) goto sex; return pin; }
///////////////////////////////////////////////////////////////////HUONG DAN VIEN DU LICH///////////////////////////////////////////////////////////////
class nhanvien:public nguoi { private: char diadiem[50]; char ngoaingu[10];//trinh do ngoai ngu int kinhnghiem;//so nam kinh nghiem int tuoi;//Gioi han tuoi cua huong dan vien trong khoang 18->40 public: nhanvien():nguoi() { strcpy_s(diadiem," "); strcpy(ngoaingu," "); kinhnghiem=0; tuoi=1; } nhanvien(char _ten[30],char _ID[10],int _gioi,char _diachi[50],char _diadiem[50],char _ngoaingu[10],int _kinhnghiem,int _tuoi):nguoi(_ten,_ID, _gioi,_diachi) { strcpy_s(diadiem,_diadiem); strcpy(ngoaingu,_ngoaingu); kinhnghiem=_kinhnghiem; tuoi=_tuoi; } nhanvien(const nhanvien &cpn):nguoi(cpn) { strcpy_s(diadiem,cpn.diadiem); strcpy(ngoaingu,cpn.ngoaingu); kinhnghiem=cpn.kinhnghiem; tuoi=cpn.tuoi; } virtual ~nhanvien() { delete[]ngoaingu; delete[]diadiem; } nhanvien operator =(const nhanvien &bnv); friend ostream &operator<< (ostream &, nhanvien ); friend istream &operator>>(istream &, nhanvien &); }; nguoi man;
nhanvien nhanvien::operator =(const nhanvien &bnv) { delete[]diadiem; strcpy_s(diadiem,bnv.diadiem); delete[]ngoaingu; strcpy_s(ngoaingu,bnv.ngoaingu); kinhnghiem=bnv.kinhnghiem; tuoi=bnv.tuoi; return *this; } ostream &operator<< (ostream &pout, nhanvien a) { pout< pout<<"\n . Dia diem cong tac:"< pout<<"\n . Tuoi :"< pout<<"\n . Kinh nghiem :"< pout<<"\n . Trinh do ngoai ngu: "< return pout; }
istream &operator>>(istream &pin, nhanvien &a) { cin>>man; cout<<"\n . Tuoi: "; cin>>a.tuoi; while(a.tuoi<18||a.tuoi>=40) { if(a.tuoi<18) { cout<<"\n Qua tre de lam huong dan vien:"; cout<<"\n . Tuoi: "; pin>>a.tuoi; } else if(a.tuoi>=40) { cout<<"\n Qua gia de lam huong dan vien:"; cout<<"\n . Tuoi: "; pin>>a.tuoi; } } cout<<"\n . Dia diem cong tac : "; cin.ignore(); cin.getline(a.diadiem,50); cout<<"\n . Trinh do ngoai ngu: "; cin.getline(a.ngoaingu,10); kn: cout<<"\n . So nam kinh nghiem: "; pin>>a.kinhnghiem; if(a.kinhnghiem>(a.tuoi-18)) { cout<<"\n moi"< goto kn; } return pin; }
///////////////////////////////////////////////////////////////////////// HANH KHACH //////////////////////////////////////////////////////////////////////////
class manager:public nhanvien { private: nhanvien nv; public: manager():nhanvien() {} friend ostream &operator <<(ostream&,manager ); friend istream &operator >>(istream&,manager &); }; ostream &operator <<(ostream &pout,manager a) { pout< return pout; } istream &operator >>(istream &pin,manager &a) { pin>>a.nv; return pin; } int main() { manager a; cin>>a; cout< return 0; }
|
|
hotboy
Thú CƯng :
Số bài viết : 705 Điểm : 1043 Được cảm ơn : 9 Ngày sinh : 21/03/1990 Tham gia ngày : 13/05/2010 Tuổi : 34 Đến từ : BDU
| Tiêu đề: Re: sửa lỗi dùm 12/8/2010, 19:30 | |
| ai sử dùm tui,sao nhập được,nhưng mà xuất thì nó cứ nhạy vô cái copy constructor hết z. |
|
Sakura
Thú CƯng :
Số bài viết : 1124 Điểm : 1688 Được cảm ơn : 35 Ngày sinh : 03/11/1990 Tham gia ngày : 16/03/2010 Tuổi : 34 Đến từ : Bình Dương Ngề nghiệp : IT Student
| Tiêu đề: Re: sửa lỗi dùm 12/8/2010, 19:33 | |
| mới nhìn vô cái Class người là thấy ko hợp lý rồi, cái nào chung thì để trong Class người, CMND với MSSV nên nằm trong các lớp con, còn cái thuộc tính ID trong Class nguoi, tui nghĩ ko cần thiết đâu. Đang ở ngoài net, ko sửa đc roài, để xem sao! hjhj! |
|
hotboy
Thú CƯng :
Số bài viết : 705 Điểm : 1043 Được cảm ơn : 9 Ngày sinh : 21/03/1990 Tham gia ngày : 13/05/2010 Tuổi : 34 Đến từ : BDU
| Tiêu đề: Re: sửa lỗi dùm 12/8/2010, 21:57 | |
| |
|