c语言程序设计图书信息管理系统毕业设计.docx
《c语言程序设计图书信息管理系统毕业设计.docx》由会员分享,可在线阅读,更多相关《c语言程序设计图书信息管理系统毕业设计.docx(20页珍藏版)》请在冰豆网上搜索。
c语言程序设计图书信息管理系统毕业设计
统计模块
查询模块
更新模块
输出模块
输入模块
按作者查寻
按书名查询
修改学生信息
删除学生信息
添加学生信息
退出系统
#include
#defineM2
#defineN2
#definePRINT1printf("-------------------\n")
#definePRINT2printf("图书号--图书名称--图书种类--图书总量--图书现库存量--出版日期--作者--出版商\n")
#definePRINT3printf("%12d%8s%8s%8d%8d%8d-%2d-%2d%8s%12s",books[i].num,books[i].name,books[i].kind,books[i].add,books[i].current_add,books[i].pub_time.year,books[i].pub_time.month,books[i].pub_time.day,books[i].writer,books[i].factory);
intsum;/*用来记录图书数目*/
/*日期结构体类型*/
structdate
{intyear;
intmonth;
intday;
};
/*图书结构体类型*/
structbooks_type
{intnum;
charname[10];
charkind[10];
intadd;/*图书总库存量*/
intcurrent_add;/*图书现库存量*/
structdatepub_time;
charwriter[10];
charfactory[10];
}books[M];/*存放M种图书记录的结构体数组*/
/*保存信息*/
save_message(intsum)
{FILE*fp;
inti;
if((fp=fopen("tushuguanli.txt","wb"))==NULL)
{printf("读文件错误!
\n");
return;
}
for(i=0;iif(fwrite(&books[i],sizeof(structbooks_type),1,fp)!
=1)
printf("写文件错误!
\n");
fclose(fp);
}
/*输入模块*/
input_message()
{inti=0,s=M;
clrscr();
printf("\n\n录入图书信息(最多%d种)\n",s);
printf("----------------------------\n");
do
{printf("\n第种%d图书",i+1);
printf("\n图书号:
");
scanf("%d",&books[i].num);
if(books[i].num==0)break;
printf("\n图书名称:
");
scanf("%s",books[i].name);
printf("\n图书种类:
");
scanf("%s",books[i].kind);
printf("\n图书总量:
");
scanf("%d",&books[i].add);
printf("\n图书现库存量:
");
scanf("%d",&books[i].current_add);
printf("\n出版日期:
");
scanf("%d-%d-%d",&books[i].pub_time.year,&books[i].pub_time.month,&books[i].pub_time.day);
printf("\n作者:
");
scanf("%s",books[i].writer);
printf("\n出版商:
");
scanf("%s",books[i].factory);
i++;
}while(iprintf("\n--%d种图书信息输入完毕!
--\n",i);
sum=i;
printf("\n按任意键返回主菜单!
");
bioskey(0);
}
/*读取信息*/
intread_message()
{FILE*fp;
inti=0;
if((fp=fopen("tushuguanli.txt","rb"))==NULL)
{printf("\n\n**暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的录入!
****\n");
return0;}
while(feof(fp)!
=1)
{fread(&books[i],sizeof(structbooks_type),1,fp);
if(books[i].num==0)break;
elsei++;
}
fclose(fp);
return(i);
}
/*输出模块*/
output_message()
{inti=0,j=0,count,page=1;
clrscr();
printf("\n\n--图书信息表--第%d页\n\n",page);
PRINT2;
PRINT1;
do
{if(books[i].num!
=0)
{j++;
if(j%page!
=0)
{
PRINT3;
PRINT1;
}
else
{PRINT3;
PRINT1;
if(books[i+1].num!
=0)
{printf("按任意键继续!
");
bioskey(0);
clrscr();
printf("\n\n--图书信息表--第%d页\n\n",++page);
PRINT2;
PRINT1;
}
}
}
i++;
}while(books[i].num!
=0);
printf("按任意键返回主菜单!
");
bioskey(0);
}
/*添加图书信息*/
insert_message()
{inti=sum,j,flag=0;
charchoice;
clrscr();
printf("\n\n添加一种新图书\n");
printf("-------------------------------------\n");
do
{books[i].num=++sum;
printf("\n新图书号:
%d",books[i].num);
printf("\n新图书名称:
");
scanf("%s",books[i].name);
printf("\n图书种类:
");
scanf("%s",books[i].kind);
printf("\n图书总量:
");
scanf("%d",&books[i].add);
printf("\n出版日期(年-月-日):
");
scanf("%d-%d-%d",&books[i].pub_time.year,&books[i].pub_time.month,&books[i].pub_time.day);
printf("\n作者:
");
scanf("%s",books[i].writer);
printf("\n出版商:
");
scanf("%s",books[i].factory);
printf("\n要继续吗?
(Y/N)");
choice=getch();
if(choice=='Y'||choice=='y')
{printf("\n继续!
\n");
i++;
flag=1;
}
elseflag=0;
}while(flag==1);
printf("\n按任意键返回主菜单!
");
bioskey(0);
}
/*删除图书信息*/
del_message()
{inti,j,flag=0,f=0;
intsum=read_message();
intdel_num;
charchoice;
do
{clrscr();
printf("\n\n请输入要删除图书的序号:
\n");
scanf("%d",&del_num);
for(i=0;i{if(books[i].num==del_num)
{books[i].num=0;
flag=1;
break;
}
}
if(flag==0)
printf("\n\n该图书不存在!
\n");
printf("\n\n要继续删除吗?
(Y\N)");
choice=getch();
if(choice=='Y'||choice=='y')
{printf("\n继续!
\n");
i++;
f=1;
}
elsef=0;
}while(f==1);
printf("按任意键返回主菜单!
");
bioskey(0);
}
/*修改模块*/
revise_message()
{inti=0,choice,revise_num,flag=0;
do
{clrscr();
printf("\n输入要修改的图书号:
");
scanf("%d",&revise_num);
for(i=0;iif(books[i].num==revise_num)
{printf("\n---图书信息----\n");
PRINT1;
PRINT2;
PRINT3;
printf("\n您要修改哪一项?
\n");
printf("\n1.图书名称\n");
printf("\n2.图书种类\n");
printf("\n3.图书总量\n");
printf("\n4.图书现库存量\n");
printf("\n5.日期\n");
printf("\n6.作者\n");
printf("\n7.出版商\n");
printf("\n0.返回主菜单\n");
printf("\n请选择(0-7):
");
scanf("%d",&choice);
switch(choice)
{case1:
printf("\n输入修改后的名称:
");
scanf("%s",books[i].name);break;
case2:
printf("\n输入修改后的种类:
");
scanf("%s",books[i].kind);break;
case3:
printf("\n输入修改后的图书总量:
");
scanf("%d",&books[i].add);break;
case4:
printf("\n输入修改后的库存量:
");
scanf("%d",&books[i].current_add);break;
case5:
printf("\n输入修改后的日期:
");
scanf("%d-%d-%d",&books[i].pub_time.year,&books[i].pub_time.month,&books[i].pub_time.day);break;
case6:
printf("\n输入修改后的作者:
");
scanf("%s",boo