高级语言程序设计课程设计评语:学院班级姓名学号成绩指导老师年月日一、目的1.进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想。(1)题目:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作图书信息录入功能(图书信息用文件保存)--输入图书信息浏览功能--输出查询和排序功能:(至少一种查询方式)--算法按书名查询按作者名查询图书信息的删除与修改(可选项)(2).系统功能与分析(填写你所设计的菜单及流程图)截图略流程图:浏览模块流程图按书名查找模块流程图返回主菜单退出按书名查找模块用户作出选择,输入一整型数值退出返回主菜单1,2,还是3返回上一层显示图书记录用户作出选择,输入一整型数值1,2,还是3按作者查找模块流程图插入模块流程图(3)数据结构typedefstructbook{intsort;charbook_name[15];charauthor_name[15];intvert_number;charpublish_unit[15];charpublish_time[10];intprice;}B按作者名称查找模块用户作出选择,输入一整型数值退出返回主菜单1,2,还是3返回上一层删除或修改模块用户作出选择,输入一整型数值调用删除或修改函数,调用读取函数用户输入修改或删除信息用户作出选择,输入1或2或33.返回上一层1,2或31.确认2.返回图书信息管理系统数据输入数据浏览数据查找删除和修改退出(4).模块设计根据功能需要:源文件函数名功能save()保存input()输入get()获取output()输出book_name通过书名查找author_name()通过作者查找modify()修改delet()删除(5)总体设计思想:(6)调试过程:测试数据及结果,出现了哪些问题截图略(7)程序有待改进的地方及本次实习的收获和建议……(8)源程序清单(主要代码)#includestdio.h#includestdlib.h#includestring.h#defineLENsizeof(structbook)typedefstructbook{intsort;charbook_name[15];charauthor_name[15];intvert_number;charpublish_unit[15];charpublish_time[10];intprice;}B;B*P,*p1,boo;intnum=0,f=0;intsave();voidinput();intget();voidoutput();voidbook_name();voidauthor_name();voidmodify();voiddelet();intmain(){intre=1,t,j=0;intn,choice;while(re==1){t=1;system(cls);printf(*****************************\n);printf(主菜单\n\n);printf(1.录入信息\n);printf(2.查看信息\n);printf(3.查询信息\n);printf(4.删除与修改信息\n);printf(5.退出\n);printf(*****************************);printf(\n);if(j==1)printf(\n\t选择错误!);printf(\n\t请选择1-5:_\b\b);scanf(%d,&choice);switch(choice){case1:{printf(\n\t1:录入信息\n);input();printf(\n\t1.返回主菜单;\n\t2.退出\n\t\t请选择:_\b\b);scanf(%d,&re);break;}case2:{printf(\n\t2.查看信息\n);output();printf(\n\t1.返回主菜单;\n\t2.退出\n\t\t请选择:_\b\b);scanf(%d,&re);break;}case3:{while(t==1){printf(\n\t3.查询信息\n);printf(\n\t请选择查询方式:\n\t1.按书名\n\t2.按作者名\n\t3.其余任意数字键返回主菜单_\b\b);scanf(%d,&n);if(n==1)book_name();elseif(n==2)author_name();else{re=1;gotolebel;}printf(\n\t1.返回上一层;\n\t2.返回主菜单;\n\t3.退出\n\t请选择:_\b\b);scanf(%d,&t);if(t==1)system(cls);if(t==2)re=1;if(t==3)re=0;}lebel:break;}case4:{while(t==1||f==1){printf(\n\t4.删除与修改信息\n);printf(\n\t请选择:\n\t1.删除信息;\n\t2.修改信息\n\t3.其余任意数字键返回主菜单_\b\b);scanf(%d,&n);if(n==1)delet();elseif(n==2)modify();else{re=1;gotolebe;}printf(\n\t1.返回上一层;\n\t2.返回主菜单;\n\t3.退出\n\t\t请选择:_\b\b);scanf(%d,&t);if(t==1)system(cls);if(t==2)re=1;if(t==3)re=0;}lebe:break;}case5:{re=0;break;}default:{re=1;j=1;}}}return0;}intsave(){FILE*fp;inti,n=0,n1=0;if((fp=fopen(book.txt,a+))==NULL)return0;fprintf(fp,%d\n,num);for(i=0;inum;i++){fprintf(fp,%d%s%s%d%s%s%d,P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);fprintf(fp,\n);}fclose(fp);return1;}intget(){FILE*fp;inti;fp=fopen(book.txt,r);if(fp==NULL)return0;else{fscanf(fp,%d,&num);if(num0){P=(B*)malloc(LEN*num);for(i=0;inum;i++){fscanf(fp,%d%s%s%d%s%s%d,&P[i].sort,P[i].book_name,P[i].author_name,&P[i].vert_number,P[i].publish_unit,P[i].publish_time,&P[i].price);}fclose(fp);return1;}else{fclose(fp);return0;}}}voidinput(){intresult;inti;printf(\t\t要录入信息的书籍数量为:__本\b\b);scanf(%d,&num);if(num0){P=(B*)malloc(LEN*num);for(i=0;inum;i++){P[i].sort=i+1;printf(\n\tNO.%d,P[i].sort);printf(\n);printf(\t请按序输入:书名作者名分类号出版单位出版时间价格\n\t\t);scanf(%s%s%d%s%s%d,P[i].book_name,P[i].author_name,&P[i].vert_number,P[i].publish_unit,P[i].publish_time,&P[i].price);printf(\n);}result=save();if(result==0){printf(\t录入信息失败!\n);num=0;}if(result==1){printf(\t成功录入信息!\n);}}else{num=0;printf(\t输入错误!);}}voidoutput(){inti;get();if(get()==1){printf(\n\t\t成功获取信息!\n);for(i=0;inum;i++){printf(\n\t\tNO.\t%d\n,P[i].sort);printf(\t\t书名作者名序列号出版单位出版时间价格\n);printf(\t\t%s%s%d%s%s%d,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf(\n);}}elseprintf(\t文件打开错误!);}voidbook_name(){inti;inttag=0;charch[15];printf(\t请输入书名:_\b\b);scanf(%s,ch);if(get()==0){printf(\t无法查询!);return;}if(get()==1){for(i=0;inum;i++){if(strcmp(P[i].book_name,ch)==0){printf(\n\t\t排列号书名作者名序列号出版单位出版时间价格\n);printf(\t\t%d%s%s%d%s%s%d\n,P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);tag=1;}}if(tag==0){printf(\n\t没有相关信息!\n);}}}voidauthor_name(){inti;inttag=0;charch[15];printf(\t请输入作者名:_\b\b);scanf(%s,ch);if(get()==0){printf(\t无法查询!);return;}if(get()==1){for(i=0;inum;i++)if(strcmp(P[i].author_name,ch)==0){printf(\n\t\t排列号书名作者名序列号出版单位出版时间价格\n);printf(\t\t%d%s%s%d%s%s%d\n,P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);tag=1;}if(tag==0){printf(\t没有相关信息!);}}}voidmodify(){intt,n,i,y=1;intresult,z,x;t=get();if(t==0){printf(\n\t打开文件错误,无法修改!);return;}elseif(y==1){printf(\n\t您要修改信息的图书排列号为(1-%d):_\b\b,num);scanf(%d,&n);if(n=1&&n=num){for(i=0;inum;i++){if(P[i].sort==n){printf(\n\t您即将修改以下信息:\n);printf(\t\t排列号书名作者名序列号出版单位出版时间价格\n);printf(\t\t%d%s%s%d%s%s%d,P[i].sort,P[i].book_name,P[i].autho