c语言课程设计报告·图书管理系统
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语言课程设计图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言基础知识,学会使用C语言进行程序设计,能够运用C语言实现图书管理系统的功能。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,理解图书管理系统的业务流程和需求。
2.技能目标:学生能够运用C语言编写程序,实现图书管理系统的各个功能模块,如图书信息的添加、删除、修改和查询等。
3.情感态度价值观目标:培养学生对计算机编程的兴趣和热情,增强学生的自主学习能力和团队协作精神,使学生在解决实际问题时能够积极思考、勇于尝试。
二、教学内容本课程的教学内容分为五个部分:1.C语言基础知识:包括基本语法、数据类型、运算符、控制结构等。
2.函数与模块化编程:学习函数的定义、声明和调用,掌握模块化编程的方法和技巧。
3.图书管理系统需求分析:了解图书管理系统的业务流程,明确系统需求。
4.图书管理系统功能实现:使用C语言编写程序,实现图书管理系统的各个功能模块。
5.程序调试与优化:学习使用调试工具,掌握调试和优化程序的方法。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:教师讲解C语言基本语法和概念,引导学生掌握知识要点。
2.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题。
3.实验法:学生动手编写程序,实现图书管理系统的功能,培养实际操作能力。
4.讨论法:分组讨论问题,培养学生的团队协作能力和解决问题的能力。
四、教学资源本课程所需教学资源包括:1.教材:《C程序设计语言》或《C语言入门教程》等。
2.参考书:《C语言编程实例解析》、《C语言常用算法解析》等。
3.多媒体资料:教学PPT、视频教程、编程案例等。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
5.在线资源:编程论坛、博客、教程等。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答情况、团队合作表现等,占总评的30%。
C语言图书管理系统课程设计报告
第三章 图书管理系统的设计与实现 3.1 系统的需求分析
图书登记管理系统作为一个应用软件将为学校的老师和学生提 供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界 面的提示信息对图书馆信息进行查询、初始化等操作
4
系统功能需求分析描述如下: (1)系统主菜单:进入系统和退出系统 (2)功能菜单:显示可以进行的操作 (3)查询主菜单:根据图书编号、书名、作者进行查询,并可 显示所有图书信息 (4)借还书主菜单:可以进行借书和还书等操作
0
引言
随着社会经济的迅速发展和现代科学技术的进步,人类社 会正逐渐走向现代化。计算机事业的飞速发展,使得以计算机与 通信技术为基础的信息系统正处于蓬勃发展的时期。同时,随着 经济文化水平的显著提高,人们对生活质量及工作环境的要求也 越来越高。图书馆拥有丰富的文献信息资源,是社会系统的重要 组成部分,在信息社会中的作用愈来愈重要。
随着现代社会信息量的不断增加,图书的种类及信息也越来 越多,如何来管理庞大的图书信息成为一大难题,如何以一种便 捷的管理方式加快图书流通信息的反馈速度,提高工作效率,已 经成为学校图书馆管理的关键问题。信息技术的飞速发展给图书 馆的管理带来了全新的变革,采用图书管理系统对图书馆的运作 进行全程管理,不仅是图书馆摆脱了以往人工管理产生的一系列 问题,而且让图书馆提高了管理效率,减少了管理成本。让图书 馆进行更有效的管理。
c语言课程设计报告及源代码图书馆管理系统
1 设计内容、任务及基本要求 (2)1.1 设计内容 (2)1.2 设计任务 (2)1.3 设计基本要求 (2)2 总体设计思路 (4)2.1 系统功能 (4)2.2 各个模块之间的主要关系 (4)2.3 总体程序框图 (5)2.4 系统的总体流程图 (5)3 功能模块的具体设计 (7)3.1 main() 函数模块 (7)3.2查询所有图书信息函数模块 (8)3.3查询一本图书信息函数模块 (8)3.4添加图书信息函数模块 (9)3.5删除图书信息函数模块 (10)3.6 借阅图书模块 (12)4 功能模块的调试与测试 (13)4.1主菜单运行界面 (13)4.2查询所有图书信息模块运行界面 (13)4.3查找某一本图书信息模块运行界面 (14)4.4 添加图书信息模块运行界面 (16)4.5 删除图书信息模块运行界面 (17)4.6 借阅图书模块信息运行界面 (79)5 总结 (22)6 致谢 (23)7 参考文献 (24)9 程序清单 (25)1.设计内容、任务以及基本要求1.1设计内容主要利用c语言的文件操作能力设计开发一个小型的图书管信息管理系统,至少具有如下功能:查寻所有图书信息、通过输入图书编号来完成查找某一本图书信息、添加图书信息、删除图书信息以及通过学生学号实现图书借阅功能。
操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。
1.2设计任务要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。
掌握模块化编程的基本方法与步骤;巩固和加深学生对C语言课程基本知识的理解与掌握,培养学生利用C语言进行软件操作的能力和技巧。
1.3基本要求(1)通过提示菜单选择可以进行的操作。
(2)将图书的信息存入文件中,并命名为BookInfo.txt。
图书管理系统c课程设计报告
图书管理系统c 课程设计报告一、教学目标本课程旨在通过学习图书管理系统的设计与实现,使学生掌握数据库的基本操作、编程语言的应用以及软件工程的实践方法。
在知识目标上,学生应理解数据库的概念、结构及其在图书管理中的应用;掌握至少一种编程语言的基本语法和编程技巧;了解软件开发的流程和规范。
技能目标则要求学生能够独立设计简单的图书管理系统数据库;编写程序实现图书的增删改查等操作;运用软件工程的方法完成一个小型的图书管理项目。
情感态度价值观目标强调培养学生对计算机科学的兴趣,增强创新意识和团队协作精神,同时培养学生的信息素养,使其能够合法、合理地使用信息技术。
二、教学内容本课程的教学内容围绕图书管理系统的设计与实现展开,具体包括以下几个部分:1.数据库基础:介绍数据库的基本概念、数据模型以及SQL语言的使用,让学生掌握如何创建、查询和管理数据库。
2.编程语言应用:通过实例教学,使学生熟悉至少一种编程语言(如C语言)的基本语法,培养学生编写程序解决问题的能力。
3.软件工程实践:讲解软件开发的生命周期,包括需求分析、设计、编码、测试和维护等环节,强调编程规范和团队合作的重要性。
4.项目实现:指导学生利用所学知识设计并实现一个简易的图书管理系统,涵盖图书的录入、查询、借阅等功能。
三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行授课:1.讲授法:用于传授数据库理论基础、编程语言的基本语法和软件工程的概念。
2.案例分析法:通过分析具体的图书管理案例,使学生理解数据库设计和程序实现的过程。
3.实验法:安排实验室实践环节,让学生动手编写代码,实际操作数据库,加深理解和实践能力。
4.小组讨论法:学生分组完成项目设计,鼓励学生相互讨论、协作解决问题,培养团队精神和沟通能力。
四、教学资源教学资源将包括:1.教材:《数据库原理与应用》、《C程序设计》等,为学生提供理论学习的坚实基础。
2.多媒体资料:包括教学PPT、案例视频等,增强课堂的互动性和趣味性。
c图书管理系统课程设计报告
c图书管理系统课程设计报告一、教学目标本课程的教学目标是使学生掌握C图书管理系统的基本概念、设计原理和实现方法。
通过本课程的学习,学生应能够:1.理解C图书管理系统的基本组成部分及其功能;2.掌握C图书管理系统的设计原理和实现方法;3.能够运用C图书管理系统进行图书管理;4.培养学生的信息素养和创新能力。
二、教学内容本课程的教学内容主要包括:1.C图书管理系统的基本概念:介绍C图书管理系统的发展历程、基本功能和应用场景;2.C图书管理系统的设计原理:讲解C图书管理系统的架构设计、模块划分和算法实现;3.C图书管理系统的实现方法:介绍C图书管理系统的开发环境、编程语言和开发工具;4.实践操作:通过案例分析法和实验法,使学生熟练掌握C图书管理系统的操作和使用。
三、教学方法本课程采用多种教学方法相结合的方式,包括:1.讲授法:讲解C图书管理系统的基本概念、设计原理和实现方法;2.案例分析法:分析典型实例,使学生更好地理解C图书管理系统的应用;3.实验法:让学生动手实践,熟练掌握C图书管理系统的操作和使用;4.讨论法:鼓励学生提问、发表见解,培养学生的独立思考能力。
四、教学资源为实现本课程的教学目标,我们将提供以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、全面的学习资料;2.参考书:推荐相关参考书籍,丰富学生的知识体系;3.多媒体资料:制作课件、演示文稿等多媒体教学资源,提高课堂教学效果;4.实验设备:为学生提供充足的实验设备,确保实验教学的顺利进行。
通过以上教学资源的支持,我们期望学生能够在本课程学习中取得良好的效果。
五、教学评估本课程的教学评估将采取多元化方式进行,以全面、客观、公正地评价学生的学习成果。
评估内容包括:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性;2.作业:布置适量作业,评估学生的理解和应用能力;3.考试:设置期中考试和期末考试,评估学生对课程知识的掌握程度;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语言课程设计报告图书管理系统-精品
作者:电子商务09-2班卢佳学号:0918230209《高级语言程序设计(C)》课程设计报告书设计题目图书管理系统姓名专业班级学号指导老师成绩营销管理学院电子商务系2011年1月目录一引言 (3)二系统功能和原始数据 (3)三程序总体设计 (4)四功能模块函数设计和调试 (5)五程序清单 (12)六课程设计总结 (17)一引言在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机解决实际问题的基本方法,熟悉C程序开发的全过程.本任务应用指针编制小型的图书管理系统.通过整个程序开发的过程,提高综合应用C语言的能力,编程和调试能力.二系统功能和原始数据(一) 系统功能(1)主菜单0.图书信息录入1.图书信息浏览2按书名查询图书信息3.按ISBN查询图书信息4.增加图书信息5.按书名排序6.删除记录7.保存文件8.打开文件9.退出(2)各项功能0.图书信息录入:输入图书的名字、ISBN、作者、价格、出版社等。
1. 图书信息浏览:图书的名字、ISBN、作者、价格、出版社等2.查看与书的名字有关的信息:根据书名查找书。
3.查看与作者有关的书的信息:根据作者查找书。
4.增加书的信息:输入书的名字、ISBN、作者、价格、出版社等。
5按照书名排序:字母的形式排序6删除记录:删除一条书的信息7.保存文件8.文件打开9.退出(二) 原始数据图书信息:图书信息包括:书名.isbn.分类号.作者.出版日期.出版社.价格文件结构:书名Isbn 分类号作者出版时间出版单位价格C语言123 Xx1 谭浩强09-01-21 高等教育出版社15数学234 Xx2 彭辉09-01-21 高等教育出版社16思修345 Xx3 邹邹09-01-21 高等教育出版社17英教456 Xx4 王浩09-01-21 高等教育出版社18应用文567 Xx5 瑞瑞09-01-21 高等教育出版社19概率678 Xx6 雪雪09-01-21 高等教育出版社20管理学789 Xx7 小邹09-01-21 高等教育出版社21线代890 Xx8 周敏09-01-21 高等教育出版社22军事901 Xx9 张向东刘毅09-01-21 高等教育出版社23运筹012 Xx0 崔崔09-01-21 高等教育出版社24 三程序总体设计(一)数据结构:struct record{char name[20]; char isbn[20]; char author[40]; char price[10]; char company[30]; }(二)模块划分:四 功能模块函数设计和调试(一) 函数原型,功能和形参说明主函数main菜单menustruct recor d 结构体void list()显示书籍信息 void add()输入图书信息void searc h_na me() searc h_isb n()查找V oid listby name ()排序功能void exit()退出函数原型:V oid adduser() V oid list() V oid search_name() V oid search_isbn() V oid add() V oid listbyname() V oid dele() V oid save() V oid read()函数功能:adduser() 增加书籍信息list() 显示书籍信息search_name() 按书名查找search_isbn() 按ISBN号码查找add() 增加书籍信息listbyname() 按书名排序dele() 删除书籍信息save() 保存read() 文件打开参数说明:read()/*从文件中读入数据*/ FILE *fp; /*定义文件指针*/(二)函数流程图adduser 输入函数输入书名输入ISBN输入作者输入分类号输入出版日期输入价格输入出版单位继续添加结束search_name按书名查找mark=0i=0a=0char name[20]i=ai<numif(strcmp(s显示书籍信息查找相同i++按任意键返回主菜单没有相同书名纪录按任意键返回主菜单书名查找与ISBN查找方法相同删除书籍信息i,j,delemark=0mun==0i=0i<numif(strcmp(student[i].isbn,i删除书籍信息删除i++删除成功没有该书籍纪录没有该书籍纪录按书名删除与按ISBN删除方法相同(三)运行结果五程序清单#include<iostream.h> /*引用库函数*/ #include <stdio.h>#include<iostream.h>#include <string.h>#include <conio.h>#include <stdlib.h>#define null 0 ;struct record{char name[20];char isbn[20];char author[40];char type[10];char date[10];char price[10];char company[30];}student[30];struct LinkList{struct record US;struct LinkList *next;}a;struct LinkList *head=null;int num=0;FILE *fp;int menu_select();/*菜单函数*/ int adduser();int list();int search_name();int search_isbn();int add();int listbyname();int dele();int save();int read();int exit();void main(){system("cls");/*运行前清屏*/ for(;;){switch(menu_select()){case 0:adduser();break;case 1:list();break;case 2:search_name();break;case 3:search_isbn();break;case 4:add();break;case 5:listbyname();break;case 6:dele();break;case 7:save();break;case 8:read();break;case 9:exit(0);}}}menu_select(){int s;int a;cout<<"*_* 按任意键进入菜单! *_* "<<endl;getch();system("cls");cout<<"\t\t********************MENU*********************\n"<<endl; cout<<"\t\t 0. 图书信息录入"<<endl;cout<<"\t\t 1. 图书信息浏览 "<<endl;cout<<"\t\t 2. 按书名查询图书信息"<<endl;cout<<"\t\t 3. 按ISBN查询图书信息"<<endl;cout<<"\t\t 4. 增加图书信息"<<endl;cout<<"\t\t 5. 按书名排序"<<endl;cout<<"\t\t 6. 删除记录"<<endl;cout<<"\t\t 7. 数据保存"<<endl;cout<<"\t\t 8. 文件打开"<<endl;cout<<"\t\t 9.退出"<<endl;cout<<"\t\t***********************************************"<<endl; do{cout<<"\n 输入你的选择(0~9):";cin>>s;a=s;}while (a<0||a>9);return a;}adduser() //输入函数{cout<<"\n\t\t**************** 请输入图书信息 ****************"<<endl; cout<<"\n\t\t输入书名:";/*交互输入*/cin>>student[num].name;cout<<"\n\t\t输入ISBN:";cin>>student[num].isbn;cout<<"\n\t\t输入作者:";cin>>student[num].author;cout<<"\n\t\t输入分类号:";cin>>student[num].type;cout<<"\n\t\t输入出版日期:";cin>>student[num].date;cout<<"\n\t\t输入价格:";cin>>student[num].price;cout<<"\n\t\t输入出版单位:";cin>>student[num].company;num++;cout<<"\n\t\t是否继续添加?(Y/N):";char z;cin>>z;if((z=='y')||(z=='Y'))adduser();return(0);}int list() //显示函数{int i;system("cls");if(num!=0){cout<<"\n\t\t*************** 以下为该书所有信息************";for(i=0;i<num;i++)/*循环输入*/{cout<<"\n\t\t书名:"<<student[i].name;cout<<"\n\t\tISBN: "<<student[i].isbn;cout<<"\n\t\t作者: "<<student[i].author;cout<<"\n\t\t分类号: "<<student[i].type;cout<<"\n\t\t出版日期: "<<student[i].date;cout<<"\n\t\t价格: "<<student[i].price;cout<<"\n\t\t出版单位:"<<student[i].company;cout<<"\t\t";if(i+1<num){cout<<"\n\t\t__________________________";system("pause");}}cout<<"\n\t\t************************************************"; }elsecout<<"\n\t\t书库中无任何纪录";cout<<"\n\t\t按任意键返回主菜单:";getch();return(0);}search_name() //按书名查找{int mark=0;int i;int a=0;cout<<"\n\t\t***************** 按书名查找 *******************"; char name[20];cout<<"\n\t\t请输入书名:";cin>>name;for(i=a;i<num;i++){if(strcmp(student[i].name,name)==0){cout<<"\n\t\t************* 以下是您查找的信息 ***************"; cout<<"\n\t\t书名: "<<student[i].name;cout<<"\n\t\tISBN: "<<student[i].isbn;cout<<"\n\t\t作者: "<<student[i].author;cout<<"\n\t\t分类号: "<<student[i].type;cout<<"\n\t\t出版日期: "<<student[i].date;cout<<"\n\t\t价格: "<<student[i].price;cout<<"\n\t\t出版单位:"<<student[i].company;cout<<"\n\t\t************************************************";mark++;if((i+1)<num){cout<<"\n\t\t是否继续查找相同名字的信息:(y/n)";char y;cin>>y;if((y=='y')||(y=='Y')){a=i;continue;}elsereturn(0);}else{cout<<"\n\t\t按任意键返回主菜单";getch();return(0);}}}if(mark==0){cout<<"\n\t\t没有相同书名纪录";cout<<"\n\t\t按任意键返回主菜单";getch();return(0);}}search_isbn() //按ISBN查找{int mark=0;int i;int a=0;cout<<"\n\t\t****************** 按ISBN查找 ******************"; char isbn[10];cout<<"\n\t\t请输入ISBN:";cin>>isbn;for(i=0;i<num;i++){if(strcmp(student[i].isbn,isbn)==0){cout<<"\n\t\t************** 以下是您查找的书籍信息 **********";cout<<"\n\t\t书名: "<<student[i].name;cout<<"\n\t\tISBN: "<<student[i].isbn;cout<<"\n\t\t分类号: "<<student[i].type;cout<<"\n\t\t出版日期: "<<student[i].date;cout<<"\n\t\t价格: "<<student[i].price;cout<<"\n\t\t作者: "<<student[i].author;cout<<"\n\t\t出版单位:"<<student[i].company;cout<<"\n\t\t************************************************";cout<<"\n\t\t按任意键返回主菜单:";mark++;getch();return(0);}}if(mark==0){cout<<"\n\t\t没有更改信息";cout<<"\n\t\t按任意键返回主菜单";getch();return(0);}return(0);}add() //增加书籍信息{int i;if((fp=fopen("student.bin","wb"))==NULL){cout<<"\n\t\t文件打开失败";}for (i=0;i<num;i++){if (fwrite(&student[i],sizeof(struct record),1,fp)!=1){cout<<"\n\t\t写入文件错误!\n";}cout<<"\n\t\t**************** 请输入书籍信息 ****************"<<endl; cout<<"\n\t\t输入书名:";cin>>student[num].name;cout<<"\n\t\t输入ISBN号码:";cin>>student[num].isbn;cout<<"\n\t\t输入作者:";cin>>student[num].author;cout<<"\n\t\t输入出版日期:";cin>>student[num].date;cout<<"\n\t\t输入分类号:";cin>>student[num].type;cout<<"\n\t\t输入价格:";cin>>student[num].price;cout<<"\n\t\t输入出版单位:";cin>>student[num].company;num++;cout<<"\n\t\t是否继续添加?(Y/N):";if(getch()=='y')adduser();return(0);}fclose(fp);cout<<"\n\t\t图书文件已保存";cout<<"\n\t\t按任意键退出程序\n\t\t";exit(0);return(0);}void deletebyisbn(){int i,j;int deletemark=0;char isbn[20];cout<<"\n\t\t请输入要删除ISBN号码:";cin>>isbn;if(num==0){cout<<"\n\t\t对不起,文件中无任何纪录";cout<<"\n\t\t按任意键返回主菜单";getch();return;}for (i=0;i<num;i++){if(strcmp(student[i].isbn,isbn)==NULL){cout<<"\n\t\t以下是您要删除的书籍纪录:"; cout<<"\n\t\t书名: "<<student[i].name; cout<<"\n\t\tISBN: "<<student[i].isbn;cout<<"\n\t\t分类号: "<<student[i].type;cout<<"\n\t\t出版日期: "<<student[i].date; cout<<"\n\t\t价格: "<<student[i].price;cout<<"\n\t\t作者: "<<student[i].author;cout<<"\n\t\t出版单位:"<<student[i].company; cout<<"\n\t\t是否删除?(y/n)";char u;cin>>u;if((u=='y')||(u=='Y')){for(j=i;j<num-1;j++)student[j]=student[j+1];num--;deletemark++;cout<<"\n\t\t删除成功";cout<<"\n\t\t是否继续删除?(y/n)";char v;cin>>v;if((v=='y')||(v=='Y'))deletebyisbn();return;}elsereturn;}continue;}if(deletemark==0){cout<<"\n\t\t没有该书籍的纪录";cout<<"\n\t\t是否继续删除?(y/n)";char m;cin>>m;if((m=='y')||(m=='Y'))deletebyisbn();return;}}void deletebyname(){int a=0;int findmark=0;int j;int deletemark=0;int i;char name[20];cout<<"\n\t\t请输入要删除书籍名称:";cin>>name;for(i=a;i<num;i++){if(strcmp(student[i].name,name)==NULL){cout<<"\n\t\t以下是您要删除的书籍纪录:";findmark++;cout<<"\n\t\t________________________________"; cout<<"\n\t\t书名: "<<student[i].name;cout<<"\n\t\tISBN: "<<student[i].isbn;cout<<"\n\t\t分类号: "<<student[i].type;cout<<"\n\t\t作者: "<<student[i].author;cout<<"\n\t\t出版日期: "<<student[i].date;cout<<"\n\t\t价格: "<<student[i].price;cout<<"\n\t\t出版单位:"<<student[i].company; cout<<"\n\t\t________________________________"; cout<<"\n\t\t是否删除?(y/n)";char n;cin>>n;if((n=='y')||(n=='Y')){for(j=i;j<num-1;j++)student[j]=student[j+1];num--;deletemark++;cout<<"\n\t\t删除成功";if((i+1)<num){cout<<"\n\t\t是否继续删除相同书籍信息?(y/n)"; char l;cin>>l;if((l=='y')||(l=='Y')){a=i;continue;}}cout<<"\n\t\t是否继续删除?(y/n)";char o;cin>>o;if((o=='y')||(o=='Y'))deletebyname();return;}if((i+1)<num){cout<<"\n\t\t是否继续删除相同书名信息?(y/n)"; char p;cin>>p;if((p=='y')||(p=='Y')){a=i;continue;}}}elsecontinue;}if((deletemark==0)&&(findmark==0)){cout<<"\n\t\t没有该书籍的纪录";cout<<"\n\t\t是否继续删除?(y/n)";char q;cin>>q;if((q=='y')||(q=='Y'))deletebyisbn();return;return;}else if(findmark!=0){cout<<"\n\t\t没有重名信息";cout<<"\n\t\t没有该书纪录";cout<<"\n\t\t是否继续删除?(y/n)";char r;cin>>r;if((r=='y')||(r=='Y'))deletebyisbn();return;return;}}dele() //删除书籍信息{int choic;cout<<"\n\t\t1-按ISBN号码删除 2-按书名删除"; cout<<"\n\t\t请选择:";cin>>choic;switch (choic){case 1:deletebyisbn();break;case 2:deletebyname();break;}return(0);}listbyname() //按书名排序{int i,j;struct record tmp;for(i=1;i<num;i++){if(strcmp(student[i].name,student[i-1].name)<0){tmp=student[i];j=i-1;do{student[j+1]=student[j];j--;}while ((strcmp(,student[j].name)<0&&j>=0)); student[j+1]=tmp;}}cout<<"\n\t\t排序成功,是否显示?(y/n)";char x;cin>>x;if((x=='y')||(x=='Y'))list();return(0);}save() //保存资料{int j;FILE*fp;fp=fopen("student.txt","w");if (fp==NULL)cout<<"不能打开文件.";if(num!=0){for(j=0;j<num;j++){fwrite(student,sizeof(student),1,fp);}}cout<<"保存成功!";fclose(fp);return(0);}read()/*从文件中读入数据*/{int n;int m=0,num;FILE *fp; /*定义文件指针*/char filename[20]; /*定义文件名*/cout<<"输入文件名:"<<endl;cin>>filename; /*输入文件名*/if((fp=fopen("student.txt","rb"))==NULL) /*打开文件*/{cout<<"=====>提示:无法打开这个文件!"<<endl; /*打开失败信息*/cout<<"\t\t\t";system("pause");return(n);}fscanf(fp,"%d",&num); /*读入总记录量*/while(m<num) /*循环读入数据*/{fscanf(fp,"%s%d%s%f%f%f%f%f%f%f",&student[n+m].name,&student[n+m].isbn,&s tudent[n+m].author,&student[n+m].type,&student[n+m].date,&student[n+m].pr ice,&student[n+m].company);m++;}n+=num;fclose(fp); /*关闭文件*/cout<<"=====>提示:读入数据成功,可选择【图书信息浏览】查看"<<endl;cout<<"\t\t\t";system("pause");return(n);}六课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对本人实际工作能力的具体训练和考察过程.在整整两周的日子里,可以学到很多很多的的东西,在设计中遇到了很多编程问题,通过查找资料、回顾课本等终于完成了课程设计。
图书管理系统c语言课程设计
图书管理系统c语言课程设计一、课程目标知识目标:1. 学生能够理解图书管理系统的基本概念,掌握C语言实现数据结构(如链表)的基本方法。
2. 学生能够运用C语言编写程序,实现图书管理系统的基本功能,如图书的增删改查。
3. 学生能够理解文件操作在图书管理系统中的应用,实现数据的持久化存储。
技能目标:1. 学生能够运用所学知识,独立完成图书管理系统的需求分析、设计、编码和测试。
2. 学生通过课程设计,提高问题分析能力,培养解决实际问题的编程能力。
3. 学生能够运用调试工具,找出并修正程序中的错误,提高程序调试能力。
情感态度价值观目标:1. 学生在课程学习中,培养对编程的兴趣和热情,树立正确的计算机科学观念。
2. 学生通过团队协作完成课程设计,培养沟通协作能力和团队精神。
3. 学生在解决实际问题的过程中,体会编程带来的成就感,增强自信心。
课程性质:本课程为C语言程序设计课程的实践环节,旨在让学生将所学理论知识应用于实际项目中,提高编程实践能力。
学生特点:学生已具备C语言基础知识,具有一定的编程能力,但实际项目经验较少。
教学要求:注重理论联系实际,引导学生独立思考,培养学生解决实际问题的能力。
通过课程设计,使学生能够将所学知识综合运用,提高编程实践技能。
二、教学内容1. 数据结构基础:回顾教材中关于数据结构的基础知识,重点复习链表的结构及其操作,为图书管理系统设计打下基础。
- 教材章节:第三章 数据结构,第四节 链表2. 文件操作:学习C语言文件操作相关知识,掌握文件读写方法,为图书信息持久化提供支持。
- 教材章节:第五章 文件,第一节 文件的打开与关闭,第二节 文件的读写3. 系统需求分析:引导学生学习如何分析图书管理系统的功能需求,明确课程设计目标。
- 教材章节:第二章 程序设计基础,第三节 结构化程序设计4. 系统设计与实现:根据需求分析,设计系统功能模块,使用C语言实现图书管理系统的增删改查等功能。
图书馆管理系统C语言课程设计报告(原创)
课程报告任务书1需求分析开发一个图书管理系统。
一、图书信息包括图书编号、书名、作者、价格、出版社、出版日期、类别、馆藏地址、库存量。
二、系统功能包括1 新建图书信息库2查询图书信息●全部查询●按书名查询●按作者查询●按类别查询3 图书排序●按编号排序●按价格排序4 图书信息插入(插入后仍按编号顺序排放的)5 图书信息删除(按书名查找删除)6 图书信息修改(按书名查询到书后可以进行选择对各项信息进行修改)7 图书数目统计8 图书信息保存在文件中三、在主函数里设计各个功能选项,然后调用相应的自定义子函数来实现功能。
2 概要设计(1) 数据结构主要数据结构:单链表//图书信息结构体struct book{char num[L]; //图书编号char name[M]; //书名char writer[M]; //作者char publisher[M]; //出版社char time[N]; //出版日期char category[n]; //类别char room[N]; //馆藏地址double price; //价格int amount; //库存量struct book *next;};(2) 模块划分主函数void main()自定义子函数即功能函数struct book * create(); // 新建图书信息库struct book * scanf1_(); //输入单本书的信息void printf1_(struct book *); //输出单本书的信息void chaxun_(struct book *); //综合查询void chaxun_all(struct book *); //全部信息浏览void chaxun_name(struct book *); //按书名查询void chaxun_writer(struct book *); //按作者查询void chaxun_category(struct book *); //按类别查询struct book *num_order(struct book *); //按编号排序struct book *price_order(struct book *); //按价格排序struct book *delete_(struct book *); //图书信息删除void change(struct book *,char a[]); //图书信息修改struct book *insert(struct book *); //图书信息插入int count(struct book *); //图书数目统计void save(struct book *); //保存到文件struct book *load(); //从文件读取信息到链表int quit(struct book *); //退出函数(3) 程序总体框架(4) 主界面是如下3 详细设计一main()主函数程序采用模块化设计,主函数是程序的入口,各模块独立,可分块调整,均由主函数控制。
c语言课程设计报告图书管理系统
C语言课程设计报告: 图书管理系统1. 引言本报告旨在介绍一个基于C语言的图书管理系统的设计与实现。
图书管理系统是一个用于管理图书馆图书的软件,它能够方便地进行图书的借阅、归还、查询等操作,提高图书馆的管理效率。
2. 系统需求分析在设计图书管理系统之前,我们首先需要明确系统的需求。
根据需求分析,该系统需要具备以下功能:•图书的录入与管理:管理员可以添加、修改和删除图书信息,包括书名、作者、出版社、ISBN等。
•读者的管理:管理员可以添加、修改和删除读者信息,包括姓名、学号、联系方式等。
•图书借阅与归还:读者可以借阅图书,并在归还时完成相应的操作。
•图书查询:管理员和读者都可以通过关键字查询图书信息。
•预约图书:读者可以预约图书,待图书可用时通知读者。
•罚款管理:系统可以自动计算读者逾期归还图书的罚款金额,并进行相应的处理。
3. 系统设计与实现3.1 数据结构设计为了实现图书管理系统的各项功能,我们需要设计合适的数据结构来存储图书信息、读者信息等。
以下是我们设计的数据结构:•图书结构体:包括书名、作者、出版社、ISBN等信息;•读者结构体:包括姓名、学号、联系方式等信息;•借阅记录结构体:包括图书信息、读者信息、借阅日期、归还日期等信息;3.2 系统模块设计根据系统需求,我们可以将图书管理系统划分为以下几个模块:•图书管理模块:包括图书的添加、修改和删除功能;•读者管理模块:包括读者的添加、修改和删除功能;•图书借阅模块:包括图书的借阅和归还功能;•图书查询模块:包括关键字查询功能;•预约图书模块:包括图书的预约功能;•罚款管理模块:包括读者逾期归还图书的罚款管理功能;3.3 系统实现根据系统设计,我们使用C语言编写相应的代码来实现整个图书管理系统。
我们使用结构体来存储图书、读者和借阅记录的信息,并使用文件来存储这些数据。
我们可以通过菜单方式来实现用户和管理员的交互,用户可以根据需求选择相应的功能。
c语言图书管理系统实验报告
c语言图书管理系统实验报告C语言图书管理系统实验报告引言:图书管理系统是现代图书馆必备的管理工具,它通过计算机技术的应用,实现了图书的借阅、归还、查询等功能,提高了图书馆的管理效率。
本实验旨在通过使用C语言编写一个简单的图书管理系统,掌握C语言的基本语法和数据结构的应用。
一、系统需求分析在开始编写图书管理系统之前,我们首先需要明确系统的需求。
根据实际情况,我们确定了以下几个主要功能模块:1. 图书信息管理:包括图书的录入、修改、删除等操作。
2. 学生信息管理:包括学生的注册、借书、还书等操作。
3. 借阅记录管理:记录学生借阅图书的时间、归还时间等信息。
4. 查询功能:可以根据图书名称、作者、学生姓名等信息进行查询。
二、系统设计与实现1. 数据结构设计:为了实现图书管理系统的各项功能,我们需要定义一些数据结构,如图书信息结构体、学生信息结构体、借阅记录结构体等。
通过定义这些结构体,我们可以方便地对图书信息、学生信息进行管理和操作。
2. 主菜单设计:系统启动后,会显示一个主菜单,用户可以通过输入相应的数字选择不同的功能模块。
我们使用switch语句来实现主菜单的功能选择,确保用户可以根据自己的需求进行操作。
3. 功能实现:根据需求分析中确定的功能模块,我们逐一实现了相应的功能。
例如,对于图书信息管理模块,我们实现了图书的录入、修改、删除等功能。
对于学生信息管理模块,我们实现了学生的注册、借书、还书等功能。
通过合理的函数设计和调用,我们保证了系统的正常运行。
三、系统测试与优化在完成系统的设计与实现后,我们进行了一系列的测试。
通过输入不同的数据,测试系统的各项功能是否正常运行。
我们发现了一些问题,如输入错误时系统的错误提示不够友好、系统的响应速度较慢等。
为了解决这些问题,我们进行了相应的优化。
通过增加错误提示信息、优化算法等方式,提高了系统的用户体验。
四、总结与展望通过本次实验,我们掌握了C语言的基本语法和数据结构的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章§题目描述图书管理系统设计:【要求】图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。
试设计一图书管理系统,使之能提供以下功能:(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->student_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->year,p->cla im_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->student_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->student_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].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);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].author,n[i].pr ess,n[i].year,n[i].claim_number,n[i].unit_price,n[i].collection,n[i].can_borrow,n[i].st udent_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->student_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->year,p->cla im_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);{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].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);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].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);}}}}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->student_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->year,p->cla im_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].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);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);}}}}case 2:return(back=1);}}}}§实验数据及运行效果截图运行程序,系统菜单:管理员功能界面:新书信息录入完成:图书信息查询(管理员):按图书名称查询结果:图书信息删除(遇删除图书正在出借情况):学生功能界面:办理还书手续:§设计中出现的错误及解决方法在编写这个图书管理系统中,遇到的最大问题是,对数据库文件信息的定向修改。