c语言大作业 图书管理.docx
《c语言大作业 图书管理.docx》由会员分享,可在线阅读,更多相关《c语言大作业 图书管理.docx(11页珍藏版)》请在冰豆网上搜索。
c语言大作业图书管理
#include
#include
#include
#include
#defineMAX200
structStudent
{
intnum;/*登录号*/
charname[100];/*书名*/
charauthor[100];/*作者名*/
charfn[100];/*分类号*/
charplace[100];/*出版单位*/
chartime[100];/*出版时间*/
floatmoney;/*价格*/
}stu[MAX];
main()/*主函数*/
{
voidInput();/*输入*/
voidOutput();/*输出*/
voidSeek();/*查找*/
voidDelete();/*删除*/
voidRevise();/*修改*/
intn;
for(;;)
{
printf("\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("@@@@\n");
printf("@@您好,图书管理系统为您服务@@\n");
printf("@@@@\n");
printf("@@主菜单@@\n");
printf("@@@@\n");
printf("@@**1.图书信息录入**@@\n");
printf("@@@@\n");
printf("@@**2.图书信息浏览**@@\n");
printf("@@@@\n");
printf("@@**3.图书信息查询**@@\n");
printf("@@@@\n");
printf("@@**4.图书信息删除**@@\n");
printf("@@@@\n");
printf("@@**5.图书信息修改**@@\n");
printf("@@@@\n");
printf("@@**6.退出系统**@@\n");
printf("@@@@\n");
printf("@@(请按指令完成操作,谢谢您的配合)@@\n");
printf("@@@@\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n");
printf("请输入选择项(1-6):
");
scanf("%d",&n);
printf("\n\n\n\n");
if(n>0&&n<7)
{
switch(n)
{
case1:
Input();break;
case2:
Output();break;
case3:
Seek();break;
case4:
Delete();break;
case5:
Revise();break;
case6:
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("@@@@\n");
printf("@@感谢您的使用@@\n");
printf("@@@@\n");
printf("@@再见!
@@\n");
printf("@@@@\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
exit(0);
}
}
else
{
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("@@@@\n");
printf("@@输入错误!
@@\n");
printf("@@@@\n");
printf("@@请退出!
@@\n");
printf("@@@@\n");
printf("@@@@\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
break;
}
}
}
voidInput()/*输入*/
{
FILE*fp;
intn;
fp=fopen("student","wb");
for(n=0;n{
printf("n=%d输入序号n(当输入n=-1时,返回),n=",n++);
scanf("%d",&n);
if(n==-1)
{
fclose(fp);
return;
}
else
{
printf("请输入登录号书名作者名分类号出版单位出版时间价格\n");
scanf("%d%s%s%s%s%s%f",&stu[n].num,&stu[n].name,&stu[n].author,&stu[n].fn,&stu[n].place,&stu[n].time,&stu[n].money);
fwrite(&stu[n],sizeof(structStudent),1,fp);
}
}
fclose(fp);
}
voidOutput()/*输出*/
{
FILE*fp;
inti;
fp=fopen("student","rb");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("图书列表\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("登录号书包作者名分类号出版单位出版时间出版时间价格\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++)
{
printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].time,stu[i].money);
}
fclose(fp);
}
voidSeek()/*查找*/
{
FILE*fp;
inti;
intchoose,t;
charans[100];
do
{
printf("1.按书名查找\n");
printf("2.按作者名查找\n");
printf("返回主菜单(其他数字)\n");
scanf("%d",&choose);
if(choose==1)
{
printf("输入所查书名:
\n");
scanf("%s",ans);
t=-1;
if(choose==1)
{
for(i=0;i{
t=i;
fp=fopen("student","rb");
for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++)
printf("%d%s%s%s%s%s%f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].time,stu[t].money);
}
}
if(t==-1)printf("不存在该信息\n");
}
elseif(choose==2)
{
printf("请输入所查作者名:
\n");
scanf("%s",ans);
t=-1;
if(choose==2)
{
for(i=0;iif(strcmp(ans,stu[i].author)==0)
{t=i;
fp=fopen("student","rb");
for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++)
printf("%d%s%s%s%s%s%f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].time,stu[t].money);
}
}
if(t==1)printf("不存在该信息\n");
}elsereturn;
}while
(1);
}
voidDelete()/*删除*/
{
FILE*fp;
inti,flag,n,s,j;
fp=fopen("student","rb+");
rewind(fp);
printf("图书列表\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("登录号书名作者名分类号出版单位出版单位价格\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++)
{
printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].time,stu[i].money);
printf("\n");
}
n=i;
printf("输入待删除图书号:
\n");
scanf("%d",&s);
for(i=0,flag=1;flag&&i{
if(s==stu[i].num)
{
for(j=i;j{
stu[j].num=stu[j+1].num;
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].author,stu[j+1].author);
strcpy(stu[j].fn,stu[j+1].fn);
strcpy(stu[j].place,stu[j+1].place);
strcpy(stu[j].time,stu[j+1].time);
stu[j].money=stu[j+1].money;
}
flag=0;
}
}
if(!
flag)
n=n-1;
else
printf("没有此号\n");
fp=fopen("student","wb");
for(i=0;ifwrite(&stu[i],sizeof(structStudent),1,fp);
fclose(fp);
fp=fopen("student","r");
printf("图书列表\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("登录号书号作者名分类号出版单位出版时间价格\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
for(i=0;i{
fread(&stu[i],sizeof(structStudent),1,fp);
printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].time,stu[i].money);
printf("\n");
}
fclose(fp);
}
voidRevise()/*修改*/
{
FILE*fp;
inti,num,n;
intflag=0;
printf("请输入要修改的图书号:
");
scanf("%d",&num);
for(i=0;i<=MAX;i++)
if(stu[i].num==num)
{
printf("图书列表\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("登录号书号作者名分类号出版单位出版时间价格\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].time,stu[i].money);
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
n=i;
flag=1;
break;
}
if(flag==0)
{
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("输入错误!
\n");
printf("请返回!
\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
return;
}
printf("\n\n\n");
fp=fopen("student","rb+");
fseek(fp,n*sizeof(structStudent),0);
printf("登录号书名作者名分类号出版单位出版时间价格\n");
scanf("%d%s%s%s%s%s%f",&stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,stu[n].time,stu[n].money);
fwrite(&stu[i],sizeof(structStudent),1,fp);
fclose(fp);
fp=fopen("student","rb");
printf("图书列表\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("登录号书号作者名分类号出版单位出版时间价格\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++)
{
printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].time,stu[i].money);
}
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
fclose(fp);
}