⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.h

📁 一个用vc实现的非常棒的图书管理信息系统
💻 H
字号:
typedef struct
{int number;
char num[5];
char book[20];
int p1;
char author[10];
int p2;
char press[20];
int p3;
char kind[10];
int store;
int lend;
}DataType;
typedef struct Node
{DataType data;
struct Node *next;
}SLNode;
typedef struct 
{char book[20];
int start1;
int length1;
}bookData;
typedef struct Node1
{bookData data;
struct Node1 *next;
}bookNode;
typedef struct
{char author[10];
int start2;
int length2;
}authorData;
typedef struct Node2
{authorData data;
 struct Node2 *next;
}authorNode;
typedef struct
{char press[20];
int start3;
int length3;
}pressData;
typedef struct Node3
{pressData data;
struct Node3 *next;
}pressNode;
int m=0,n=0;
void ListInitiate(SLNode **head)//初始化
{*head=(SLNode *)malloc(sizeof(SLNode));
(*head)->next=NULL;
}
void ListInsert(SLNode *head,int i)//插入
{int j=-1;
	SLNode *p,*q,*r,*s,*t,*w;p=head;r=head->next;s=head->next;t=head->next;w=head->next;

while(p->next!=NULL&&j<i-1)
{p=p->next;
j++;
}
q=(SLNode *)malloc(sizeof(SLNode));
(q->data).number=i+1;
printf("请输入有关数据:");
printf("书号:");
scanf("%s",(q->data).num);
printf("书名:");
scanf("%s",(q->data).book);
while(r!=NULL)
{if(strcmp((q->data).book,(r->data).book)==0)
{(q->data).p1=(r->data).number;break;}
r=r->next;
}if(r==NULL)(q->data).p1=0;
printf("作者:");
scanf("%s",(q->data).author);
while(s!=NULL)
{if(strcmp((q->data).author,(s->data).author )==0)
{(q->data).p2=(s->data ).number ;break;}
s=s->next ;
}if(s==NULL)(q->data ).p2=0;
printf("出版社:");
scanf("%s",(q->data).press );
while(t!=NULL)
{if(strcmp((q->data ).press ,(t->data ).press )==0)
{(q->data ).p3=(t->data ).number ;break;}
t=t->next ;
}if(t==NULL)(q->data ).p3=0;

while(w!=NULL)
{if(strcmp((q->data).book,(w->data).book)==0)
{strcpy((q->data ).kind,(w->data ).kind) ;break;}
w=w->next ;
}if(w==NULL){printf("分类号:");scanf("%s",(q->data ).kind );}
printf("藏书量:");scanf("%d",&(q->data ).store );
printf("借出数:");scanf("%d",&(q->data ).lend );
q->next =p->next ;
p->next =q;
}


void ListInitiate1(bookNode **head)//初始化书名表
{*head=(bookNode *)malloc(sizeof(bookNode));
(*head)->next=NULL;
}
void ListInsert1(bookNode *head1,SLNode *head)//建立书名表
{SLNode *p=head->next ;bookNode *q,*q0,*k;k=head1->next ;q0=head1;
while(p!=NULL)
{while(k!=NULL)
{if(strcmp((p->data).book ,(k->data ).book )==0)
{(k->data ).length1 ++;(k->data ).start1 =(p->data ).number ;break;}
q0=k;
k=k->next ;
}
if(k==NULL)
{q=(bookNode *)malloc(sizeof(bookNode));
strcpy((q->data).book ,(p->data ).book );(q->data ).length1 =0;
(q->data ).length1 ++;
(q->data ).start1 =(p->data ).number ;
q->next =q0->next ;
q0->next =q;
}
p=p->next ;
}
}

void ListInitiate2(authorNode **head)//初始化作者表
 {*head=(authorNode *)malloc(sizeof(authorNode));
(*head)->next=NULL;
}

void ListInsert2(authorNode *head2,SLNode *head)//建作者表
{SLNode *p=head->next;authorNode *q,*q0,*k;k=head2->next ;q0=head2;
while(p !=NULL)
{while(k!=NULL)
{if(strcmp((p->data ).author ,(k->data ).author )==0)
{(k->data ).length2 ++;
(k->data ).start2 =(p->data ).number ;break;}
q0=k;
k=k->next ;
}
if(k==NULL)
{q=(authorNode *)malloc(sizeof(authorNode));
strcpy((q->data).author ,(p->data ).author) ;(q->data ).length2 =0;
(q->data ).length2 ++;
(q->data ).start2 =(p->data ).number ;
q->next =q0->next ;
q0->next =q;
}
p=p->next ;
}
}


void ListInitiate3(pressNode **head)//初始化出版社表
 {*head=(pressNode *)malloc(sizeof(pressNode));
(*head)->next=NULL;
}

void ListInsert3(pressNode *head3,SLNode *head)//建出版社表
{SLNode *p=head->next ;pressNode *q,*q0,*k;k=head3->next ;q0=head3;
while(p !=NULL)
{while(k!=NULL)
{if(strcmp((p->data ).press ,(k->data ).press )==0)
{(k->data ).length3 ++;
(k->data ).start3 =(p->data ).number ;break;}
q0=k;
k=k->next ;
}
if(k==NULL)
{q=(pressNode *)malloc(sizeof(pressNode));
strcpy((q->data).press ,(p->data ).press) ;(q->data ).length3 =0;
(q->data ).length3 ++;
(q->data ).start3 =(p->data ).number ;
q->next =q0->next ;
q0->next =q;
}
p=p->next ;
}
}



void bookfind(bookNode *head1,SLNode *head)//书名查询
{char name[12];bookNode *p=head1->next;int i,a,b,n,flag=0;SLNode *q=head->next;


printf("请输入要查询的书名:");
scanf("%s",name);
while(p!=NULL)
{if(strcmp((p->data).book,name)==0)
{a=(p->data).start1;b=(p->data ).length1 ;flag=1;
n=a;
for(i=0;i<b;i++)
{q=head->next;
while(q!=NULL)
{if((q->data ).number==n)
{printf("书号:%s\n",(q->data ).num );
printf("书名:%s\n",(q->data ).book );
printf("作者:%s\n",(q->data ).author);
printf("出版社:%s\n",(q->data ).press);
printf("分类:%s\n",(q->data ).kind );
printf("藏书量:%d\n",(q->data ).store );
printf("借出量:%d\n\n\n",(q->data ).lend); break;
}q=q->next ;
}
n=(q->data).p1 ;
}
}
p=p->next ;
}
if(p==NULL&&flag==0)printf("对不起,没找到\n");
}

void authorfind(authorNode *head2,SLNode *head)//作者查询
{char name[12];authorNode *p=head2->next;int i,a,b,n,flag=0;SLNode *q=head->next;


printf("请输入要查询的作者名:");
scanf("%s",name);
while(p!=NULL)
{if(strcmp((p->data).author,name)==0)
{a=(p->data).start2;b=(p->data ).length2 ;flag=1;
n=a;
for(i=0;i<b;i++)
{q=head->next;
while(q!=NULL)
{if((q->data ).number==n)
{printf("书号:%s\n",(q->data ).num );
printf("书名:%s\n",(q->data ).book );
printf("作者:%s\n",(q->data ).author);
printf("出版社:%s\n",(q->data ).press);
printf("分类:%s\n",(q->data ).kind );
printf("藏书量:%d\n",(q->data ).store );
printf("借出量:%d\n",(q->data ).lend); break;
}q=q->next ;
}
n=(q->data).p1 ;
}
}
p=p->next ;
}
if(p==NULL&&flag==0)printf("对不起,没找到\n");
}



void pressfind(pressNode *head3,SLNode *head)//出版社查询
{char name[12];pressNode *p=head3->next;int i,a,b,n,flag=0;SLNode *q=head->next;


printf("请输入要查询的出版社名:");
scanf("%s",name);
while(p!=NULL)
{if(strcmp((p->data).press,name)==0)
{a=(p->data).start3;b=(p->data ).length3 ;flag=1;
n=a;
for(i=0;i<b;i++)
{q=head->next;
while(q!=NULL)
{if((q->data ).number==n)
{printf("书号:%s\n",(q->data ).num );
printf("书名:%s\n",(q->data ).book );
printf("作者:%s\n",(q->data ).author);
printf("出版社:%s\n",(q->data ).press);
printf("分类:%s\n",(q->data ).kind );
printf("藏书量:%d\n",(q->data ).store );
printf("借出量:%d\n\n\n",(q->data ).lend); break;
}q=q->next ;
}
n=(q->data).p1 ;
}
}
p=p->next ;
}
if(p==NULL&&flag==0)printf("对不起,没找到\n");
}


void booklend(SLNode *head)//书号借书
{char num[5];SLNode *q=head->next;char c;int flag =0;


printf("请输入要借的书号:");
scanf("%s",num);


while(q!=NULL)
{if(strcmp((q->data ).num,num)==0)
{flag=1;
	printf("书号:%s\n",(q->data ).num );
printf("书名:%s\n",(q->data ).book );
printf("作者:%s\n",(q->data ).author);
printf("出版社:%s\n",(q->data ).press);
printf("分类:%s\n",(q->data ).kind );
printf("藏书量:%d\n",(q->data ).store );
printf("借出量:%d\n\n\n",(q->data ).lend); 
printf("是否需要借书y/n?");
scanf("%c",&c);
scanf("%c",&c);
if(c=='y')
{(q->data ).lend++;
if((q->data ).lend>(q->data).store)
{(q->data ).lend=(q->data ).store;
	printf("已借完!\n");m=1;}

 else printf("借书成功!\n");}


}q=q->next ;
}
if(q==NULL&&flag==0)printf("没找到,请重新输入\n");


}





void numfind(SLNode *head)//书号查询
{char num[5];SLNode *q=head->next;


printf("请输入要查询的书号:");
scanf("%s",num);


while(q!=NULL)
{if(strcmp((q->data ).num,num)==0)
{
	printf("书号:%s\n",(q->data ).num );
printf("书名:%s\n",(q->data ).book );
printf("作者:%s\n",(q->data ).author);
printf("出版社:%s\n",(q->data ).press);
printf("分类:%s\n",(q->data ).kind );
printf("藏书量:%d\n",(q->data ).store );
printf("借出量:%d\n\n\n",(q->data ).lend); break;
}q=q->next ;
}
if(q==NULL)printf("没找到,请重新输入\n");


}



void bookback(SLNode *head)//书号还书
{char num[5];SLNode *q=head->next;char c;int flag =0;


printf("请输入要还的书号:");
scanf("%s",num);


while(q!=NULL)
{if(strcmp((q->data ).num,num)==0)
{flag=1;
	printf("书号:%s\n",(q->data ).num );
printf("书名:%s\n",(q->data ).book );
printf("作者:%s\n",(q->data ).author);
printf("出版社:%s\n",(q->data ).press);
printf("分类:%s\n",(q->data ).kind );
printf("藏书量:%d\n",(q->data ).store );
printf("借出量:%d\n\n\n",(q->data ).lend); 
printf("是否需要还书y/n?");
scanf("%c",&c);
scanf("%c",&c);
if(c=='y')
{(q->data ).lend--;
if((q->data ).lend<0){printf("书未借,不能还!\n");n=1;(q->data ).lend=0;}


else printf("还书成功!\n");}


}q=q->next ;
}
if(q==NULL&&flag==0)printf("没找到,请重新输入\n");


}













⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -