C语言图书馆管理系统课程设计报告1

电脑杂谈  发布时间:2020-04-21 12:00:56  来源:网络整理

简单图书管理系统c语言_c语言 图书管理系统_简单图书管理系统c语言

第3章图书管理系统的设计与实现3.1系统需求分析图书注册管理系统作为应用软件,将为学校的师生提供一个深入了解学校图书馆的平台,借书还书. 根据系统界面的提示信息,对查询,初始化库信息等操作系统功能需求的分析如下: (1)系统主菜单: 进入系统并退出系统(2)功能菜单: 显示可用的操作(3)查询主菜单: 根据书号,书名,作者查询,并可以显示所有图书信息(4)借还书主菜单: 可以进行借还书等操作总体设计从功能模块,系统接口和数据结构进行系统的整个过程. (1)总体思想本系统的主要设计思想是实现图书馆功能机管理系统信息查询,借阅还书的主要功能. 该系统的设计方法是一种结构化的实用方法. 该系统是用C语言开发的. 用户可以清楚地了解库中的情况. (2)系统模块根据需求分析结果,图书管理系统可分为查询图书模块,借阅功能模块和退还功能模块三个主要模块. 系统模块的结构如下图所示: 图书管理系统ͼ借书还书,图书管理和检查功能ѯ能源主菜单菜菜谱ͳͳͳ清单3.2.2系统轮廓设计㈠系统主菜单. 显示系统的主菜单具有相应的功能代码. 根据每个功能代码的选择,输入不同的接口.

c语言 图书管理系统_简单图书管理系统c语言_简单图书管理系统c语言

主要功能包括: 退出系统,查询书本,借书和还书. (2)查询书籍信息进入此菜单的功能模块,输入要查询的书籍的编号,名称,作者等. 图书查询模块的过程如图所示: 提示提示输入书号,书名和作者输入正确,是,重新输入,否,退出系统3.3测试结果系统主界面功能菜单查询系统菜单借用系统菜单3.4源代码#include #include #include typedef struct link {char number [100];字符书名[100];字符作者[100];字符发布[100];字符时间[100];浮动价格;字符状态[100]; struct link * next;}链接;链接* Cbook(){int n = 0;链接* p,* q,* head;文件* fp; fp = fopen(“图书信息. txt”,“ r +”); if(fp == NULL)printf(“找不到文件,请检查...”); p =(链接*)malloc(sizeof(链接)); if(p == NULL)printf(“申请内存出错!!! \ n”); fscanf(fp,“%s%s%s%s%s%s”,p->数字,p->图书名称,p->作者,p->发布,p->时间); fscanf(fp,“%f”,&p->价格); fscanf(fp,“%s”,p->状态); while(feof(fp)== 0){n ++; if(n == 1){head = p;}否则{q = p; p =(链接*)malloc(sizeof(链接)); if(p == NULL)printf(“申请内存出错!!! \ n”); fscanf(fp,“%s%s%s%s%s”,p->数字,p->书名,p->作者,p->发布,p->时间); fscanf(fp,“%f”,&p->价格); fscanf(fp,“%s”,p->状态); q-> next = p;}} p-> next = NULL; fclose(fp); printf(“已输入信息!!”);返回头;} void mainmenu(){printf(“ \ n ***** ***************************** ******* \ n“); printf(“ \ n **欢迎图书馆管理系统** \ n”); printf(“ \ n ** 1.输入系统0. 退出系统** \ n”); printf(“ \ n ************* **************************** \ n”) ; printf(“ \ n请选择”);}无效menu1(){printf(“ \ n ***************************** ************ \ n“); printf(“ \ n ** 1.输入图书查询系统** \ n”); printf(“ \ n ** 2.输入图书借阅系统** \ n”); printf(“ \ n ** 3.保存所有书籍信息** \ n”); printf(“ \ n ** 4.返回上一级菜单** \ n”); printf(“ \ n *************** ************************** \ n”) ; printf(“ \ n请选择”);} void cxmenu(){printf(“ \ n ***************************** ************ \ n“); printf(“ \ n ** 1.显示所有书籍信息** \ n”); printf(“ \ n ** 2.按编号** \ n”查询书籍); printf(“ \ n ** 3.按书名查询书** \ n”); printf(“ \ n ** 4.按作者查询书籍** \ n”); pr intf(“ \ n ** 5.返回上一级菜单** \ n”); printf(“ \ n ************************** ************** \ n”); printf(“ \ n请选择”);} void jhmenu(){printf(“ \ n ********** ******************* ************ \ n“); printf(“ \ n ** 1.借书** \ n”); printf(“ \ n ** 2.退货书** \ n”); printf(“ \ n ** 3.返回上一级菜单** \ n”); printf(“ \ n **** ************************************* \ n”) ; printf(“ \ n请选择”);}无效打印(链接*头){link * p; p =头printf(“ \ n”); printf(“ \ n ****************** ************************** *** ***** \ n“); printf(“ \ n号\ t \ t标题\ t \ t作者\ t \ t出版商\ t \ t发布时间\ t \ t价格\ t \ t状态\ n”); while(p!= NULL){printf(“ \ n”); printf(“%s \ t%s \ t%s \ t%s \ t%s”简单图书管理系统c语言,p->数字,p->图书名称,p>作者,p->发布,p->时间); printf(“ \ t \ t%.2f”,p->价格); printf(“ \ t \ t%s”,p->状态); printf(“ \ n”); p = p-> next;}}无效保持(链接*头){link * p;文件* fp; fp = fopen(“ Book Information.txt”,“ w +”); if(fp == NULL){printf(“文件操作错误!!!”);出口(1);} p =头; for(; p!= NULL; p = p-> next){fprintf(fp,“%s \ t%s \ t%s \ t%s \ t%s”,p->数字,p-> booknam e,p->作者,p->发布,p->时间); fprintf(fp,“ \ t \ t%.2f”,p->价格); fprintf(fp,“ \ t \ t%s”,p->状态); fprintf(fp,“ \ n”);} fclose(fp); printf(“信息已保存.

简单图书管理系统c语言_简单图书管理系统c语言_c语言 图书管理系统

“);} void holdcx(link * t){link * p = NULL; FILE * fp; fp = fopen(” query.txt“,” a +“); p = t; fprintf(fp,”查询收到的信息是: \ n“); fprintf(fp,” \ n“); fprintf(fp,” \ n ********************** * *************** ************ \ n“); fprintf(fp,” \ n数字\ t \ t标题\ t \ t作者\ t \ t出版商\ t \ t出版时间\ t \ t价格\ t \ t状态\ n“); fprintf(fp,” \ n“); fprintf(fp,”%s \ t%s \ t %s \ t%s \ t%s“,p->数字,p-> booknam e,p->作者,p->发布,p->时间); fprintf(fp,” \ t \ t%. 2f“,p->价格); fprintf(fp,” \ t \ t%s“,p->状态); fprintf(fp,” \ n“); fclose(fp); printf(”信息已保存!!!“);}链接* findnumber(链接*头){字符键[100];链接* h,* t1 = NULL; printf(”请输入书号: “); getchar(); gets(键); for(h = head; h!= NULL; h = h-> next){if(strcmp(key,h-> number)== 0){t1 = h; break;}}返回t1;}链接* findboookname(链接*头){char键[100];链接* h, * t2 = NULL; printf(“请输入书名: ”); getchar();获取(密钥); for(h = head; h!= NULL; h = h-> next){if(strcmp(key,h-> bookname)== 0){t2 = h; break;}}返回t2;} link * findauth或(link * head){字符键[100];链接* h,* t3 = NULL; printf(“请输入作者姓名: ”); getchar();获取(密钥); for(h = head; h!= NULL; h = h-> next){if(strcmp(key,h-> author)== 0){t3 = h; break;}}返回t3;}链接*排序编号(链接*头){link * p,* q,* temp; temp =(链接*)malloc(sizeof(链接)); if(temp == NULL){printf(“申请内存出错!!!”);退出(1);}表示(p = head; p!= NULL; p = p-> next){for(q = p-> next; q!= NULL; q = q-> next){if(strcmp (p->数字,q->数字)> 0){strcpy(temp->数字,p->数字); strcpy(temp->书名,p->书名); strcpy(temp-> author,p-> author); strcpy(temp->发布,p->发布); strcpy(temp->时间,p->时间); temp->价格= p->价格; strcpy(temp->状态,p->状态); strcpy(p->数字,q->数字); strcpy(p->书名,q->书名); strcpy(p->作者,q-> author); strcpy(p->发布,q->发布); strcpy(p->时间,q->时间); p->价格= q->价格; strcpy(p->状态,temp->状态); strcpy(q-> number,temp-> number); strcpy(q->书名,temp->书名); strcpy(q-> author,temp-> author); strcpy(q->发布,temp->发布); strcpy(q->时间,temp->时间); q->价格= temp->价格; strcpy(q->状态,temp->状态);}}} return head;}​​链接*借书(link * head){link * h,* p; char ch,ch1 [100] =“在库中”,ch2 [100] =“在库外”; h =头printf(“ \ n ************* ***************************** *** ***** \ n“); printf(“ \ t \ t欢迎使用借用系统!!! \ n”); p = findboookname(h); if(p == NULL)printf(“未能借书,这本书不在图书馆里!!!”);否则,如果(strcmp(p-> status,ch2)== 0)printf(“未能借书,则该书不在图书馆!!!”); else {printf(“确认贷款?是/否: ”); scanf(“%c”,&ch); getchar(); if(ch =='Y'|| ch =='y'){strcpy(p-> status,ch2); printf(“借书成功,请返回上一级菜单以保存信息!!!”);}如果(ch =='N'|| ch =='n'){printf(“书!!!“);}}返回头; } link * returnbook(link * head){link * h,* p; char ch简单图书管理系统c语言,ch1 [100] =“在库中”,ch2 [100] =“在库外”; h =头printf(“ \ n * ***************************************** *** ***** \ n“); printf(“ \ t \ t欢迎使用图书退回系统!!! \ n”); p = findboookname(h); if(p == NULL)printf(“图书返回失败,这不是图书库Book !!!”);否则{printf(“确认退还书吗?是/否: ”); scanf(“%c”,&ch); getchar(); if(ch =='Y'|| ch =='y'){strcpy(p-> status,ch1); printf(“成功退还书,请返回上一级菜单以保存信息!!!”);}如果(ch =='N'|| ch =='n'){printf(“您尚未返回这本书!!!'');}}返回头;} void main(){int a,b,c,d;链接* h,* t; L: 系统(“ cls”);主菜单 ();而(1){scanf(“%d”,&a);切换(a){情况1: {B: 系统(“ cls”); menu1();而(1){scanf(“%d”,&b);开关(b){情况1: {system(“ cls”); cxmenu();而(1){scanf(“%d”,&c);切换(c){情况1: {打印(h);}中断;情况2: {t = findnumber(h); if(t == NULL)printf(“没有要搜索的书! if(t!= NULL){printf(“被查询的书是: ”); printf(“ \ n”); printf(“ \ n *************** ****************************** * **** \ n“); printf(“ \ n号\ t \ t标题\ t \ t作者\ t \ t出版商\ t \ t出版时间\ t \ t价格\ t \ t状态\ n”); printf(“ \ n”); printf(“%s \ t%s \ t%s \ t%s \ t%s”,t->数字,t->书名,t>作者,t->发布,t->时间); printf(“ \ t \ t%.2f”,t->价格); printf(“ \ t \ t%s”,t->状态); printf(“ \ n”);}}中断;情况3: {t = findboookname(h); if(t == NULL)printf(“没有要查询的书!”); if(t!= NULL){printf(“查询的书是: ”); printf(“ \ n”); printf(“ \ n ************************************************* * *** * \ n“); printf(“ \ n编号\ t \ t标题\ t \ t作者\ t \ t出版商\ t \ t发布时间\ t \ t价格\ t \ t状态\ n”); printf(“ \ n”); printf(“%s \ t%s \ t%s \ t%s \ t%s”,t->数字,t->书名,t>作者,t->发布,t->时间); printf(“ \ t \ t%.2f”,t->价格); printf(“ \ t \ t%s”,t->状态); printf(“ \ n”);}} break;情况4: {t = findauthor(h); if(t == NULL)printf(“没有书可以搜索!!”); if(t!= NULL){printf(“ query这些书是: ”); printf(“ \ n”); printf(“ \ n ******************************* ************** * **** \ n“); printf(“ \ n编号\ t \ t标题\ t \ t作者\ t \ t出版商\ t \ t发布时间\ t \ t价格\ t \ t状态\ n”); printf(“ \ n”); printf(“%s \ t%s \ t%s \ t%s \ t%s”,t->数字,t->书名,t>作者,t->发布,t->时间); printf(“ \ t \ t%.2f”,t->价格); printf(“ \ t \ t%s”,t->状态); printf(“ \ n”);}}中断;情况5: {goto B;} break;}}} break;情况2: {system(“ cls”); jhmenu();而(1){scanf(“%d”,&d);切换(d){情况1: {借款簿(h);}中断;情况2: {returnbook(h);} break;情况3: {goto B;} break;}}} break;情况3: {hold(h);} break;情况4: {goto L;} break;}}} break;情况0: {printf(“ \ t \ t \ t感谢您使用,再见!!!”);退出(0);}}}}第四章经验和经历经过一周多的原则汇编课程设计,在我的努力下,课程设计成功完成.

c语言 图书管理系统_简单图书管理系统c语言_简单图书管理系统c语言

通过课程设计,掌握了编译器工作的基本过程和每个阶段的基本任务,熟悉了编译器的一般流程图,了解了编译器的生成过程和相关技术,并对教科书有所了解还有更深刻的理解. 老师经常说,教科书中的知识是机械的和肤浅的,您必须学习应用它们,并且需要有所作为. 现在我终于对这句话有了深刻的理解. 经过本课程设计,发现书籍中的深厚知识变得更加简单. 同样,我对实验原理也有更深入的了解. 知道并理解该理论在计算机中的实现方式,并对该理论在实践中的应用有深刻的理解. 通过课程设计,僵化的教科书知识变得生动有趣,激发了学习的热情. 能够通过自己设计的程序表达在课堂上学到的知识,从而加深了对理论知识的理解. 课程设计中的程序比较复杂,调试时应小心. 在调试程序时,请注意指针并删除不必要的命令. 除课堂外,课程设计也是最易学,最考验的人. 在课程设计的这段时间里,我始终感到自己所学的知识是如此贫乏. 通过本课程的设计,我对C ++语言有了更深入的了解,并且操作能力得到了提高. 如果编写的代码可以运行,则需要耐心,毅力,毅力和足够的体力. 只有经过多次编辑,多次编译和多次运行之后,才能编写出更好的程序,有时还需要进行多次更正才能获得所需的结果. 参考文献谭洁强“ C程序设计”清华大学出版社张继文“ C程序设计案例”清华大学出版社王宏“ C#程序设计案例”清华大学出版社


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-183515-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 蔡孟宇
        蔡孟宇

        很好听为了你自己的梦想还有为了喜欢你的人继续努力吧加油

      热点图片
      拼命载入中...