debai33

Màu nền
Font chữ
Font size
Chiều cao dòng

//Bai33

#include<iostream>

#include<string.h>

#include<fstream>

using namespace std;

//===Khai bao lop NgaySinh======

class NgaySinh

{

private:

int Ngay,Thang,Nam;

public:

friend istream& operator>>(istream & s, NgaySinh &dt);

friend ostream& operator<<(ostream & s, NgaySinh &dt);

int operator>=(NgaySinh &phai);

int operator==(NgaySinh &phai);

};

//===Khai bao lop NhanVien======

class NhanVien

{

private:

enum{nam=2010};

char HoTen[31];

NgaySinh ngaysinh;

public:

NgaySinh Get_NgaySinh();

friend istream& operator>>(istream & s, NhanVien &dt);

friend ostream& operator<<(ostream & s, NhanVien &dt);

};

//===Chuong trinh chinh=========

int main()

{

int n,i,j;

NhanVien ds[100];

NhanVien tg,nv;

NgaySinh ns1,ns2,ns3;

fstream f;

cout<<"Nhap so nhan vien: ";cin>>n;cin.ignore();

//nhap du lieu cho cac nhan vien

for(i=1;i<=n;i++)

{

cout<<"Nhap thong tin cho nhan vien thu "<<i<<":"<<endl;

cin>>ds[i];

}

//Sap xep danh sach theo tuoi giam dan

for(i=1;i<n;i++)

{

ns1=ds[i].Get_NgaySinh();

for(j=i+1;j<=n;j++)

{

ns2=ds[j].Get_NgaySinh();

if(ns1 >= ns2)

//====Dinh nghia lop NgaySinh======

istream& operator>>(istream & s, NgaySinh &dt)

{

char kt;

s>>dt.Ngay>>kt>>dt.Thang>>kt>>dt.Nam; s.ignore();

return s;

}

//-------------------------

ostream& operator<<(ostream & s, NgaySinh& dt)

{

s<<dt.Ngay<<'/'<<dt.Thang<<'/'<<dt.Nam<<endl;

return s;

}

//---------------------------

int NgaySinh::operator>=(NgaySinh &phai)

{

if(Nam>=phai.Nam)

return 1;

else

{

if (Thang>=phai.Thang)

return 1;

else

{

if(Ngay>=phai.Ngay)

return 1;

else

return 0;

}

}

}

//----------------------------

int NgaySinh::operator==(NgaySinh &phai)

{

if((Ngay==phai.Ngay)&&(Thang==phai.Thang)&&(Nam==phai.Nam))

return 1;

else

return 0;

}

{

tg=ds[i];

ds[i]=ds[j];

ds[j]=tg;

}

}

}

//ghi thong tin cac nhan vien vao tep

f.open("nhanvien.dat", ios::out | ios::binary | ios::app);

if (!f)

cout<<"Tep chua ton tai!";

else

{

for(i=1;i<=n;i++)

f.write((char *) &ds[i], sizeof(ds[i]));

}

f.close();

//dua ra danh sach da sap xep

cout<<"

\t\tDanh sach Nhan vien da sap xep:"<<endl;

f.open("nhanvien.dat", ios::in | ios::binary);

if (!f)

cout<<"Tep chua ton tai!";

else

{

while (!f.eof())

{

f.read((char *) &nv, sizeof(nv));

cout<<nv;

}

}

f.close();

//tim cac nhan vien theo ngay sinh

cout<<"Nhap ngay sinh can tim cua nhan vien: ";

cin>>ns3;

f.open("nhanvien.dat", ios::in | ios::binary);

if (!f)

cout<<"Tep chua ton tai!";

else

{

while (!f.eof())

{

f.read((char *) &nv, sizeof(nv));

if (nv.Get_NgaySinh()==ns3)

cout<<nv;

}

}

f.close();

cout<<endl;

return 0;

}

//====Dinh nghia lop NhanVien========

NgaySinh NhanVien::Get_NgaySinh()

{

return ngaysinh;

}

//------------------------

istream& operator>>(istream & s, NhanVien& dt)

{

cout<<"Nhap ho ten: ";s.get(dt.HoTen,31);s.ignore();

cout<<"Nhap ngay sinh: ";s>>dt.ngaysinh;s.ignore();

return s;

}

//-------------------------

ostream& operator<<(ostream & s, NhanVien &dt)

{

cout<<"Ho ten nhan vien: ";s<<dt.HoTen<<endl;

cout<<"Ngay thang nam sinh: ";s<<dt.ngaysinh<<endl;

return s;

}

Bạn đang đọc truyện trên: Truyen2U.Pro