#include struct BOOK
{
int number;
char name[20];
char publish[50];
float price;
} books[100];
void title(char *menu_item)
{
printf("****************************** 图书管理系统**************************\n\n- %s -\n\n",menu_item);
}
void return_confirm(void)
{
printf("\n任意键返回……\n");
getch();
}
void book_count(void)
{
int n,i=0;
for(n=0;n<100;n++)
{
if(strlen(books[n].name)!=0 && strlen(books[n].publish)!=0)
{
printf("第%d本书信息:\n \n",n+1,books[n].number,books[n].name,books[n].publish,books[n].price);
i=i+1;
}
}
printf("\n\n目前共有%d本书\n",i);
return_confirm();
}
int book_search_number(void)
{
int n,i;
title("请输入编号:");
scanf("%d",&i);
for(n=0;n<100;n++)
{
if(books[n].number==i)
{
printf("所查询图书信息如下\n编号:%d\n",books[n].number);
printf("名称:%s\n",books[n].name);
printf("出版社:%s\n",books[n].publish);
printf("价格:%f\n",books[n].price);
return n;
}
}
printf("\n错误或无效信息.\n");
return -1;
}
void book_search_publish()
{
int i=1;
char k[20];
int n;
system("cls");
title("请输入出版社名称:");
scanf("%s",&k);
for(n=0;n<100;n++)
{
if(strcmp(books[n].publish,k)==0)
{
printf("所查询的图书信息如下\n");
printf("编号:%d\n",books[n].number);
printf("名称:%s\n",books[n].name);
printf("出版社:%s\n",books[n].publish);
printf("价格:%f\n\n\n",books[n].price);
i=0;
}
}
if(i==1)
printf("没有查到相关的图书");
return_confirm();
}
void book_add(void)
{
int ncount=0;
int n=ncount+1,number;
char name[30],publish[30];
float price;
system("cls");
title("");
printf("请录入第%d本书的信息:\n",n);
for(n=0;n<100;n++)
if(books[n].number==0) break;
printf("编号:");
scanf("%d",&number);books[n].number=number;
printf("名称:");
scanf("%s",name);strcpy(books[n].name,name);
printf("出版社:");
scanf("%s",&publish);strcpy(books[n].publish,publish);
printf("价格:");
scanf("%f",&price);books[n].price=price;
return_confirm();
}
void book_delete(void)
{
int n,num,i,z=1;
system("cls");
title("删除图书");
printf("请输入所要删除的书的编号:");
scanf("%d",&num);
for(n=0;n<100;n++)
{
if(books[n].number==num)
for(i=n;i<100;i++)
{ books[i].number=books[i+1].number;
strcpy(books[i].name,books[i+1].name);
strcpy(books[i].publish,books[i+1].publish);
books[i].price=books[i+1].price;
z=0;
}
}
if(z=1)
printf("该书已删除.\n");
return_confirm();
}
void book_change(void)
{
int n,num,s;
system("cls");
printf("\n\n\n\n\t\t\t\t【修改信息操作】\n\n\n\t\t\t");
printf("请输入要修改的图书编号:");
scanf("%d",&num);
for(n=0;n<100;n++)
{
if(books[n].number==num)
{
printf("确定要对修改该图书的信息吗?(1/0)\n"); break;
}
}
scanf("%d",&s);
if(s==1)
{
printf("修改编号:");
scanf("%d",&books[n].number);
printf("修改名称:");
scanf("%s",books[n].name);
printf("修改出版社:");
scanf("%s",books[n].publish);
printf("修改价格:");
scanf("%f",&books[n].price);
printf("\n图书信息修改成功.");
}
else if (s==0)
printf("不做修改。") ;
return_confirm();
}
void main(void)
{
menu: title("操作选项");
printf("===============================================================================\n\n") ;
printf(" No.1: 增加图书 \n\n");
printf(" No.2: 按编号查图书信息\n\n") ;
printf(" No.3: 查阅某出版社图书信息\n\n");
printf("No.4: 修改图书资料\n\n") ;
printf(" No.5: 删除图书 \n\n");
printf("No.6: 统计各类图书信息\n\n ") ;
printf(" No.0:退出系统\n\n") ;
printf("=================================================================================") ;
printf(" *******请按序号 0----6 进行选择*******\n\n") ;
switch(getch())
{
case '1' : book_add();break;
case '2' : book_search_number();break;
case '3' : book_search_publish();break;
case '4' : book_change();break;
case '5' : book_delete();break;
case '6' : book_count();break;
case '0' : exit(0);
}
goto menu;
}
11