#include<stdlib.h> 
#include<iostream> 
#include<cstring>
#include<iomanip>
#include<fstream>
using namespace std;

class VATTU {
private:
	char maVT[10];
	char tenVT[20];
	char hangVT[20];
	int soluong;
	int giaVT;
public:
	
	void  setmaVT(char* maVTIn) {
		strcpy(maVT,maVTIn);
	};  
	char*  getmaVT(){
		return maVT;
    };   
	
	void settenVT(char* tenVTIn)
	{
		strcpy(tenVT,tenVTIn);	
	};
	char* gettenVT() {
		return tenVT;
	};
	
	void sethangVT(char* hangVTIn){
		strcpy(hangVT,hangVTIn);
	}
	char* gethangVT(){
		return hangVT;
	}

	void  setsoluong(int soluongIn) {
		soluong = soluongIn;
    };  
	int   getsoluong() {
		return soluong;
	}; 
	void setgiaVT(int giaVTIn){
		giaVT = giaVTIn;
	}
	int getgiaVT(){
		return giaVT;
	}
	void  nhapVT();
	void  hienthiVT();
};

void VATTU::nhapVT() {
	char maVTIn[10];
	char tenVTIn[20];
	char hangVTIn[20];
	int soluongIn;
	int giaVTIn;
	cout << "Nhap ten vat tu:"; cin.ignore(); cin.getline(tenVTIn,20); settenVT(tenVTIn);
	cout << "Nhap ma vat tu: "; cin >> maVTIn; setmaVT(maVTIn);
	cout << "Nhap hang : "; cin.ignore(); cin.getline(hangVTIn,20); sethangVT(hangVTIn);
	cout << "Nhap gia: "; cin >> giaVTIn; setgiaVT(giaVTIn);
	cout <<"Nhap so luong: "; cin >> soluongIn; setsoluong(soluongIn);
}
void VATTU::hienthiVT(){
	cout << "\nMa vat tu : " << getmaVT() << endl;
	cout << "Ten vat tu :" << gettenVT() << endl;
	cout << "Hang: " << gethangVT() << endl;
	cout << "So luong : " << getsoluong() << endl;
	cout << "Don Gia: " << getgiaVT() << endl;
};

void menu() {
	cout << "Thong tin vat tu "<< endl;
	cout << "Push 1 nhap thong tin vat tu " << endl;
	cout << "Push 2 hien thi thong tin vat tu " << endl;
	cout << "Push 0 de thoat." << endl;

}

int choice() {
	int c;
	cout << "Ban chon: ";
	cin >> c;
	return c;
}


void option() {
	VATTU vt[100];
	int choose;
	do {
		menu();
		choose = choice();
		switch (choose) {
			case 1: {
				fstream fileOut("khoVT.txt", ios::out | ios::binary | ios::app);
				if (!fileOut) {    // Không mở được tệp 
					cout << "Khong the tao duoc tep tin " << endl;
					exit(1);
				}
	
				int n;
				cout << "So luong vat tu muon nhap: ";
				cin >> n;
				for (int i = 0; i < n; i++) {
					cout << "Thong tin vat tu " << i + 1 << endl;
					vt[i].nhapVT();
					fileOut.write(reinterpret_cast<char *>(vt),
						sizeof(VATTU));
				}
				fileOut.close();
				
				break;	
			}
			case 2: {
				int m = 0;
				fstream fileIn("khoVT.txt", ios::in | ios::binary);
	
				while (fileIn.read(reinterpret_cast<char *>(vt), sizeof(VATTU))) {
					m = m + 1;
				}
				for (int i = 0; i < m; i++) {
	
					vt[i].hienthiVT();
				}
				fileIn.close();
				break;
			}
		}
		
	} while (choose != 0);
}

int main() {

	option();
	return 0;
}
