您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > C语言图书馆管理系统课程设计报告
一、目的要求《C语言程序设计》是一门讲述C语言的基本知识和编程方法的课程。在讲述C语言数据类型的基础上对C语言的五类语句做了简单的介绍,另外还讨论了C语言的三种程序结构:顺序、选择和循环。对函数的使用、指针的概念、结构体的应用、文件的操作做了详细的介绍。同时结合高职的实际要求和学生的具体情况,在实际教学过程当中强调技能操作的具体指导,鉴于此,编写了C语言课程设计实训大纲。希望同学们能通过实训大纲对C语言有更全面的认识。通过综合训练,要求学生掌握C语言的各种数据结构,熟练应用C语言的各种程序结构,熟悉函数的定义、函数的调用,灵活应用指针,能够解决一般的程序设计问题。图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。设计一图书信息管理系统,使之能提供以下功能:1)系统以菜单方式工作;2)图书信息录入功能(图书信息用文件保存)——输入;3)图书信息浏览功能——输出;4)查询和排序功能:(至少一种查询方式)——算法;5)按书名查询;6)按作者名查询;7)图书信息的删除与修改(可选项)。二、设计思路根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。1、系统需求分析经过以上对本系统的调研及可行性分析后,下面将对系统在功能上以及性能上进行进一步的需求分析。2、功能介绍输入图书信息,出现一个图书信息管理系统的主界面,其中有6个数字代表的选项,可以按相关的数字进行操作。每一条记录包括一本书的书名、图书号、作者、出版时间、出版社名、价格。0)退出:如果在图书管理系统的主界面,则退出的是系统,如果是在子菜单下则返回到主界面。1)录入新图书:可以完成一条信息的输入,也可以完成多条信息的输入。2)浏览图书信息:学生可以浏览图书的相关信息,包括一本书的书名、图书号、作者、出版时间、出版社名、价格。3)自主查询图书信息:可以按书名或按作者查找图书的相关信息并显示。4)删除图书信息:只能通过图书号删除一本书的相关信息。5)修改图书信息:只能通过图书号进行修改该图书的相关信息。3、模块划分图1系统功能模块图4、数据流图图2系统数据流程图显示一系列功能选项输入n,判断n是否是0~5?根据n的值调用各功能模块函数n信息查询信息浏览信息删除信息修改信息录入图书管理系统开始结束退出系统三、设计步骤#includestdio.h#includestdlib.h#includestring.htypedefstruct{charnumber[10];//书号charname[20];//书名charauthor[20];//作者charpublish[50];//出版社chartime[20];//出版时间floatprice;}mbook;typedefstruct{intcount;//书的本数mbookbook[100];//最大可有100本书}mlibrary;mlibrarylibrary;voidsave()//保存图书信息。{FILE*fp;if((fp=fopen(library.doc,w))==NULL){printf(\n不能保存图书信息\n);return;}fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book[0]),library.count,fp);}voidputin()/*定义录入函数*/{inty=1;system(cls);while(y){printf(\t请输入您的书籍的书号:);scanf(%s,library.book[library.count].number);printf(\t请输入书名:);scanf(%s,library.book[library.count].name);printf(\t请输入作者名:);scanf(%s,library.book[library.count].author);printf(\t请输入出版社:);scanf(%s,library.book[library.count].publish);printf(\t请输入出版时间:);scanf(%s,library.book[library.count].time);printf(\t请输入该书的价格:);fflush(stdin);scanf(%f,&library.book[library.count].price);library.count++;printf(录入成功,恭喜您!);printf(\n是否继续录入(1.继续;0,退出录入):);fflush(stdin);scanf(%d,&y);if(y!=1){y=0;break;}}save();}voidlookup(){system(cls);printf(图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n);for(inti=0;ilibrary.count;i++){printf(%s\t%s\t%s\t%s\t%s\t%6.2f\n,library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);}printf(\n查询结果如上按0键返回主菜单:);fflush(stdin);getchar();}voidsearch_by_name()/*定义按书名查询*/{chars2[20];intflag=1;printf(\n请输入要查询的书名:);fflush(stdin);scanf(%s,s2);printf(图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n);for(inti=0;ilibrary.count;i++)if(strcmp(s2,library.book[i].name)==0){flag=0;printf(%s\t%s\t%s\t%s\t%s\t%6.2f\n,library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);}if(flag){printf(查询错误!按0键返回主菜单:);}fflush(stdin);getchar();}voidsearch_by_author()/*定义按作者名查询*/{chars3[20];intflag=1;printf(请输入要查询的书的作者:);fflush(stdin);scanf(%s,s3);printf(图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n);for(inti=0;ilibrary.count;i++)if(strcmp(s3,library.book[i].author)==0){flag=0;printf(%s\t%s\t%s\t%s\t%s\t%6.2f\n,library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);}if(flag){printf(查询出错!按0键返回主菜单:);}fflush(stdin);getchar();}voidsearch()/*定义查询函数*/{inta;system(cls);/*进行清屏*/printf(\t\t******************************\n);printf(开始查询\n);printf(\t\t\t1---------------按书名查询\n);printf(\t\t\t2---------------按作者名查询\n);printf(\t\t\t0---------------退出\n);printf(\t\t******************************\n);printf(\t\t请选择你想要的查询方式:);fflush(stdin);scanf(%d,&a);switch(a){case1:search_by_name();break;case2:search_by_author();break;case0:return;}}voiddel()/*定义删除函数*/{charnumber[10];system(cls);/*清屏*/printf(\n请输入想要删除的书名:);fflush(stdin);scanf(%s,number);inti;for(i=0;ilibrary.count;i++){if(strcmp(number,library.book[i].number)==0)break;}if(i!=library.count){for(;ilibrary.count-1;i++){strcpy(library.book[i].name,library.book[i+1].name);strcpy(library.book[i].number,library.book[i+1].number);strcpy(library.book[i].publish,library.book[i+1].publish);strcpy(library.book[i].author,library.book[i+1].author);strcpy(library.book[i].time,library.book[i+1].time);library.book[i].price=library.book[i+1].price;}library.count--;}elseprintf(\ncannotfound!\n);printf(删除成功按0键返回主菜单);save();fflush(stdin);getchar();}voidupdate()//修改图书信息{charnumber[10];system(cls);/*清屏*/printf(\n请输入你要更改的图书名:);fflush(stdin);scanf(%s,number);inti;for(i=0;ilibrary.count;i++){if(strcmp(number,library.book[i].number)==0){printf(图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n);printf(%s\t%s\t%s\t%s\t%s\t%6.2f\n,library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);break;}}if(i!=library.count){mbookbook;printf(\n\t\t请输入修改后此图书的信息\n);printf(\t请输入图书号:);scanf(%s,book.number);printf(\t请输入图书名:);scanf(%s,book.name);printf(\t请输入作者名:);scanf(%s,book.author);printf(\t请输入出版社:);scan
本文标题:C语言图书馆管理系统课程设计报告
链接地址:https://www.777doc.com/doc-6352121 .html