课程设计报告课程设计题目:图书信息管理系统设计学生姓名专业学号指导教师2016年月日-1-目录一.课程设计目的...............................错误!未定义书签。二.设计的内容与要求............................................1三.总体设计方案................................................21.功能分析...................................................22.系统使用的主要函数.........................................23.系统使用的主要数据结构.....................................2四.各功能模块流程图............................................31.程序总体结构图.............................................32.信息录入功能流程图..........................................33.按书名查找算法(按作者名与此类似)..........................44.删除图书信息算法(修改与此类似)...........................4五.功能测试....................................................51.系统主界面.................................................52.系统输入信息的界面.........................................53.系统信息查询的界面.........................................64.系统信息按作者名查询的界面.................................65.系统信息按作者名排序.......................................7六.程序调试过程及心得体会.....................................8七.参考文献...................................................9八.程序清单...................................错误!未定义书签。-2-图书信息管理系统一、课程设计的目的1.巩固和加深学生对C语言课程的基本知识的理解和掌握2.掌握C语言编程和程序调试的基本技能3.利用C语言进行基本的软件设计4.掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力二.设计的内容与要求1、题目:《图书信息管理系统设计》图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、图书信息录入功能(图书信息用文件保存)输入3、图书信息浏览功能--输出4、图书信息查询功能--算法查询方式按书名查询按作者名查询5、图书信息的删除与修改-3-三.总体设计方案1.功能分析(系统提供主界面,各种功能操作以独立的函数为基础,运用对链表操作的技术来实现通讯录的管理,同时对操作结果在计算机中做永久保存。)整个系统可以分为信息录入、信息浏览、信息查询、信息排序、信息删除和信息修改的功能。系统提供主界面,各种功能操作以独立的函数为基础,运用对链表操作的技术来实现图书信息的管理,同时对操作结果在计算机中做永久保存。2.系统使用的主要函数voidmenu();intbookluru(structbook*p,intn);(录入图书信息)voidbookliulan(structbook*p,intn);(图书信息浏览)voidbookchaxun(structbook*p,intn);(图书信息查询)voidbookxiugai(structbook*p,intn);(图书信息修改)intbookzengjia(structbook*p,intn);(图书信息增加)intbookshanchu(structbook*p,intn);(图书信息删除)voidbookpaixu(structbook*p,intn);(图书信息排序)voidDLsearch(structbook*p,intn);(按登入号查询)voidAUsearch(structbook*p,intn);(按作者名查询)intbookzairu(structbook*p,intn);(图书信息文件储存)voidgoout();(退出程序)intbookbaocun(structbook*p,intn);(图书信息保存)voidmain()3.系统使用的主要数据结构structbook//定义一个book类结构体。{charno[L];charname[L];charauthor[L];charfenlei[L];charputtime[L];charputfrom[L];charprice[L];};-4-四.各功能模块流程图1.程序总体结构图2.信息录入功能流程图-5-3.按书名查找算法(按作者名与此类似)4.删除图书信息算法(修改与此类似)5.-6-五.程序运行结果1.系统主界面2.系统输入信息的主界面-7-3.系统信息查询的界面4.系统信息按作者名查询的界面-8-5.系统信息按作者名排序-9-六.程序调试过程及心得体会1.问题:在信息查询完成后,无法跳出该界面,无法回到主界面。解决方法:在信息查询那个版块的程序中,把原先用scanf输入字符改成gets(no),排除由于回车键出现的问题。2)问题:“登录号书名作者。。。”之间无空格号解决方法:改为printf(\n%9s%9s%9s%9s%9s%9s%9s\n,登录号,书名,作者名,分类号,出版单位,出版时间,价格);拉宽长度。-10-2.课程设计小结通过一周的课程设计,第一次我们试着用所学的C语言知识去编制生活中常用的程序。我们是小组选择编辑图书信息管理系统程序。由于分工合作,我负责的是查询和排除模块。起初对知识掌握的不够全面,在整个设计过程中遇到很多问题。比如,编译出现错误,对于格式的掌握还不够透彻;在分界面运行完后,回不到系统的主界面,出现了死循环;在删除信息的板块中,删除了要保留的;运行时,屏幕显示的字之间无空格。后来,通过小组互相帮组讨论,查阅书籍,改善了程序。首先把原程序中的运用scanf()输入字符,改为getchar(),排除了接受回车键所出现的问题,能够顺利的返回主界面。其次,printf()中字符串控制的长度拉宽。最后还是能如期的完成此次实训。当然,由于初次接触图书管理系统的设计,程序还是存在缺陷。比如操作起来不够简便、连贯,同时也没考虑到实际问题。如图书的价格要取大于等于零的数等。总之,此次的课程设计还是对我们的专业很有帮助。既巩固了我们的C语言知识,让我们对一部分函数的功能有了更加深刻的理解,把所学运用到实际,也使我们在系统设计领域有了新的拓展,开发我们的思维。七.参考文献《C程序设计(第四版)》谭浩强著清华大学出版社《C程序设计(第四版)学习辅导》谭浩强著清华大学出版社-11-八.程序清单#includestdio.h//头文件#includestring.h#includestdlib.h#defineL30//宏定义#defineQ200structbook//定义一个book类结构体。{charno[L];charname[L];charauthor[L];charfenlei[L];charputtime[L];charputfrom[L];charprice[L];};//函数声明//函数声明voidmenu();intbookluru(structbook*p,intn);voidbookliulan(structbook*p,intn);voidbookchaxun(structbook*p,intn);voidbookxiugai(structbook*p,intn);intbookzhengjia(structbook*p,intn);intbookshanchu(structbook*p,intn);voidbookpaixu(structbook*p,intn);voidDLsearch(structbook*p,intn);voidAUsearch(structbook*p,intn);intbookzairu(structbook*p,intn);voidgoout();intbookbaocun(structbook*p,intn);voidmain()//主函数{charslect,yn;structbookrecord[Q];//定义book类结构体变量存放图书信息共200条inttotal=0,flag;total=bookzairu(record,Q);//从文件读取图书信息,不超过200条do{menu();//显示菜单printf(请服务项编号:);slect=getchar();getchar();switch(slect){case'0':goout();break;case'1':total=bookluru(record,total);break;//函数调用case'2':bookliulan(record,total);break;case'3':bookchaxun(record,total);break;case'4':bookxiugai(record,total);break;case'5':total=bookzhengjia(record,total);break;case'6':total=bookshanchu(record,total);break;case'7':bookpaixu(record,total);break;case'8':flag=bookbaocun(record,total);if(flag==1)printf(图书信息保存成功!\n);elseprintf(图书信息保存失败!\n);break;default:continue;}if(slect=='0')break;printf(\n还要继续选择吗?(Y/N));//提示是否结束do{yn=getchar();getchar();if(yn=='Y'||yn=='y')break;elseif(yn=='N'||yn=='n')-12-break;elseprintf(非法选项!\n还要继续选择吗?(Y/N));}while(1);}while(yn!='N'&&yn!='n');}//图书管理系统主菜单.voidmenu(){system(cls);printf(\n\n);printf(请选择服务项目编号(0--8)\n);printf(******************************************************************\n);printf(§********************欢迎使用图书信息管理系统******************§\n);printf(§**************************************************************§\n);printf(§§§§\n);printf(§§§§\n);printf(§§§§\n);printf(§§*1.图书信息录入.§§\n);printf(§§*2.图书信息浏览.§§\n);printf(§§*3.图书信息查寻.§§\n);printf(§§*4.图书信