#include
#include
using namespace std;
const int MAX_READER_NUM=30;
const int MAX_BOOKS_NUM=50;
const INFINITY=0;
enum {ERROR=12345};
//借阅者
typedef struct
{
ID;
int
char Name[15];
char Sex[7];
char Birthday[11];
char PhoneNumber[12];
char Password[20];
}Reader;
//图书信息
typedef struct
{
int Number;
char Name[30];
char Author[15];
int Price;
}Book;
//图书馆类
typedef struct
{
Reader Readers[MAX_READER_NUM];
Book Books[MAX_BOOKS_NUM];
int Links[MAX_READER_NUM][MAX_BOOKS_NUM];
int Readernum,Booknum,Linknum;
}library;
//全局变量初始化
Reader R[10]=
{
{20081101,"zhangyi","man","1992-01-01","15191810001","20111101abc"},
{20081102,"zhanger","woman","1992-01-02","15191810002","20111102abc"},
{20081103,"zhangsan","man","1992-01-03","15191810003","20111103abc"},
{20081104,"zhangsi","woman","1992-01-04","15191810004","20111104abc"},
{20081105,"zhangwu","man","1992-01-05","15191810005","20111105abc"},
{20081106,"zhangliu","woman","1992-01-06","15191810006","20111106abc"},
{20081107,"zhangqi","man","1992-01-07","15191810007","20111107abc"},
{20081108,"zhangba","woman","1992-01-08","15191810008","20111108abc"},
{20081109,"zhangjiu","man","1992-01-09","15191810009","20111109abc"},
{20081110,"zhangshi","woman","1992-01-10","15191810010","20111110abc"}
};
Book B[10]=
{
{10001,"book1","jack1",10001},
{10002,"book2","jack2",10002},
{10003,"book3","jack3",10003},
{10004,"book4","jack4",10004},
{10005,"book5","jack5",10005},
{10006,"book6","jack6",10006},
{10007,"book7","jack7",10007},
{10008,"book8","jack8",10008},
{10009,"book9","jack9",10009},
{10010,"book10","jack10",10010}
};
//*********************************************************************** 定 位
读
者
*****************************************************************************
int LocateReader(library *L,char name[])
{
int k=0,i,flag=0;
for(i=0;iReadernum;i++)
if(strcmp(L->Readers[i].Name,name)==0)
{k=i;flag=1;}
if(flag==1) return k;
if(flag==0) return ERROR;
}
//********************************************************************* 书 名 定 位
图
书
****************************************************************************
int LocateBook(library *L,char name[])
{
}
int k=0,i,flag=0;
for(i=0;iBooknum;i++)
if(strcmp(L->Books[i].Name,name)==0)
{k=i;flag=1;}
if(flag==1) return k;
if(flag==0) return ERROR;
//******************************************************************** 作 者 定 位
图
书
*****************************************************************************
int LocateBookA(library *L,char name[])
{
int k=0,i,flag=0;
for(i=0;iBooknum;i++)
if(strcmp(L->Books[i].Author,name)==0)
{k=i;flag=1;}
if(flag==1) return k;
if(flag==0) return ERROR;
}
//********************************************************************* 初 始 化 图
书馆***************************************************************************
void Initialization(library *L)
{
int i,j,k;
char TempReader[15],TempBook[30];
void PrintBook(library *L);
void PrintReader(library *L);
for(i=0;i<10;i++)
{
L->Readers[i]=R[i];
L->Books[i]=B[i];
}
L->Readernum=10;
L->Booknum=10;
for(i=0;iReadernum;i++)
for(j=0;j
Booknum;j++)
L->Links[i][j]=INFINITY;
cout<<"************************************************************************
*******"<>L->Linknum;fflush(stdin);
for(k=0;kLinknum;k++)
{
下 面 请 你 完 成 初 始 化 工 作
while(1)
{
cout<<"请输入第"<>TempBook;fflush(stdin);
j=LocateBook(L,TempBook);
if(j==ERROR)
{
PrintBook(L);
cout<<"\n!!!!!无此记录!!!!!"<>TempReader;fflush(stdin);
i=LocateReader(L,TempReader);
if(i!=ERROR)break;
else {PrintReader(L);cout<<"!!!!!无此记录!!!!!"<Links[i][j]=1;
}
cout<<"***********************************
**************************************"<//***************************************************************管理员增加读者
******************************************************************************
void AddReader(library *L)
{
int k;
cout<<"请输入要增加的人的卡号(即学号):";
cin>>L->Readers[L->Readernum].ID;
cout<<"请输入借阅者的名字:";
cin>>L->Readers[L->Readernum].Name;
cout<<"请输入借阅者的性别:('man'or'woman')";
cin>>L->Readers[L->Readernum].Sex;
cout<<"请输入借阅者的生日(****-**-**):";
cin>>L->Readers[L->Readernum].Birthday;
cout<<"请输入借阅者的电话:";
cin>>L->Readers[L->Readernum].PhoneNumber;
cout<<"请输入借阅者的登录密码:";
cin>>L->Readers[L->Readernum].Password;
for(k=0;kBooknum;k++)
L->Links[L->Readernum][k]=INFINITY;
L->Readernum++;
cout<<"***********************************
**************************************"<>tempname;fflush(stdin);
Pos=LocateReader(L,tempname);
if(Pos==ERROR)
PrintReader(L);
cout<
>choice;
fflush(stdin);
if(choice=='y'||choice=='Y')
{
for(i=Pos;i<=L->Readernum;i++)
{
L->Readers[i]=L->Readers[i+1];
for(j=0;jBooknum;j++)
L->Links[i][j]=L->Links[i+1][j];
}
L->Readernum--;
cout<cout<<"请输入你想加入的书的编号:";
cin>>L->Books[L->Booknum].Number;
cout<<"请输入这本书的书名:";
cin>>L->Books[L->Booknum].Name;
cout<<"请输入这本书的作者:";
cin>>L->Books[L->Booknum].Author;
cout<<"请输入这本书的价钱:";
cin>>L->Books[L->Booknum].Price;
L->Booknum++;
for(k=0;k
Readernum;k++)
L->Links[k][L->Readernum]=INFINITY;
cout<<"***********************************
**************************************"<>tempname;
cout<<"你确定要删除"<>choice;
fflush(stdin);
fflush(stdin);
//确认输入
if(choice=='y'||choice=='Y')
{
Pos=LocateBook(L,tempname);
for(i=Pos;i<=L->Booknum;i++)
{
L->Books[i]=L->Books[i+1];
for(j=0;jReadernum;j++)
L->Links[i][j]=L->Links[i][j+1];
}
L->Booknum--;
cout<}
//否定输入
if(choice=='n'||choice=='N')
{
cout<>choice;
//按书名检索
if(choice==1)
{
cout<<"请输入你要检索的书目名称:";
cin>>TempName;
k=LocateBook(L,TempName);
for(i=0;iReadernum;i++)