当前位置:首页 > c语言图书管理系统
}
} else
ptr=ptr->next;
if(flag1==0){
for(n=0;n fprintf(fp,\ ei,jiage,riqi); } printf(\:继续添加,否则返回图书信息菜单\\n\ scanf(\ if(flag==1) luru(); } } shuhao++; }else printf(\该书号已存在\\n\ fclose(fp); else } *****我将录入和增加图书放在了一起,先读文件,如果为空,首次录入,如果不为空进行添加。并利用递归的思想实现多次录入和添加,并在case后面判断是否返回上一级,如果返回重新调用菜单函数。 void shanchu() //*********删除功能菜单 { int choice,n=0; system(\ printf(\ caidan1(); ************\\n\ printf(\ 1, 按 书 号 删 除 *********************\\n\ printf(\ 2. 按 书 名 删 除 *********************\\n\ printf(\ 3, 按 作 者 删 除 *********************\\n\ printf(\ 0,返回功能菜单 *********************\\n\ printf(\ ************\\n\ } *****删除菜单,分为按书名删除,按书号,按作者 void nshanchu() //**********按书号删除 { FILE *fp; struct book *head,*ptr,*p; int kucun,flag,jiage,n; printf(\输入你的选择:\scanf(\switch(choice){ case 1:nshanchu();//***按书号删除 break; case 2:bshanchu();//****按书名 break; case 3:wshanchu();//****按作者 break; case 0:caidan1();break; } int shuhao; int sh; char bname[50],bname1[50],chuban[50],wname[50],fenlei[50],riqi[50]; fp=fopen(\printf(\请输入书号:\scanf(\flag=0;n=0; head=ptr=NULL; while(!feof(fp)){//-------------------将文本扫入缓存,符合条件的不扫入,建立 链表 fscanf(fp,\ ge,riqi); if(sh!=shuhao){ p=(struct book *)malloc(sizeof(struct book)); p->shuhao=shuhao; p->kucun=kucun; p->jiage=jiage; strcpy(p->bname,bname); strcpy(p->chuban,chuban); strcpy(p->wname,wname); strcpy(p->riqi,riqi); strcpy(p->fenlei,fenlei); if(head==NULL){ head=p; ptr=p; }else{ } ptr->next=p; ptr=p; }else{ strcpy(bname1,bname); flag++;} } fclose(fp);//从链表写到文本 fp=fopen(\ptr->next=NULL; p=head; while(p!=NULL){ if(strcmp(p->bname,bname1)==0) p->kucun=p->kucun-1; fprintf(fp,\ n,p->wname,p->fenlei,p->jiage,p->riqi); } void bshanchu() //*******按书名删除 { FILE *fp; struct book *head,*ptr,*p; int kucun,flag,jiage,n; int shuhao; } fclose(fp); if(flag==0) printf(\未发现该书!!!\\n\p=p->next; else printf(\删除成功\\n\ printf(\输入1继续删除,否则返回上级菜单\scanf(\if(n==1) nshanchu(); else shanchu();
共分享92篇相关文档