版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《高级语言课程设计》图书登记管理程序图书登记管理程序题目: 班级: 软件5班学生学号: 201031000504学生姓名: ***指导老师:***提交时间: ***成绩: 评分项目得分功能完整性(30分)界面美观性(10分)设计合理性(10分)创新性(10分)答辩表现(40分)评语:华南农业大学信息学院图书登记管理程序分析1系统分析1.1问题描述图书登记管理程序能够帮助图书管理员切实高效的登记管理图书信息,管理员将全部图书信息存储在系统中,系统能够提示明显信息,从而管理员能对新增,丢失,修改,借阅的图书信息和借书用户信息做必要的登记,并且该系统设有密码,能够一定程度上阻止无关人员操作系统。1.2系统功能分析系统主要分成两大功能,图书管理和用户管理。在图书管理方面,分为增加新图书,删除图书,修改图书信息,查询图书信息,统计图书信息,借阅图书,归还图书等七大功能。在查询图书信息功能上,又细分为按ISBN号,作者,名称,出版社,出版日期,图书类别查询。在统计图书信息功能上,又细分为按ISBN号范围,出版日期范围,价格范围查询。在用户管理方面,分为查询用户信息,修改用户信息,增加用户,删除用户,修改图书管理密码等五大功能。1.3开发平台及工具介绍本系统主要利用C语言的基本知识,使用MicrosoftVisualC++软件来编写程序代码,该软件适合初学者使用,能够帮助程序员快速查找出错误,给出明确提示,从而更加高效的开发出图书登记管理系统。2系统设计2.1系统总体结构设计系统程序中图书信息,用户信息,密码信息都是以结构体的形式表示,并且每一个结构体都分别嵌套在三个链表中,从而能够实现信息的增减功能。2.2系统各个功能模块及功能模块之间关系设计首先系统功能模块分别有创造图书信息、用户信息、密码信息模块。读取图书信息、用户信息、密码信息模块。保存图书信息、用户信息、密码信息模块。输入图书信息、用户信息、密码信息模块。增加图书信息、用户信息模块。删除图书信息、用户信息模块。修改图书信息、用户信息、图书管理密码模块。查询图书信息、用户信息模块。统计图书信息模块。借阅图书模块,归还图书模块。输出图书信息、用户信息模块。各个模块之间相互存在相互调用的关系,大模块调用小模块,层层调用。2.3数据存储的设计(文件等)图书信息,用户信息,密码信息分别存储在三个文件上。实现信息从文件写入链表,信息从链表存储在文件中。2.4界面设计程序的各项功能在程序运行时,以菜单的方式执行。各个菜单中都有明确的提示,使管理员轻松的使用本系统。在主菜单中选择所需功能,再在各二级菜单中选择,以此类推,直至选到所需要的功能。当不需要当前菜单时,还可以返回上一级菜单,重新进行选择,并且系统设置清除界面功能,避免已经没有的信息界面仍然出现。。3系统实现模块的流程图如下:Y退出系统C输入密码进入图书登记程序系统A判断是否存在存储密码,图书,用户信息的文件B创造存储信息的文件Y退出系统C输入密码进入图书登记程序系统A判断是否存在存储密码,图书,用户信息的文件B创造存储信息的文件NYND选择操作内容管理图书信息管理用户信息D选择操作内容管理图书信息管理用户信息E输入管理图书内容E输入管理图书内容F输入管理用户内容判断输入内容1判断输入内容2判断输入内容1判断输入内容1判断输入内容2判断输入内容1增加图书修改图书统计图书归还图书借阅图书查询图书删除图书增加图书修改图书统计图书归还图书借阅图书查询图书删除图书按图书类别按ISBN号查询图书按作者按名称按图书类别按ISBN号查询图书按作者按名称按出版社按出版日期统计图书按出版日期按ISBN号判断输入内容2查询用户信息修改用户信息增加用户化删除用户修改密码按价格按出版日期按ISBN号判断输入内容2查询用户信息修改用户信息增加用户化删除用户修改密码按价格部分关键程序代码如下:A: headss=readFiless(headss); if(!headss) { createFiless(); headss=readFiless(headss); } head=readFile(head); if(!head) { createFile(); head=readFile(head); } heads=readFiles(heads); if(!heads) { createFiles(); heads=readFiles(heads); }B:voidcreateFile()/*创造图书信息函数*/{ bookdata; FILE*fp; if((fp=fopen("book.dat","wb"))==NULL) { printf("存储图书信息的文件未找到!\n"); exit(0); } printf("请输入图书信息,当输入足够图书时,以ISBN号为0结束!\n"); readNode(&data); while(strcmp(data.ISBN,"0")!=0) { fwrite(&data,sizebook,1,fp); readNode(&data); } fclose(fp);}voidcreateFiles()/*创造用户信息函数*/{ peopledatas; FILE*fps; if((fps=fopen("people.dat","wb"))==NULL) { printf("存储用户信息的文件未找到!\n"); exit(0); } printf("请输入用户信息,当注册足够用户时,以用户号码为0结束!\n"); readNodes(&datas); while(datas.num) { fwrite(&datas,sizepeople,1,fps); readNodes(&datas); } fclose(fps);}voidcreateFiless()/*创造密码函数*/{ accessdatass; FILE*fpss; if((fpss=fopen("access.dat","wb"))==NULL) { printf("存储密码信息的文件未找到!\n"); exit(0); } readNodess(&datass); fwrite(&datass,sizeaccess,1,fpss); fclose(fpss);}C:intenter(structnodess*headss)/*进入系统函数*/{ structnodess*q=headss; charcodes[80]; createprints(); scanf("%s",&codes); if(strcmp(q->datass.code,codes)==0) return1; else { printf("输入密码错误,系统已退出!\n"); return0; }}D: switch(choice) { case1:heads=readFiles(heads); head=bookmenu(head,heads); break; case2:heads=readFiles(heads); heads=peoplemenu(heads,head,headss); break; case0:break; default:printf("输入错误,请再输入一遍!\n"); }E: switch(choice) { case1:printf("请输入你要增加图书的信息!\n"); readNode(&data); head=InsertOrder(head,data); break; case2:printf("请输入你要删除图书的ISBN号!\n"); scanf("%s",&ISBNS); head=Delete(head,ISBNS); break; case3:printf("请输入你要修改图书的ISBN号!\n"); scanf("%s",&ISBNS); head=correct(head,ISBNS); break; case4:searchManage(head); break; case5:statist(head); break; case6:printf("请输入你要借阅图书的ISBN号!\n"); scanf("%s",&ISBNS); heads=readFiles(heads); head=borrowbook(head,ISBNS,heads); break; case7:printf("请输入你要归还图书的ISBN号!\n"); scanf("%s",&ISBNS); heads=readFiles(heads); head=returnbook(head,ISBNS,heads); break; case0:system("cls"); break; default:printf("输入错误,请再输入一遍!\n"); break; }:F: switch(choice) { case1:printf("请输入你要查询用户的号码!\n"); scanf("%lf",&nums); searchManages(heads,nums,head); break; case2:printf("请输入你要修改用户的号码!\n"); scanf("%lf",&nums); heads=corrects(heads,nums); break; case3:printf("请输入你要增加用户的号码!\n"); readNodes(&datas); heads=InsertOrders(heads,datas); printf("增加用户成功!\n"); break; case4:printf("请输入你要删除用户的号码!\n"); scanf("%lf",&nums); heads=Deletes(heads,nums); break; case5:headss=correctss(headss); break; case0:system("cls"); break; default:printf("输入错误,请再输入一遍!\n"); break; }4系统测试4.1模块测试(两数值空格代表回车)增加图书:输入978-7-89486-953-7zhongguojindaishigangyaowangyanggaodengjiaoyuchubanshe20100619.550,预期输出增加图书成功!删去图书:978-7-89486-953-2,预期输出删除图书成功!修改图书信息:输入978-7-89486-953-3978-7-89486-953-3Cyuyanchengxushejizhulihuarenminyoudianchubanshe2009093230,预期输出修改成功!查询图书信息:按ISBN号查询:978-7-89486-953-5预期输出为:╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-5║║书名:ITjishu║║作者:weitian║║出版社:ribenchubanshe║║出版日期:201104║║价格:20║║图书类型:自然科学║║图书状态:0║╚══════════════════════════════════╝共有1本!按作者查询:weitian,预期输出为:╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-5║║书名:ITjishu║║作者:weitian║║出版社:ribenchubanshe║║出版日期:201104║║价格:20║║图书类型:自然科学║║图书状态:0║╚══════════════════════════════════╝共有1本!按名称查询:输入duxueyi,预期输出为:╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-2║║书名:duxueyi║║作者:liuxizhen║║出版社:qinghuadaxuechubanshe║║出版日期:200807║║价格:30║║图书类型:综合性图书║║图书状态:0║╚══════════════════════════════════╝共有1本!按出版社查询:输入gaodengjiaoyuchubanshe,预期输出为:╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-4║║书名:makesizhuyigailun║║作者:chenchen║║出版社:gaodengjiaoyuchubanshe║║出版日期:201006║║价格:17║║图书类型:马列毛思想║║图书状态:0║╚══════════════════════════════════╝共有1本!按出版日期查询:输入200909,预期输出为:╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-3║║书名:Cyuyan║║作者:zhulihua║║出版社:renminyoudianchubanshe║║出版日期:200909║║价格:32║║图书类型:社会科学║║图书状态:0║╚══════════════════════════════════╝共有1本!按图书类别查询:输入1,预期输出为:╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-4║║书名:makesizhuyigailun║║作者:chenchen║║出版社:gaodengjiaoyuchubanshe║║出版日期:201006║║价格:17║║图书类型:马列毛思想║║图书状态:0║╚══════════════════════════════════╝共有1本!统计图书信息:按ISBN号统计:输入978-7-89486-953-2978-7-89486-953-4,预期输出为:╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-2║║书名:duxueyi║║作者:liuxizhen║║出版社:qinghuadaxuechubanshe║║出版日期:200807║║价格:30║║图书类型:综合性图书║║图书状态:0║╚══════════════════════════════════╝╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-3║║书名:Cyuyan║║作者:zhulihua║║出版社:renminyoudianchubanshe║║出版日期:200909║║价格:32║║图书类型:社会科学║║图书状态:0║╚══════════════════════════════════╝╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-4║║书名:makesizhuyigailun║║作者:chenchen║║出版社:gaodengjiaoyuchubanshe║║出版日期:201006║║价格:17║║图书类型:马列毛思想║║图书状态:0║╚══════════════════════════════════╝共有3本!按出版日期统计:输入200801201001,预期输出为:╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-1║║书名:shitingshuo║║作者:liuxizhen║║出版社:qinghuadaxuechubanshe║║出版日期:200807║║价格:30║║图书类型:综合性图书║║图书状态:0║╚══════════════════════════════════╝╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-2║║书名:duxueyi║║作者:liuxizhen║║出版社:qinghuadaxuechubanshe║║出版日期:200807║║价格:30║║图书类型:综合性图书║║图书状态:0║╚══════════════════════════════════╝╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-3║║书名:Cyuyan║║作者:zhulihua║║出版社:renminyoudianchubanshe║║出版日期:200909║║价格:32║║图书类型:社会科学║║图书状态:0║╚══════════════════════════════════╝共有3本!按价格统计:输入1820,预期输出为:╔══════════════════════════════════╗║满足您查找条件的图书信息为:║╠══════════════════════════════════╣║ISBN编号:978-7-89486-953-5║║书名:ITjishu║║作者:weitian║║出版社:ribenchubanshe║║出版日期:201104║║价格:20║║图书类型:自然科学║║图书状态:0║╚══════════════════════════════════╝共有1本!借阅图书:输入978-7-89486-953-1201031000504,预期输出为:借书成功!归还图书:输入978-7-89486-953-1201031000504,预期输出为:还3书成功!查询用户信息:输入201031000505,预期输出为:用户号码:2010310005505,已借图书数:0修改用户信息:输入2010310005042010310005060000,预期输出为:修改成功!增加用户:输入201031000507,预期输出为:增加用户成功!删除用户:输入201031000504,预期输出为:删除用户成功!修改图书管理密码:输入123321,预期输出修改密码成功!4.2系统测试输入12311,进入增加图书界面。输入978-7-89486-953-7zhongguojindaishigangyaowangyanggaodengjiaoyuchubanshe20100619.550。再输入3来修改图书信息,输入978-7-89486-953-7zhongguojindaishigangyaowangyanggaodengjiaoyuchubanshe20100629.550。在输入4查询图书,输入1978-7-89486-953-7,此时输出此图书信息框。按0返回上一级菜单,再来输入6来借阅图书,输入978-7-89486-953-7201031000504,则提示借书成功。再到用户菜单中查询用户信息,输入用户号码201031000504,则输出此用户借阅图书信息。然后再到图书管理菜单中归还图书,输入978-7-89486-953-7201031000504,则提示还书成功。然后再次查询用户信息时,发现此用户已经没有借阅此图书了。再来在用户管理菜单中输入3增加用户,输入201031000501,则提示增加用户成功,可以查询用户信息和借阅图书,若输入4删除用户,输入201031000501,则此用户已经被删除,不能再进行借阅图书能操作。5系统运行界面6总结此系统能够较为接近现实图书登记管理系统,做到基本功能齐全,并且界面美观,同时添加了许多创新性的功能,能够切实高效的帮助图书管理员做好图书登记管理工作。但是此系统也有一些不足的方面,部分图书信息没有更好的表达出来,输入信息也较为繁琐等。在程序设计过程中,由于涉及到众多的函数和程序,容易忽略一些细微的字符,导致运算时功能出错,并且此类错误不易查找,系统检测不出,只有靠平时对C语言基本知识的牢固掌握和经验才能做出准确的判断。在此次编写程序中,使我更加深刻的了解C语言中的许多知识,回顾上学期老师重点讲过的知识点。附录:源码#include<stdio.h>#include<stdlib.h>#include<string.h>structbook/*建立图书结构体类型*/{ charname[80],author[80],bookconcern[80],ISBN[80]; intday,status,type; doubleprice; structbook*next;};typedefstructbookbook;intsizebook=sizeof(book);structnode{ bookdata; structnode*next;};intsize=sizeof(structnode);structpeople/*建立用户结构体类型*/{ doublenum; charISBN1[80],ISBN2[80],ISBN3[80]; intcount;};typedefstructpeoplepeople;intsizepeople=sizeof(people);structnodes{ peopledatas; structnodes*next;};intsizes=sizeof(structnodes);structaccess/*建立密码结构体类型*/{ charcode[80];};typedefstructaccessaccess;intsizeaccess=sizeof(access);structnodess{ accessdatass; structnodess*next;};intsizess=sizeof(structnodess);voidreadNode(book*pdata)/*输入图书信息函数*/{ printf("***************************\n"); printf("ISBN号:"); scanf("%s",&pdata->ISBN); if(strcmp(pdata->ISBN,"0")==0) return; printf("名称:"); scanf("%s",&pdata->name); printf("作者:"); scanf("%s",&pdata->author); printf("出版社:"); scanf("%s",&pdata->bookconcern); printf("出版日期:"); scanf("%d",&pdata->day); printf("价格:"); scanf("%lf",&pdata->price); printf("请输入对应数字,马列毛思想=1,哲学=2,社会科学=3,自然科学=4,综合性图书=5\n"); printf("类型:"); scanf("%d",&pdata->type); printf("没有借出的图书输入0,借出的输出1.\n"); printf("状态:"); scanf("%d",&pdata->status);}voidreadNodes(people*pdatas)/*输入用户信息函数*/{ printf("请输入用户号码:"); scanf("%lf",&pdatas->num); pdatas->count=0; strcpy(pdatas->ISBN1,"0"); strcpy(pdatas->ISBN2,"0"); strcpy(pdatas->ISBN3,"0");}voidreadNodes2(people*pdatas)/*更改用户信息函数*/{ printf("用户号码:"); scanf("%lf",&pdatas->num); printf("所借图书数:"); scanf("%d",&pdatas->count); printf("所借图书ISBN码,没有借的请输入0:"); scanf("%s%s%s",&pdatas->ISBN1,&pdatas->ISBN2,&pdatas->ISBN3); printf("\n");}voidreadNodess(access*pdatass)/*输入密码函数*/{ printf("请输入管理员密码:"); scanf("%s",&pdatass->code); printf("\n");}voidsaveFile(structnode*head)/*保存图书信息函数*/{ structnode*p=head; FILE*fp; if((fp=fopen("book.dat","wb"))==NULL) { printf("存储图书的文件未找到!\n"); exit(0); } if(head==NULL) { printf("\n文件没有图书信息!\n"); return; } while(p) { fwrite(&p->data,sizebook,1,fp); p=p->next; } fclose(fp);}voidsaveFiles(structnodes*heads)/*保存用户信息函数*/{ structnodes*p=heads; FILE*fps; if((fps=fopen("people.dat","wb"))==NULL) { printf("存储用户信息的文件未找到!\n"); exit(0); } if(heads==NULL) { printf("\n文件没有用户信息!\n"); return; } while(p) { fwrite(&p->datas,sizepeople,1,fps); p=p->next; } fclose(fps);}voidsaveFiless(structnodess*headss)/*保存密码函数*/{ structnodess*p=headss; FILE*fpss; if((fpss=fopen("access.dat","wb"))==NULL) { printf("存储密码的文件未找到!\n"); exit(0); } if(headss==NULL) { printf("\n文件没有密码信息!\n"); return; } fwrite(&p->datass,sizeaccess,1,fpss); fclose(fpss);}structnode*InsertOrder(structnode*head,bookdata)/*插入图书信息函数*/{ structnode*p,*p1,*p2; p2=head; p=(structnode*)malloc(size); p->data=data; p->next=NULL; if(head==NULL) { head=p; returnhead; } while(p2&&strcmp(p->data.ISBN,p2->data.ISBN)>0) { p1=p2; p2=p2->next; } if(head==p2) head=p; else p1->next=p; p->next=p2; returnhead;}structnodes*InsertOrders(structnodes*heads,peopledatas)/*插入用户信息函数*/{ structnodes*p,*p1,*p2; p2=heads; p=(structnodes*)malloc(sizes); p->datas=datas; p->next=NULL; if(heads==NULL) { heads=p; returnheads; } while(p2&&p->datas.num>p2->datas.num) { p1=p2; p2=p2->next; } if(heads==p2) heads=p; else p1->next=p; p->next=p2; saveFiles(heads); returnheads;}structnode*Delete(structnode*head,charISBNS[30])/*删除图书信息函数*/{ structnode*p=head,*q=NULL; if(head==NULL) { printf("\nNORecords!\n"); returnhead; } while(p&&strcmp(p->data.ISBN,ISBNS)!=0) { q=p; p=p->next; } if(p) { if(q) q->next=p->next; else head=head->next; free(p); printf("删除图书成功!\n"); } else printf("图书不存在!\n"); returnhead;}structnodes*Deletes(structnodes*heads,doublenum)/*删除用户信息函数*/{ structnodes*p=heads,*q=NULL; if(heads==NULL) { printf("\n没有记录!\n"); returnheads; } while(p&&p->datas.num!=num) { q=p; p=p->next; } if(p) { if(q) q->next=p->next; else heads=heads->next; free(p); printf("删除用户成功!\n"); saveFiles(heads); } else printf("用户不存在!\n"); returnheads;}structnode*correct(structnode*head,charISBNS[30])/*更改图书信息函数*/{ structnode*p=head; bookdata; while(p) { if(strcmp(p->data.ISBN,ISBNS)==0) { readNode(&data); p->data=data; printf("修改成功!\n"); returnhead; } p=p->next; } printf("图书不存在!\n"); returnhead;}structnodess*correctss(structnodess*headss)/*更改密码函数*/{ structnodess*p=headss; accessdatass; charcodess[80]; printf("请输入原密码:"); scanf("%s",&codess); if(strcmp(p->datass.code,codess)==0) { readNodess(&datass); p->datass=datass; printf("修改密码成功!\n"); } else printf("输入密码错误,修改密码失败!\n"); returnheadss;}voidcreateprint(){ printf("\n"); printf("****\n"); printf("****\n"); printf("**◎◎**\n"); printf("**请输入要求信息**\n"); printf("*~~~~~~~~~~~~~~~~*\n"); printf("*()()()()()()()()*\n"); printf("###############\n");}voidcreateFile()/*创造图书信息函数*/{ bookdata; FILE*fp; if((fp=fopen("book.dat","wb"))==NULL) { printf("存储图书信息的文件未找到!\n"); exit(0); } printf("请输入图书信息,当输入足够图书时,以ISBN号为0结束!\n"); readNode(&data); while(strcmp(data.ISBN,"0")!=0) { fwrite(&data,sizebook,1,fp); readNode(&data); } fclose(fp);}voidcreateFiles()/*创造用户信息函数*/{ peopledatas; FILE*fps; if((fps=fopen("people.dat","wb"))==NULL) { printf("存储用户信息的文件未找到!\n"); exit(0); } printf("请输入用户信息,当注册足够用户时,以用户号码为0结束!\n"); readNodes(&datas); while(datas.num) { fwrite(&datas,sizepeople,1,fps); readNodes(&datas); } fclose(fps);}voidcreateFiless()/*创造密码函数*/{ accessdatass; FILE*fpss; if((fpss=fopen("access.dat","wb"))==NULL) { printf("存储密码信息的文件未找到!\n"); exit(0); } readNodess(&datass); fwrite(&datass,sizeaccess,1,fpss); fclose(fpss);}structnode*readFile(structnode*head)/*读取图书信息函数*/{ bookdata; FILE*fp; head=NULL; if((fp=fopen("book.dat","rb"))==NULL) { createprint(); printf("存储图书信息的文件未找到!\n"); return0; } fread(&data,sizebook,1,fp); while(!feof(fp)) { head=InsertOrder(head,data); fread(&data,sizebook,1,fp); } fclose(fp); returnhead;}structnodes*readFiles(structnodes*heads)/*读取用户信息函数*/{ peopledatas; FILE*fps; heads=NULL; if((fps=fopen("people.dat","rb"))==NULL) { createprint(); printf("存储用户信息的文件未找到!\n"); return0; } fread(&datas,sizepeople,1,fps); while(!feof(fps)) { heads=InsertOrders(heads,datas); fread(&datas,sizepeople,1,fps); } fclose(fps); returnheads;}structnodess*readFiless(structnodess*headss)/*读取密码函数*/{ structnodess*p; accessdatass; FILE*fpss; headss=NULL; if((fpss=fopen("access.dat","rb"))==NULL) { createprint(); printf("存储密码信息的文件未找到!\n"); return0; } p=(structnodess*)malloc(sizess); fread(&datass,sizeaccess,1,fpss); p->datass=datass; p->next=NULL; headss=p; fclose(fpss); returnheadss;}voidmenusearch(){ printf("\n"); printf("◎◎欢迎使用图书登记管理程序◎◎\n"); printf("\n"); printf("┏━━━━━┓\n"); printf("┃查询菜单┃\n"); printf("┗━━━━━┛\n"); printf("╔════════════════════════════════════╗\n"); printf("║!!!!!!!!!#********选择1则按ISBN号查询********#!!!!!!!!!║\n"); printf("║!!!!!!!!#********选择2则按作者查询**********#!!!!!!!!║\n"); printf("║!!!!!!!#********选择3则按名称查询**********#!!!!!!!║\n"); printf("║!!!!!!#********选择4则按出版社查询********#!!!!!!║\n"); printf("║!!!!!#********选择5则按出版日期查询******#!!!!!║\n"); printf("║!!!!#********选择6则按图书类别查询******#!!!!║\n"); printf("║!!!#********选择0则返回上一级菜单******#!!!║\n"); printf("╚════════════════════════════════════╝\n");}voidprint(structnode*p)/*输出图书信息函数*/{ structnode*q=p; chars[80]; switch(q->data.type) { case1:strcpy(s,"马列毛思想"); break; case2:strcpy(s,"哲学"); break; case3:strcpy(s,"社会科学"); break; case4:strcpy(s,"自然科学"); break; case5:strcpy(s,"综合性图书"); break; } printf("╔══════════════════════════════════╗\n"); printf("║满足您查找条件的图书信息为:║\n"); printf("╠══════════════════════════════════╣\n"); printf("║ISBN编号:%-59s║\n",q->data.ISBN); printf("║书名:%-63s║\n",q->); printf("║作者:%-63s║\n",q->data.author); printf("║出版社:%-61s║\n",q->data.bookconcern); printf("║出版日期:%-59d║\n",q->data.day);printf("║价格:%-63.lf║\n",q->data.price); printf("║图书类型:%-59s║\n",s); printf("║图书状态:%-59d║\n",q->data.status); printf("╚══════════════════════════════════╝\n"); printf("\n");}voidsearch_book_by_ISBN(structnode*p)/*按ISBN号查询图书信息函数*/{ structnode*q=p; charISBNs[80]; intk=1; printf("输入要查询图书的ISBN号!\n"); scanf("%s",&ISBNs); while(q) { if(strcmp(q->data.ISBN,ISBNs)==0) { print(q); k=0; } q=q->next; } if(k) printf("图书未找到!\n");}voidsearch_book_by_author(structnode*p)/*按作者查询图书信息函数*/{ structnode*q=p; charauthors[80]; intk=1,count=0; printf("输入要查询图书的作者!\n"); scanf("%s",&authors); while(q) { if(strcmp(q->data.author,authors)==0) { print(q); k=0; count++; } q=q->next; } if(k) printf("图书未找到!\n"); else printf("共有%d本!\n",count);}voidsearch_book_by_name(structnode*p)/*按书名查询图书信息函数*/{ structnode*q=p; charnames[80]; intk=1,count=0; printf("输入要查询图书的名称!\n"); scanf("%s",&names); while(q) { if(strstr(q->,names)) { print(q); k=0; count++; } q=q->next; } if(k) printf("图书未找到!\n"); else printf("共有%d本!\n",count);}voidsearch_book_by_bookconcern(structnode*p)/*按出版社查询图书信息函数*/{ structnode*q=p; charbookconcerns[80]; intk=1,count=0; printf("输入要查询图书的出版社!\n"); scanf("%s",&bookconcerns); while(q) { if(strcmp(q->data.bookconcern,bookconcerns)==0) { print(q); k=0; count++; } q=q->next; } if(k) printf("图书未找到!\n"); else printf("共有%d本!\n",count);}voidsearch_book_by_day(structnode*p)/*按出版日期查询图书信息函数*/{ structnode*q=p; intdays; intk=1,count=0; printf("输入要查询图书的出版日期!\n"); scanf("%d",&days); while(q) { if(q->data.day==days) { print(q); k=0; count++; } q=q->next; } if(k) printf("图书未找到!\n"); else printf("共有%d本!\n",count);}voidsearch_book_by_type(structnode*p)/*按类型查询图书信息函数*/{ structnode*q=p; inttypes; intk=1,count=0; printf("马列毛思想=1,哲学=2,社会科学=3,自然科学=4,综合性图书=5\n"); printf("输入要查询图书的类型!\n"); scanf("%d",&types); while(q) { if(q->data.type==types) { print(q); k=0; count++; } q=q->next; } if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026青田医院面试题及答案
- 统编版语文七年级下册第一单元练习题(含答案)
- 银行意识形态分析研判会议记录
- 医院教学查房制度
- 思想品德七下第五课第一框《人生难免有挫折》教学设计
- 2026年重症三基应急护理高阶试题及答案
- 2026年法务会计相关考试题及答案
- 2026年维权知识竞赛试题及答案
- 2025年保安人员考试试题及答案
- 初级教师作业批改效率考核表
- 2026年重症5c考试试题附规范答案(高阶版)
- 路灯平均照度、功率密度值计算
- 环境影响评价项目操作预案
- 2026工业机器人核心零部件市场现状及供需结构分析报告
- 老年髋部骨折诊疗与管理指南(2026年版)
- 2025-2026学年地质版三年级体育全一册(教案设计)
- 2026年芯片设计DFT工程师高频面试题包含详细解答
- 施工现场清洁施工方案(3篇)
- 2026年计算机一级WPS Office真题冲刺高频模拟含解析
- TCPCIF-《化学品自动化立体仓库设计规范》
- 供排水安全工作方案
评论
0/150
提交评论