




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图书管理系统代码/*/图书馆管理系统/*#include<stdio.h>#include<string.h>#include<malloc.h>#define null 0#define max 65536static int n;/*/ 图书结构体/*typedef struct char num10; /书号 char name9; /书名 char addr31; /作者 int Nowcounter; /现存量 int Allcounter; /总库存量datatype;datatype *xmax; /定义两个指针数组datatype *p;/*
2、/图书功能函数列表/*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
3、,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(
4、"%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(xj->name,p->name) = 0 )/调用比较函数查看书名是否已知 xj->Allcounter+; xj->N
5、owcounter+; flage=1; if(flage=0) n+; printf(" 第 %d 个图书数据:n",n); /插入新的图书 p=(datatype *)malloc(sizeof(datatype); xn-1=p; printf(" 书名:"); scanf("%s",xn-1->name); /输入书名 printf(" 编号:"); scanf(" %s",xn-1->num); /输入书号 printf(" 作者:"); scanf(&
6、quot; %s",xn-1->addr); / 输入作者名 printf(" 总库存量: "); scanf("%d",&xn-1->Allcounter); /输入总库存量 xn-1->Nowcounter=xn-1->Allcounter; break; case 3: printf("*n"); printf("* 图书信息的查询 *n"); printf("*n"); find(x,n); break; case 4: printf("
7、;*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); br
8、eak; 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"); pri
9、ntf(" 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(" 请选择
10、0-7: "); scanf("%d",&i); while(i<0|i>7) printf("nt输入出错,重选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 个图书数据
11、:n",i+1); p=(datatype *)malloc(sizeof(datatype); /分配一个节点空间 xi=p; printf(" 书名:"); /输入图书各项内容 scanf("%s",xi->name); printf(" 编号:"); scanf(" %s",xi->num); printf(" 作者:"); scanf(" %s",xi->addr); printf(" 总库存量: "); scanf(&
12、quot;%d",&xi->Allcounter); xi->Nowcounter=xi->Allcounter; /*/ 查找函数程序 /*void find(datatype *x,int n) char num10; char name9; int t,i; printf("=n"); /输出查找方式 printf(" 1.按编号查询 n"); printf(" 2.按书名查询 n"); printf("=n"); printf(" 请选择 : ");
13、scanf("%d",&t); /输入选择信息 if(t=1) printf(" 请输入要查找者的编号: "); scanf("%s",num); /输入书号 for(i=0;i<n;i+) if(strcmp(xi->num,num)=0) /调用strcmp函数 printf(" 编号 书名 作者 现库存量 总库存量n"); /输出要查询书的信息 printf(" %-10s%-10s%-10s%-10d%-10dn",xi->num,xi->name,xi-
14、>addr,xi->Nowcounter,xi->Allcounter); else continue; else printf(" 请输入要查询的书名: "); scanf("%s",name); / 输入书名 for(i=0;i<n;i+) if(strcmp(xi->name,name)=0) printf("编号 书名 作者 现库存量 总库存量n"); /输出要查询书的信息 printf(" %-10s%-10s%-10s%-10d%-10dn",xi->num,xi-&
15、gt;name,xi->addr,xi->Nowcounter,xi->Allcounter); else continue; /*/删除函数程序/*void delnode(datatype *x) char num110,name110; /定义两个字符数组 int i,j,m=1,p; printf(" 1.按编号删除n"); /输出选择方式 printf(" 2.按书名删除n"); printf(" 3.返回n"); printf(" 请选择:n"); scanf("%d&quo
16、t;,&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(xi->num,num1)=0) /调用strcmp函数 m=0; n-; for(j=i;j<n;j+) xj=xj+1
17、; /将该书信息删除 printf(" 该书已删除!n"); if(m=1) printf(" 没有这样的的图书n"); break; case 2: printf(" 输入要删除书的名字:n"); scanf("%s",&name1); for(i=0;i<n;i+) if(strcmp(xi->name,name1)=0) /调用strcmp函数 m=0; n-; for(j=i;j<n;j+) /将该书信息删除 xj=xj+1; printf(" 该书已删除!n"
18、); if(m=1) printf(" 没有这样的的图书n"); break; case 3: break; /借阅函数程序/void jieyue(datatype *x,int n) int i,m=1,p; char name110,num110; /定义两个字符数组 printf(" 1.按名字借阅n"); /输出选择方式 printf(" 2.按编号借阅n"); printf(" 3.返回n"); printf(" 请选择n"); scanf("%d",&p
19、); /输入选择信息 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(xi->name,name1)=0) /调用strcmp函数 m=0; if(xi->Nowcounter!=0) xi-&g
20、t;Nowcounter-; printf(" 借书成功!n"); if(xi->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(xi->num,num1)=0) /调用strcmp函数 m=0; if(
21、xi->Nowcounter!=0) xi->Nowcounter-; /现存书数量减1 printf(" 借书成功!n"); if(xi->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 name110,num110; /定义两个字符数组 printf(" 1.按书名
22、归还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(&
23、quot;%s",&name1); / 输入书名 for(i=0;i<n;i+) if(strcmp(xi->name,name1)=0) m=0; xi->Nowcounter+; printf("此书归还成功!n"); printf("此书的存储情况n"); printf("编号 书名 作者 现存量 总存量n"); printf("=n"); printf(" %-10s%-10s%-10s%-10d%-10dn",xi->num,xi->name,xi->addr,xi->Nowcounter,xi->Allcounter); printf("=n"); if(strcmp(xi->name,name1)=0) continue; if(m=1) printf("此书不是图书馆的!n"); break; case 2: prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络通讯设施建设承包合同
- 专利技术许可使用与转让协议
- 事业单位正式聘用劳动合同
- 环保科技研发与推广合作协议
- 企业向法人借款合同
- 三农田土壤健康与改良方案
- 智慧农业技术研发与应用合作协议
- 公路护栏采购合同
- 动物养殖场地租赁合同
- 经典工程劳务承包合同
- YY/T 1537-2017放射治疗用激光定位系统性能和试验方法
- SB/T 10752-2012马铃薯雪花全粉
- 复变函数与积分变换全套课件
- 湿型砂中煤粉作用及检测全解析
- 最新部编版语文五年级下册教材分析及教学建议课件
- A4横线稿纸模板(可直接打印)
- 环境材料学教学课件汇总完整版电子教案全书整套课件幻灯片(最新)
- JJF1175-2021试验筛校准规范-(高清现行)
- 产品结构设计概述课件
- 八年级下综合实践教案全套
- 第8课《山山水水》教学设计(新人教版小学美术六年级上册)
评论
0/150
提交评论