Sao nó nhập chuỗi ký tự (Nguyen van a) nó lại k nhận nhỉ? Mong mọi người giúp đỡ!
#include<iostream>
using namespace std;
class SP
{
private:
float donggia;
int soluong;
float tinhthanhtien()
{
this->thanhtien = this->donggia * this->soluong;
return this->thanhtien;
}
public:
char *ten;
char *ID;
float thanhtien;
SP(){};
~SP(){};
void NhapSP()
{
cout << "Nhap gia tien: "; cin >> this->donggia;
cout << "Nhap so luong: "; cin >> this->soluong;
this->tinhthanhtien();
}
};
class hoadon
{
private:
char *tenkhachhang;
char *diachi;
int soluong;
float tongtien()
{
float S = 0;
for (int i = 0; i < soluong ; i++)
{
S = S + sanpham[i].thanhtien;
}
tongtien1 = S;
return this->tongtien1;
}
public:
SP sanpham[10];
// static int sosanpham;
float tongtien1;
hoadon()
{
tenkhachhang = new char[40];
diachi = new char[40];
};
~hoadon()
{
delete[] diachi;
delete[] tenkhachhang;
};
hoadon(int n)
{
soluong = n;
}
hoadon(SP sp[], int soluong)
{
this->soluong = soluong;
for (int i = 0; i < soluong; i++)
{
sanpham[i] = sp[i];
}
}
void themsp()
{
sanpham[soluong].NhapSP();
soluong++;
tongtien();
}
friend istream &operator >> (istream &is, hoadon& hd)
{
cout << "Nhap ten khach hang: "; is.getline(hd.tenkhachhang, 20);
cout << "Nhap dia chi khach hang: "; is.getline(hd.diachi, 20);
return is;
}
friend ostream &operator << (ostream &os, hoadon hd)
{
cout << "Ten khach hang: " << hd.tenkhachhang << endl;
cout << "Dia chi: " << hd.diachi << endl;
return os;
}
};
int main()
{
hoadon HD(0);
cin >> HD;
cout << HD;
int n;
cout << "Nhap so luong sp: "; cin >> n;
for (int i = 0; i < n; i++)
{
HD.themsp();
}
cout << "Tong tien thanh toan la: " << HD.tongtien1 << endl;
return 0;
}