a. Xây dựng 1 lớp MyAttr mô tả các thuộc tính của tệp. Lớp gồm các thành phần:
- Thuộc tính Attr mô tả số hiệu thuộc tính của tệp là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị số hiệu thuộc tính tệp.
b. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Toán tử > để so sánh 2 đôi tượng Mydate
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
c. Xây dựng 1 lớp Myfile kế thừa từ 2 lớp MyAttr và Mydate và đồng thời bổ sung thêm các thành phần:
- filename: Mô tả tên tệp, là một xâu không quá 255 ký tự.
- filesize: Mô tả kích thước tệp, là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị thông tin, kích thước, thời gian và số hiệu thuộc tính tệp.
d. Viết chương trình khai báo một mảng 4 con trỏ đối tượng kiểu Myfile, nhập dữ liệu vào để tạo 4 con trỏ đối tượng Myfile. Sắp xếp các đối tượng tăng dần theo ngày tháng và in ra màn hình các đối tượng đã sắp xếp.
Code:
#include<conio.h>
#include<iostream.h>
#include<stdio.h>
class myattr{
private:
int sohieu;
public:
myattr(int sh=0)
{sohieu=sh;}
void display()
{
cout<<"\n So hieu tep la: "<<sohieu;
}
};//end class
class mydate{
private:
int d,m,y;
public:
mydate(int dd=1,int mm=1,int yy=1980)
{
d=dd;m=mm;y=yy;
}
void in()
{
cout<<d<<"-"<<m<<"-"<<y;
}
int operator>(mydate &a)
{
if(y>a.y) return 1;
if((y==a.y)&&(m>a.m)) return 1;
if((y==a.y)&&(m==a.m)&&(d>a.d)) return 1;
else return 0;
}
};//end class
class mylife:public myattr,public mydate{
private:
char *name;
int size;
public:
mylife(int sh=0,int dd=1,int mm=1,int yy=1980,char *n=NULL,int s=0):myattr(sh),mydate(dd,mm,yy)
{
name=strdup(n);
size=s;
}
void display()
{ cout<<"\n ten tep:"<<name;
cout<<"\n Kich thuoc:"<<size;
myattr::display();
cout<<"\n thoi gian: ";mydate::in();
}
};
//==================================================
void main()
{
clrscr();
mylife *a[4],*tg;
int at,s,d,m,y;
char ten[255];
cout<<"\n Nhap thong tin cho tep:";
for(int i=0;i<3;i++)
{
cout<<"\n Doi tuong thu "<<i+1<<" : ";
cout<<"\n Ten tep:";fflush(stdin);gets(ten);
cout<<"\n Kich thuoc tep:";cin>>s;
cout<<"\n Nhapthoi gian:";cin>>d>>m>>y;
cout<<"\n Nhap so hieu:";cin>>at;
a[i]=new mylife[a,d,m,y,ten,s];
}
cout<<"\n ====Xem tep truoc khi sap xep:====";
for(i=0;i<3;i++)
{cout<<"\n doi tuong thu"<<i+1<<" :"; a[i]->display();}
for(i=0;i<2;i++)
for(int j=i+1;j<3;j++)
if(*a[i]>*a[j])
{tg=a[i];a[i]=a[j];a[j]=tg;}
cout<<"\n ===== Xem tep sau khi sap xep =====";
for(i=0;i<3;i++){cout<<"\n doi tuong thu"<<i+1<<": "; a[i]->display();
}
getch();
}