c语言课程设计报告图书管理系统
- 格式:docx
- 大小:59.60 KB
- 文档页数:53
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语言基本语法、数据结构以及图书管理系统的开发内容。
目录一、设计任务书 (3)二、本组课题及本人任务 (3)三、程序功能简介 (4)四、主体内容 (4)1.设计分析 (4)2.程序结构 (5)3.各模块的功能及程序说明 (5)4. 源程序 (6)5.操作方法 (17)6.试验结果 (18)7.设计体会 (22)五、附录 (23)1.流程图 (23)2.过程列表 (26)一、设计任务书1.目的1)复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握。
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
3)培养学生在项目开发中团队合作精神、创新意识及能力。
2.要求:1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。
2)系统设计要实用,编程简练,可用,功能全面。
3)说明书、流程图要清楚。
4)记录设计情况(备查,也为编写设计说明书作好准备)。
5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。
6)设计上交内容:设计报告一份(按格式书写);源程序一份,能编译成可执行文件并能正常运行。
二、本组课题及本人任务课题:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:1.系统以菜单方式工作。
2.图书信息录入功能(图书信息用文件保存)--输入。
3.图书信息浏览功能--输出。
4.查询和排序功能:(至少一种查询方式)--算法。
a. 按书名查。
b.按作者名查询。
本人任务:负责设计和编写图书信息管理系统的修改图书信息部分。
三、程序功能简介本系统是以visual C++ 6.0 环境下用C语言开发的一个图书管理系统。
本系统具有图书信息录入、浏览、删除、修改、查找(包括按书名、作者查找)功能。
图书管理系统c 课程设计报告一、教学目标本课程旨在通过学习图书管理系统的设计与实现,使学生掌握数据库的基本操作、编程语言的应用以及软件工程的实践方法。
在知识目标上,学生应理解数据库的概念、结构及其在图书管理中的应用;掌握至少一种编程语言的基本语法和编程技巧;了解软件开发的流程和规范。
技能目标则要求学生能够独立设计简单的图书管理系统数据库;编写程序实现图书的增删改查等操作;运用软件工程的方法完成一个小型的图书管理项目。
情感态度价值观目标强调培养学生对计算机科学的兴趣,增强创新意识和团队协作精神,同时培养学生的信息素养,使其能够合法、合理地使用信息技术。
二、教学内容本课程的教学内容围绕图书管理系统的设计与实现展开,具体包括以下几个部分:1.数据库基础:介绍数据库的基本概念、数据模型以及SQL语言的使用,让学生掌握如何创建、查询和管理数据库。
2.编程语言应用:通过实例教学,使学生熟悉至少一种编程语言(如C语言)的基本语法,培养学生编写程序解决问题的能力。
3.软件工程实践:讲解软件开发的生命周期,包括需求分析、设计、编码、测试和维护等环节,强调编程规范和团队合作的重要性。
4.项目实现:指导学生利用所学知识设计并实现一个简易的图书管理系统,涵盖图书的录入、查询、借阅等功能。
三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行授课:1.讲授法:用于传授数据库理论基础、编程语言的基本语法和软件工程的概念。
2.案例分析法:通过分析具体的图书管理案例,使学生理解数据库设计和程序实现的过程。
3.实验法:安排实验室实践环节,让学生动手编写代码,实际操作数据库,加深理解和实践能力。
4.小组讨论法:学生分组完成项目设计,鼓励学生相互讨论、协作解决问题,培养团队精神和沟通能力。
四、教学资源教学资源将包括:1.教材:《数据库原理与应用》、《C程序设计》等,为学生提供理论学习的坚实基础。
2.多媒体资料:包括教学PPT、案例视频等,增强课堂的互动性和趣味性。
c语言书籍管理系统课程设计一、教学目标本课程的目标是让学生掌握C语言编程的基本技能,能够运用C语言实现简单的书籍管理系统。
通过本课程的学习,学生将能够理解C语言的基本语法和数据结构,掌握基本的输入输出操作和文件操作,培养编程思维和解决问题的能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和数据结构。
2.理解书籍管理系统的需求和设计原理。
技能目标包括:1.能够使用C语言编写简单的书籍管理程序。
2.能够进行基本的输入输出操作和文件操作。
情感态度价值观目标包括:1.培养学生的编程思维和解决问题的能力。
2.培养学生对计算机科学和软件开发的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法和数据结构,以及书籍管理系统的需求分析和设计。
具体来说,教学大纲如下:1.第一章:C语言的基本语法和数据类型。
2.第二章:控制结构和函数。
3.第三章:输入输出操作和文件操作。
4.第四章:书籍管理系统的需求分析和设计。
教学内容将根据教材的章节进行安排和进度,同时结合实际的编程案例进行讲解和练习。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
具体来说,教学方法如下:1.讲授法:通过讲解和示范,让学生掌握C语言的基本语法和数据结构。
2.讨论法:通过小组讨论和问题解答,培养学生的编程思维和解决问题的能力。
3.案例分析法:通过分析实际的编程案例,让学生理解书籍管理系统的需求和设计原理。
4.实验法:通过编写和调试代码,让学生掌握基本的输入输出操作和文件操作。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料和实验设备等。
具体来说,教学资源如下:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用多种评估方式,包括平时表现、作业、考试等。
C语言图书馆管理系统课程设计报告一、设计背景随着图书馆信息化管理的普及和发展,使用计算机进行图书馆管理已成为必然趋势。
为了提高图书馆管理工作的效率和准确性,本课程设计旨在设计一个基于C语言的图书馆管理系统。
二、设计目标1.实现对图书馆的基本信息进行添加、删除、修改和查询的功能。
2.实现对读者信息的管理,包括添加、删除、修改和查询。
3.实现借书和还书功能,包括借书时的借阅记录的生成和还书时相关操作。
4.实现图书馆管理员的登录和权限管理功能。
三、设计思路基于以上设计目标,我们将采取以下设计思路:1.设计合适的数据结构来存储图书馆、读者和借阅记录等信息。
2.设计相应的函数来实现对数据的增删改查操作。
3.设计用户界面,使用户可以方便地使用各种功能。
4.设计登录和权限管理功能,保证只有授权的管理员才能进行系统管理操作。
四、系统功能设计1. 图书馆管理功能•添加图书馆信息:输入图书馆名称、地址等信息,保存到系统中。
•删除图书馆信息:根据图书馆名称或其他唯一标识,删除相应的图书馆信息。
•修改图书馆信息:根据图书馆名称或其他唯一标识,修改相应的图书馆信息。
•查询图书馆信息:根据图书馆名称或其他唯一标识,查询相应的图书馆信息。
2. 读者管理功能•添加读者信息:输入读者姓名、年龄、性别等信息,保存到系统中。
•删除读者信息:根据读者姓名或其他唯一标识,删除相应的读者信息。
•修改读者信息:根据读者姓名或其他唯一标识,修改相应的读者信息。
•查询读者信息:根据读者姓名或其他唯一标识,查询相应的读者信息。
3. 借还书功能•借书:根据读者ID和图书ID,生成借阅记录,修改相应的图书和读者信息。
•还书:通过借阅记录中的借阅ID,找到相应的借阅记录,修改相应的图书和读者信息。
4. 登录和权限管理功能•管理员登录:输入管理员用户名和密码,验证登录信息。
•管理员权限管理:设置对应管理员的权限,包括“图书馆管理”和“读者管理”等。
五、系统实现本系统的实现将采用C语言作为开发语言,使用相关编程工具进行开发。
C语言课程设计图书管理系统Books Management System学生姓名张朝柱学院名称徐州工程学院学号20130566140班级13计转本专业名称计算机科学与技术指导教师李子龙2016年5月10日一、需求分析为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。
使用c语言编写了图书管理系统。
本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。
实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。
所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。
图书信息包括编号、书名、作者、数量、在库状态等。
图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。
整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。
二、算法设计:1.设计思想:整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。
进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。
在设计程序时,实现了程序的模块化、结构化。
在主函数中调用各种子函数,操作界面简单,易操作。
2,设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。
(2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。
图书管理系统c语言课程设计一、课程目标知识目标:1. 学生能够理解图书管理系统的基本概念,掌握C语言实现数据结构(如链表)的基本方法。
2. 学生能够运用C语言编写程序,实现图书管理系统的基本功能,如图书的增删改查。
3. 学生能够理解文件操作在图书管理系统中的应用,实现数据的持久化存储。
技能目标:1. 学生能够运用所学知识,独立完成图书管理系统的需求分析、设计、编码和测试。
2. 学生通过课程设计,提高问题分析能力,培养解决实际问题的编程能力。
3. 学生能够运用调试工具,找出并修正程序中的错误,提高程序调试能力。
情感态度价值观目标:1. 学生在课程学习中,培养对编程的兴趣和热情,树立正确的计算机科学观念。
2. 学生通过团队协作完成课程设计,培养沟通协作能力和团队精神。
3. 学生在解决实际问题的过程中,体会编程带来的成就感,增强自信心。
课程性质:本课程为C语言程序设计课程的实践环节,旨在让学生将所学理论知识应用于实际项目中,提高编程实践能力。
学生特点:学生已具备C语言基础知识,具有一定的编程能力,但实际项目经验较少。
教学要求:注重理论联系实际,引导学生独立思考,培养学生解决实际问题的能力。
通过课程设计,使学生能够将所学知识综合运用,提高编程实践技能。
二、教学内容1. 数据结构基础:回顾教材中关于数据结构的基础知识,重点复习链表的结构及其操作,为图书管理系统设计打下基础。
- 教材章节:第三章 数据结构,第四节 链表2. 文件操作:学习C语言文件操作相关知识,掌握文件读写方法,为图书信息持久化提供支持。
- 教材章节:第五章 文件,第一节 文件的打开与关闭,第二节 文件的读写3. 系统需求分析:引导学生学习如何分析图书管理系统的功能需求,明确课程设计目标。
- 教材章节:第二章 程序设计基础,第三节 结构化程序设计4. 系统设计与实现:根据需求分析,设计系统功能模块,使用C语言实现图书管理系统的增删改查等功能。
...... C语言课程设计报告院系:学号:班号:姓名:标题:图书管理系统目录第一部分题目要求 (3)第二部分需求分析 (3)第三部分总体设计 (4)第四部分详细设计 (4)1)主函数 (4)2)各功能模块设计 (6)3)公共函数 (16)第五部分上机操作 (17)第六部分总结 (20)附录(源代码) (22)第一部分题目要求图书管理系统包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等,是设计一图书管理系统,使之能够提供以下功能:1. 新图书基本信息的输入。
2. 图书基本信息的查询。
3. 对撤销图示基本信息的删除。
4. 办理借书手续。
5. 办理换书手续。
第二部分需求分析根据题目的要求,需要建立一个文件来保存图书信息,每本书的信息用一个结构体来保存,结构体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号,结构体中的存在状态可设为整型,用不同数字代表借还状态;在借书和还书手续中,要注意结构体的成员变量存在状态的值,使用指针会比较方便。
程序中需要对图书信息实现输入、查询、删除、借书和还书的功能,首先要使用菜单进行各项功能的选择;其次需要有文件的输入、输出功能,提供显示、查找等操作。
在程序的运行过程中,注意各功能在使用完毕后返回菜单的设置,以方便运行。
第三部分总体设计根据上面的需求分析,可以将整个图书管理系统分为输入模块、查找模块、删除模块、借书模块和还书模块(如图3-1所示)。
图3-1 系统功能模块图第四部分 详细设计4.1 数据结构在这个程序里,每本书的信息用一个结构体book 来保存,结构体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号,结构体中的存在状态设为整型,用不同数字代表库中高本书的数量。
struct book{ char title[30];int number;char author[30];float price;int store;char borrower_name[20];char borrower_gender[5];int borrower_number;}s[N];其中的N定义为该系统所管理书籍的最大值。
第一章§题目描述图书管理系统设计:【要求】图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。
试设计一图书管理系统,使之能提供以下功能:(1)新图书基本信息的输入;(2)图书基本信息的查询;(3)对撤销图书信息的删除;(4)办理借书手续;(5)办理还书手续;【提示】建立图书馆里信息结构体,结构体成员包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。
存在状态设为整型,可用不同数字代表借还状态。
借书和还书手续要注意修改结构体的成员变量存在状态的值。
§算法设计1.设计思想:在整个系统编写的过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。
由此进一步加深、巩固了所学的课程的基本理论知识,培养了综合分析问题、解决问题的能力。
在设计程序时,参考了学校图书馆的图书管理系统,实现了程序的模块化、结构化。
在主函数中调用各种函数,操作界面简单,易操作,人机互动性较强。
2.实现注释:这个实用的小型图书管理系统程序以结构体数组指针操作完成,并实现文件信息的录入、修改和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。
本图书管理系统分为管理员和学生两个部分,其基本功能包括了对图书信息的存储、查询、添加、删除和借书、还书手续办理等。
查询时可按书名、编号等方式查询,找到后输出这本书的所有信息。
可查询图书的在库状态,方便用户进行借书、还书操作。
在借书还书成功后图书的在库状态自动改变,并更新信息到数据库。
系统中主要的数据结构就是图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。
在处理过程中各项可以作为一本图书的不同属性来进行处理。
3.结构体系设计图:主函数结构;图:新书信息录入流程;图:图书信息查询(管理员)流程;图:图书信息查询(学生)流程;图:图书信息删除流程;图:办理借书手续流程;图:办理还书手续流程;§程序设计及代码分析1.程序设计:下面,我大致介绍一下我的系统的主要功能和注意事项:当运行此程序时,首先进入系统主界面,然后可以选择[1].管理员登陆(密码:123),[2].学生登陆,[0].退出系统;选择[1]后进入管理员系统,验证密码成功后显示管理员功能菜单,按数字键选择所需服务。
管理员功能菜单中,[1].新书信息录入,[2].图书信息查询,[3].图书信息删除,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字,输完之后按回车(下同)。
首次运行系统需要先选择[1]录入库存书籍信息,图书各信息项须用空格键隔开,输入完毕后信息自动储存并更新至数据库,然后再选择其他操作。
当选择[3]时会进入图书信息删除,在这里可以选择删除图书信息等操作,需要注意的是每次执行删除操作需要手动选择保存图书信息的操作,不然磁盘文件信息不会改变。
选择[2]后进入学生系统,然后显示学生功能菜单,按数字键选择所需服务。
学生功能菜单中,[1].图书信息查询,[2].办理借书手续,[3].办理函数手续,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字。
当进入办理借书和还书手续功能时需要注意的是每次执行操作需要手动选择确认等操作,否子磁盘文件信息不会改变。
所有信息最后均以磁盘文件方式保存,而且格式固定,输入和输出均按这种格式,用户在使用时必须要按这种格式输入,否则会出现文件信息错误。
2.代码分析:/**********源程序代码**********/#include<>#include<>#include<>#define LONG sizeof(struct Book)struct Book{char title[100];char author[50];char press[100];char year[5];char claim_number[30];int collection;int can_borrow;char unit_price[10];char student_name[50];char sex[5];char student_id[20];long long int number;};/**********函数声明**********/void main_meun();理员登陆 [2].学生登陆 [0].退出系统 |\n");printf(" | |\n");printf(" ============================================================\n");printf("请选择:");}void manager_menu()书信息录入 |\n");printf(" | |\n");printf(" | [2].图书信息查询 |\n");printf(" | |\n");printf(" | [3].图书信息删除 |\n");printf(" | |\n");printf(" | [4].返回主菜单 |\n");printf(" | |\n");printf(" | [0].退出系统 |\n");printf(" | |\n");printf(" ============================================================\n");printf("请选择:");}void student_meun()书信息查询 |\n");printf(" | |\n");printf(" | [2].办理借书手续 |\n");printf(" | |\n");printf(" | [3].办理还书手续 |\n");printf(" | |\n");printf(" | [4].返回主菜单 |\n");printf(" | |\n");printf(" | [0].退出系统 |\n");printf(" | |\n");printf(" ============================================================\n");printf("请选择:");}int book_add(int back)xt","a+");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}while(1){A:system("cls");续录入 [2].结束录入 \n");printf(" -------------------------------------------------------\n");printf("请选择:");scanf("%d",&n);switch(n){case 1:goto A;case 2:{fclose(fp);back=1;return(back);}}}}int search_2(int back)xt","r");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}p=(struct Book*)malloc(LONG);while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",p->title,p->author,p-> press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->s tudent_name,p->sex,p->student_id,&p->number);if(strcmp(title,p->title)==0){a1=1;printf("================================================================== =============\n");printf("书名作者出版社年份索取号馆藏可借\n");printf("-------------------------------------------------------------------------------\n");printf("%-28s%-8s%-19s%-6s%-11s%-5d%d\n",p->title,p->author,p->press,p->ye ar,p->claim_number,p->collection,p->can_borrow);break;}}if(a1==1){fclose(fp);printf("\n");printf(" -------------------------------------------------------\n");printf(" [1].继续搜索 [2].返回学生功能菜单 [0].退出系统 \n");printf(" -------------------------------------------------------\n");printf("请选择:");scanf("%d",&b1);while(1){switch(b1){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =- \n");printf("------------------------------------------------------------\n");exit(0);}}}}if(a1==0){fclose(fp);printf("\a \n 未找到与条件相符的图书!\n\n");printf(" -------------------------------------------------------\n");printf(" [1].继续搜索 [2].返回学生功能菜单 [0].退出系统 \n");printf(" -------------------------------------------------------\n");printf("请选择:");scanf("%d",&b1);while(1){switch(b1){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =- \n");printf("------------------------------------------------------------\n");exit(0);}}}}}int search_1(int back)xt","r");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}p=(struct Book*)malloc(LONG);while(1){if(feof(fp)){fclose(fp);printf("\a\n 未找到与条件相符的图书!\n\n");printf("-------------------------------------------------------\n");printf(" [1].继续搜索 [2].返回上一级菜单 [0].退出系统\n");printf("-------------------------------------------------------\n");printf("请选择:");scanf("%d",&b1);while(1){switch(b1){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =- \n");printf("------------------------------------------------------------\n");exit(0);}}}}fscanf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",p->title,p->author,p->press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->student_name,p->sex,p->student_id,&p->number);if(number==p->number){fclose(fp);printf("================================================================== =============\n\n");printf(" %-6s%-12lld%-8s%-12s%-6s%-8s%s%s\n\n","编号:",p->number,"索取号:",p->claim_number,"年份:",p->year,"单价:",p->unit_price);printf(" 书名:%s\n\n",p->title);printf(" %-6s%-12s%s%s\n\n","作者:",p->author,"出版社:",p->press);printf(" %-6s%-12d%s%d\n\n","馆藏:",p->collection,"可借:",p->can_borrow);printf(" 借书人信息|| %-6s%-10s%-6s%-7s%-7s%s\n\n","姓名:",p->student_name,"性别:",p->sex,"学号:",p->student_id);printf("================================================================== =============\n");printf("-------------------------------------------------------\n");printf(" [1].继续搜索 [2].返回上一级菜单 [0].退出系统\n");printf("-------------------------------------------------------\n");printf("请选择:");scanf("%d",&b1);while(1){switch(b1){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见!=- \n");printf("------------------------------------------------------------\n");exit(0);}}}}}}int search_title(int back)xt","r");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}p=(struct Book*)malloc(LONG);while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",p->title,p->author,p-> press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->s tudent_name,p->sex,p->student_id,&p->number);if(strcmp(title,p->title)==0){a1=1;printf("================================================================== =============\n\n");printf(" %-6s%-12lld%-8s%-12s%-6s%-8s%s%s\n\n","编号:",p->number,"索取号:",p->claim_number,"年份:",p->year,"单价:",p->unit_price);printf(" 书名:%s\n",p->title);printf(" %-6s%-12s%s%s\n\n","作者:",p->author,"出版社:",p->press);printf(" %-6s%-12d%s%d\n","馆藏:",p->collection,"可借:",p->can_borrow);printf(" 借书人信息|| %-6s%-10s%-6s%-7s%-7s%s\n\n","姓名:",p->student_name,"性别:",p->sex,"学号:",p->student_id);printf("================================================================== =============\n");}}if(a1==1){fclose(fp);printf(" -------------------------------------------------------\n");printf(" [1].继续搜索 [2].返回上一级菜单 [0].退出系统\n");printf(" -------------------------------------------------------\n");printf("请选择:");scanf("%d",&b1);while(1){switch(b1){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =- \n");printf("------------------------------------------------------------\n");exit(0);}}}}if(a1==0){fclose(fp);printf("\a \n未找到与书名相符的图书!\n\n");printf(" -------------------------------------------------------\n");printf(" [1].继续搜索 [2].返回上一级菜单 [0].退出系统\n");printf(" -------------------------------------------------------\n");printf("请选择:");scanf("%d",&b1);while(1){switch(b1){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =-\n");printf("------------------------------------------------------------\n");exit(0);}}}}}void search_menu()图书编号查询 |\n");printf(" | |\n");printf(" | [2].按图书名称查询 |\n");printf(" | |\n");printf(" | [3].返回上一级菜单 |\n");printf(" | |\n");printf(" ============================================================\n");printf("请选择:");}int book_delete(int back)xt","r");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}p=(struct Book*)malloc(LONG);while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",p->title,p->author,p-> press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->s tudent_name,p->sex,p->student_id,&p->number);if(strcmp(title,p->title)==0){a=1;if(strcmp(p->student_name,"未知")!=0)b=1;printf("================================================================== =============\n\n");printf(" %-6s%-12lld%-8s%-12s%-6s%-8s%s%s\n\n","编号:",p->number,"索取号:",p->claim_number,"年份:",p->year,"单价:",p->unit_price);printf(" 书名:%s\n",p->title);printf(" %-6s%-12s%s%s\n\n","作者:",p->author,"出版社:",p->press);printf(" %-6s%-12d%s%d\n","馆藏:",p->collection,"可借:",p->can_borrow);printf(" 借书人信息|| %-6s%-10s%-6s%-7s%-7s%s\n\n","姓名:",p->student_name,"性别:",p->sex,"学号:",p->student_id);printf("================================================================== =============\n");}}fclose(fp);if(b==1){fclose(fp);printf("\a \n\n此书正在出借,无法删除信息!\n\n");printf(" -------------------------------------------------------\n");printf(" [1].重新搜索 [2].返回管理员功能菜单 [0].退出系统 \n");printf(" -------------------------------------------------------\n");printf("请选择:");scanf("%d",&b);while(1){switch(b){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =- \n");printf("------------------------------------------------------------\n");exit(0);}}}}if(a==1&&b!=1){printf("\a\n\n 确认删除?\n");printf(" -------------------------------------------------------\n");printf(" [1].是 [2].否 \n");printf(" -------------------------------------------------------\n");scanf("%d",&c);while(1){switch(c){case 1:{fp=fopen("图书信息数据库.txt","r");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",&n[i].title,&n[i].auth or,&n[i].press,&n[i].year,&n[i].claim_number,&n[i].unit_price,&n[i].collection ,&n[i].can_borrow,&n[i].student_name,&n[i].sex,&n[i].student_id,&n[i].number);if(strcmp(title,n[i].title)==0){strcpy(d,n[i].press);strcpy(n[i].press,n[i].title);strcpy(n[i].title,d);e=n[i].number/10000;n[i].collection=e;f=n[i].number%10000;n[i].can_borrow=f;}i+=1;}j=i;fclose(fp);fp=fopen("图书信息数据库.txt","w");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}i=0;while(j!=0){fprintf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",n[i].title,n[i].autho r,n[i].press,n[i].year,n[i].claim_number,n[i].unit_price,n[i].collection,n[i]. can_borrow,n[i].student_name,n[i].sex,n[i].student_id,n[i].number);fflush(fp);i+=1;j-=1;}fclose(fp);system("cls");printf(" \n 删除成功!\n\n");printf("-------------------------------------------------------\n");printf(" [1].继续删除 [2].返回管理员功能菜单 [0].退出系统 \n");printf("-------------------------------------------------------\n");printf("请选择:");scanf("%d",&b);while(1){switch(b){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见!=- \n");printf("------------------------------------------------------------\n");exit(0);}}}}case 2:return(back=1);}}}if(a!=1){fclose(fp);printf("\a \n 未找到与书名相符的图书!\n\n");printf(" -------------------------------------------------------\n");printf(" [1].重新搜索 [2].返回管理员功能菜单 [0].退出系统 \n");printf(" -------------------------------------------------------\n");printf("请选择:");scanf("%d",&b);while(1){switch(b){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =- \n");printf("------------------------------------------------------------\n");exit(0);}}}}}int borrow(int back)xt","r");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}p=(struct Book*)malloc(LONG);while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",p->title,p->author,p-> press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->s tudent_name,p->sex,p->student_id,&p->number);if(strcmp(title,p->title)==0){a=1;if(p->can_borrow!=0)b=1;printf("================================================================== =============\n");printf("书名作者出版社年份索取号馆藏可借\n");printf("-------------------------------------------------------------------------------\n");printf("%-28s%-8s%-19s%-6s%-11s%-5d%d\n",p->title,p->author,p->press,p->ye ar,p->claim_number,p->collection,p->can_borrow);break;}}if(a!=1){fclose(fp);printf("\a \n 无该书信息!\n\n");printf(" -------------------------------------------------------\n");printf(" [1].继续搜索 [2].返回学生功能菜单 [0].退出系统 \n");printf(" -------------------------------------------------------\n");printf("请选择:");scanf("%d",&c);while(1){switch(c){case 1:goto A;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =- \n");printf("------------------------------------------------------------\n");exit(0);}}}}if(b!=1){fclose(fp);printf("\a \n 无法办理该书借阅手续!\n\n");printf(" -------------------------------------------------------\n"); printf(" [1].继续搜索 [2].返回学生功能菜单 [0].退出系统 \n"); printf(" -------------------------------------------------------\n"); printf("请选择:");scanf("%d",&c);while(1){switch(c){case 1:goto A;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =- \n");printf("------------------------------------------------------------\n");exit(0);}}}}if(b==1){printf("\a\n\n 是否办理该书借书手续?\n");printf(" -------------------------------------------------------\n");printf(" [1].是 [2].否 \n");printf(" -------------------------------------------------------\n");scanf("%d",&c);while(1){switch(c){case 1:{system("cls");printf("请输入你的个人信息:\n");printf("=======================================================\n");printf(" 姓名性别学号\n");printf("-------------------------------------------------------\n");scanf("%s %s %s",student_name,sex,student_id);fp=fopen("图书信息数据库.txt","r");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",&n[i].title,&n[i].auth or,&n[i].press,&n[i].year,&n[i].claim_number,&n[i].unit_price,&n[i].collection ,&n[i].can_borrow,&n[i].student_name,&n[i].sex,&n[i].student_id,&n[i].number);if(strcmp(title,n[i].title)==0){if(d!=1&&strcmp(n[i].student_name,"未知")==0){strcpy(n[i].student_name,student_name);strcpy(n[i].sex,sex);strcpy(n[i].student_id,student_id);d=1;}n[i].can_borrow-=1;}i+=1;}fclose(fp);j=i;fp=fopen("图书信息数据库.txt","w");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}i=0;while(j!=0){fprintf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",n[i].title,n[i].autho r,n[i].press,n[i].year,n[i].claim_number,n[i].unit_price,n[i].collection,n[i]. can_borrow,n[i].student_name,n[i].sex,n[i].student_id,n[i].number);fflush(fp);i+=1;j-=1;}fclose(fp);system("cls");printf(" \n 借书办理成功!\n\n");printf("-------------------------------------------------------\n");printf(" [1].继续借书 [2].返回学生功能菜单 [0].退出系统\n");printf("-------------------------------------------------------\n");printf("请选择:");scanf("%d",&c);while(1){switch(c){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见!=- \n");printf("------------------------------------------------------------\n");exit(0);}}}}case 2:return(back=1);}}}}int return_book(int back)xt","r");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}p=(struct Book*)malloc(LONG);printf("你目前的借书情况:\n");printf("================================================================== =============\n");printf("书名作者出版社年份索取号馆藏可借\n");printf("-------------------------------------------------------------------------------\n");while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",p->title,p->author,p-> press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->s tudent_name,p->sex,p->student_id,&p->number);if(strcmp(student_name,p->student_name)==0){a=1;printf("%-28s%-8s%-19s%-6s%-11s%-5d%d\n",p->title,p->author,p->press,p->ye ar,p->claim_number,p->collection,p->can_borrow);printf("-------------------------------------------------------------------------------\n");}}fclose(fp);if(a!=1){printf("你目前没有借书记录!\n");printf(" -------------------------------------------------------\n");printf(" [1].返回学生功能菜单 [0].退出系统 \n");printf(" -------------------------------------------------------\n");printf("请选择:");scanf("%d",&c);while(1){switch(c){case 1:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见! =- \n");printf("------------------------------------------------------------\n");exit(0);}}}}if(a==1){printf("\n请输入所还图书书名(每次一种):");scanf("%s",title);printf("\a\n\n 是否确认办理该书还书手续?\n");printf(" -------------------------------------------------------\n");printf(" [1].是 [2].否 \n");printf(" -------------------------------------------------------\n");printf("请输入:");scanf("%d",&c);while(1){switch(c){case 1:{system("cls");fp=fopen("图书信息数据库.txt","r");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",&n[i].title,&n[i].auth or,&n[i].press,&n[i].year,&n[i].claim_number,&n[i].unit_price,&n[i].collection ,&n[i].can_borrow,&n[i].student_name,&n[i].sex,&n[i].student_id,&n[i].number);if(strcmp(title,n[i].title)==0){if(strcmp(n[i].student_name,student_name)==0){strcpy(n[i].student_name,"未知");strcpy(n[i].sex,"未知");strcpy(n[i].student_id,"未知");}n[i].can_borrow+=1;}i+=1;}fclose(fp);j=i;fp=fopen("图书信息数据库.txt","w");if(fp==NULL){printf("数据库打开错误!请检查...\n");exit(0);}i=0;while(j!=0){fprintf(fp,"%s %s %s %s %s %s %d %d %s %s %s %lld\n",n[i].title,n[i].author,n[i].press,n[i].year,n[i].claim_number,n[i].unit_price,n[i].collection,n[i]. can_borrow,n[i].student_name,n[i].sex,n[i].student_id,n[i].number);fflush(fp);i+=1;j-=1;}fclose(fp);system("cls");printf(" \n 还书办理成功!\n\n");printf("-------------------------------------------------------\n");printf(" [1].继续还书 [2].返回学生功能菜单 [0].退出系统\n");printf("-------------------------------------------------------\n");printf("请选择:");scanf("%d",&c);while(1){switch(c){case 1:goto A;break;case 2:return(back=1);case 0:{system("cls");printf("------------------------------------------------------------\n");printf(" -= 感谢使用,再见!=- \n");printf("------------------------------------------------------------\n");exit(0);}}}。