Đọc file trong C++ Mạc Vấn Khai báo lớp Khách hàng (mã khách hàng, tên khách hàng, địa chỉ, số điện thoại, nhóm khách hàng) trong đó nhóm khách hàng có thể là mua lẻ, mua buôn. Khai báo lớp Mặt hàng ( mã mặt hàng, tên mặt hàng, đơn giá) . Đọc từ file KHACHHANG.txt, chuẩn hóa tên khách hàng và in danh sách khách hàng vừa nhập ra màn hình, mỗi khách hàng ghi trên một dòng, thông tin cách nhau một khoảng trống. Trong file, dòng đầu tiên ghi số khách hàng, mỗi khách hàng ghi trên bốn dòng gồm họ tên, địa chỉ, số điện thoại, nhóm khách hàng. Mã khách hàng là một số nguyên tự động tăng, từ 1000 Đọc từ file MATHANG.txt, chuẩn hóa tên mặt hàng và in danh sách mặt hàng vừa nhập ra màn hình, mỗi mặt hàng ghi trên một dòng, thông tin cách nhau một khoảng trống. Trong file, dòng đầu tiên ghi số mặt hàng, mỗi mặt hàng ghi trên hai dòng gồm tên, đơn giá. Mã khách hàng là một số nguyên tự động tăng, từ 100. Code demo: #include<iostream> #include<stdio.h> #include<string.h> #include<fstream> using namespace std; class Nguoi { protected: string ten, diaChi,sdt; public: Nguoi() { ten = diaChi = ""; sdt= ""; } }; class KhachHangublic Nguoi { protected: static int dem; int ma; string nhom; public: friend class DSKH; KhachHang() { ma=0; nhom= ""; } static void tangDem() { dem++; } }; int KhachHang::dem=1000; string chuanHoa(string s) { char t[100]="", kq[100]=""; int size = s.length(); for(int i=0; i<size; i++) { t=s; } char *p=strtok(t," "); while(p!=NULL) { p[0]=toupper(p[0]); for(int j=1; j<strlen(p); j++) { p[j]=tolower(p[j]); } strcat(kq,p); strcat(kq, " "); p=strtok(NULL, " "); } kq[strlen(kq)-1]='\0'; return kq; } class DSKH { protected: int n; KhachHang ds[100]; public: friend string chuanHoa(string s); void doc() { fstream in; in.open("KHACHHANG.TXT", ios::in); in>>n; string t; getline(in, t); for(int i=0; i<n; i++) { ds.ma = KhachHang::dem; KhachHang::tangDem(); getline(in, ds.ten); getline(in,ds.diaChi); getline(in,ds.sdt); getline(in,ds.nhom); } } void in() { for(int i=0; i<n; i++) { cout<<ds.ma<<"\t"<<chuanHoa(ds.ten)<<"\t"<<ds.diaChi<<"\t"<<ds.sdt<<"\t"<<ds.nhom<<endl; } } }; class MatHang{ protected: static int demm; int maMH; string tenMH; double gia; public: friend class DSMH; MatHang() { maMH=0; //nhom= ""; } static void tangDemm() { demm++; } void docMH(fstream &f){ string t; // f.open("SANPHAM.TXT",ios::in); maMH = demm; tangDemm(); getline(f,tenMH); f>>gia; getline(f,t); } void inMH(){ cout<<maMH<<"\t"<<chuanHoa(tenMH)<<"\t"<<gia<<endl; //cout<<chuanHoa(tenMH)<<endl; //cout<<gia<<endl; } }; int MatHang::demm=100; class DSMH{ protected: int m; MatHang dss[100]; public: void doc1(){ string temp; fstream fdoc; fdoc.open("MATHANG.TXT", ios::in); fdoc>>m; getline(fdoc, temp); for(int i=0; i<m;i++){ dss.docMH(fdoc); } } void in1(){ for(int i=0; i<m; i++){ dss.inMH(); } } }; main() { DSKH k; k.doc(); //k.chuanHoa(); k.in(); DSMH mh; mh.doc1(); mh.in1(); }