图书管理系统代码1.docx
- 文档编号:7411539
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:15
- 大小:16.57KB
图书管理系统代码1.docx
《图书管理系统代码1.docx》由会员分享,可在线阅读,更多相关《图书管理系统代码1.docx(15页珍藏版)》请在冰豆网上搜索。
图书管理系统代码1
图书管理系统代码
//***********************
//图书馆管理系统
//***********************
#include
#include
#include
#definenull0
#definemax65536
staticintn;
//*********************
//图书结构体
//*********************
typedefstruct
{
charnum[10];//书号
charname[9];//书名
charaddr[31];//作者
intNowcounter;//现存量
intAllcounter;//总库存量
}datatype;
datatype*x[max];//定义两个指针数组
datatype*p;
//*****************************
//图书功能函数列表
//*****************************
voidredo();//主递归函数
voidcreatlist(datatype*x[]);//图书建立函数
intmenu_select();//功能菜单函数
voidfind(datatype*x[],intn);//查找函数
voiddelnode(datatype*x[]);//插入函数
voidprintlist(datatype*x[]);//显示函数
voidjieyue(datatype*x[],intn);//借阅函数
voidguihuan(datatype*x[],intn);//归还函数
//*****************************
//主递归函数程序
//*****************************
voidredo()
{
inti=0,j,n1,k=0,flage;
for(;;)
{
switch(menu_select())
{
case1:
//选项1的实现
printf("***********************\n");
printf("*图书的建立*\n");
printf("***********************\n");
creatlist(x);
break;
case2:
//选项2的实现
printf("***********************\n");
printf("*新图书信息的添加*\n");
printf("***********************\n");
printf("插入的个数:
");
scanf("%d",&n1);//输入插入新图书的个数
for(i=0;i { flage=0; p=(datatype*)malloc(sizeof(datatype));//分配一个节点空间 printf("书名: "); scanf("%s",p->name);//输入插入书的书名 if(flage==0) { for(j=0;j { if(strcmp(x[j]->name,p->name)==0)//调用比较函数查看书名是否已知 { x[j]->Allcounter++; x[j]->Nowcounter++; flage=1; } } if(flage==0) { n++; printf("第%d个图书数据: \n",n);//插入新的图书 p=(datatype*)malloc(sizeof(datatype)); x[n-1]=p; printf("书名: "); scanf("%s",x[n-1]->name);//输入书名 printf("编号: "); scanf("%s",x[n-1]->num);//输入书号 printf("作者: "); scanf("%s",x[n-1]->addr);//输入作者名 printf("总库存量: "); scanf("%d",&x[n-1]->Allcounter);//输入总库存量 x[n-1]->Nowcounter=x[n-1]->Allcounter; } } } break; case3: printf("***********************\n"); printf("*图书信息的查询*\n"); printf("***********************\n"); find(x,n); break; case4: printf("************************\n"); printf("*图书信息的删除*\n"); printf("************************\n"); delnode(x); break; case5: printf("************************\n"); printf("*图书信息的显示*\n"); printf("************************\n"); printlist(x); break; case6: printf("************************\n"); printf("图书的借阅\n"); printf("************************\n"); jieyue(x,n); break; case7: printf("************************\n"); printf("图书的归还\n"); printf("************************\n"); guihuan(x,n); break; case0: printf("\t谢谢使用,再见! \n"); return; } } } //************************* //主函数程序 //************************* voidmain() { redo();//调用主递归函数 } //************************* //功能菜单函数 //************************* intmenu_select() { inti; printf("欢迎进入图书管理系统! \n"); printf("===========================\n"); printf("1.图书信息的采集\n"); printf("2.新图书的插入\n"); printf("3.图书信息的查询\n"); printf("4.图书的删除\n"); printf("5.图书的显示\n"); printf("6.图书的借阅\n"); printf("7.图书的归还\n"); printf("0.退出管理系统\n"); printf("===========================\n"); printf("请选择0-7: "); scanf("%d",&i); while(i<0||i>7) { printf("\n\t输入出错,重选0-7: "); scanf("%d",&i); } returni; } //******************************** //建立链表图书建造函数 //******************************** voidcreatlist(datatype*x[]) { inti; printf("请输入要建立图书的个数: "); scanf("%d",&n); for(i=0;i { printf("第%d个图书数据: \n",i+1); p=(datatype*)malloc(sizeof(datatype));//分配一个节点空间 x[i]=p; printf("书名: ");//输入图书各项内容 scanf("%s",x[i]->name); printf("编号: "); scanf("%s",x[i]->num); printf("作者: "); scanf("%s",x[i]->addr); printf("总库存量: "); scanf("%d",&x[i]->Allcounter); x[i]->Nowcounter=x[i]->Allcounter; } } //********************************** //查找函数程序 //********************************* voidfind(datatype*x[],intn) { charnum[10]; charname[9]; intt,i; printf("=================\n");//输出查找方式 printf("1.按编号查询\n"); printf("2.按书名查询\n"); printf("=================\n"); printf("请选择: "); scanf("%d",&t);//输入选择信息 if(t==1) { printf("请输入要查找者的编号: "); scanf("%s",num);//输入书号 for(i=0;i { if(strcmp(x[i]->num,num)==0)//调用strcmp函数 { printf("编号书名作者现库存量总库存量\n");//输出要查询书的信息 printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter); } else continue; } } else { printf("请输入要查询的书名: "); scanf("%s",name);//输入书名 for(i=0;i { if(strcmp(x[i]->name,name)==0) { printf("编号书名作者现库存量总库存量\n");//输出要查询书的信息 printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter); } else continue; } } } //****************************** //删除函数程序 //****************************** voiddelnode(datatype*x[]) { charnum1[10],name1[10];//定义两个字符数组 inti,j,m=1,p; printf("1.按编号删除\n");//输出选择方式 printf("2.按书名删除\n"); printf("3.返回\n"); printf("请选择: \n"); scanf("%d",&p);//输入选择信息 if(p>3||p<1) { printf("您的输入有误,请重新输入! \n"); scanf("%d",&p);//重新输入选择信息 } switch(p)//实现删除程序 { case1: printf("输入要删除书的编号: \n"); scanf("%s",num1); for(i=0;i { if(strcmp(x[i]->num,num1)==0)//调用strcmp函数 { m=0; n--; for(j=i;j x[j]=x[j+1];//将该书信息删除 printf("该书已删除! \n"); } } if(m==1) printf("没有这样的的图书\n"); break; case2: printf("输入要删除书的名字: \n"); scanf("%s",&name1); for(i=0;i { if(strcmp(x[i]->name,name1)==0)//调用strcmp函数 { m=0; n--; for(j=i;j x[j]=x[j+1]; printf("该书已删除! \n"); } } if(m==1) printf("没有这样的的图书\n"); break; case3: break; } } ////////////////////////// ////借阅函数程序 ///////////////////////// voidjieyue(datatype*x[],intn) { inti,m=1,p; charname1[10],num1[10];//定义两个字符数组 printf("1.按名字借阅\n");//输出选择方式 printf("2.按编号借阅\n"); printf("3.返回\n"); printf("请选择\n"); scanf("%d",&p);//输入选择信息 if(p>3||p<1) { printf("您的输入有误! \n"); scanf("%d",&p);//重新输入选择信息 } switch(p)//实现查询程序 { case1: printf("请输入你要的书的名字! \n"); scanf("%s",&name1);//输入书名 for(i=0;i { if(strcmp(x[i]->name,name1)==0)//调用strcmp函数 { m=0; if(x[i]->Nowcounter! =0) x[i]->Nowcounter--; printf("借书成功! \n"); if(x[i]->Nowcounter==0) printf("这本书已经没有了\n"); } } if(m==1) printf("您要的书不存在! \n"); break; case2: printf("请输入你要的书的编号! \n"); scanf("%s",&num1);//输入书号 for(i=0;i { if(strcmp(x[i]->num,num1)==0)//调用strcmp函数 { m=0; if(x[i]->Nowcounter! =0) x[i]->Nowcounter--;//现存书数量减1 printf("借书成功! \n"); if(x[i]->Nowcounter==0) printf("这本书已经没有了\n"); } } if(m==1) printf("您要的书不存在! \n"); break; case3: break; } } /////////////////////// /////归还程序 ////////////////////// voidguihuan(datatype*x[],intn) { inti,q,m=1; charname1[10],num1[10];//定义两个字符数组 printf("1.按书名归还\n");//输出可选择方式 printf("2.按书号归还\n"); printf("3.返回\n"); printf("请选择\n"); scanf("%d",&q);//输入选择信息 if(q>3||q<1) { printf("您的输入有误! \n"); scanf("%d",&q);//重新输入选择信息 } switch(q)//实现归还程序 { case1: printf("输入归还书的书名: "); scanf("%s",&name1);//输入书名 for(i=0;i { if(strcmp(x[i]->name,name1)==0) { m=0; x[i]->Nowcounter++; printf("此书归还成功! \n"); printf("此书的存储情况\n"); printf("编号书名作者现存量总存量\n"); printf("===============================================\n"); printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter); printf("===============================================\n"); } if(strcmp(x[i]->name,name1)==0) continue; } if(m==1) printf("此书不是图书馆的! \n"); break; case2: printf("输入归还书的书号\n"); scanf("%s",&num1);//输入书号 for(i=0;i { if(strcmp(x[i]->num,num1)==0) { m=0; x[i]->Nowcounter++;//显存书增加1 printf("此书归还成功! \n"); printf("此书的存储情况\n"); printf("编号书名作者现存量总存量\n"); printf("==============================================\n"); printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter); printf("==============================================\n"); } if(strcmp(x[i]->num,num1)==0)//调用strcmp函数 continue; } if(m==1) printf("此书不是图书馆的! \n"); break; case3: break; } } //************************************** //输出程序 //************************************** voidprintlist(datatype*x[]) { inti; printf("编号书名作者现存量总存量\n");//输出图书各项信息 for(i=0;i { printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter); } printf("===============================================\n"); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 代码