+ Thông tin sách : Mã sách, tên sách , thể loại, số lượng. Các công việc phải quản lý

gồm : - Nhập danh sách sách – Tìm sách – Thêm sách mới – Thống kê sách theo thể

loại – In danh sách sách – Kiểm tra số lượng một mã sách để đáp ứng yêu cầu mượn

của độc giả .



+ Thông tin phiếu mượn sách : số phiếu , tên độc giả , ngày tháng năm mượn , mã

sách mượn , tình trạng sách , trả chưa . Các công việc phải quản lý gồm : - Nhập

danh sách phiếu mượn – Tìm phiếu mượn – Thêm phiếu mượn mới – In danh sách

phiếu mượn theo ngày – In danh sách phiếu mượn – In danh sách các phiếu mượn

của độc giả mượn quá hạn ( quá 5 ngày ). Trong khi nhập mã sách trong phiếu mượn

có kiểm tra mã sách này có trong danh sách sách không ? , nếu có tiếp tục kiểm tra số

lượng có còn không ? để đáp ứng yêu cầu mượn của độc giả . Mỗi lần cho mượn một

đầu sách thì số lượng đầu sách này trong danh sách sách sẽ giảm xuống 1 và mỗi lần

trả sẽ tăng lên một . Trong môt phiếu mượn chophép mượn nhiều đầu sách .



+ Các thông tin sách và phiếu mượn phải được lưu trên tập tin để đáp ứng yêu cầu

quản lý lâu dài.

+ Chương trình phải thiết kế dạng thực đơn để người sử dụng thực hiện nhiều lần.

+ Sinh viên tự xây dựng thêm một số chức năng mà mình hiểu để đáp ứng các yêu

cầu xử lý thống kê thông tin trong thực tế.

Code:

#include

#include

#include

#include

#include

#include

#include

#include



class sach

{

private:

int masach;

char tensach[30];

char tentg[30];

char nhaxuatban[30];

int soluongton;

protected:

sach *A;

int n;//so chung loai sach (sach lich su,dia ly,khoa hoc...)

public:

void nhap_sach();

void in_sach();

void tim_sach(char ten[30]);



};

void sach::nhap_sach()

{

fstream File;

File.open("sach.txt",ios::out);

if(!File)

{

cout<<"Khong the mo File";

return;

}

cout<<"Nhap so sach: ";

cin>>n;

cin.ignore();

A=new sach[n];

for(int i=0;i<=n;i++)

{

cout<<" Nhap vao sach thu "<<(i+1)<
cout<<"Nhap ma sach: ";

cin>>A[i].masach;

File<
cin.ignore();

cout<<"Nhap ten sach: ";

cin.getline(A[i].tensach,30);

File<
cout<<"Nhap ten tac gia: ";

cin.getline(A[i].tentg,30);

File<
cout<<"Nhap nha xuat ban: ";

cin.getline(A[i].nhaxuatban,30);

File<
cout<<"Nhap so luong ton kho: ";

cin>>A[i].soluongton;

File<
cin.ignore();

}

cout<<"ghi file tot"<
File.close();

}

void sach::tim_sach(char ten[30])

{

int i=1;

while(i<=n && strcmp(A[i].tensach,ten)!=0)

if(i>n)

cout<<"khong co sach nay hoac sach da het"<
else

{

cout<<"da tim thay sach - in thong tin sach ra man hinh"<
A[i].in_sach();

}

}

void sach::in_sach()

{

cout<<"in thong tin cua cuon sach"<
cout<<"=========================================== ========================="<
for(int i=0;i<=n;i++)

{

cout<<"-----Thong tin sach thu---: "<
cout<<"Ma sach "<
cout<<"Ten sach "<
cout<<"Ten tac gia "<
cout<<"Nha xuat ban "<
}

}



class phieumuon :public sach

{

private:

char maphieumuon[10];

char tendocgia[30];

int masach;

int ngaymuon;

int ngaytra;

int sosachmuon;

protected:

phieumuon *B;

int n; //so phieu muon

int masachFile[100];

char tensach[30];

char tentg[30];

char nhaxuatban[30];

int soluongton[30];

int soluongsach; //so luong sach

public:

void capnhatFile();



void nhaptuFile();



void nhapphieu();

void tim_phieu_muon(char muon[10]);

void inphieu();



};

void phieumuon::tim_phieu_muon(char muon[10])

{

int i=1;

while(i<=n && strcmp(B[i].maphieumuon,muon)!=0)

if(i>n)

cout<<"khong tim thay phieu muon nay"<
else

{

cout<<"da tim thay - in thong tin phieu muon"<
B[i].inphieu();

}

}



void phieumuon::capnhatFile()

{

fstream File;

File.open("sach.txt",ios::out);

if(!File)

{

cout<<"Khong the mo file";

return;

}

for(int i=0;i
{

File<
File<
File<
File<
File<
}

cout<<"da cap nhat file tot"<
getch();

File.close();

}

void phieumuon::nhaptuFile()

{

fstream File;

int i=0;

File.open("sach.txt",ios::in);

if(!File)

{

cout<<"KHONG TIM THAY FILE";

return;

}

for(int i=0; ;i++)

{

if(File.eof())

{

break;

}

File>>masachFile[i];

File>>tensach[i];

File>>tentg[i];

File>>nhaxuatban[i];

File>>soluongton[i];

}

soluongsach = i; //so dong / so truong

}



void phieumuon::nhapphieu()

{

cout<<"nhap so phieu: ";

cin>>n;

int j;

cin.ignore();

B= new phieumuon[n];

for(int i=0;i
{

cout<<"\n______Nhap phieu thu "<<(i+1)<<" _______\n";

cout<<"Nhap ma phieu: "<
cin>>B[i].maphieumuon;

cin.ignore();

cout<<"Nhap ten doc gia: "<
cin.getline(B[i].tendocgia,30);

cout<<"Nhap ma sach: "<
cin>>B[i].masach;

cout<<"Nhap so sach muon: "<
cin>>B[i].sosachmuon;

cout<<"Nhap ngay muon: "<
cin>>B[i].ngaymuon;

cout<<"Nhap ngay tra: "<
cin>>B[i].ngaytra;

cin.ignore();



// kiem tra luon

for(j=0;j
{

if(B[i].masach==masachFile[j] )

{

if(B[i].sosachmuon>soluongton[j])

{

cout<<"\n Khong co loai sach nay trong thu vien hoac khong co du sach"<
break;

}

else

{

cout<<"\n Con sach cho ban muon"<
soluongton[j] = soluongton[j] - sosachmuon; //cap nhat tren bo nho

capnhatFile(); //cap nhat tren File

break;

}

}

}

if(soluongsach==j)

{

cout<<"\n Khong co sach cho ban muon "<
}

}

}



void phieumuon::inphieu()

{

cout<<"_____________________IN RA PHIEU MUON________________"<


for(int i=0;i
{

cout<<"\n____________________Nguoi muon thu "<<(i+1)<<"____________"<
cout<<"Ma phieu muon: "<
cout<<"Ten doc gia: "<
cout<<"Ma sach: "<
cout<<"Ngay muon sach: "<
cout<<"Ngay tra sach: "<
cout<<"So sach muon: "<
}

}



void thucdon(int *chon)

{

cout<<"1-nhap danh sach sach"<
cout<<"2-tim sach trong thu vien"<
cout<<"3-in thong tin sach ra man hinh"<
cout<<"4-Them sach vao trong thu vien"<
cout<<"5-Thong ke sach theo the loai"<
//===============================================

cout<<"6-nhap danh sach phieu muon"<
cout<<"7-tim phieu muon"<
cout<<"8-them phieu muon moi"<
cout<<"9-in danh sach phieu muon theo ngay"<
cout<<"10-in danh sach phieu muon"<
cout<<"11-in danh sach doc gia muon sach qua 5 ngay"<
cout<<"12-nhap tu File"<
cout<<"13-cap nhat File"<
cout<<"0-thoat"<
cin>>*chon;

}

void main()

{

int chon;

sach B;

phieumuon C;

char ten[30];

char muon[10];

do

{

thucdon(&chon);

switch(chon)

{

case 1:

{

clrscr();

B.nhap_sach();

break;

}

case 2:

{

clrscr();

cin.ignore();

cout<<"nhap ten sach can tim ";

cin.getline(ten,30);

B.tim_sach(ten);

break;

}

case 3:

{

clrscr();

B.in_sach();

break;

}

case 12:

{

clrscr();

C.nhaptuFile();

break;

}

case 6:

{

clrscr();

C.nhapphieu();

break;

}

case 7:

{

clrscr();

cin.ignore();

cout<<"nhap ma so phieu can tim ";

cin.getline(muon,10);

C.tim_phieu_muon(muon);

break;

}

case 9:

{

clrscr();

C.inphieu();

break;

}

}

getch();

}while(chon!=0);

}



mình làm còn thiếu nhiều phần chạy chương trình bị lỗi hoài mong mọi người FIX lại bài với sắp phải nộp rồi 7/7

nếu được giúp mình làm thêm hàm thêm sách,thêm phiếu với

mình cần gấp mong mọi người chữa bài hộ Thanks các bạn trước