+ 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


LinkBack URL
About LinkBacks

Trả lời với trích dẫn
