




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#ifndef bklist_h#define bklist_h#define data_file datastruct bk_node;typedef struct bk_node * n_ptr;struct bk_node char id16;char name32;char author16;char data16; float price;n_ptr next;n_ptr query_noden(n_ptr list,char * name);n_ptr clean_list(n_ptr list); /清空列表中所有内容n_ptr create_list(void); /从文件中读取列表n_ptr create_node(void); /创建一个节点void save_list(n_ptr list); /保存列表内容到文件n_ptr insert_node(n_ptr list,n_ptr node); /插入一条新纪录n_ptr delete_node(n_ptr list,n_ptr node); /删除一条记录,按节点查询n_ptr query_node(n_ptr list,char * id); /按id查询,返回一个节点void print_list(n_ptr list); /打印所有条目void print_node(n_ptr node); /打印单个条目信息#endif/bkman.c#include#include#includebklist.hvoid print_menu(void);int main(int argc,char *argv) char c,d; int i=0;char id16;char name4;n_ptr list;n_ptr node;list=create_list();while(1) print_menu(); c=getchar(); getchar(); switch(c) case1:print_list(list); printf(本馆现存图书共%d本,i); break; case2:printf(1 按图书编号查询n); printf(2 按书名查询n); d=getchar(); switch(d) case1:printf(请输入要查询的图书号:); scanf(%s,id); getchar(); node=query_node(list,id); if(node!=null) print_node(node); break; case2:printf(请输入要查询图书名:); scanf(%s,name); getchar(); node=query_noden(list,name); if(node!=null) print_node(node); break; break; case3:node=create_node(); list=insert_node(list,node);i+; break; case4:printf(请输入要删除的图书编号:); scanf(%s,id); getchar(); node=query_node(list,id); if(node!=null) list=delete_node(list,node);i-; break; case5:list=clean_list(list);i=0; break; case6:save_list(list); break; case0:return 0; default:printf(输入错误,请重新输入!n); return 0;void print_menu(void) printf(n);printf(*n);printf( 图书信息管理系统n);printf(*n);printf( 1.列出所有图书n);printf( 2.查询指定图书n);printf( 3.添加记录n);printf( 4.删除记录n);printf( 5.清空图书列表n);printf( 6.保存修改n);printf( 0.退出系统n);printf(*n);printf(请选择:);#include#include#include#includebklist.hn_ptr clean_list(n_ptr list) n_ptr pos,tmp;if(list=null) printf(列表已为空!n); return null;pos=list;while(pos!=null) tmp=pos-next; free(pos); pos=tmp;printf(列表已清空!n);return null;n_ptr create_list(void) file *fp;n_ptr node;n_ptr list=null;fp=fopen(data_file,rb);if(fp=null) return list;while(1) node=(bk_node *)malloc(sizeof(struct bk_node); if(fread(node,sizeof(struct bk_node),1,fp)=0) break; node-next=null; list=insert_node(list,node);return list;void save_list(n_ptr list) file *fp;n_ptr pos=list;fp=fopen(d:data_file.txt,wb);while(pos!=null) fwrite(pos,sizeof(struct bk_node),1,fp); pos=pos-next;printf(保存成功!n);n_ptr create_node(void) n_ptr node;node=(bk_node *)malloc(sizeof(struct bk_node);printf(编号:);gets(node-id);printf(书名:);gets(node-name);printf(作者:);gets(node-author);printf(出版日期(yy/mm/dd):);gets(node-data);printf(价格:);scanf(%f,&node-price);node-next=null;getchar();return node;n_ptr insert_node(n_ptr list,n_ptr node) n_ptr pos=list;/当链表为null时,进行如下处理,此时链表头会发生改变if(list=null) list=node; return list;while(pos-next!=null)pos=pos-next;node-next=pos-next;pos-next=node;return list;n_ptr delete_node(n_ptr list,n_ptr node) n_ptr pos=list;n_ptr tmp;if(list=null) printf(列表为空!n);return list;/要删除的条目为表头,表头会发生改变if(pos=node) tmp=pos-next;free(pos);printf(删除成功!n);return tmp;while(pos-next!=node&pos-next!=null)pos=pos-next;if(pos-next!=null) pos-next=node-next;free(node);printf(删除成功!n);else printf(没有找到记录!n);return list;n_ptr query_node(n_ptr list,char * id) n_ptr pos=list;while(pos!=null&strcmp(pos-id,id)!=0)pos=pos-next;if(pos=null)printf(没有找到记录!n);return pos;n_ptr query_noden(n_ptr list,char * name) n_ptr pos=list;while(pos!=null&strcmp(pos-name,name)!=0)pos=pos-next;if(pos=null)printf(没有找到记录!n);return pos;void print_list(n_ptr list) n_ptr pos=list;if(list=null) printf(列表为空!n);return;printf(%-10s,编号);printf(%-30s,书名);printf(%-15s,作者);printf(%-10s,出版日期);printf(%s,价格);printf(n);while(pos!=null)printf(%-10s,pos-id);printf(%-30s,pos-name);printf(%-15s,pos-author);printf(%-10s,pos-data);print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国移动贺州市2025秋招笔试行测题库及答案网络优化与维护类
- 22.生活中的静电 教学设计- 科学四年级下册青岛版
- 吉林地区中石化2025秋招笔试行测专练题库及答案
- 第6课 我们一起玩说课稿小学心理健康苏教版一年级-苏科版
- 第二章 第一节 三 经纬网教学设计-湘教版初中地理七年级上册
- 15、环境保护中的数学问题说课稿小学数学六年级下册浙教版
- 小数乘整数(教学设计)-五年级上册数学 人教版
- 专利申请权有偿转让协议书5篇
- 22.2 人的性状和遗传 说课稿-苏教版生物八年级下册
- 安全监督培训设计课件
- SB-T 11238-2023 报废电动汽车回收拆解技术要求
- 大学生涯成长手册
- 《放血疗法》课件
- 飞机发展简史-儿童科普
- 数独比赛“六宫”练习题(96道)
- 第4章-信息可视化设计的应用与展望
- PIPESIM软件教程(软件介绍及模型建立)
- 中考道德与法治学科质量分析报告模板
- 九年级数学备课组活动记录
- 2021中小学校“5+2”课后延时服务告家长书及回执(范本)
- 磁共振灌注成像
评论
0/150
提交评论