图书管理系统程序代码.docx
《图书管理系统程序代码.docx》由会员分享,可在线阅读,更多相关《图书管理系统程序代码.docx(43页珍藏版)》请在咨信网上搜索。
#include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE (struct booklist *)malloc(sizeof(struct booklist)) //建立已借阅图书信息构造体 struct borrow { char borbook_num[10]; char borbook_name[22]; char return_time[15]; char stu_num[15]; char stu_name[15]; struct borrow *next; }; //建立预借图书信息构造体 struct prebor_stu { char prebook_num[10]; char prestu_num[15]; struct prebor_stu *next; }; //建立图书构造体 struct booklist{ char num[10]; char name[22]; char zuozhe[15]; char leibie[10]; char pub_time[10]; char price[10]; char condition[10]; struct booklist *next; }; struct booklist *create(void); /*创立图书信息链表*/ struct borrow *borrow_creat(struct booklist *head); //创立已借阅图书信息链表 int pre_creat(struct booklist *head); //学生登录系统预借图书并将信息存入文献prebor_stulist.txt struct prebor_stu *prebor_creat(void); //创立预借阅图书信息链表 void printf1_(struct booklist *); //输出单个基本图书旳数据 void store(struct booklist *head); /*保存链表中旳图书信息到文献booklist.txt*/ void printfb1_(struct borrow *); //输出单个借出图书旳部分数据 void printfb_(struct borrow *p); //输出单个借出图书旳数据 void printfp1_(struct prebor_stu *); //输出单个被预借出图书旳部分数据 void printfp_(struct prebor_stu *); //输出单个被预借出图书旳数据 void printf_(struct booklist *,struct borrow *,struct prebor_stu *); /*2---输出链表中旳图书信息*/ struct booklist *load(void); //5---从文献读入图书信息 struct booklist *num_paixu(struct booklist *); //4---按编号排序 struct booklist *price_paixu(struct booklist *); //3---按价格顺序排序 int kcnum(struct booklist *head); //6---记录库存数 void chaxun1_(struct booklist *,struct borrow *,struct prebor_stu *); //7---查询图书旳编号图书旳信息,并输出 void chaxun2_(struct booklist *,struct prebor_stu *,struct borrow *);//7---按作者查询信息并输出 void chaxun3_(struct booklist *,struct prebor_stu *,struct borrow *); //7---查询某类别图书信息并自动输出 void chaxun4_(struct borrow *,prebor_stu *,struct booklist *); //7---按学号查询借阅信息 struct booklist *shanchu(struct booklist *,struct borrow *,struct prebor_stu *); //9---删除数据 struct borrow *shanchu2_(struct borrow *,struct borrow *); //删除一种 struct borrow 构造体旳数据 struct prebor_stu *shanchu3_(struct prebor_stu *,struct prebor_stu *); //删除一种 struct prebor_stu 构造体旳数据 void xiugai(struct booklist *,struct borrow *,struct prebor_stu *); //10---修改数据 void borstore(struct borrow *borrow_head); //保存已借阅图书信息到文献 borrowlist.txt //重新保存修改后旳预借阅信息到文献 prebor_stulist.txt (所有覆盖) void prestore(struct prebor_stu *pre_head); struct borrow *borload(void); //从文献提取信息创立已借阅图书源信息链表 struct booklist *charu(struct booklist *head,struct borrow *borrow_head); //8---将图书旳数据到顺序排放旳链表中,且插入后也是顺序排放旳 struct booklist *scanf1_(void); // 输入单个图书源数据 void exchange(struct booklist *,struct booklist *) ;//互换两个构造体内旳内容 struct borrow *tianjia1_(struct borrow *borrow_head,struct booklist *p); //添加一种 struct borrow 构造体旳数据 int main(void){ int n, n1, x , k = 0, flag, flag1, x1; char ch; struct booklist *head = NULL; //图书信息链表头指针 struct borrow *borrow_head = NULL ; //已借阅图书信息链表头指针 struct prebor_stu *pre_head = NULL ; //预借图书信息链表头指针 flag1 = 0; x = x1 = 1; while(x) { system("cls"); printf("***************************************************************************\n"); printf("* >>>>>>>>>>>>>欢迎使用君宁图书管理系统<<<<<<<<<<<<<<< *\n"); printf("* 0---退出系统 5---从文献录入数据 *\n"); printf("* 1---录入数据 6---记录库存数 *\n"); printf("* 2---输出信息 10---修改数据 7---查询功能 *\n"); printf("* 3---按价格排序 8---增长数据 *\n"); printf("* 4---按编号排序 9---删除数据 *\n"); printf("***************************************************************************\n"); printf("请选择功能:"); scanf("%d", &n); getchar(); switch(n) { case 0: //0---退出系统 { x = 0; printf("*******谢谢使用君宁图书管理系统!******\n"); printf("****** 欢迎下次使用! ******\n"); break; } case 1: //1---录入数据 { while(x1) { system("cls"); printf("*******欢迎使用君宁图书信息录入系统*******\n"); printf("*** 0---放弃录入 ****\n"); printf("** 1---录入图书源信息 **\n"); printf("* 2---录入借出图书信息 *\n"); printf("** 3---录入预借图书信息 **\n"); printf("******** 祝您使用快乐 ********\n"); printf("请选择功能:"); scanf("%d", &n1); getchar(); switch(n1) { case 0: { x1 = 0; break; } case 1: { head = create( ); /*创立图书信息链表*/ printf("与否将源图书信息保存到文献booklist.txt!...(Y/N) :"); ch = getchar(); if(ch == 'y' || ch == 'Y') store(head); getchar(); break; } case 2: { if(head == NULL ) { printf("请先录入图书源信息!\n"); getchar(); break; } else { borrow_head = borrow_creat(head); //创立已借阅图书信息链表 printf("与否将源图书信息保存到文献borrowlist.txt!...(Y/N) :" ); ch = getchar(); if(ch == 'y' || ch == 'Y') borstore(borrow_head); getchar(); break; } } case 3: { if(head == NULL ) { printf("请先录入图书源信息!\n"); getchar(); break; } else { flag = pre_creat(head); if(flag == 1) printf("没有录入预借图书信息!\n\n"); if(flag == 2) pre_head = prebor_creat(); //创立预借阅图书信息链表 getchar(); break; } } default : { printf("输入错误批示!\n\n"); break; } } } } case 2: //2---输出信息 { if(head == NULL ) { printf("请先录入图书信息!\n"); getchar(); break; } else { printf_(head,borrow_head,pre_head); break; } } case 3: //3---按价格排序 { if(head == NULL ) { printf("请先录入图书信息!\n"); getchar(); break; } else { head = price_paixu(head); printf("与否将排序后旳源图书信息保存到文献booklist.txt!...(Y/N) :"); ch = getchar(); if(ch == 'y' || ch == 'Y') store(head); getchar(); break; } } case 4: //4---按编号排序 { if(head == NULL ) { printf("请先录入图书信息!\n"); getchar(); break; } else{ head = num_paixu(head); printf("与否将排序后旳源图书信息保存到文献booklist.txt!...(Y/N) :"); ch = getchar(); if(ch == 'y' || ch == 'Y') store(head); getchar(); break; } } case 5: //11---从文献读取数据 { head = load(); if(head == NULL ) { printf("请先录入图书信息!\n"); getchar(); break; } else { borrow_head = borload(); //从文献提取信息创立已借阅图书源信息链表 pre_head = prebor_creat(); //创立预借阅图书信息链表 getchar(); break; } } case 6: //6---记录库存数 { if(head == NULL ) { printf("请先录入图书信息!\n"); getchar(); break; } else { k = kcnum(head); printf("总共有%3d本图书!\n\n", k); getchar(); break; } } case 7: //7---查询信息 { if(head == NULL ) { printf("请先录入图书信息!\n"); getchar(); break; } else { while(x1) { system("cls"); printf("*******欢迎使用君宁图书信息查询系统*******\n"); printf("****** 0---退出查询 ******\n"); printf("***** 1---按编号 *****\n"); printf("**** 2---按作者 ****\n"); printf("***** 3---按类别 *****\n"); printf("****** 4---按学号 ******\n"); printf("******** 祝您使用快乐 ********\n"); printf("********* *********\n"); printf("********** **********\n"); printf("请选择功能:"); scanf("%d", &n1); getchar(); switch(n1) { case 0: { x1 = 0; break; } case 1: { chaxun1_(head,borrow_head,pre_head); getchar(); break; } case 2: { chaxun2_(head,pre_head,borrow_head); getchar(); break; } case 3: { chaxun3_(head,pre_head,borrow_head); getchar(); break; } case 4: { chaxun4_(borrow_head,pre_head,head); getchar(); break; } default : { printf("输入批示有误!\n\n"); break; } } } } x1 = 1; break; } case 8: { if(head == NULL ) { printf("请先录入图书信息!\n"); getchar(); break; } else { head = charu(head,borrow_head); printf("与否将源图书信息保存到文献booklist.txt!...(Y/N) :"); ch = getchar(); if(ch == 'y' || ch == 'Y') store(head); getchar(); break; } } case 9: //9---删除数据 { if(head == NULL ) { printf("请先录入图书信息!\n"); getchar(); break; } else { head = shanchu(head,borrow_head,pre_head); borrow_head = borload(); pre_head = prebor_creat(); break; } } case 10: //10---修改数据 { if(head == NULL ) { printf("请先录入图书信息!\n"); getchar(); break; } else { xiugai(head,borrow_head,pre_head); borrow_head = borload(); getchar(); break; } } default : { printf("输入错误批示,请重新输入!"); getchar(); break; } } } return 0; } /*创立图书源信息信息链表*/ struct booklist *create(void) { struct booklist *head, *tail, *p; char num[10],name[22], zuozhe[15], leibie[10], pub_time[10], price[10],condition[10]; head = tail = p = NULL; printf("当输入图书编号为0时结束信息输入\n"); printf("请输入图书编号:"); gets(num); while(strcmp(num,"0") != 0) { p = SIZE; printf("请输入书名:"); gets(name); printf("请输入作者:"); gets(zuozhe); printf("请输入类别:"); gets(leibie); printf("请输入出版时间:"); gets(pub_time); printf("请输入价格:"); gets(price); printf("请输入借阅状况:"); gets(condition); printf("\n"); strcpy(p -> num, num); strcpy(p -> name, name); strcpy(p -> zuozhe, zuozhe); strcpy(p -> leibie, leibie); strcpy(p -> pub_time, pub_time); strcpy(p -> price, price); strcpy(p -> condition, condition); p -> next = NULL; if(head == NULL) head = p; else tail -> next = p; tail = p; printf("请输入图书编号:"); gets(num); } printf("图书源信息已建立链条!\n"); return head; } //创立已借阅图书源信息链表 struct borrow *borrow_creat(struct booklist *head) { struct booklist *p; struct borrow *borrow_head , *p1, *tail; borrow_head = p1 = tail = NULL; for(p = head; p != NULL; p = p -> next) { p1 = (struct borrow *)malloc(sizeof(struct borrow)); if(strcmp(p -> condition,"借出") == 0) { printf("创立借出信息:\n"); strcpy(p1 -> borbook_num ,p -> num); strcpy(p1 -> borbook_name ,p -> name); getchar(); printf("借阅编号为%s旳图书旳借阅信息:\n",p -> num); printf("请输入应归还时间:"); gets(p1 -> return_time); printf("请输入学生学号:"); gets(p1 -> stu_num); printf("请输入学生姓名:"); gets(p1 -> stu_name); printf("\n"); p1 -> next = NULL; if(borrow_head == NULL) borrow_head = p1; else tail -> next = p1; tail = p1; } } printf("成功创立已借出信息链表!\n\n"); getchar(); return borrow_head; } //保存已借阅图书信息到文献 borrowlist.txt void borstore(struct borrow *borrow_head) { FILE *fp; struct borrow *p; if((fp = fopen("borrowlist.txt","w")) == NULL){ printf("File open error! \n"); exit(0); } p = borrow_head; while(p != NULL){ fprintf(fp,"%16s%26s%16s%16s%16s\n",p -> borbook_num, p -> borbook_name, p -> return_time, p -> stu_num, p -> stu_name); p = p -> next; } fclose(fp); printf("文献成功保存到 borrowlist.txt 中!\n"); getchar(); } //从文献提取信息创立已借阅图书源信息链表 struct borrow *borload(void) { struct borrow *p, *tail, *head; FILE *fp; head = p = tail = NULL; if((fp = fopen("borrowlist.txt","r")) == NULL) { printf("文献 borrowlist.txt 打开失败!\n"); getchar(); exit(0); } while(!feof(fp)) { p = (struct borrow *)malloc(sizeof(struct borrow)); fscanf(fp,"%16s%26s%16s%16s%16s\n",p -> borbook_num, p -> borbook_name, p -> return_time, p -> stu_num, p -> stu_name); if(head == NULL) head = p; else tail -> next = p; tail = p; } tail -> next = NULL; fclose(fp); printf("已成功从文献 borrowlist.txt 提取信息创立已借阅图书源信息!\n"); return head; } //录入预借图书信息并将信息存入文献 prebor_stulist.txt int pre_creat(struct booklist *head) { struct booklist *b; struct prebor_stu *p; char a[10], c[15]; int n, x = 1, flag = 1; FILE *fp; b = head; p = (struct prebor_stu *)malloc(sizeof(struct prebor_stu)); printf("进入预借图书!(按回车键继续、、、)\n"); getchar(); while(x) { printf("请输入要预借阅旳图书编号:"); gets(a); while((strcmp(b -> num ,a) != 0) && b -> next != NULL) { b = b -> next; } if(strcmp(b -> num ,a) != 0) { printf("没有找到编号为%s旳图书!\n", a); printf("输入--0 结束录入!(输入其他数字继续录入...)\n\n"); printf("请选择功能:"); scanf("%d", &n); getchar(); if(n == 0) { x = 0; } getchar(); } else { printf("请输入学号:"); gets(c); strcpy(p -> prebook_num, a); strcpy(p -> prestu_num, c); if((fp = fopen("prebor_stulist.txt","a+")) == NULL) { printf("File open error! \n"); exit(0); } fprintf(fp,"%16s%16s\n",p -> prebook_num, p -> prestu_num)- 配套讲稿:
如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。
关于本文