Monday , 26 October 2020
Home » Tự học Lập Trình » Hướng đối tượng » Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm [C++]

Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm [C++]

a. 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.
– Hàm nhập ngày, tháng, năm (không cần biện luận dữ liệu).
– Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
– Xây dựng toán tử = = dùng để so sánh 2 đối tượng Mydate.
-Xây dựng toán tử > dùng để so sánh 2 đối tượng Mydate.
b. Viết chương trình nhập dữ liệu để tạo 1 mảng 5 đối tượng kiểu Mydate và nhập dữ liệu để tạo 1 đối tượng x có kiểu Mydate.
c. Sắp xếp danh sỏch mydate theo thứ tự tăng dần.
d. Tìm kiếm và thông báo ra màn hình phần tử x có trong mảng hay không?.

Code chương trình chạy trên Microsoft Visual Studio 2012

#include”stdafx.h”
#include
#include
using namespace std;
class mydate
{
private:
int d,m,y;
public:
mydate(int dd=1,int mm=1,int yy=1900) //Hàm thiết lập với các tham số có giá trị mặc định
{
d=dd;
m=mm;
y=yy;
}
void nhap() //Hàm nhập dữ liệu
{
cout<<“\nnhap ngay:”;cin>>d;
cout<<“nhap thang:”;cin>>m;
cout<<“nhap nam:”;cin>>y;

}
void display() //Hàm hiển thị
{
cout<<d<<“-“<<m<<“-“<<y;

}

int operator ==(mydate &a) //Hàm định nghĩa chồng toán tử = (hàm để so sánh 2 đối tượng Mydate)

{

if((y==a.y)&&(m==a.m)&&(d==a.d)) return 1;

return 0;

}

int operator >(mydate &a) //Hàm định nghĩa toán tử > của đối tượng mydate
{
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;
}
};
void main()
{
mydate a[50], tg,x; //Khai báo 1 mảng có 50 đối tượng mydate, 1 đối tượng mydate tg, 1 đối tượng mydate x
int i, n;
cout<<“Nhap so luong Mydate can nhap vao: “; cin>>n;

for(i=0;i<n;i++)
{
cout<<“\n Nhap thoi gian thu”<<i+1<<“:”;
a[i].nhap(); // Đối tượng a[i] gọi đến phương thức (hàm) nhập dữ liệu
}
cout<<“\n\n MANG VUA NHAP: “;
for(i=0;i<n;i++)
{
a[i].display(); // Đối tượng a[i] gọi đến phương thức (hàm) hiển thị dữ liệu
cout<<” “;
}
cout<<“\n\n\n MANG SAU KHI SAP XEP TANG DAN THEO THOI GIAN:\n\n”;

for( i = 0;i<n;i++)
for(int j=i+1;j<n;j++) if(a[i]>a[j]) // So sánh 2 đối tượng mydate cái nào lớn hơn
{
tg = a[i];
a[i] = a[j];
a[j]= tg;
}
for(i=0;i<n;i++)
{
a[i].display();
cout<<” “;
}
cout<<“\n\n\n Nhap thoi gian x can tim: “;
x.nhap();
int dem=0; //Biến đếm để biết số lần x xuất hiện trong mảng
for(i=0;i<n;i++) if (a[i]==x) // So sánh 2 đối tượng mydate a[i] và x có bằng nhau hay không { dem++; //Nếu bằng nhau thì biến đếm tăng lên 1 } if(dem !=0) // Nếu đếm khác 0 ( dem>0 )
{cout<<“\n Phan tu “; x.display(); cout<<” co trong mang, xuat hien so lan la: “<<dem; } // In dòng thông báo có phần tử x trong mảng và số lần xuất hiện
else
{ cout<<“\n Khong co phan tu ” ; x.display() ; cout<<” trong mang \n”; }
system(“\n\n pause”);
}

Hình ảnh minh họa kết quả chạy chương trình:

https://anninhmang.net/wp-content/uploads/2014/10/result-mydate.png

Lượt xem (2988)

About Hit Le

Hit Le

Xem thêm

header in c++

Tách chương trình lớn thành các file riêng

Tại sao cần phải tách Khi lập trình với bất cứ ngôn ngữ nào thì …

Để lại bình luận:

Loading Facebook Comments ...

Leave a Reply

Your email address will not be published. Required fields are marked *