图书馆管理系统.docx
《图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统.docx(13页珍藏版)》请在咨信网上搜索。
精品文档就在这里 -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------------------------------------------------------------------------------------------------------------------------------------- //*********************** //图书馆管理系统 //*********************** #include<stdio.h> #include<string.h> #include<malloc.h> #define null 0 #define max 65536 static int n; //********************* // 图书结构体 //********************* typedef struct { char num[10]; //书号 char name[9]; //书名 char addr[31]; //作者 int Nowcounter; //现存量 int Allcounter; //总库存量 }datatype; datatype *x[max]; //定义两个指针数组 datatype *p; //***************************** //图书功能函数列表 //***************************** void redo(); //主递归函数 void creatlist(datatype *x[]); //图书建立函数 int menu_select(); //功能菜单函数 void find(datatype *x[],int n); //查找函数 void delnode(datatype *x[]); //插入函数 void printlist(datatype *x[]); //显示函数 void jieyue(datatype *x[],int n); //借阅函数 void guihuan(datatype *x[],int n); //归还函数 //***************************** //主递归函数程序 //***************************** void redo() { int i=0,j,n1,k=0,flage; for( ; ;) { switch( menu_select()) { case 1: //选项1的实现 printf("***********************\n"); printf("* 图书的建立 *\n"); printf("***********************\n"); creatlist(x); break; case 2: //选项2的实现 printf("***********************\n"); printf("* 新图书信息的添加 *\n"); printf("***********************\n"); printf(" 插入的个数:"); scanf("%d",&n1); //输入插入新图书的个数 for(i=0;i<n1;i++) { flage=0; p=(datatype *)malloc(sizeof(datatype)); //分配一个节点空间 printf(" 书名: "); scanf("%s",p->name); //输入插入书的书名 if(flage==0) { for(j=0;j<n;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; case 3: printf("***********************\n"); printf("* 图书信息的查询 *\n"); printf("***********************\n"); find(x,n); break; case 4: printf("************************\n"); printf("* 图书信息的删除 *\n"); printf("************************\n"); delnode(x); break; case 5: printf("************************\n"); printf("* 图书信息的显示 *\n"); printf("************************\n"); printlist(x); break; case 6: printf("************************\n"); printf(" 图书的借阅\n"); printf("************************\n"); jieyue(x,n); break; case 7: printf("************************\n"); printf(" 图书的归还\n"); printf("************************\n"); guihuan(x,n); break; case 0: printf("\t 谢谢使用,再见! \n"); return; } } } //************************* //主函数程序 //************************* void main () { redo(); //调用主递归函数 } //************************* //功能菜单函数 //************************* int menu_select() { int i; 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); } return i; } //******************************** // 建立链表图书建造函数 //******************************** void creatlist(datatype *x[]) { int i; printf(" 请输入要建立图书的个数:"); scanf("%d",&n); for(i=0;i<n;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; } } //********************************** // 查找函数程序 //********************************* void find(datatype *x[],int n) { char num[10]; char name[9]; int t,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<n;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<n;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; } } } //****************************** //删除函数程序 //****************************** void delnode(datatype *x[]) { char num1[10],name1[10]; //定义两个字符数组 int i,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) //实现删除程序 { case 1: printf(" 输入要删除书的编号:\n"); scanf(" %s",num1); for(i=0;i<n;i++) { if(strcmp(x[i]->num,num1)==0) //调用strcmp函数 { m=0; n--; for(j=i;j<n;j++) x[j]=x[j+1]; //将该书信息删除 printf(" 该书已删除!\n"); } } if(m==1) printf(" 没有这样的的图书\n"); break; case 2: printf(" 输入要删除书的名字:\n"); scanf("%s",&name1); for(i=0;i<n;i++) { if(strcmp(x[i]->name,name1)==0) //调用strcmp函数 { m=0; n--; for(j=i;j<n;j++) //将该书信息删除 x[j]=x[j+1]; printf(" 该书已删除!\n"); } } if(m==1) printf(" 没有这样的的图书\n"); break; case 3: break; } } ////////////////////////// ////借阅函数程序 ///////////////////////// void jieyue(datatype *x[],int n) { int i,m=1,p; char name1[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) //实现查询程序 { case 1: printf(" 请输入你要的书的名字!\n"); scanf("%s",&name1); // 输入书名 for(i=0;i<n;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; case 2: printf(" 请输入你要的书的编号!\n"); scanf("%s",&num1); // 输入书号 for(i=0;i<n;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; case 3: break; } } /////////////////////// /////归还程序 ////////////////////// void guihuan(datatype *x[],int n) { int i,q,m=1; char name1[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) //实现归还程序 { case 1: printf(" 输入归还书的书名: "); scanf("%s",&name1); // 输入书名 for(i=0;i<n;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; case 2: printf("输入归还书的书号\n"); scanf("%s",&num1); // 输入书号 for(i=0;i<n;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; case 3: break; } } //************************************** // 输出程序 //************************************** void printlist(datatype *x[]) { int i; printf("编号 书名 作者 现存量 总存量\n"); //输出图书各项信息 for(i=0;i<n;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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文