本文目录一览:
- 1、用C语言设计和实现一个“图书信息管理系统”,满足以下要求:
- 2、用c语言写一个书店管理系统,包括图书信息 会员信息 销售信息三个系统
- 3、如何使用C语言编写图书管理系统?
- 4、c语言课程设计:图书管理系统设计的基本思路是什么?
- 5、C语言程序设计;图书信息管理系统;图书信息包括:书号、书名、作者名、出版时间、价格,借阅次数等。
用C语言设计和实现一个“图书信息管理系统”,满足以下要求:
const int MAXLEN=100;int count; //记录书籍数量char fName[20]="backup.dat"; //磁盘文件:书籍信息文件名 int LEN; //全局变量,通讯录中当前联系人总数int n;char *key;
typedef struct book //联系人数据结构
{ char no[20]; //序号 char book_name[20]; // 书名 char writer[30]; //作者名 char booknum[20]; //书籍分类 char press[20]; //出版单位 char price[10]; //书籍价格 }BOOK;BOOK b[MAXLEN];
typedef struct index{ int len; //数组长度 BOOK b[MAXLEN]; //指针数组}Index;
int Select();int Menu(void);int SubMenu2(void);int SubMenu4(void);int addbook(BOOK b[]);int output(BOOK b[]);int deletebook(BOOK b[]);void printno(BOOK b[]);int modifyIndo(BOOK b[]);int Save(BOOK b[]); int loaddata(BOOK b[]);int Copy(void);void New(BOOK b[]);int Load(BOOK b[]);void List(BOOK b[]);//void findbook(char *name,BOOK b[],char *key);
#includestdio.h#includestdlib.h#includeconio.h#includestring.h#includememory.hint main(int argc, char* argv[]){ int select=0;
/*int select;用户所选的菜单项代码: 主菜单:1 查找图书信息、2 更新图书信息 、3 备份图书信息、0 退出程序 更新图书信息子菜单:21 新增图书信息、 22 编辑图书信息、 23 删除图书信息、 20 返回主菜单 查看图书信息子菜单:11 图书信息库 、12书名查找、13 作者名查找、14 序号查找 */
BOOK b[MAXLEN]; memset(b,0,sizeof(b)); //将b初始化为空,memory.h loaddata(b); //从图书库文件中读取信息 //循环显示菜单,供用户选择 do{
if(select10||select==20||select==40) select=Menu(); else if(select20 select30) select=SubMenu2(); else if(select40 select50) select=SubMenu4(); switch(select) { case 11:// 图书信息库 break; case 12://书名查找 break;
case 13://作者名查找 break; case 14://类别查找 break;
case 21://新增图书信息、 break; case 22://编辑图书信息、 break; case 23://删除图书信息、 break; case 20://返回主菜单 break; case 3: system("cls"); Save(b); Copy(); break; case 0://退出程序 break; } }while(select!=0); return 0;}
int SubMenu4(void){ char menu; do{ system("cls");//清屏,需要使用到stdlib.h puts("\n\t======更新图书信息======\n"); puts("\t 1.新增图书信息"); puts("\t 2.删除图书信息"); puts("\t 3.编辑图书信息"); puts("\t 0.返回主菜单"); puts("\n\t=================="); printf("\t请选择:");//提示选择 menu=getche(); switch(menu) { case '0': puts("\n\n\t返回主菜单!"); break; case '1': addbook(b); break; case '2': deletebook(b); break; case '3': modifyIndo(b); break; default: puts("\n\n\t选择错误!"); menu='9'; } }while(menu=='9'); return 40+menu-'0';}
void New(BOOK b[]){ int t=0; //找到BOOK中第一个空的位置,存放新输入 if(LEN=MAXLEN) { printf("\n\n\t图书库已满!"); return ; }
while(strcmp(b[t].book_name,"")!=0) //找到b中第一个空的位置t t++; addbook(b); //新增,输入 LEN++; //增1}
int modifyIndo(BOOK b[])//编辑图书信息{ char no[20]; int i; printno(b);again: printf("\n请输入你想要编辑的书籍编号:"); fflush(stdin); gets(no); for(i=0;i=count;i++) { if(strcmp(no,b[i].no)==0) break; } if(icount) { printf("对不起,你输入的编号不存在,是否继续?Y/N:"); if((getchar()=='Y')||(getchar()=='y')) goto again; else return 0; } printf("\n正在修改《%s》的信息……\n",b[i].book_name); printf("请输入图书的名字:"); gets(b[i].book_name); printf("请输入图书的作者名:"); gets(b[i].writer); printf("请输入书籍类别:"); gets(b[i].booknum); printf("请输入书籍的出版单位:"); gets(b[i].press); printf("请输入书籍的价格:"); gets(b[i].price); printf("\n图书信息编辑成功!\n");
}
void printno(BOOK b[]){ int i; printf("\n当前库存中的书籍目录:\n"); for( i=0;i=count;i++) { printf("%s %s ",b[i].no,b[i].book_name); if(i%3==0i0) printf("\n"); }}
int output(BOOK b[]) //输出图书信息{ if(count0) { printf("对不起,当前图书数量为0\n"); return 0; } for(int i=0;i=count;i++) { printf("\n*************************书籍信息*****************************\n"); printf("序号:%s\n",b[i].no); printf("书名:%s\n",b[i].book_name); printf("作者名:%s\n",b[i].writer); printf("书籍类别:%s\n",b[i].booknum); printf("出版单位:%s\n",b[i].press); printf("书籍价格:%s\n",b[i].price); } return 1; }
int deletebook(BOOK b[]) { char no[20]; int i; printno(b);loop: printf("\n请输入你要删除的书籍编号:"); fflush(stdin); gets(no); for(i=0;i=count;i++) { if(strcmp(no,b[i].no)==0) break; } if(icount) { printf("对不起,你输入的编号不存在,是否继续?Y/N:"); if((getchar()=='Y')||(getchar()=='y')) goto loop; else return 0; } printf("您确定要删除《%s》吗?Y/N:",b[i].book_name); if((getchar()=='Y')||(getchar()=='y'))
{ if(i==count) { count--; } else { for(;i=count;i++) { b[i]=b[i+1]; count--; }
}
} else return 0; }
int loaddata(BOOK b[]){ int i=0; //i:b数组的下标 FILE *fp=fopen(fName,"r"); if(!fp) { printf("\n\t对不起,路径或者文件错误,无法读入!请重新增加!"); getch(); return 0; } fscanf(fp,"书籍编号\t书名\t作者\t类别\t出版单位\t价格"); while((!feof(fp))) { fscanf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",b[i].no,b[i].book_name,b[i].writer,b[i].booknum,b[i].press,b[i].price); i++; } count=i; fclose(fp); printf("加载成功!!"); return 1;}
int Select(){ int i=0; int c; //c:scanf输入的返回值,输入成功返回1;否则返回0 printf("\n\t请按需要选择图书信息:"); c=scanf("%d",i); while(i1 || iLEN) { printf("\n\t输入错误!请按序号选择图书信息:"); if(c==0) fflush(stdin); c=scanf("%d",i); } return i-1;} int addbook(BOOK b[]) //增加图书信息{ int i=0; char c; printf("\n*******************************新增图书信息****************************\n"); for(;;i++) { if(i=MAXLEN) { printf("\n对不起,库存已满!不能继续添加。"); } printf("请输入图书的序号:"); gets(b[i].no); printf("请输入图书的名字:"); gets(b[i].book_name); printf("请输入图书的作者名:"); gets(b[i].writer); printf("请输入书籍类别:"); gets(b[i].booknum); printf("请输入书籍的出版单位:"); gets(b[i].press); printf("请输入书籍的价格:"); gets(b[i].price); printf("图书增加成功!\n"); printf("请问您要继续添加书籍信息吗?(Y/N): "); c=getchar(); if(c=='Y'||c=='y') { getchar(); printf("\n"); continue; } else break; } count=i; return i;
}//查重。int Duplicate(char *name,BOOK b[],char *original){ int i,j; int dup=0; //重复标志:1 重复 ,0 没有重复 if(strcmp(name,original)!=0) for(i=0,j=0;jLEN;) { while(strcmp(b[i].book_name,"")==0) i++;
if(strcmp(name,b[i].book_name) ==0) { dup=1; printf("\n\t重复!请重新输入:"); break; } i++; j++; } return dup; }int SubMenu2(void){ char menu,*name; do{ system("cls"); //清屏,需要使用到stdlib.h puts("\n\t======查找图书信息======\n"); puts("\t 1.图书信息库"); puts("\t 2.书名查找"); puts("\t 3.作者名查找"); puts("\t 4.序号查找"); puts("\t 0.返回主菜单"); puts("\n\t=================="); printf("\t请选择:"); //提示选择 menu=getche(); switch(menu) { case '0': puts("\n\n\t返回主菜单!"); break; case '1': output(b); getch(); break; case '2': //findbook(name,b,key); getch(); break; case '3': case '4': printno(b); break; default: puts("\n\n\t选择错误!"); menu='9'; } }while(menu=='9'); return 20+menu-'0';}
int Menu(void){ char menu; do{ system("cls"); puts("\n\t======主菜单======\n"); puts("\t 1.查找图书信息"); puts("\t 2.更新图书信息"); puts("\t 3.备份图书信息"); puts("\t 0.退出程序"); puts("\n\t=================="); printf("\t请选择:"); //提示选择 menu=getche(); switch(menu) //将用户输入的选项menu转换成系统定义的菜单代码 {
case '0': puts("\n\n\t退出程序!"); menu=menu-'0'; break;
case '2': menu=SubMenu4();
break; case '3': menu=menu-'0';
break; case '1': menu=SubMenu2();
break; default: puts("\n\n\t选择错误!"); menu='9'; //输入了无效的菜单代码,需要重新输入 } }while(menu=='9'); return menu;}
int Load(BOOK b[]){ FILE *fin; int i=0; fin=fopen(fName,"rb"); if(!fin) { printf("\n\t书籍信息不存在,请先新增加图书信息!\n\n按任意键继续……"); getch(); return 0; } while(1) { fread(b[i],sizeof(BOOK),1,fin); if(feof(fin)) break; i++; } fclose(fin); LEN=i; return i;
}
int Save(BOOK b[])//存入文件 {
int i; //i:b数组的下标 FILE *fp=fopen(fName,"w"); if(!fp) { printf("\n\t不能正确保存书籍信息!按任意键继续……"); getch(); return 0; } fprintf(fp,"书籍编号\t书名\t作者\t类别\t出版单位\t价格"); for( i = 0; i =count; i++) { fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",b[i].no,b[i].book_name,b[i].writer,b[i].booknum,b[i].press,b[i].price); } fclose(fp); printf("保存成功!!"); return 1;}
int Copy(void) //备份图书信息,复制图书信息文件{ FILE *fout,*fin; BOOK *p=(BOOK *)malloc(sizeof(BOOK)); //存放从图书信息库读入的临时数据 char name[20];
fin=fopen(fName,"rb"); if(!fin) { printf("\n\t没有此图书信息!"); return 0; }
do{ printf("\n\t请输入备份文件名:"); scanf("%s",name); strcat(name,".bak"); fout=fopen(name,"wb"); if(!fout) printf("\t无效文件名或路径!\n"); }while(!fout);
while(1) { fread(p,sizeof(BOOK),1,fin); if(feof(fin)) break; fwrite(p,sizeof(BOOK),1,fout); }
printf("\n\t备份成功!"); free(p); return 1;}
void findbook(char *name,BOOK b[],char *key){
int i,j; //i:数组下标 j:除姓名为空串以外的实际人数 int dup=0; printf("请输入您需要查找图书信息的书名:"); scanf("%s",name); if(strcmp(name,key)!=0) for(i=0,j=0;jLEN;) { while(strcmp(b[i].book_name ,"")==0) i++; if(strcmp(name,b[i].book_name) ==0) { dup=1; printf("\n%s\t%s\t%s\t%s\t%s\t%s",b[i].no,b[i].book_name,b[i].writer,b[i].booknum,b[i].press,b[i].price); } }}
用c语言写一个书店管理系统,包括图书信息 会员信息 销售信息三个系统
#include
#include
#include
#include "graphics.h"
#include "math.h"
#define m 1
struct data
{ int year;
int month;
int day;
};
struct ReaderNode
{
char num[20];
struct data bro;
struct data back;
};
struct BookNode
{
char title[15];
char writer[15];
int currentnum;
int totalnum;
char brief[30];
struct ReaderNode reader[20];
};
struct TreeNode
{
int n;
struct TreeNode *prt;
int key[2*m];
struct BookNode *rec[2*m];
struct TreeNode *link[2*m+1];
};
struct BookNode *InputNode();
struct TreeNode *mbsearch(struct TreeNode *bth,int x,int *k,int *flag);
struct TreeNode *mbinsert(struct TreeNode *bth);
struct TreeNode *mbdel(struct TreeNode *bth);
void OutputNode(struct TreeNode *bth);
void borrow(struct TreeNode *bth);
void payback(struct TreeNode *bth);
char menu(void);
struct TreeNode *mbsearch(struct TreeNode *bth,int x,int *k,int *flag)
{
struct TreeNode *p,*q;
p=bth; *flag=0; q=p;
while( (p!=NULL) (*flag==0) )
{
*k=1;q=p;
while( (*k q-n) ( q-key[*k-1] x) ) *k=*k+1;
if( q-key[*k-1]==x) *flag=1;
else if( ( *k==q-n ) ( q-key[*k-1] x) ) {p=q-link[*k];p-prt=q;}
else { p=q-link[*k-1]; p-prt=q;*k=*k-1;}
}
return(q);
}
如何使用C语言编写图书管理系统?
图书管理系统是运行于Windows系统下的应用软件,主要用于对图书馆中的图书信息进行增、删、改、查等操作,并且还可对使用该系统的用户进行登录名和密码的管理等。系统给用户提供了一个简单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。
所需功能类似于学生成绩管理系统,界面可参考附录C。用户分为管理员和一般人员两大类。
功能需求描述如下。
①用户登录:根据用户输入的用户名和密码判断是否允许该用户使用本系统,并且当用户登录后根据用户权限判断用户可以使用哪些功能。学生只有浏览等权限而不能进行实质性改动。
②提供系统主控平台:系统主控平台也应根据用户权限不同而有所区别,只列出在用户权限范围内的功能供用户选择。系统主控平台包括输入功能选项、调用相应程序两大需求。教师和学生对应的系统主控平台是不同的。所能进行的操作也不相同。
③创建图书信息文件:用户根据提示输入图书编号、图书分类号、书名、作者姓名、出版社名、出版年月、定价、存库数量和借阅和上架情况等等信息存储在系统磁盘的文件中。以便进行管理、查找和备份。
④增加图书信息:可在原有图书信息文件的基础上增加新的图书信息记录并继续保存至磁盘,并且将增加后的文件存储状况显示给用户。
⑤删除图书信息:提示用户输入要进行删除操作的图书编号,如果在文件中有该信息存在,则将该书号所对应的记录删除。并选择是否继续进行删除操作。
⑥修改图书信息:提示用户输入要进行修改操作的书号,如果在文件中有该息存在,则将提示用户输入该书号对应的要修改的选项,结果存储于文件。该部分需求也需要提示用户选择是否继续进行修改操作。
⑦查询图书信息:提供按书号或书名等查询。在该功能中,也需提示用户是否需要继续查再继续查找,则返回主界面。
⑧一般用户查询个人的借阅情况并按日期进行排序:。
⑨管理员和一般用户管理:管理员对用户的管理也需要进行用户的创建、增加、删除、浏览。管理员创建的用户存储在名为yonghu的磁盘文件中,每当有用户登录系统时,会根据该文件中的用户名和密码进行核实判断,用户才能够顺利登录。管理员还具有用户的功能。增加的用户及密码、权限等也被继续存储在yonghu文件中。当某些用一用该系统时,还可以进行删除操作,并且管理员具有修改用户权限的功能,一般用户和管理员对于系统的权限是不一样的。
c语言课程设计:图书管理系统设计的基本思路是什么?
图书管理系统主要要求可以录入书籍,添加书目,查找书本信息,删除或修改信息,有的还要求显示是否被借阅等。
一般采用结构体数组,链表,文件操作和自定义函数。主要是需要对基础知识掌握牢固。
先定义结构体,然后对结构体的成员进行定义,选择数组存储书本各种信息。录入信息可以用for和do while循环等来做。
存放信息需要文件操作函数,比如fopen,fwrite等。
删除和添加可以删除节点或者增加节点。
查找之类的可以用字符串操作的各种函数实现。
附上参考源代码
#include stdio.h
#include string.h
#include stdlib.h
#include conio.h
#define books "f:\\books.txt"
#define booksbak "f:\\booksbak.txt"
struct bookinfo
{
char isbn[20];
char title[30];
char author[20];
int count;
};
struct book
{
struct bookinfo onebook;
struct book *next;
};
struct book *searchBook ( struct book *listptr,char isbn[])
{
while(listptr!=(struct book *)0)
if (strcmp(listptr-onebook.isbn,isbn)==0)
return listptr;
else
listptr=listptr-next;
return (struct book *)0;
}
void MainSearchbook(struct book *firstptr)
{
struct book *ptr;
char isbnno[20];
printf("请输入ISBN:");
scanf("%s",isbnno);
ptr=searchBook(firstptr,isbnno);
if (ptr!=(struct book *)0)
{
printf("找到了!!!\n");
printf("ISBN:%s\n",ptr-onebook.isbn);
printf("Title:%s\n",ptr-onebook.title);
printf("Author:%s\n",ptr-onebook.author);
}
else
printf("sorry,not found!!!\n");
}
int addBook(struct book *listptr,struct bookinfo note)
{
while(listptr-next!=0)
listptr=listptr-next;
listptr-next=(struct book *)malloc(sizeof(struct book));
listptr-next-onebook=note;
listptr-next-next=0;
return 0;
}
void MainAdd(struct book *listptr,FILE *fp)
{
int ok;
struct bookinfo note;
printf("请输入ISBN:");
scanf("%s",¬e.isbn);
printf("请输入Title:");
scanf("%s",¬e.title);
printf("请输入Author:");
scanf("%s",¬e.author);
ok=addBook(listptr,note);
if (ok==0)
{
//将加入的图书写到文件中保存
fprintf(fp,"\n%s %s %s %d",note.isbn,note.title,note.author,0);
printf("添加图书成功!!!\n");
}
else
printf("添加图书失败!!!\n");
}
int removeBook(struct book *listptr,char isbn[])
{
while(listptr-next!=(struct book *)0)
{
if (strcmp(listptr-next-onebook.isbn,isbn)==0)
{
listptr-next=listptr-next-next;
return 0;
}
else
listptr=listptr-next;
}
return -1;
}
void MainRemove(struct book *listptr,FILE *fp)
/************************************************************************/
/* 删除书籍函数,通过ISBN删除链表节点,同时删除文件中对应信息 */
/* 删除文件中一行,用的是笨方法,把需要的信息写到新文件,删除旧文件,重命名..*/
/************************************************************************/
{
char isbnno[20];
int ok;
struct bookinfo onebook;
printf("请输入ISBN:");
scanf("%s",isbnno);
ok=removeBook(listptr,isbnno);
if (!ok)
{
FILE *fpbak;
if ((fpbak=fopen(booksbak,"a+"))==NULL)
printf("文件打开失败!!!\n");
fseek(fp,0,SEEK_SET); //移到文件开始
while((fscanf(fp,"%s %s %s %d\n",onebook.isbn,onebook.title,onebook.author,onebook.count))!=EOF)
{
if (strcmp(onebook.isbn,isbnno)!=0)
{
fprintf(fpbak,"%s %s %s %d\n",onebook.isbn,onebook.title,onebook.author,onebook.count);
}
}
fclose(fp);
fclose(fpbak);
if (remove(books)) //删除失败返回非0
{
printf("删除文件失败!!!\n");
return ;
}
else
if (rename(booksbak,books)) //重命名失败返回非0值
{
printf("重命名失败!!!\n");
return ;
}
printf("删除成功!!!\n");
}
else
printf("查无此书!!!");
}
int choice(void)
{
int c;
printf("1.查看图书\n");
printf("2.添加图书\n");
printf("3.删除图书\n");
printf("4.退出程序\n");
printf("请选择序号:");
return c=getchar();
//return c=getche();
printf("\n\n");
}
int addEntry(FILE *fp,struct book *firstptr)
/************************************************************************/
/* 主要用来加载文件中存放的图书信息 */
/************************************************************************/
{
struct bookinfo onebook;
while((fscanf(fp,"%s %s %s %d\n",onebook.isbn,onebook.title,onebook.author,onebook.count))!=EOF)
{
while(firstptr-next!=0)
firstptr=firstptr-next;
firstptr-next=(struct book *)malloc(sizeof(struct book));
firstptr-next-onebook=onebook;
firstptr-next-next=0;
}
return 0;
}
int main(int argc,char *argv[])
{
int ch;
struct book first;
strcpy(first.onebook.isbn,"123456");
strcpy(first.onebook.title,"Programming C");
strcpy(first.onebook.author,"yhb");
first.next=0;
struct book *firstptr=first; //链表头指针
FILE *fp;
if ((fp=fopen(books,"a+"))==NULL)
printf("文件打开失败!!!");
addEntry(fp,firstptr);
while(1)
{
system("CLS"); //清屏
/************************************************************************/
/* 想想这里为什么要清空缓冲区? */
/*由于上一次(choice函数)的getchar(),还有一个'\n'留在缓冲区.... */
/*可以把这句话注释掉看看,没有这句话会遇到麻烦 */
/*如果不用fflush,可以将上面的getchar()换成getche() */
/*比较getchar(),getch(),getche()...... */
/************************************************************************/
fflush(stdin);
ch=choice()-48;
switch (ch)
{
case 1:
MainSearchbook(firstptr);
break;
case 2:
MainAdd(firstptr,fp);
break;
case 3:
MainRemove(firstptr,fp);
break;
case 4:
printf("谢谢使用...\n");
exit(0);
default:
printf("请输入正确序号!");
}
system("PAUSE");
}
return 0;
}
C语言程序设计;图书信息管理系统;图书信息包括:书号、书名、作者名、出版时间、价格,借阅次数等。
// 图书管理的实验报告
#include stdio.h
#include stdlib.h
#include conio.h
struct BOOK
{
int id,usr[10],total,store,days[10];
char name[30],author[20];
}books[100];
void page_title(char *menu_item)
{
printf("\n- %s -\n\n",menu_item);
}
void book_add(void)
{
int n;
page_title("注册");
for(n=0;n100;n++)
if(books[n].id==0) break;
printf("序号:");
scanf("%d",books[n].id);
printf("书名:");
scanf("%s",books[n].name);
printf("作者:");
scanf("%s",books[n].author);
printf("数量:");
scanf("%d",books[n].total);
books[n].store=books[n].total;
}
int search_book(void)
{
int n,i;
page_title("查找");
printf("请输入图书序号:");
scanf("%d",i);
for(n=0;n100;n++)
{
if(books[n].id==i)
{
printf("书名:%s\n",books[n].name);
printf("作者:%s\n",books[n].author);
printf("存数:%d\n",books[n].store);
printf("总数:%d\n",books[n].total);
return n;
}
}
printf("\n输入有错或图书序号不存在.\n");
return -1;
}
void book_out(void)
{
int n,s,l,d;
page_title("借书");
if((n=search_book())!=-1books[n].store0)
{
printf("请输入借书证序号:");
scanf("%d",s);
printf("请输入可借天数:");
scanf("%d",d);
for(l=0;l10;l++)
{
if(books[n].usr[l]==0)
{
books[n].usr[l]=s;
books[n].days[l]=d;
break;
}
}
books[n].store--;
}
if(n!=-1books[n].store==0) printf("此书已经全部借出.\n");
}
/*借书的函数,首先调用找书函数*/
void book_in(void)
{
int n,s,l;
page_title("还书");
if((n=search_book())!=-1books[n].storebooks[n].total)
{
printf("借阅者图书证列表:\n");
for(l=0;l10;l++)
if (books[n].usr[l]!=0)
printf("[%d] - %d天\n",books[n].usr[l],books[n].days[l]);
printf("请输入借书证序号:");
scanf("%d",s);
for(l=0;l10;l++)
{
if(books[n].usr[l]==s)
{
books[n].usr[l]=0;
books[n].days[l]=0;
break;
}
}
books[n].store++;
}
if(n!=-1books[n].store==books[n].total)
printf("全部入藏.\n");
}
void book_del(void)
{
int n;
page_title("注销");
if((n=search_book())!=-1) books[n].id=0;
printf("该书已注销.\n");
}
void main(void)
{ char n;
page_title("请选择");
printf("1 注册\n2 查找\n");
printf("3 借书\n4 还书\n5 注销书");
printf("\n0 退出\n");
while(n=getchar()){
switch(n)
{
case '1' : book_add();break;
case '2' :search_book();break;
case '3' : book_out();break;
case '4' : book_in();break;
case '5' : book_del();break;
case '0' :exit(0);
}printf("\n\n请选择\n1 注册\n2 查找\n3 借书\n4 还书\n5 注销书\n0 退出\n\n");
getchar();
}
}