debai33
//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: AzTruyen.Top