[r]
(1)#include <iostream.h> #include <conio.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <iomanip.h> #include <ctype.h> #include <fstream.h> class sach
{
public:
int sosach;
char tensach[30],theloai[30]; char masach[10];
void insach(); void nhapds_sach(); void nhapsach(); };
class phieu :public ds_sach {
public:
char maphieu[10]; char docgia[30]; int ngay,thang,nam; int sosachmuon; int sophieu; int ngaymuon; int ngaytra; void nhapphieu(); void inphieu(); };
class ds_phieu :public phieu {
public:
phieu *P;
void nhapds_phieu();
void timphieu(char ma[10]); void xoaphieu(char ma[10]); void themphieu(phieu y); void inds_phieu();
void thongke_quahan(); void muonsach();
void kiemtrasach(); void docphieu(); void ghiphieu(); };
int i,j,chon;
void sach::nhapsach() {
printf("nhap ma sach: "); cin.getline(masach,10); printf("nhap ten sach: "); cin.getline(tensach,30); printf("nhap the loai: "); cin.getline(theloai,30); }
void sach::nhapds_sach() {
(2)S=new sach[sosach+1]; for(int i=1;i<=sosach;i++) S[i].nhapsach();
}
void phieu::nhapphieu() {
printf("nhap ma phieu muon: "); cin.getline(maphieu,10);
printf("nhap ma sach muon: "); cin.getline(masach,10);
printf("nhap ten doc gia: "); cin.getline(docgia,30);
printf("nhap thang nam : "); cin>>ngay>>thang>>nam;
printf("nhap muon sach: "); cin>>ngaymuon;
printf("nhap tra sach: "); cin>>ngaytra;
printf("nhap so sach muon: "); cin>>sosachmuon;
}
void phieu::inphieu() {
printf("============================================="); printf("in thong tin phieu");
printf("ma phieu:%s\nma sach muon:%s\ndocgia:%s\nngaymuon:%s\nngaytra: %s\n”,maphieu,masach,docgia, ngaymuon,ngaytra);
}
void ds_phieu::nhapds_phieu() {
printf("nhap so phieu: "); scanf(“%d”,&sophieu); P=new phieu[sophieu+1]; for(int i=1;i<=sophieu;i++) {
printf("nhap thong tin phieu"); P[i].nhapphieu();
} }
void ds_phieu::timphieu(char ma[10]) {
int i=1;
while(i<=sophieu && strcmp(P[i].maphieu,ma)!=0) i++;
if(i>sophieu)
printf("khong co phieu nay"); else
{
printf("da tim thay-in thong tin phieu”); P[i].inphieu();
} }
void ds_phieu::themphieu(phieu y) {
sophieu++; P[sophieu]=y; }
void ds_phieu::xoaphieu(char ma[10]) {
(3)while(i<=sophieu && strcmp(P[i].maphieu,ma)!=0) i++;
if(i>sophieu)
printf("khong co phieu nay"); else
{
printf("da tim thay-thuc hien xoa phieu"); for(int j=i;j<=sophieu;j++)
P[j]=P[j+1]; }
}
void ds_phieu::inds_phieu() {
printf("in thong tin phieu"); for(int i=1;i<=sophieu;i++) P[i].inphieu();
}
void ds_phieu::thongke_quahan() {
for(int i=1;i<=sophieu;i++) if(P[i].ngaytra-P[i].ngaymuon>5)
printf("ten doc gia muon sach qua ngay”,P[i].docgia); }
void ds_phieu::muonsach() {
char docgia[30]; int ch;
int ms;
printf("nhap ten doc gia: "); cin.getline(docgia,30);
printf(" da tra sach chua ? - C/K"); ch=toupper(getch());
if(ch=='C')
printf("da tra sach"); sosach=sosach+1;
printf("doc gia muon sach "); S.docsach();
printf("co sach khong ? -Y/N?"); ms=toupper(getch());
if(ms=='Y')
printf("con sach - cho doc gia muon"); sosach=sosach-1;
S.insach; else
printf("da het sach"); }
void sach::insach() {
printf("=========================================================="); printf"thong tin sach");
printf("ma sach:%s\nten sach:%s\nthe loai",masach,tensach,theloai); }
void ds_phieu::ghiphieu() {
char taptin[10];
strcpy(taptin,"DS_phieu.txt"); ofstream f(taptin,ios::app); if(f.bad()!=0)
(4)exit(1); f<<sophieu;
for(int i=1;i<=sophieu;i++)
f<<setw(10)<<P[i].maphieu<<setw(10)<<P[i].masach<<setw(30)<<P[i].docgia<<se tw(10)<<P[i].ngaymuon<<setw(10)<<P[i].ngaytra<<endl;
printf("ghi tot"); f.close();
}
void ds_phieu::docphieu() {
char taptin[10];
strcpy(taptin,"DS_phieu"); ifstream f(taptin,ios::in); if(f.bad()!=0)
{
printf("loi doc tap tin"<<endl; getch();
exit(1); }
f>>sophieu;
for(int i=1;i<=sophieu;i++) {
f.read(P[i].maphieu,10); f.read(P[i].masach,10); f.read(P[i].docgia,30); f>>P[i].ngaymuon;
f>>P[i].ngaytra; f.ignore(); }
printf("doc tot"); f.close();
}
void thucdon(int *chon) {
printf("1-nhap ds phieu"); printf("2-in ds phieu"); printf("3-tim phieu"); printf("4-them phieu"); printf("5-xoa phieu"); printf("6-muon sach"); printf("7-docphieu"); printf("8-ghi phieu");
printf("9-thong ke doc gia qua han"); printf("10-nhap ds sach ");
printf("0-thoat");
printf("chon cac muc tren: "); scanf(“%d”,&*chon);
}
void main() {
clrscr(); char ma[10]; ds_sach A; ds_phieu B;
{
thucdon(&chon); switch(chon) {
(5){
clrscr();
printf("1-nhap ds phieu: "); B.nhapds_phieu();
break; }
case 2: {
clrscr();
printf("2-in ds phieu"); B.inds_phieu();
break; }
case 3: {
clrscr();
printf("nhap ma so phieu can tim: "); cin.getline(ma,10);
B.timphieu(ma); break;
}
case 4: {
clrscr(); phieu x;
x.nhapphieu(); B.themphieu(x); break;
}
case 5: {
clrscr();
printf("nhap ma so phieu can xoa: "); cin.getline(ma,10);
B.xoaphieu(ma); break;
}
case 6: {
clrscr(); B.muonsach(); break;
}
case 7: {
clrscr(); B.docphieu(); break;
}
case 8: {
clrscr(); B.ghiphieu(); break;
}
case 9: {
clrscr();
(6)}
case 10: {
clrscr();
printf("nhap danh sach sach"); A.nhapds_sach();
break; }
}
getch(); }