+ 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