#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct library
{
int num;
char name[20] ;
char author[20] ;
struct librarynext;
};//定义结构体
int main()
{
int n,c=0,l,flag;
char s[20];
struct library head,p,q;/定义指针/
head=(struct library)malloc(sizeof(struct library));
head->num=0;
strcpy(head->name,“null”);
strcpy(head->author,“null”);
head->next=NULL;/初始化/
while(c!=5){
printf(“简易图书管理系统\n”);
printf(“1.添加图书信息\n”);
printf(“2.显示所有图书信息\n”);
printf(“3.根据序号查找图书和作者\n”);
printf(“4.根据序号删除指定图书\n”);
printf(“5.退出系统\n”);
printf("*******************************\n");
printf(“输入序号:”);
scanf("%d",&c);
switch(c)
{
case 1:
flag=1;
p=(struct library*)malloc(sizeof(struct library));
q=(struct library*)malloc(sizeof(struct library));
p=head;
printf("请输入序号(数字):");
scanf("%d",&n);
while((p->next)!=NULL)
{
p=p->next;
if(p->num==n)
{
printf("已存在。\n");
flag=0;
break;
}
}
if(flag==1)
{
q->num=n;
printf("请输入书名:");
scanf("%s",s);
strcpy(q->name,s);
printf("请输入作者:");
scanf("%s",s);
strcpy(q->author,s);
p->next=q;
q->next=NULL;
printf("添加成功。\n");
}
system("PAUSE");
system("CLS");
break;
case 2:
if(head->next==NULL)
printf("没有书籍信息。\n");
else
{
printf("序号 书名 作者\n");
for(p=head->next;p!=NULL;p=p->next)
printf("%-12d%-12s%-12s\n",p->num,p->name,p->author);
}
system("PAUSE");
system("CLS");
break;
case 3:
flag=0;
if(head->next==NULL)
printf("没有书籍信息。\n");
else
{
flag=1;
printf("请输入序号");
scanf("%d",&n);
for(p=head;p!=NULL;p=p->next)
if(p->num==n)
{printf("书名:%s\n作者:%s。\n",p->name,p->author);flag=0;}
}
if(flag==1)
printf("没有该序号对应的书籍。\n");
system("PAUSE");
system("CLS");
break;
case 4:
if(head->next==NULL)
printf("没有图书信息!\n");
else
{
q=(struct library*)malloc(sizeof(struct library));
flag=1;
printf("请输入删除书本的书号:");
scanf("%d",&n);
for(p=head;p!=NULL;p=p->next)
{
if((p->next)->num==n)
{
q=(p->next)->next;
free(p->next);
p->next=q;
printf("删除成功\n");
flag=0;
break;
}
}
}
if(flag==1)
printf("没有对应的书号!\n");
system("PAUSE");
system("CLS");
break;
case 5:
break;
default :
printf("输入错误!\n");
system("PAUSE");
system("CLS");
}
}
system(“PAUSE”);
return 0;
}