《图书借阅管理系统》C语言程序设计分析报告
C语言课程设计报告-图书借阅系统

沈阳航空工业学院课程设计任务书机械与汽车学院机械设计制造及其自动化专业5406108班学号200504061275一、课程设计题目:图书借阅系统二、课程设计工作自2007年7月9日起至2007年7月14日止三、课程设计内容:运用所学的C语言知识,编制和调试程序,具有如下功能:(1)输入图书信息,并保存至文件book.dat中(图书信息应包括以下项目:图书编号、名称、出版社、作者、现有数量和总量)(2)查询功能可按编号、书名、作者、出版社进行查询,并将查询的详细信息输出(3)借阅功能(4)增加删除记录功能(5)归还功能注:学生借阅图书的信息保存在borrow.dat文件中,学生信息至少应包括学号,姓名,所借图书编号几项。
四、课程设计要求:程序质量:●贯彻结构化程序设计思想。
●用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
●用户界面中的菜单至少应包括“信息录入”、“信息查询”、“借阅”、“增加图书”、“删除图书”、“归还图书”、“退出”7项。
●代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:●封面●课程设计任务书●目录●需求分析(分析题目的要求)●程序流程图(总体流程图和主要功能模块流程图)●核心技术的实现说明及相应程序段●个人总结●参考资料●源程序及适当的注释指导教师:____________________学生签名:____________________目录一、需求分析 (1)二、程序流程图 (2)三、核心技术的实现说明及相应程序段 (7)四、个人总结 (12)五、参考文献 (12)六、源程序 (12)一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为九个模块,其中每一个模块对应一个函数,他们的功能分别是:录入书籍函数save( ),编号查询函数search_number( ),书名查询函数search_name( ),作者查询函数search_writer( ),出版社查询函数search_publisher ( ),借阅图书函数jieshu( ),增加图书函数add( ),删除图书函数del( )以及归还图书函huanshu( )。
C++语言程序设计课程设计报告图书借阅管理系统

本科生课程设计课程名称: C++语言程序设计课程编号:设计题目:图书借阅管理系统姓名:班级:学号:院系:信息学院网络技术系实验地点:指导教师:成绩:教师签字:目录一.系统设计总说明1.1设计目的 (3)1.2设计要求 (3)1.3设计内容 (4)1.4系统功能简介 (4)1.5设计平台 (4)二.C++语言课程设计报告2.1需求分析2.1.1管理员功能 (5)2.1.2读者功能 (5)2.2概要设计2.2.1整体设计 (6)2.2.2系统层次结构图 (7)2.2.3流程图(部分示例) (7)2.3详细设计2.3.1书籍结构体(Book) (8)2.3.2书籍管理结构体(BookManage) (8)2.3.3读者结构体(Reader) (8)2.3.4读者管理结构体(ReaderManage) (9)2.3.5菜单结构体(Menu) (9)2.3.6主函数(main) (9)2.4编码调试2.4.1各界面菜单显示 (10)2.4.2登录验证 (13)2.4.3注册新读者用户 (13)2.4.4添加新的图书资料 (13)2.4.5修改已有图书资料 (13)2.4.6删除已有图书资料 (14)2.4.7查找已有图书资料 (14)2.4.8显示全部图书资料 (14)2.5参考文献 (14)2.6设计总结 (14)2.7附录:C++图书管理系统源代码 (15)系统设计总说明1.1设计目的《C/C++语言课程设计》是信息管理与信息系统专业的重要实践性课程。
课程设计为学生提供了一个手脑并用、独立实践的机会。
目的在于培养学生分析问题和解决问题的能力,将课本的理论知识与实际应用问题进行有机结合,提高学生程序设计、程序调试及项目开发能力。
通过本课程设计的实践,全面总结C++课程学习中的数据类型、程序结构、数组、函数、指针、结构体等基本概念,掌握其使用方法。
培养使用面向过程的程序设计方法编写计算机程序的能力。
课题的目的主要是考查学生对C/C++语言的综合编程能力的掌握,培养学生的分析问题和解决问题的能力及逻辑思维能力。
图书借阅管理c语言课程设计

图书借阅管理c语言课程设计一、课程目标知识目标:1. 理解C语言在图书借阅管理系统中的应用和重要性。
2. 掌握C语言基础语法,如数据类型、运算符、控制结构等。
3. 学会使用C语言进行数组、函数、指针等编程技巧。
4. 了解文件操作在C语言中的实现,掌握文件的读写方法。
技能目标:1. 能够运用C语言设计简单的图书借阅管理系统。
2. 培养学生分析问题、设计算法和编写程序的能力。
3. 提高学生的逻辑思维和编程实践能力,使其能够解决实际问题。
情感态度价值观目标:1. 培养学生对C语言编程的兴趣和热情,增强其学习动力。
2. 培养学生严谨、细致的编程态度,养成良好的编程习惯。
3. 增强学生的团队协作意识,使其学会与他人合作共同解决问题。
课程性质:本课程为实践性较强的课程,要求学生在掌握C语言基础知识的基础上,结合实际应用进行编程实践。
学生特点:学生具备一定的计算机基础,对C语言有一定了解,但编程实践能力有待提高。
教学要求:1. 结合课本知识,注重理论与实践相结合,提高学生的编程能力。
2. 重视学生的个体差异,因材施教,使每个学生都能在课程中收获成长。
3. 创设情境,激发学生兴趣,引导学生主动探索和解决问题。
4. 注重过程评价,关注学生在课程学习中的进步,鼓励学生持续努力。
二、教学内容本课程教学内容分为以下五个部分:1. C语言基础语法- 数据类型、变量和常量- 运算符和表达式- 控制结构(顺序、选择、循环)- 课本相关章节:第一章至第三章2. 函数与数组- 函数定义与调用- 数组的概念及应用- 课本相关章节:第四章、第五章3. 指针与字符串- 指针的概念与操作- 字符串处理函数- 课本相关章节:第六章、第七章4. 文件操作- 文件打开与关闭- 文件读写操作- 课本相关章节:第八章5. 图书借阅管理系统设计与实现- 系统需求分析- 功能模块设计- 编程实现与调试- 课本相关章节:第九章(项目实践)教学进度安排:1. 前四部分内容,每部分分配2个课时,共计8个课时。
原创c语言图书借阅管理系统课程设计报告

原创C语言图书借阅管理系统课程设计报告1. 引言图书借阅管理系统是一个能够方便图书管理员进行图书管理和借阅管理的软件系统。
本文档将详细介绍本课程设计的主要内容和实现过程,包括系统的需求分析、系统设计、核心算法以及测试结果等。
2. 需求分析2.1 功能需求根据对图书馆借阅管理的需求,设计图书借阅管理系统。
系统需要具备以下基本功能:•图书管理:包括图书的录入、查询、修改和删除等功能。
•借阅管理:包括借书、还书和预约等功能。
•读者管理:包括读者信息的录入、查询和修改等功能。
2.2 性能需求•系统应具备良好的用户界面,操作简便,容易上手。
•系统应具备较快的响应速度,能够快速处理图书和借阅信息。
2.3 数据需求•系统需要存储图书馆的图书信息、借阅信息和读者信息等核心数据。
3. 系统设计3.1 系统架构本系统采用三层架构设计,分为表示层、业务逻辑层和数据访问层。
•表示层:即用户界面,通过控制台菜单的方式与用户进行交互。
•业务逻辑层:负责处理用户操作并调用数据访问层进行数据处理。
•数据访问层:负责与数据库进行数据交互。
3.2 数据库设计本系统采用文件存储数据的方式,使用结构体数组保存图书信息、借阅信息和读者信息等数据。
3.3 系统流程设计系统的主要流程如下:1.初始化系统,加载图书、借阅和读者信息。
2.显示系统主菜单,等待用户输入选择。
3.根据用户选择,执行相应的操作。
4.根据用户操作结果,返回主菜单或退出系统。
4. 核心算法4.1 图书管理算法•添加图书:调用数据访问层的接口,将新图书信息添加到图书数组中。
•查询图书:根据用户输入的关键字,在图书数组中查找相应的图书信息并返回。
•修改图书:根据用户输入的图书编号,修改图书数组中对应图书的信息。
•删除图书:根据用户输入的图书编号,从图书数组中删除对应图书的信息。
4.2 借阅管理算法•借书:根据用户输入的借书信息,在借阅数组中添加一条借阅记录。
•还书:根据用户输入的还书信息,在借阅数组中删除相应的借阅记录。
c语言课程设计报告图书管理系统

c语言课程设计报告图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程方法,能够运用C语言设计简单的图书管理系统。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,理解图书管理系统的原理和设计方法。
2.技能目标:学生能够运用C语言编写程序,实现图书的增删改查等基本功能,熟练使用调试工具,能够发现并修复程序中的错误。
3.情感态度价值观目标:培养学生对编程语言的兴趣,提高学生解决问题的能力,培养学生的团队合作意识和创新精神。
二、教学内容教学内容主要包括C语言的基本语法和编程方法,以及图书管理系统的设计和实现。
具体安排如下:1.C语言的基本语法:数据类型、运算符、控制结构、函数等。
2.图书管理系统的设计:系统需求分析、系统模块设计、系统测试等。
3.图书管理系统的实现:图书信息的增删改查功能的实现,系统界面的设计等。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法和编程方法,使学生掌握基础知识。
2.案例分析法:通过分析实际的图书管理系统案例,使学生理解图书管理系统的原理和设计方法。
3.实验法:通过编写程序,实现图书的增删改查等基本功能,使学生掌握编程技巧。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备等。
1.教材:选用权威、实用的C语言教材,为学生提供全面、系统的知识体系。
2.参考书:提供相关的编程实践书籍,帮助学生提高编程能力。
3.多媒体资料:制作精美的PPT,为学生提供直观、生动的学习资源。
4.实验设备:提供计算机实验室,让学生进行编程实践,提高实际操作能力。
五、教学评估教学评估是检验学生学习成果的重要手段,主要包括平时表现、作业和考试三个部分。
1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性。
2.作业:布置适量的编程作业,评估学生的编程能力和对知识的掌握程度。
c语言图书借阅管理系统课程设计报告

C语言图书借阅管理系统课程设计报告1. 引言图书借阅管理系统是一种方便图书馆管理人员进行图书借阅和归还管理的软件系统。
本文档是针对该系统的课程设计报告,将介绍需求分析、系统设计、实现过程以及测试和运行情况等内容。
2. 需求分析2.1 功能需求本系统需要实现以下功能:•图书管理:包括图书的增加、删除、修改和查询等操作。
•借阅管理:包括借阅记录的增加、删除和查询等操作。
•用户管理:包括用户的注册、登录和查看个人信息等操作。
•统计报表:包括借阅排行榜、图书库存统计和用户借阅统计等报表。
2.2 性能需求•系统响应时间应尽可能快,以保证用户的操作流畅性。
•系统应能同时处理多个用户的操作请求,以满足图书馆高并发的需求。
2.3 界面需求系统应该具有简洁、直观的用户界面,以提供良好的用户体验。
3. 系统设计3.1 系统结构设计本系统采用经典的三层架构,包括表示层、应用逻辑层和数据访问层。
•表示层:用户通过该层与系统进行交互,包括输入数据和显示结果。
•应用逻辑层:负责处理用户请求,进行相应的逻辑操作。
•数据访问层:负责与数据库进行交互,包括数据的读取、写入和更新等操作。
3.2 数据库设计在本系统中,需要设计以下数据库表:•图书表:包括图书编号、名称、作者、出版社和库存等字段。
•借阅记录表:包括记录编号、借阅日期、归还日期、借阅用户和图书编号等字段。
•用户表:包括用户ID、用户名、密码和联系方式等字段。
3.3 功能模块设计本系统将包括以下功能模块:•图书管理模块:用于图书的增加、删除、修改和查询等操作。
•借阅管理模块:用于借阅记录的增加、删除和查询等操作。
•用户管理模块:用于用户的注册、登录和个人信息查看等操作。
•报表统计模块:用于生成借阅排行榜、图书库存统计和用户借阅统计等报表。
4. 实现过程本系统使用C语言进行开发,采用了相关的库函数以实现系统的各种功能。
开发过程中,需要按照系统设计进行模块的编写和调试,同时进行单元测试以确保模块的正确性。
图书借阅管理系统c课程设计

图书借阅管理系统c 课程设计一、教学目标本课程的目标是使学生掌握图书借阅管理系统的基本原理和实际应用,培养学生具备相应的编程能力和实际操作能力。
在知识目标方面,学生需要了解图书借阅管理系统的相关概念、原理和架构,掌握C语言的基本语法和编程方法。
在技能目标方面,学生需要能够运用C语言独立编写图书借阅管理系统的相关模块,并具备一定的调试和优化能力。
在情感态度价值观目标方面,学生需要培养对编程和计算机科学的兴趣和热情,增强团队合作意识和解决问题的能力。
二、教学内容本课程的教学内容主要包括以下几个部分:第一部分是C语言基础知识,包括数据类型、运算符、控制结构等;第二部分是函数和数组,包括函数的定义和调用、数组的操作等;第三部分是图书借阅管理系统的设计和实现,包括系统需求分析、系统架构设计、模块划分和编程实现等。
具体到教材的章节,我们将从第一章C语言基础知识开始,然后依次讲解第二章函数和数组、第三章图书借阅管理系统的设计和实现。
每个章节的学习内容都会结合实际的编程案例进行讲解,让学生在掌握理论知识的同时,能够更好地理解和应用。
三、教学方法为了提高学生的学习兴趣和主动性,我们将采用多种教学方法进行教学。
首先,通过讲授法,为学生系统地传授C语言和图书借阅管理系统相关的理论知识;其次,通过讨论法,引导学生进行思考和讨论,提高学生的解决问题的能力;再次,通过案例分析法,分析实际编程案例,让学生更好地理解和应用知识;最后,通过实验法,学生进行实际编程操作,培养学生的实际动手能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备多种教学资源。
教材方面,我们将采用《C程序设计》作为主教材,辅以《图书借阅管理系统设计与实现》等相关参考书。
多媒体资料方面,我们将准备一些教学视频和PPT课件,以便于学生更好地理解和掌握知识。
实验设备方面,我们将为学生提供计算机实验室,让学生能够进行实际编程操作。
此外,我们还将在课程上提供一些在线资源和练习题,方便学生进行自学和巩固。
图书管理系统;c语言报告

C语言程序设计报告时间设计项目图书管理系统学院专业班级姓名学号指导教师目录一、需求分析 (3)二、程序流程图 (3)三、核心技术的实现说明 (12)四、课设总结 (13)五、参考文献 (13)六、源程序 (13)一、需求分析根据程序要求分析,我们认为整个程序大致应该分为5个大块,其中包括主函数以及其他4个功能函数:存入模块void In_nue();查询模块void Book_search();借阅模块void Book_send();图书归还模块void Book_return()。
各个模块又利用小模块实现细小功能划分,例如:查询模块分为全库查询void Book_search_all();按书名查询该书籍BOOK Book_search_name(char sign[]);按编号查询该书籍BOOK Book_search_num( char sign[]);按作者查询该作者的所有书籍void Book_search_zuozhe(BOOK book2[],char sign[]);共4个小模块。
在5个大模块外,还应加一个独立的小块——显示模块,即显示书籍信息的函数,用于全程序调用。
各功能介绍:1、新书存入:主要实现程序最初运行时书籍数据的录入以及其后的运行中新书数据的追加功能;2、查询函数:实现书库拥有书籍的查看、清点功能,方便管理员查看,以及借阅者参考;3、图书借阅:实现从书库中借出书籍,保存记录。
(由于时间问题,及人力不够,还不能保存借书者个人信息.)4、图书归还:将已借出的书籍归还书库;5、显示函数:显示书籍的基本信息,主要是供上面四个函数调用.除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每本书的信息类型为结构体类型,包括书名,书编号,作者,价格,拥有总数,已借出数量6个变量,添加及追加的书籍信息直接写入D盘的123。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《图书借阅管理系统》C语言程序设计报告————————————————————————————————作者:————————————————————————————————日期:2课程设计报告课程名称C语言程序设计课题名称图书借阅管理系统专业建筑环境与设备工程班级1101班学号201109010112姓名黄斌指导教师唐北平2012年6 月20 日湖南工程学院课程设计任务书课程名称C语言程序设计课题图书借阅管理系统专业班级建环1101班学生姓名黄斌学号201109010112指导老师唐北平审批任务书下达日期2012 年6 月20 日任务完成日期2012 年7 月03 日一、设计内容与设计要求1.设计内容:对一个有N本图书的图书馆,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
(1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:书号、书名、作者、出版社、出版日期、单价、是否借出等。
(2)、本系统显示这样的菜单:a.图书基本信息录入b.图书基本信息显示c.图书基本信息删除d.图书基本信息修改e.图书基本信息查询(按书号查询、书名等)g. 退出系统(3)、执行一个具体的功能之后,程序将重新显示菜单。
2.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
1.设计正确,方案合理。
2.界面友好,使用方便。
3.程序精炼,结构清晰。
4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
5.上机演示。
6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。
源程序及编译生成各文件均保存在软盘中;7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。
并用A4的复印纸打印并装订;二、进度安排第十九周星期1 8时00分——11时30分星期2 14时00分——18时15分星期4 14时00分——18时15分星期6 8时00分——12时15分目录一、课程设计报告 (2)二、功能模块的划分 (6)三、主要功能的实现 (12)四、程序代码清单 (13)五、程序调试详情 (19)六、总结 (24)七、附件 (25)八、评分表 (25)三、课程设计报告1.程序设计准备做系统前,首先,自己详细看了《C程序设计》(教科书),基本自学会了文件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解。
学习了C语言的内容,图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、文件、函数、结构体变量等基本知识的进一步理解。
另外图书信息管理系统也是学校常用的基本系统之一,它有助于学校对图书馆书籍的基本管理。
2.程序设计说明根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
3.程序的主要功能图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。
图书借阅管理系统是对图书信息的基本管理,它包括:图书信息的录入、图书信息的显示、图书信息的删除、图书信息的修改、图书信息的查询。
通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。
1、图书基本信息录入:对新到图书馆的图书的信息(编号、书名、出版社、作者、价格)进行录入。
2、图书基本信息显示:显示已被录入图书的所有信息。
3、图书基本信息删除:通过输入书名,判断此图书是否存在,若存在,则删除该图书所有信息,若不存在则提示用户重新输入图书书名。
4、图书基本信息修改:通过输入书名,判断此图书是否存在,若不存在则提示用户重新输入图书书名,若存在,则可对图书各项信息进行修改。
5、图书基本信息查询:将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。
6、退出系统:即退出图书借阅管理系统。
使用模块化编程的方法每项功能有一个或多个函数组合来完成,其中菜单选项模块对应如下:图书基本信息录入==> void insert()图书基本信息显示==> void print()图书基本信息删除==> void del()图书基本信息修改==> void modify()图书基本信息查询==> void find()这份代码中各个变量的定义如下:num 图书编号name 书名author 作者pub 出版社where 出版日期count 单价四.功能模块的划分1.主函数模块根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。
在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。
首先输入图书录入的编号(不为0)判断是否有重复的编号,若有,则提示用户该书已存在,若无则继续录入书名、作者、出版社、单价。
2.图书基本信息显示模块当用户选择图书基本信息显示时,程序会将所有图书信息列出。
在程序开始运行,创建文件库时,调动此模块,提示用户输入新的图书编号(编号为0时结束输入),然后继续输入图书书名,作者,出版社,出版日期,单价等信息。
结束输入时提示用户图书输入完成4.图书基本信息删除模块用户输入所要删除的图书书名,先查找该图书是否存在,若存在,则删除该图书所有信息,若不存在则提示无此图书信息。
5.图书基本信息修改模块用户输入要修改的书名,判断该书是否存在,若不存在,则提示用户无此图书信息;若存在,则提示用户选择修改项目,然后提示用户图书信息修改完成。
6.图书基本信息查询模块用户先选择图书查询方式(按书名查找或按书号查找)输入图书书名或书号后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则提示用户无此图书信息。
7.读文件模块在运行该程序时,程序会自动检测是否存在图书信息,若存在,则会显示图书信息,若不存在,则会提示用户创建文件库,录入图书信息。
8.文件保存模块当用户对图书信息有录入,修改,删除等操作时,程序会自动保存操作和新的图书信息。
五.主要功能的实现程序运行流程:但每个模块运行完即会回到主函数,然后选择其他或退出。
程序代码清单如下:#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct {char number[10];//书号char name[20];//书名char author[20];//作者char publish[50];//出版社char time[20];//出版时间float price;}mbook;typedef struct {int count;//书的本数mbook book[100];//最大可有100本书}mlibrary;mlibrary library;void save()//保存图书信息。
{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); }void putin() /*定义录入函数*/{int y=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("\n是否继续录入(1.继续;0,退出录入):");fflush(stdin);scanf("%d",&y);if (y!=1){y=0;break;}}save();}void print(){system("cls");printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");for (int i=0;i<library.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.bo ok[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);}fflush(stdin);getchar();}void search_by_name() /*定义按书名查询*/{char s2[20];int flag=1;printf("\n请输入要查询的书名: ");fflush(stdin);scanf("%s",s2);printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");for(int i=0;i<library.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.bo ok[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);}if (flag){printf("cannot found!");}fflush(stdin);getchar();}void search_by_author() /*定义按作者名查询*/{char s3[20];int flag=1;printf("请输入要查询的书的作者: ");fflush(stdin);scanf("%s",s3);printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");for(int i=0;i<library.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.bo ok[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);}if (flag){printf("cannot found!");}fflush(stdin);getchar();}void del () /*定义删除函数*/{char number[10];system("cls"); /*清屏*/printf("\n Please type in the number of the book you want to delete:");fflush(stdin);scanf("%s",number);int i;for (i=0;i<library.count;i++){if(strcmp(number,library.book[i].number)==0)break;}if (i!=library.count){for(;i<library.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("\n cannot found!\n");save();fflush(stdin);getchar();}void modify()//修改图书信息{char number[10];system("cls"); /*清屏*/printf("\n Please type in the number of the book you want to delete:");fflush(stdin);scanf("%s",number);int i;for (i=0;i<library.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){mbook book;printf("\n\t\t请输入修改后此图书的信息\n");printf("\t请输入图书号:");scanf("%s",book.number);printf("\t请输入图书名:");scanf("%s",);printf("\t请输入作者名:");scanf("%s",book.author);printf("\t请输入出版社:");scanf("%s",book.publish);printf("\t请输入出版时间:");scanf("%s",book.time);printf("\t请输入该书的价格:");fflush(stdin);scanf("%f",&book.price);strcpy(library.book[i].name,);strcpy(library.book[i].number,book.number);strcpy(library.book[i].publish,book.publish);strcpy(library.book[i].author,book.author);strcpy(library.book[i].time,book.time);library.book[i].price=book.price;save();}elseprintf("\n cannot found!\n");fflush(stdin);getchar();}void main(){FILE *fp;if((fp=fopen("library.doc","r"))==NULL){printf("\n不能打开图书信息库\n");fp=fopen("library.doc","w+");printf("\n初始化图书信息库,初始化之后要重启程序\n");library.count=0;fwrite(&library.count,sizeof(int),1,fp);fclose(fp);return;}fread(&library.count,sizeof(int),1,fp);fread(library.book,sizeof(library.book[0]),library.count,fp);fclose(fp);int a;do{system("cls");printf("\n\n\n\n\n\t\t\t\t图书信息管理系统\t\t\t\t\n");printf("\t\t*********************************************\n");printf("\t\t\t1 ------------------图书信息录入\n");printf("\t\t\t2 ------------------图书信息显示\n");printf("\t\t\t3 ------------------图书信息查询\n");printf("\t\t\t4 ------------------图书信息删除\n");printf("\t\t\t5 ------------------图书信息修改\n");printf("\t\t\t0 -----------------退出图书信息系统\n");printf("\t\t*********************************************\n");printf("\t\tPlease Enter Choose: ");fflush(stdin);scanf("%d",&a);switch(a){case 1:putin();break;case 2:lookup();break;case 3:search();break;case 4:del();break;case 5:update();break;case 0:printf("\n\n退出\n\n");break;default:printf("\n序号不对\n");}}while(a!=0);save();}void find() /*定义查询函数*/{int a;system("cls"); /*进行清屏*/printf("\t\t******************************\n");printf("开始查询\n");printf("\t\t\t1---------------search_by_name\n");printf("\t\t\t2---------------search_by_writer\n");printf("\t\t\t0---------------exit\n");printf("\t\t******************************\n") ;printf("\t\t请选择你想要的查询方式:");fflush(stdin);scanf("%d",&a);switch(a){case 1:search_by_name();break;case 2:search_by_author();break;case 0:return;}}六.程序调试1.第一次运行程序时,库文件不存在图书信息,于是录入图书信息。