图书管理程序c语言版.docx
- 文档编号:6151577
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:15
- 大小:15.83KB
图书管理程序c语言版.docx
《图书管理程序c语言版.docx》由会员分享,可在线阅读,更多相关《图书管理程序c语言版.docx(15页珍藏版)》请在冰豆网上搜索。
图书管理程序c语言版
#include"stdio.h"
#include"string.h"
#defineLENsizeof(structbook)
structbook
{
longISBN;
charname[40],author[40],bookconcern[40],day[10];
doubleprice;
structbook*next;
};
voidface()
{
inti,j=2;
for(i=0;i<75;i++)
{
printf("*");
}
printf("\n*");
for(i=0;i<30;i++)
{
printf("");
}
printf("图书登记管理程序");
for(i=0;i<27;i++)
{
printf("");
}
printf("*");
printf("\n*");
for(i=0;i<73;i++)
{
printf("");
}
printf("*");
printf("\n*");
for(i=0;i<27;i++)
{
printf("");
}
printf("1.录入图书的信息");
for(i=0;i<30;i++)
{
printf("");
}
printf("*");
printf("\n*");
for(i=0;i<27;i++)
{
printf("");
}
printf("2.根据ISBN编号查找图书信息");
for(i=0;i<20;i++)
{
printf("");
}
printf("*");
printf("\n*");
for(i=0;i<27;i++)
{
printf("");
}
printf("3.根据ISBN编号修改图书信息");
for(i=0;i<20;i++)
{
printf("");
}
printf("*");
printf("\n*");
for(i=0;i<27;i++)
{
printf("");
}
printf("4.根据ISBN编号删除图书信息");
for(i=0;i<20;i++)
{
printf("");
}
printf("*");
printf("\n*");
for(i=0;i<27;i++)
{
printf("");
}
printf("5.根据书名查找图书的信息");
for(i=0;i<22;i++)
{
printf("");
}
printf("*");
printf("\n*");
for(i=0;i<27;i++)
{
printf("");
}
printf("6.根据出版社查找图书的信息");
for(i=0;i<20;i++)
{
printf("");
}
printf("*");
printf("\n*");
for(i=0;i<27;i++)
{
printf("");
}
printf("7.统计");
for(i=0;i<40;i++)
{
printf("");
}
printf("*");
while(j!
=0)
{
printf("\n*");
for(i=0;i<73;i++)
{
printf("");
}
printf("*");
j--;
}
printf("\n");
for(i=0;i<75;i++)
{
printf("*");
}
printf("\n请输入操作编号:
");
}
structbook*write(structbook*head)
{
structbook*p,*p1=head;
p=(structbook*)malloc(LEN);
printf("\n请输入的图书的ISBN编号:
");
scanf("%ld",&p->ISBN);
printf("\n请输入的图书的书名:
");
scanf("%s",&p->name);
printf("\n请输入的图书的作者:
");
scanf("%s",&p->author);
printf("\n请输入的图书的出版社:
");
scanf("%s",&p->bookconcern);
printf("\n请输入的图书的出版日期:
");
scanf("%s",&p->day);
printf("\n请输入的图书的价格:
");
scanf("%lf",&p->price);
p->next=NULL;
if(head==NULL)
head=p;
else
{
while(head->next!
=NULL)
head=head->next;
head->next=p;
head=p1;
}
returnhead;
}
voidcheck(structbook*head)
{
intb=0;
structbook*p2,*p3;
p2=(structbook*)malloc(LEN);
printf("\n请输入要查找的图书的ISBN编号:
");
scanf("%ld",&p2->ISBN);
p3=head;
while(p3!
=NULL)
{
if(p3->ISBN==p2->ISBN)
{
if(b==0)
{
printf("查找的图书的信息");
b=1;
printf("\nISBN编号书名作者出版社出版日期价格\n");
}
printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookconcern,p3->day,p3->price);
}
p3=p3->next;
}
if(b==0)
printf("\nerror:
所输入的编号ISBN的图书不在书库中");
}
structbook*rework(structbook*head)
{
structbook*p2,*p3;
intb=0;
p2=(structbook*)malloc(LEN);
sige3:
printf("\n请输入要修改的图书的ISBN编号:
");
scanf("%ld",&p2->ISBN);
p3=head;
while(p3!
=NULL)
{
if(p3->ISBN==p2->ISBN)
{
if(b==0)
{
printf("所需修改的图书的信息");
b=1;
printf("\nISBN编号书名作者出版社出版日期价格\n");
}
printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookconcern,p3->day,p3->price);
break;
}
p3=p3->next;
}
if(p3==NULL)
{
printf("\nerror:
所输入的图书ISBN编号不再书库中");
gotosige3;
}
printf("\n是否确认修改这本书?
是请输入1,否请输入0,\n返回到输入要删除的图书的ISBN编号请输入2:
");
scanf("%d",&b);
while(b!
=1&&b!
=0)
{
printf("\nerror:
所输入操作编号有误,请重新输入:
");
scanf("%d",&b);
}
if(b==2)gotosige3;
if(b==1)
{
printf("\n请输入修改后的图书的ISBN编号:
");
scanf("%ld",&p3->ISBN);
printf("\n请输入修改后的图书的书名:
");
scanf("%s",&p3->name);
printf("\n请输入修改后的图书的作者:
");
scanf("%s",&p3->author);
printf("\n请输入修改后的图书的出版社:
");
scanf("%s",&p3->bookconcern);
printf("\n请输入修改后的图书的出版日期:
");
scanf("%s",&p3->day);
printf("\n请输入修改后的图书的价格:
");
scanf("%lf",&p3->price);
printf("\n已经修改ISBN编号为%ld的图书",p2->ISBN);
}
returnhead;
}
structbook*delete(structbook*head)
{
structbook*p2,*p3,*p;
intb;
p2=(structbook*)malloc(LEN);
sige2:
printf("\n请输入要删除的图书的ISBN编号:
");
scanf("%ld",&p2->ISBN);
p3=head;b=0;
while(p3!
=NULL)
{
if(p3->ISBN==p2->ISBN)
{
if(b==0)
{
printf("所需修改的图书的信息");
b=1;
printf("\nISBN编号书名作者出版社出版日期价格\n");
}
printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookconcern,p3->day,p3->price);
break;
}
p=p3;
p3=p3->next;
}
if(p3==NULL)
{
printf("\nerror:
所输入的图书ISBN编号不再书库中");
gotosige2;
}
printf("\n是否确认删除这本书?
是请输入1,否请输入0,\n返回到输入要删除的图书的ISBN编号请输入2:
");
scanf("%d",&b);
while(b!
=1&&b!
=0)
{
printf("\nerror:
所输入操作编号有误,请重新输入:
");
scanf("%d",&b);
}
if(b==2)gotosige2;
if(b==1)
{
p->next=p3->next;
printf("\n已经删除ISBN编号为%ld的图书",p2->ISBN);
}
returnhead;
}
voidlookupname(structbook*head)
{
structbook*p2,*p3;
intb=0;
p2=(structbook*)malloc(LEN);
printf("\n请输入要查找的图书的书名:
");
scanf("%s",&p2->name);
p3=head;
while(p3!
=NULL)
{
if(strstr(p3->name,p2->name))
{
if(b==0)
{
printf("所查找的图书的信息");
b=1;
printf("\nISBN编号书名作者出版社出版日期价格\n");
}
printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookconcern,p3->day,p3->price);
}
p3=p3->next;
}
}
voidlookupbookconcern(structbook*head)
{
structbook*p2,*p3;
intb=0;
p2=(structbook*)malloc(LEN);
printf("\n请输入要查找的图书的出版社:
");
scanf("%s",&p2->bookconcern);
p3=head;
while(p3!
=NULL)
{
if(strstr(p3->bookconcern,p2->bookconcern))
{
if(b==0)
{
printf("所查找的图书的信息");
b=1;
printf("\nISBN编号书名作者出版社出版日期价格\n");
}
printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookconcern,p3->day,p3->price);
}
p3=p3->next;
}
}
main()
{
inta;
structbook*book=NULL;
sige:
face();
scanf("%d",&a);
while(a!
=1&&a!
=2&&a!
=3&&a!
=4&&a!
=5&&a!
=6&&a!
=7)
{
printf("\nerror:
所输入操作编号有误,请重新输入:
");
scanf("%d",&a);
}
while(a==1)
{
book=write(book);
printf("\n继续录入新图书的信息请输入1,返回上级目录请按0,均以回车结束:
");
scanf("%d",&a);
while(a!
=1&&a!
=0)
{
printf("\nerror:
所输入操作编号有误,请重新输入:
");
scanf("%d",&a);
}
if(a==0)
gotosige;
}
while(a==2)
{
check(book);
printf("\n继续查找图书的信息请输入2,返回上级目录请按0,均以回车结束:
");
scanf("%d",&a);
while(a!
=2&&a!
=0)
{
printf("\nerror:
所输入操作编号有误,请重新输入:
");
scanf("%d",&a);
}
if(a==0)
gotosige;
}
while(a==3)
{
book=rework(book);
printf("\n继续修改图书的信息请输入3,返回上级目录请按0,均以回车结束:
");
scanf("%d",&a);
while(a!
=3&&a!
=0)
{
printf("\nerror:
所输入操作编号有误,请重新输入:
");
scanf("%d",&a);
}
if(a==0)
gotosige;
}
while(a==4)
{
book=delete(book);
printf("\n继续删除图书的信息请输入4,返回上级目录请按0,均以回车结束:
");
scanf("%d",&a);
while(a!
=4&&a!
=0)
{
printf("\nerror:
所输入操作编号有误,请重新输入:
");
scanf("%d",&a);
}
if(a==0)
gotosige;
}
while(a==5)
{
lookupname(book);
printf("\n继续按书名查找图书的信息请输入5,返回上级目录请按0,均以回车结束:
");
scanf("%d",&a);
while(a!
=5&&a!
=0)
{
printf("\nerror:
所输入操作编号有误,请重新输入:
");
scanf("%d",&a);
}
if(a==0)
gotosige;
}
while(a==6)
{
lookupbookconcern(book);
printf("\n继续按出版社查找图书的信息请输入6,返回上级目录请按0,均以回车结束:
");
scanf("%d",&a);
while(a!
=6&&a!
=0)
{
printf("\nerror:
所输入操作编号有误,请重新输入:
");
scanf("%d",&a);
}
if(a==0)
gotosige;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理程序 语言版