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

c语言课程设计报告图书管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法,熟悉图书管理系统的开发流程,培养学生运用C语言解决实际问题的能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据结构。
–理解图书管理系统的需求和设计原理。
2.技能目标:–能够使用C语言编写简单的程序。
–学会使用C语言实现图书管理系统的功能。
3.情感态度价值观目标:–培养学生的团队协作意识和沟通能力。
–增强学生对计算机科学和编程的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的开发。
具体安排如下:1.C语言的基本语法:–变量和数据类型–运算符和表达式–函数和数组–指针和引用2.数据结构:3.图书管理系统的开发:–系统测试和优化三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:用于讲解C语言的基本语法和数据结构。
2.案例分析法:通过分析具体的图书管理系统案例,使学生更好地理解系统设计和功能实现。
3.实验法:让学生动手编写程序,巩固所学知识,提高实际操作能力。
4.小组讨论法:鼓励学生分组讨论,培养团队协作意识和沟通能力。
四、教学资源本课程所需的教学资源包括:1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《数据结构与算法分析》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络设备以上教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
具体安排如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的20%。
2.作业:包括编程练习和理论作业,占总评的30%。
3.考试:包括期中和期末考试,占总评的50%。
期中和期末考试将涵盖C语言基本语法、数据结构以及图书管理系统的开发内容。
C语言课程设计-书店管理系统精选全文

计算机程序设计(C语言)课程设计报告题目:图书管理系统学院:专业:班级:学号:姓名:指导教师:设计日期:2013年06月24日一、选题背景:设计一个图书管理系统,管理员通过登陆账号来进行下一步,使用错误账号和密码会被视为非法登陆。
图书信息包括:每种图书都有书名、ISBN、一名或多名作者(译者)、出版社、定价和内容简介等;读者信息包括:借书证记录有借阅者的姓名、密码、所在单位和类别等;读者凭借书证借书二、设计思想:(1)整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、添加、删除、修改、借书、还书等功能。
(2)、Cbook();这是一个指针函数,它主要实现了链表的创建,并且在创建过程中从文件读取信息到链表中,以用于后面其他函数的操作。
它返回的时一个单向链表的头。
其他函数调用时只需调用它返回的头即可。
(3)、mainmenu();、menu1();、glm enu();、cxmenu();、jhmenu();这五个函数时整个图书管理系统的全部菜单函数,mainmenu();为系统主界面,进入时可选择进入程序和退出程序。
menu1();为进程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。
glmenu();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。
cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。
jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。
操作完成后按提示信息进行文件的保存操作。
三、程序流程图会员登陆系统系统管理界面收银系统管理系统报表系统退出系统四、主要解决问题的方法及技术关键通过自己定义的函数和声明一个结构,主要方法是先使用int函数定义,不同的选择进入不同的定义函数,通过for语句进行判断,然后使用heart数组的各种方式打开此文件,然后通过while函数和for函数关闭文件,在不同的取用数值里,分别使用for,while语句进行判断是否进行下条语句。
c语言图书管理系统课程设计

c语言图书管理系统课程设计一、课程目标知识目标:1. 理解C语言中数组、结构体和文件操作的基本概念;2. 掌握使用C语言进行图书管理系统的基础功能设计,包括图书信息的增加、删除、查询和修改;3. 学会运用模块化编程思想,将大型程序拆分为功能独立的子程序。
技能目标:1. 能够运用C语言编写出图书管理系统的基本功能模块,并实现模块间的有效连接;2. 能够使用文件操作将图书信息存储到文件中,实现数据的持久化;3. 能够运用调试工具对程序进行调试,找出并修复程序中的错误。
情感态度价值观目标:1. 培养学生的团队协作意识,学会与他人共同分析和解决问题;2. 激发学生对编程的兴趣和热情,提高对计算机编程的主动性和积极性;3. 引导学生认识到编程在解决实际问题中的重要性,培养学生的创新精神和实践能力。
课程性质:本课程为高年级的C语言编程实践课程,注重培养学生运用C语言解决实际问题的能力。
学生特点:学生已具备一定的C语言基础,具有一定的编程能力和问题解决能力。
教学要求:在教学过程中,需注重理论与实践相结合,鼓励学生动手实践,提高编程技能。
同时,关注学生的情感态度,激发学生的学习兴趣,培养其团队协作能力和创新精神。
通过课程学习,使学生能够独立完成一个简单的图书管理系统设计与实现。
二、教学内容1. C语言基础回顾:数组、结构体、函数的定义和用法,以及文件操作的基本原理。
2. 图书管理系统需求分析:讲解图书管理系统的功能模块,明确系统需求。
- 图书信息增加、删除、查询、修改等功能的实现;- 系统界面设计和用户交互;- 数据存储和读取。
3. 教学大纲:- 第一周:C语言基础知识回顾,学习数组、结构体和文件操作;- 第二周:分析图书管理系统需求,设计系统功能模块;- 第三周:编写图书管理系统功能代码,实现模块间通信;- 第四周:系统测试、调试和优化,完成课程项目。
4. 教材章节关联:- 数组、结构体:参考教材第二章;- 函数:参考教材第三章;- 文件操作:参考教材第四章;- 模块化编程:参考教材第五章。
C语言图书管理系统课程设计报告

第三章 图书管理系统的设计与实现 3.1 系统的需求分析
图书登记管理系统作为一个应用软件将为学校的老师和学生提 供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界 面的提示信息对图书馆信息进行查询、初始化等操作
4
系统功能需求分析描述如下: (1)系统主菜单:进入系统和退出系统 (2)功能菜单:显示可以进行的操作 (3)查询主菜单:根据图书编号、书名、作者进行查询,并可 显示所有图书信息 (4)借还书主菜单:可以进行借书和还书等操作
0
引言
随着社会经济的迅速发展和现代科学技术的进步,人类社 会正逐渐走向现代化。计算机事业的飞速发展,使得以计算机与 通信技术为基础的信息系统正处于蓬勃发展的时期。同时,随着 经济文化水平的显著提高,人们对生活质量及工作环境的要求也 越来越高。图书馆拥有丰富的文献信息资源,是社会系统的重要 组成部分,在信息社会中的作用愈来愈重要。
随着现代社会信息量的不断增加,图书的种类及信息也越来 越多,如何来管理庞大的图书信息成为一大难题,如何以一种便 捷的管理方式加快图书流通信息的反馈速度,提高工作效率,已 经成为学校图书馆管理的关键问题。信息技术的飞速发展给图书 馆的管理带来了全新的变革,采用图书管理系统对图书馆的运作 进行全程管理,不仅是图书馆摆脱了以往人工管理产生的一系列 问题,而且让图书馆提高了管理效率,减少了管理成本。让图书 馆进行更有效的管理。
基于vc++的C语言图书馆管理系统课程设计报告

图书管理课程设计学生姓名:学生学号:所在班级:任课教师:图书馆管理系统【设计目的】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等. 试设计一图书信息管理系统,使之能提供以下功能:1)系统以菜单方式工作2)图书信息录入功能(图书信息用文件保存)--输入3)图书信息浏览功能--输出4)查询和排序功能:(至少一种查询方式)--算法5)按书名查询6)按作者名查询7)图书信息的删除与修改(可选项)*/【设计思路】根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
【总体设计】图1 系统功能模块图【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】#include<stdio.h>#include<stdlib.h>#include<conio.h>int get(){int o;scanf("%d",&o);}struct BOOK{int ID,usr[10],total,store,days[10];char name[31],aurthor[21];}books[100];/*上面是结构体的定义,用于存放书籍及借书的信息。
*/void page_title(char*menu_item){printf("图书管理系统\n-%s-\n",menu_item);}/*通过参数menu_item,可以显示当前的状态。
*/void return_confirm(){printf("\n按任意返回\n");getch();}/*上面是返回前请求确认的函数,以便在返回前观察结果*/int search_book(){int n,i;printf("输入图书序号:");scanf("%d",&i);for(n=0;n<100;n++){if(books[n].ID==i){printf("书名:%s\n",books[n].name);printf("作者:%s\n",books[n].aurthor );printf("存数:%d of ",books[n].store );printf("%d\n",books[n].total);return n;}}printf("\n输入错误或无效图书序号\n");return -1;}/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返回数组下标,如果找不到相应记录则提示错误并返回-1。
图书管理系统c课程设计报告

图书管理系统c 课程设计报告一、教学目标本课程旨在通过学习图书管理系统的设计与实现,使学生掌握数据库的基本操作、编程语言的应用以及软件工程的实践方法。
在知识目标上,学生应理解数据库的概念、结构及其在图书管理中的应用;掌握至少一种编程语言的基本语法和编程技巧;了解软件开发的流程和规范。
技能目标则要求学生能够独立设计简单的图书管理系统数据库;编写程序实现图书的增删改查等操作;运用软件工程的方法完成一个小型的图书管理项目。
情感态度价值观目标强调培养学生对计算机科学的兴趣,增强创新意识和团队协作精神,同时培养学生的信息素养,使其能够合法、合理地使用信息技术。
二、教学内容本课程的教学内容围绕图书管理系统的设计与实现展开,具体包括以下几个部分:1.数据库基础:介绍数据库的基本概念、数据模型以及SQL语言的使用,让学生掌握如何创建、查询和管理数据库。
2.编程语言应用:通过实例教学,使学生熟悉至少一种编程语言(如C语言)的基本语法,培养学生编写程序解决问题的能力。
3.软件工程实践:讲解软件开发的生命周期,包括需求分析、设计、编码、测试和维护等环节,强调编程规范和团队合作的重要性。
4.项目实现:指导学生利用所学知识设计并实现一个简易的图书管理系统,涵盖图书的录入、查询、借阅等功能。
三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行授课:1.讲授法:用于传授数据库理论基础、编程语言的基本语法和软件工程的概念。
2.案例分析法:通过分析具体的图书管理案例,使学生理解数据库设计和程序实现的过程。
3.实验法:安排实验室实践环节,让学生动手编写代码,实际操作数据库,加深理解和实践能力。
4.小组讨论法:学生分组完成项目设计,鼓励学生相互讨论、协作解决问题,培养团队精神和沟通能力。
四、教学资源教学资源将包括:1.教材:《数据库原理与应用》、《C程序设计》等,为学生提供理论学习的坚实基础。
2.多媒体资料:包括教学PPT、案例视频等,增强课堂的互动性和趣味性。
图书信息管理系统——C语言课程设计报告(1)

课程设计报告课程名称C语言程序设计课题名称图书信息管理系统专业电子技术班级学号姓名指导教师2015年12月31 日湖南工程学院课程设计任务书课程名称C语言程序设计课题图书信息管理系统专业班级电子技术学生姓名学号201501040120指导老师审批任务书下达日期2015 年12月31日任务完成日期2016 年元月10日目录一.系统的主要思路 (1)二、系统的主要功能 (2)1、显示功能 (2)2、追加功能 (2)3、修改模块 (2)4、删除模块 (2)5、查询模块 (2)6、统计模块 (2)7、排序模块 (2)8、退出模块 (2)三.系统功能模块的划分 (3)1.总体模块功能框图 (3)四.总流程图 (4)1.总流程图 (4)2.八大模块的流程图 (7)五.程序调试 (22)1.显示模块 (23)2 . 追加模块 (26)3. 修改模块 (29)4. 删除模块 (34)5. 查询模块 (39)6. 统计模块 (44)7.排序模块 (47)8. 退出模块 (51)六.心得与体会 (52)七.参考文献:........................................ 错误!未定义书签。
八.附件: (52)一.系统的主要思路此系统事用C语言实现一个图书馆信息管理系统;利用结构体数组实现图书馆信息的数据结构;例如,删除图书信息、追加图书信息、修改图书信息、图书信息的统计等等;系统的各个功能调用各个函数的形式实现;并提供一个界面来调用,各个功能的操作。
首先我们要对系统操作就必须先创建一个数据库,用来存放各图书的信息,如:图书编号、分类号、书名、作者名、出版单位、出版时间、入库时间、单价等。
并用读函数fscanf读取数据,然后才能进入主控程序。
然后,运行该程序显示的为主菜单界面,并且主菜单界面显示调用各个功能函数的功能键;通过提示用户,调用各个功能操作。
按下相应的功能键,就会进入相应的功能模块系统,并进行相应的操作。
C语言图书管理系统程序设计报告

高级语言程序设计(2)课程设计一程序设计说明书【设计题目】图书馆借阅管理【问题描述】图书馆,适合用C++面向对象的功能来描述。
图书馆管理系统分为借书、还书、图书管理和读者服务等四个部分。
设计一个读者类Reader,记录每个读者基本信息;读者库类Rdatabase,记录所有读者信息;图书类Book, 记录每本书的基本信息;图书库类Bdatabase, 记录所有图书信息。
【基本要求】1读者库类RDatabase中,其构造函数中,将read.txt文件中所有读入读者记录rede[]中。
处理完毕,在析构函数中将read[]中的所有未删记录写入到read.txt中。
2图书库类BDatabase中,其构造函数中,将book.txt文件中所有读入图书记录book[]中。
处理完毕,在析构函数中将book[]中的所有未删记录写入到book.txt中。
3 利用构造函数完成读者和图书数据初始化,完成内存分配。
程序结束前,析构函数完成所申请的堆内存空间。
4 编写主函数,对所编写的矩阵类进行全面测试。
要求用户界面采用菜单方式。
测试中需要读者和图书数据通过I/O流从磁盘文件读入,同时显示在屏幕上。
得到的数据通过I/O流写入磁盘文件保存,同时显示在屏幕上。
5 源程序中要有充分的注释,报告中要有详细的流程图和文字材料。
【类的设计】该程序包含了四个类,如下:1.Reader类,有读者的基本管理功能,具有以下私有数据:int tag;//删除标记 1:已删;0:未删int no;//读者编号char name[10];//读者姓名int borbook[Maxbor];//所借图书2.读者库类Rdatabase, 具有以下私有数据:int top;//读者记录指针Reader read[Maxr];//读者记录3.图书库类Book,有一本图书的基本功能,有以下私有数据:int tag;//删除标记 1:已删;0:未删int no;//图书编号char name[20];//书名int onshelf;//是否在架 1在架 0已借4.图书库类BDatabase,有以下私有数据:int top;//图书记录指针Book book[Maxb];//图书记录【特殊函数的设计说明】构造函数1.Reader类中构造函数Reader(),初始化函数;2.读者库类RDatabase中,其构造函数Rdatabase(),将read.txt文件中所有读入读者记录rede[]中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章图书管理系统的设计与实现3.1系统的需求分析图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。
根据系统界面的提示信息对图书馆信息进行查询、初始化等操作系统功能需求分析描述如下:(1)系统主菜单:进入系统和退出系统(2)功能菜单:显示可以进行的操作(3)查询主菜单:根据图书编号、书名、作者进行查询,并可显示所有图书信息(4)借还书主菜单:可以进行借书和还书等操作3.2系统的设计3.2.1 系统的总统设计下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。
(1)总体思想本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。
系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。
(2)系统模块结构图根据需求分析结果,图书管理系统可以分为三大模块:查询图书模块、借书功能模块、还书功能模块。
系统模块结构如图:3.2.2 系统的概要设计㈠系统主菜单。
显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。
功能主要包括:退出系统、查询图书、借书、还书。
㈡查询图书信息进入此菜单功能模块,输入您要查询的图书的编号、名字、作者等。
图书查询模块流程如图:否是是重新输入否退出系统3.3 测试结果系统主界面2功能菜单查询系统菜单3借还系统菜单3.4 源代码# include <stdio.h># include <stdlib.h># include <string.h>typedef struct link{char number[100];char bookname[100];char author[100];char publish[100];char time[100];float price;char status[100];struct link *next;4}link;link *Cbook(){int n=0;link *p,*q,*head;FILE *fp;fp=fopen("图书信息.txt","r+");if(fp==NULL)printf("没有找到文件,请检查……");p=(link *)malloc(sizeof(link));if(p==NULL)printf("申请内存出错!!!\n");fscanf(fp,"%s%s%s%s%s",p->number,p->bookname,p->author,p ->publish,p->time);fscanf(fp,"%f",&p->price);fscanf(fp,"%s",p->status);while(feof(fp)==0){n++;if(n==1){head=p;}else{q=p;p=(link *)malloc(sizeof(link));if(p==NULL)printf("申请内存出错!!!\n");fscanf(fp,"%s%s%s%s%s",p->number,p->bookname,p->author,p ->publish,p->time);fscanf(fp,"%f",&p->price);fscanf(fp,"%s",p->status);q->next=p;}5}p->next=NULL;fclose(fp);printf("信息已录入!!!");return head;}void mainmenu(){printf("\n*****************************************\n"); printf("\n** 欢迎使用图书管理系统 **\n"); printf("\n** 1.进入系统 0.退出系统 **\n"); printf("\n*****************************************\n"); printf("\n 请选择");}void 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"); printf("\n** 5.返回上级菜单 **\n"); printf("\n****************************************\n");6printf("\n请选择");}void jhmenu(){printf("\n*****************************************\n"); printf("\n** 1.借书 **\n"); printf("\n** 2.还书 **\n"); printf("\n** 3.返回上级菜单 **\n"); printf("\n*****************************************\n"); printf("\n请选择");}void print(link *head){link *p;p=head;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",p->number,p->bookname,p->author,p->publish,p->time);printf("\t\t%.2f",p->price);printf("\t\t%s",p->status);printf("\n");p=p->next;}}void hold(link *head){7link *p;FILE *fp;fp=fopen("图书信息.txt","w+");if(fp==NULL){printf("文件操作出错!!!");exit(1);}p=head;for(;p!=NULL;p=p->next){fprintf(fp,"%s\t%s\t%s\t%s\t%s",p->number,p->booknam e,p->author,p->publish,p->time);fprintf(fp,"\t\t%.2f",p->price);fprintf(fp,"\t\t%s",p->status);fprintf(fp,"\n");}fclose(fp);printf("信息已保存。
");}void holdcx(link *t){link *p=NULL;FILE *fp;fp=fopen("查询.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->number,p->booknam e,p->author,p->publish,p->time);8fprintf(fp,"\t\t%.2f",p->price);fprintf(fp,"\t\t%s",p->status);fprintf(fp,"\n");fclose(fp);printf("信息已保存");}link *findnumber(link *head){char key[100];link *h,*t1=NULL;printf("请输入图书的编号:");getchar();gets(key);for(h=head;h!=NULL;h=h->next){if(strcmp(key,h->number)==0){t1=h;break;}}return t1;}link *findboookname(link *head){char key[100];link *h,*t2=NULL;printf("请输入图书的书名:");getchar();gets(key);for(h=head;h!=NULL;h=h->next){if(strcmp(key,h->bookname)==0){9t2=h;break;}}return t2;}link *findauthor(link *head){char key[100];link *h,*t3=NULL;printf("请输入作者姓名:");getchar();gets(key);for(h=head;h!=NULL;h=h->next){if(strcmp(key,h->author)==0){t3=h;break;}}return t3;}link *sortnumber(link *head){link *p,*q,*temp;temp=(link *)malloc(sizeof(link));if(temp==NULL){printf("申请内存出错!!!");exit(1);}for(p=head;p!=NULL;p=p->next){10for(q=p->next;q!=NULL;q=q->next){if(strcmp(p->number,q->number)>0){strcpy(temp->number,p->number);strcpy(temp->bookname,p->bookname);strcpy(temp->author,p->author);strcpy(temp->publish,p->publish);strcpy(temp->time,p->time);temp->price=p->price;strcpy(temp->status,p->status);strcpy(p->number,q->number);strcpy(p->bookname,q->bookname);strcpy(p->author,q->author);strcpy(p->publish,q->publish);strcpy(p->time,q->time);p->price=q->price;strcpy(p->status,temp->status);strcpy(q->number,temp->number);strcpy(q->bookname,temp->bookname);strcpy(q->author,temp->author);strcpy(q->publish,temp->publish);strcpy(q->time,temp->time);q->price=temp->price;strcpy(q->status,temp->status);}}}return head;}link *borrowbook(link *head){link *h,*p;11char ch,ch1[100]="在库",ch2[100]="不在库";h=head;printf("\n****************************************** ********\n");printf("\t\t欢迎使用借书系统\n");p=findboookname(h);if(p==NULL)printf("借书失败,书库中没有这本书!!!");else if(strcmp(p->status,ch2)==0)printf("借书失败,图书不在库!!!");else{printf("确认借出?Y/N:");scanf("%c",&ch);getchar();if(ch=='Y'||ch=='y'){strcpy(p->status,ch2);printf("借书成功,请返回上级菜单保存信息!!!");}if(ch=='N'||ch=='n'){printf("你没有借任何书!!!");}}return head;}link *returnbook(link *head){link *h,*p;char ch,ch1[100]="在库",ch2[100]="不在库";h=head;printf("\n****************************************** ********\n");printf("\t\t欢迎使用还书系统\n");12p=findboookname(h);if(p==NULL)printf("还书失败,这不是本书库的书!!");else{printf("确认还书?Y/N:");scanf("%c",&ch);getchar();if(ch=='Y'||ch=='y'){strcpy(p->status,ch1);printf("还书成功,请返回上级菜单保存信息!!!");}if(ch=='N'||ch=='n'){printf("你没有还书!!!");}}return head;}void main(){int a,b,c,d;link *h,*t;L:system("cls");mainmenu();while(1){scanf("%d",&a);switch(a){case 1:{B: system("cls");menu1();13while(1){scanf("%d",&b);switch(b){case 1:{system("cls");cxmenu();while(1){scanf("%d",&c);switch(c){case 1:{print(h);}break;case 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->number,t->bookname,t->author,t->publish,t->time);14printf("\t\t%.2f",t->price);printf("\t\t%s",t->status);printf("\n");}}break;case 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->number,t->bookname,t->author,t->publish,t->time);printf("\t\t%.2f",t->price);printf("\t\t%s",t->status);printf("\n");}}break;case 4:{t=findauthor(h);if(t==NULL)printf("没有要查询的图书!!!");if(t!=NULL){printf("查询的图书为:");printf("\n");15printf("\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->number,t->bookname,t->author,t->publish,t->time);printf("\t\t%.2f",t->price);printf("\t\t%s",t->status);printf("\n");}}break;case 5:{goto B;}break;}}}break;case 2:{system("cls");jhmenu();while(1){scanf("%d",&d);switch(d){case 1:{borrowbook(h);}break;case 2:{returnbook(h);16}break;case 3:{goto B;}break;}}}break;case 3:{hold(h);}break;case 4:{goto L;}break;}}}break;case 0:{printf("\t\t\t感谢使用,再见!!!");exit(0);}}}}第四章心得体会经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。