Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

em mới nhập môn nên cho em hỏi code em bị sai chỗ nào vậy ạ?

16:16 03-01-2022 496 lượt xem 1 bình luận

#include <iostream>
#include <iomanip> 
using namespace std;

struct NGAY
{
    int ngay, thang, nam;
};

class MATHANG
{
    private:
    char ma[10];
    char ten[30];
    NGAY nsx;
    int dg;
    public:
    MATHANG(char ma[10]="", char ten[30]="",int dg=0)
    {
        this->nsx.ngay = nsx.ngay;
        this->nsx.thang = nsx.thang;
        this->nsx.nam = nsx.nam;
    }
    ~MATHANG();
    void nhap()
    {
        cin.ignore();
        cout<<"\n-Nhap ma hang: "; cin.getline(ma, 10);
        cout<<"Nhap ten hang san xuat: "; cin.getline(ten, 30);
        cout<<"Nhap ngay xuat xuong: "; cin>> nsx.ngay >> nsx.thang >> nsx.nam;
        cout<<"Nhap don gia: "; cin>>dg;
    }
    void xuat()
    {
        cout<<"\nMa hang: "<<ma;
        cout<<"\nTen hang san xuat: "<<ten;
        cout<<"\nNgay xuat xuong: "<< nsx.ngay << nsx.thang << nsx.nam;
        cout<<"\nDon gia: "<<dg;
    }
};

class MTBANG : public MATHANG
{
    private:
    char tenHDH[10];
    int sl;
    public:
    MTBANG(char tenHDH[10]="", int sl=0);
    ~MTBANG();
    friend istream& operator >> (istream &is, MTBANG &a)
    {
        a.nhap();
        is.ignore();
        cout<<"\nNhap HDH: "; is.getline(a.tenHDH, 10);
        cout<<"Nhap so luong: "; is>>a.sl;
        return is;
    }
    friend ostream& operator << (ostream &os, MTBANG &a)
    {
        a.xuat();
        cout<<"\nHDH: "<<a.tenHDH;
        cout<<"\nSo luong: "<<a.sl;
        return os;
    }
    bool operator > (MTBANG &a);
};

bool MTBANG::operator >(MTBANG &a)
{
    return (this->sl < a.sl);
};

int main()
{
    int n;
    cout<<"Nhap so luong mat hang: "; cin>>n;
    MTBANG *a=new MTBANG[n];
    cout<<"\n\t\tNHAP THONG TIN MAT HANG!!! ";
    for(int i=0;i<n;i++)
    {
        cout<<"\n[+]Nhap thong tin mat hang thu "<<i+1;
        cin>>a[i];
    }
    cout<<"\n\t\tTHONG TIN MAT HANG!!!";
    for(int i=0;i<n;i++)
    {
        cout<<"\n[-]Thong tin mat hang thu "<<i+1;
        cout<<a[i];
    }
    
    for(int i=0; i<n; i++)
    {
        for(int j=i+1; j<n; j++)
        {
            if(a[i] > a[j])
            {
                MTBANG temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    cout<<"[+]DANH SACH SAN PHAM XEP THEO THU TU GIAM DAN!!!";
    for(int i=0;i<n;i++)
    {
        cout<<a[i];
    }
    cout<<endl;
    return 0;
}

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Vo Tan Duc đã bình luận 19:02 05-01-2022
Sai ở đâu vậy bạn?

Câu hỏi mới nhất