C语言图书管理系统课程设计.docx
《C语言图书管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《C语言图书管理系统课程设计.docx(13页珍藏版)》请在冰豆网上搜索。
C语言图书管理系统课程设计
题目:
图书管理系统
要求:
能录入新图书;
能浏览图书信息;
能自主查询图书信息;
能修改图书信息;
能删除图书信息.
程序如下:
#include〈stdio.h>
#includeh>
#include〈string。
h〉
typedefstruct{
charnumber[10];//书号
charname[20];//书名
charauthor[20];//作者
charpublish[50];//出版社
chartime[20];//出版时间
floatprice;
}mbook;
typedefstruct{
intcount;//书的本数
mbookbook[100];//最大可有100本书
}mlibrary;
mlibrarylibrary;
voidsave()//保存图书信息。
{
FILE*fp;
if((fp=fopen(”library.doc","w”))==NULL)
{
printf(”\n不能保存图书信息\n");
return;
}
fwrite(&library.count,sizeof(int),1,fp);
fwrite(library。
book,sizeof(library.book[0]),library。
count,fp);
}
voidputin()/*定义录入函数*/
{
inty=1;
system("cls”);
while(y)
{
printf("\t请输入您的书籍的书号:
");
scanf("%s",library。
book[library。
count]。
number);
printf(”\t请输入书名:
");
scanf("%s",library.book[library。
count]。
name);
printf(”\t请输入作者名:
");
scanf(”%s”,library.book[library。
count]。
author);
printf(”\t请输入出版社:
");
scanf(”%s",library。
book[library。
count].publish);
printf("\t请输入出版时间:
");
scanf(”%s”,library.book[library。
count].time);
printf("\t请输入该书的价格:
");
fflush(stdin);
scanf(”%f”,&library。
book[library.count]。
price);
library。
count++;
printf("\n是否继续录入(1。
继续;0,退出录入):
”);
fflush(stdin);
scanf("%d",&y);
if(y!
=1)
{
y=0;
break;
}
}
save();
}
voidlookup()
{
system("cls”);
printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n”);
for(inti=0;icount;i++)
{
printf(”%s\t%s\t%s\t%s\t%s\t%6.2f\n",library。
book[i].number,library.book[i]。
name,library。
book[i]。
author,library.book[i]。
publish,library.book[i]。
time,library。
book[i]。
price);
}
fflush(stdin);
getchar();
}
voidsearch_by_name()/*定义按书名查询*/
{
chars2[20];
intflag=1;
printf("\n请输入要查询的书名:
");
fflush(stdin);
scanf("%s”,s2);
printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n”);
for(inti=0;icount;i++)
if(strcmp(s2,library。
book[i].name)==0)
{
flag=0;
printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i]。
author,library。
book[i].publish,library。
book[i]。
time,library.book[i]。
price);
}
if(flag)
{
printf("cannotfound!
”);
}
fflush(stdin);
getchar();
}
voidsearch_by_author()/*定义按作者名查询*/
{
chars3[20];
intflag=1;
printf("请输入要查询的书的作者:
");
fflush(stdin);
scanf("%s",s3);
printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n”);
for(inti=0;iif(strcmp(s3,library.book[i]。
author)==0)
{
flag=0;
printf(”%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i]。
number,library.book[i].name,library。
book[i]。
author,library.book[i]。
publish,library。
book[i]。
time,library.book[i].price);
}
if(flag)
{
printf(”cannotfound!
");
}
fflush(stdin);
getchar();
}
voidsearch()/*定义查询函数*/
{
inta;
system("cls”);/*进行清屏*/
printf(”\t\t******************************\n”);
printf(”开始查询\n”);
printf(”\t\t\t1-—--——-—-—-----search_by_name\n”);
printf(”\t\t\t2—-———---—-—————search_by_writer\n");
printf(”\t\t\t0—-—-——-—---——-—exit\n”);
printf(”\t\t******************************\n”);
printf("\t\t请选择你想要的查询方式:
”);
fflush(stdin);
scanf("%d",&a);
switch(a)
{
case1:
search_by_name();
break;
case2:
search_by_author();
break;
case0:
return;
}
}
voiddel()/*定义删除函数*/
{
charnumber[10];
system(”cls");/*清屏*/
printf(”\nPleasetypeinthenumberofthebookyouwanttodelete:
");
fflush(stdin);
scanf("%s",number);
inti;
for(i=0;icount;i++)
{
if(strcmp(number,library.book[i]。
number)==0)break;
}
if(i!
=library.count)
{
for(;icount-1;i++)
{
strcpy(library。
book[i]。
name,library.book[i+1]。
name);
strcpy(library。
book[i]。
number,library。
book[i+1]。
number);
strcpy(library.book[i]。
publish,library.book[i+1].publish);
strcpy(library.book[i].author,library.book[i+1].author);
strcpy(library.book[i]。
time,library.book[i+1]。
time);
library。
book[i].price=library。
book[i+1]。
price;
}
library.count—-;
}
else
printf("\ncannotfound!
\n”);
save();
fflush(stdin);
getchar();
}
voidupdate()//修改图书信息
{
charnumber[10];
system(”cls");/*清屏*/
printf(”\nPleasetypeinthenumberofthebookyouwanttodelete:
");
fflush(stdin);
scanf("%s",number);
inti;
for(i=0;i{
if(strcmp(number,library.book[i]。
number)==0)
{
printf(”图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n”);
printf(”%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i]。
number,library。
book[i]。
name,library.book[i].author,library。
book[i]。
publish,library.book[i].time,library.book[i].price);
break;
}
}
if(i!
=library.count)
{
mbookbook;
printf(”\n\t\t请输入修改后此图书的信息\n”);
printf("\t请输入图书号:
”);
scanf("%s”,book。
number);
printf("\t请输入图书名:
");
scanf("%s”,book。
name);
printf(”\t请输入作者名:
");
scanf(”%s",book。
author);
printf(”\t请输入出版社:
”);
scanf("%s”,book.publish);
printf(”\t请输入出版时间:
");
scanf("%s”,book.time);
printf(”\t请输入该书的价格:
");
fflush(stdin);
scanf("%f",&book.price);
strcpy(library。
book[i].name,book。
name);
strcpy(library.book[i]。
number,book.number);
strcpy(library.book[i]。
publish,book。
publish);
strcpy(library。
book[i].author,book.author);
strcpy(library.book[i].time,book。
time);
library.book[i].price=book.price;
save();
}
else
printf(”\ncannotfound!
\n");
fflush(stdin);
getchar();
}
voidmain()
{
FILE*fp;
if((fp=fopen(”library.doc","r"))==NULL)
{
printf("\n不能打开图书信息库\n");
fp=fopen(”library.doc","w+”);
printf(”\n初始化图书信息库,初始化之后要重启程序\n");
library。
count=0;
fwrite(&library。
count,sizeof(int),1,fp);
fclose(fp);
return;
}
fread(&library。
count,sizeof(int),1,fp);
fread(library.book,sizeof(library.book[0]),library.count,fp);
fclose(fp);
inta;
do
{
system(”cls”);
printf("\n\n\n\n\n\t\t\t\t图书信息管理系统\t\t\t\t\n");
printf("\t\t*********************************************\n");
printf(”\t\t\t1--—----————---—---图书信息录入\n”);
printf(”\t\t\t2—----——-———-——-—-—图书信息浏览\n”);
printf(”\t\t\t3-——--——-—--—-—----图书信息查询\n”);
printf("\t\t\t4—-—--——-—-—----—-—图书信息删除\n");
printf("\t\t\t5—-—--——---———-----图书信息修改\n”);
printf("\t\t\t0——---———-—--————-退出图书信息系统\n");
printf("\t\t*********************************************\n");
printf("\t\tPleaseEnterChoose:
");
fflush(stdin);
scanf("%d”,&a);
switch(a)
{
case1:
putin();
break;
case2:
lookup();
break;
case3:
search();
break;
case4:
del();
break;
case5:
update();
break;
case0:
printf("\n\n退出\n\n");
break;
default:
printf("\n序号不对\n”);
}
}while(a!
=0);
save();
}