图书管理系统数据结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

struct book /*图书信息*/

{

int num; /*书号*/

char name[10]; /*书名*/

char where[10]; /*所在书库*/

char author[15]; /*作者*/

char pub[20]; /*出版社*/

int count; /*数量*/

struct book *next;

};

/*输出模块*/

void print(struct book *p0)

{

struct book *p;

p=p0->next;

printf("\n\n\t\t^^^^^^^^^^^^^^图书信息表

^^^^^^^^^^^^^^");

printf("\n\n图书编号---图书名称---所在书库----作者----出版社---数量\n"); while(p!=NULL)

{

printf(PT);

p=p->next;

}

getch();

}

/*输入模块*/

struct book *creat()

{

struct book *head,*p1,*p2;

int i=0;

head=p2=(struct book *)malloc(N);

head->next=NULL;

printf("\n\n\t\t录入图书信息");

printf("\n\t---------------------------------------");

while(1)

{ p1=(struct book *)malloc(N);

printf("\n 请输入图书编号(书号为0结束): ");

scanf("%d",&p1->num);

if(p1->num!=0)

{

printf("\n\n书名所在书库作者出版社图书数量\n");

scanf("%s%s%s%s%d",p1->name,p1->where,p1->author,p1->pub,&p1->cou nt);

p2->next=p1;

p2=p1;

i++;

}

else

break;

}

p2->next=NULL;

free(p1);

printf("\n\t\t----------------------------------------"); printf("\n\t\t %d 种书录入完毕",i);

getch();

return head;

}

/*查找模块*/

void find(struct book *p0)

{

char name[10];

int flag=1;

struct book *p;

p=p0->next;

printf("请输入要查找的书名:\n");

scanf("%s",name);

for(p=p0;p;p=p->next)

if(strcmp(p->name,name)==0)

{

printf("\n\n图书编号---图书名称---所在书库----作者----出版社---数量\n"); printf(PT);

flag=0;

break;

}

if(flag) printf("\n 暂无此图书信息\n");

getch();

}

/*删除模块*/

void del(struct book *p0)

{

char name[10];

int flag=1;

struct book *p;

p=p0;

printf("请输入要删除的书名:\n");

scanf("%s",name);

while(p!=NULL)

{

if(strcmp(p->name,name)==0)

{

p0->next=p->next; /*后续节点连接到前驱节点之后*/ free(p);

printf("\t该书资料已删除.");

flag=0;

break;

}

p0=p;

p=p->next;

}

if(flag) printf("\n\t无此图书信息。");

getch();

}

/*增加模块*/

void insert(struct book *p0)

{

struct book *p;

p=(struct book *)malloc(N);

while(1)

{

printf("\n 请输入要增加的图书编号(书号为0 退出): ");

scanf("%d",&p->num);

if(p->num!=0)

{

if(p0->next!=NULL&&p0->next->num==p->num) /*找到重号*/

{

p=p->next;

free(p);

printf("\t该书已存在");

}

else

{printf("\n\n书名所在书库作者出版社图书数量\n");

scanf("%s%s%s%s%d",p->name,p->where,p->author,p->pub,&p->count); p->next=p0->next;

p0->next=p;

printf("\t已成功插入.");

}

}

else

break;

}

getch();

}

相关文档
最新文档