VC++课程设计图书管理系统
c语言书籍管理系统课程设计

c语言书籍管理系统课程设计一、课程目标知识目标:1. 学生能理解C语言在书籍管理系统中的应用,掌握基本的数据类型、运算符、控制结构等知识;2. 学生能掌握文件操作、指针等C语言高级特性,并应用于书籍管理系统的开发;3. 学生了解并掌握书籍管理系统中的模块划分,如用户模块、书籍模块、借阅模块等。
技能目标:1. 学生能运用C语言编写简单的书籍管理系统程序,实现用户注册、登录、查询书籍、借阅书籍等功能;2. 学生能通过调试和优化程序,提高书籍管理系统的稳定性和性能;3. 学生能运用所学知识解决实际编程问题,具备一定的编程实践能力。
情感态度价值观目标:1. 学生通过本课程的学习,培养对计算机编程的兴趣和热情,提高自主学习能力和团队协作能力;2. 学生在学习过程中,养成认真、严谨、求实的科学态度,勇于面对和解决问题;3. 学生通过书籍管理系统项目实践,培养创新意识,认识到计算机技术在现实生活中的重要作用。
课程性质:本课程为C语言编程实践课程,以项目驱动的方式进行教学,注重培养学生的编程能力和实际应用能力。
学生特点:学生为高中年级,已具备一定的C语言基础,对编程有一定的兴趣,但实践能力有待提高。
教学要求:教师应注重理论与实践相结合,引导学生主动参与项目实践,培养其分析问题、解决问题的能力。
同时,关注学生的个体差异,给予个性化的指导和帮助。
通过课程目标的分解,确保学生达到预期的学习成果。
二、教学内容1. C语言基础回顾:数据类型、变量、常量、运算符、表达式、控制结构(顺序、选择、循环)。
2. 函数与模块化编程:函数定义、调用、参数传递;模块化编程思想,编写功能独立的模块。
3. 文件操作:文件的打开、关闭、读写操作;文件的随机访问。
4. 指针与数组:指针的概念、运算;指针与数组的关系;动态内存分配。
5. 结构体与共用体:定义和使用结构体、共用体;结构体数组;结构体指针。
6. 书籍管理系统需求分析:分析系统功能模块,如用户管理、书籍管理、借阅管理等。
图书管理系统的设计C课程设计

图书管理系统的设计C 课程设计一、教学目标本课程的设计目标是使学生掌握图书管理系统的设计与实现。
具体目标如下:1.理解图书管理系统的需求和功能。
2.掌握常用的数据结构和算法,并能够应用于图书管理系统的设计。
3.了解数据库的基本概念,并能够使用数据库进行图书管理。
4.能够使用C语言进行程序设计,包括编码、调试和测试。
5.能够使用数据库管理系统进行数据的存储和管理。
情感态度价值观目标:1.培养学生对计算机科学和编程的兴趣和热情。
2.培养学生解决问题的能力和团队合作的精神。
二、教学内容教学内容将按照以下大纲进行:1.图书管理系统需求分析:介绍图书管理系统的功能和需求,包括图书的增删查改等操作。
2.数据结构的选择:介绍常用的数据结构,如数组、链表、树等,并分析其在图书管理系统中的应用。
3.算法的选择:介绍常用的算法,如搜索、排序等,并分析其在图书管理系统中的应用。
4.数据库的设计:介绍数据库的基本概念,并学习如何使用数据库管理系统进行数据的存储和管理。
5.图书管理系统的实现:使用C语言进行图书管理系统的编码、调试和测试。
三、教学方法将采用多种教学方法进行教学,以激发学生的学习兴趣和主动性:1.讲授法:用于讲解基本概念和理论知识。
2.案例分析法:通过分析实际案例,使学生更好地理解和应用所学知识。
3.实验法:通过实际操作和实验,使学生掌握图书管理系统的实现和测试。
四、教学资源将选择和准备以下教学资源:1.教材:选用《C程序设计》作为主教材,用于学习C语言编程基础。
2.参考书:选用《数据结构与算法分析》和《数据库原理》作为参考书,用于深入学习数据结构和算法以及数据库的知识。
3.多媒体资料:制作PPT和教学视频,用于讲解理论知识。
4.实验设备:准备计算机和数据库管理系统,用于实际操作和实验。
五、教学评估教学评估将采用多种方式进行,以全面反映学生的学习成果:1.平时表现:评估学生的课堂参与度、提问回答和小组讨论的表现,以考察学生的学习态度和积极性。
c图书管理系统课程设计

c 图书管理系统课程设计一、课程目标知识目标:1. 让学生理解图书管理系统的基本概念,掌握其主要功能模块和使用方法。
2. 使学生掌握数据库的基本操作,如创建、查询、更新和删除数据。
3. 帮助学生了解软件工程的基本原则,培养良好的编程习惯。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的图书管理系统。
2. 提高学生使用数据库技术进行数据处理和分析的能力。
3. 培养学生运用软件工程方法进行问题分析和系统设计的能力。
情感态度价值观目标:1. 培养学生对计算机科学的兴趣和热情,激发学习动力。
2. 培养学生的团队协作意识,提高沟通与协作能力。
3. 培养学生严谨、认真的工作态度,树立良好的职业道德观念。
课程性质分析:本课程为实践性较强的学科,旨在帮助学生将所学理论知识应用于实际项目中,提高学生的动手能力和问题解决能力。
学生特点分析:学生具备一定的计算机基础和编程能力,对数据库和软件工程有一定了解,但实践经验不足。
教学要求:1. 结合实际案例,引导学生掌握图书管理系统的核心功能和关键技术。
2. 注重实践操作,让学生在实践中提高技能。
3. 强化团队合作,培养学生良好的沟通与协作能力。
4. 关注学生个体差异,提供有针对性的指导。
二、教学内容1. 理论知识:- 图书管理系统概述:介绍图书管理系统的基本概念、功能模块及其在实际应用中的作用。
- 数据库原理:讲解数据库的基本概念、关系型数据库的设计及SQL语言的使用。
- 软件工程:阐述软件工程的基本原则,如需求分析、系统设计、编码、测试等。
2. 实践操作:- 系统设计:指导学生进行图书管理系统的需求分析、功能设计、数据库设计等。
- 编程实现:教授学生运用编程语言(如Java、C#等)实现图书管理系统的核心功能。
- 系统测试:教授学生进行单元测试、集成测试和系统测试,确保系统稳定可靠。
3. 教学大纲:- 第一周:图书管理系统概述,数据库原理学习。
- 第二周:软件工程基本原理,需求分析和系统设计。
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 书库管理系统课程设计一、课程目标知识目标:1. 理解书库管理系统的基本概念,掌握其功能模块和操作流程。
2. 学习数据库基础知识,了解数据表的设计与数据关系。
3. 掌握使用编程语言(如Python)实现书库管理系统的核心功能。
技能目标:1. 能够运用所学知识设计简单的书库管理系统,实现图书信息的增删改查功能。
2. 能够运用数据库技术进行数据存储与管理,解决实际问题。
3. 提高问题分析能力,学会运用编程思维解决书库管理中的问题。
情感态度价值观目标:1. 培养学生对书库管理工作的兴趣,激发学习计算机技术的热情。
2. 培养学生的团队协作精神,提高沟通与表达能力。
3. 增强学生的信息意识,认识到信息技术在图书馆管理中的重要作用。
课程性质:本课程为实践性较强的学科课程,结合实际书库管理场景,培养学生的编程能力和数据库应用能力。
学生特点:本课程针对的是高中年级学生,具有一定的计算机操作基础,对编程和数据库有一定了解,具备一定的自学能力和问题解决能力。
教学要求:教师需结合学生特点和课程性质,采用项目驱动法进行教学,引导学生主动参与,注重实践操作,提高学生的动手能力。
同时,关注学生的学习进度和情感态度,确保课程目标的实现。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 书库管理系统概述- 了解书库管理系统的基本概念和功能- 分析书库管理系统的实际应用场景2. 数据库基础- 学习数据库的基本概念、数据表设计及数据关系- 掌握SQL语句的基本操作,如增删改查3. 编程语言基础- 学习Python编程语言的基本语法和常用库- 了解面向对象编程的基本思想和方法4. 书库管理系统功能实现- 设计并实现图书信息的增删改查功能- 掌握数据库连接、事务处理等操作5. 项目实践与团队协作- 按照项目任务分工,进行团队协作- 完成书库管理系统的设计与实现,并进行测试与优化教学内容安排与进度:第一周:书库管理系统概述、数据库基础第二周:Python编程语言基础第三周:书库管理系统功能实现(上)第四周:书库管理系统功能实现(下)第五周:项目实践与团队协作、课程总结教材章节关联:《计算机科学与技术导论》第三章 计算机软件、第四章 数据库技术《Python编程:从入门到实践》第二章 Python基础、第三章 面向对象编程教学内容依据课程目标制定,注重科学性和系统性,结合教材章节进行教学大纲的制定,确保教学内容与课本紧密关联,符合教学实际需求。
c图书管理系统课程设计

c 图书管理系统课程设计一、教学目标本课程旨在让学生了解和掌握图书管理系统的基本原理和实际应用,培养学生运用计算机技术解决图书管理问题的能力。
具体目标如下:1.知识目标:使学生了解图书管理系统的起源、发展及其基本组成部分,掌握图书管理的基本流程和相关知识点,如图书分类、编号、借阅等。
2.技能目标:通过课程学习,学生能够熟练使用图书管理系统软件,进行图书信息的录入、查询、修改和删除等操作,具备一定的实际操作能力。
3.情感态度价值观目标:培养学生对图书管理工作的热爱和敬业精神,提高学生的人文素养,使学生认识到图书管理在现代社会的重要性。
二、教学内容本课程的教学内容主要包括以下几个部分:1.图书管理系统的基本概念:介绍图书管理系统的起源、发展及其在我国的应用现状。
2.图书管理基本流程:讲解图书的分类、编号、采购、登记、借阅等环节。
3.图书管理系统软件的使用:教授如何使用图书管理系统软件,进行图书信息的录入、查询、修改和删除等操作。
4.实际案例分析:分析典型图书管理案例,使学生能够将所学知识运用到实际工作中。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行授课:1.讲授法:教师讲解图书管理系统的相关概念、基本流程及软件使用方法。
2.案例分析法:分析典型图书管理案例,引导学生运用所学知识解决实际问题。
3.实验法:学生进行上机操作,使学生熟练掌握图书管理系统软件的使用。
4.讨论法:鼓励学生就图书管理中的实际问题进行讨论,培养学生的团队协作能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
2.参考书:提供相关领域的参考书籍,丰富学生的知识视野。
3.多媒体资料:制作精美的PPT课件,提高课堂教学效果。
4.实验设备:配置充足的计算机设备,保证学生上机操作的需求。
5.网络资源:利用校园网络,为学生提供丰富的在线学习资源。
五、教学评估本课程的教学评估将采用多元化方式进行,全面、客观地评价学生的学习成果。
VC++图书管理系统课程设计报告
C++程序设计课程设计报告( 2021 -- 2021 年度第2 学期)图书管理系统的设计专业学生姓名班级学号指导教师完成日期2021年6月22日目录目录 (2)1概述 (1)1.1 课程设计目的 (1)1.2 课程设计内容 (1)2系统需求分析 (1)2.1 系统目标 (1)2.2 主体功能 (1)2.3 开发环境 (1)3 系统概要设计 (2)3.1 系统的功能模块划分 (2)3.2 系统流程图 (2)4系统详细设计 (3)4.1 系统登录模块设计 (4)4.2 系统主界面设计 (6)图书信息管理模块设计 (7)4.4 管理员、读者信息管理模块设计 (8)4.5 借书还书管理模块设计 (10)4.6 借书、罚金查询查询模块设计 (11)5测试 (12)5.1 测试方案 (12)5.2 测试结果 (13)6小结 (17)参考文献 (17)附录 (19)附录1源程序清单 (19)附录系统登录模块源程序 (19)附录系统主界面源程序 (20)附录图书信息管理模块源程序 (23)附录管理员、读者信息管理模块源程序 (30)附录借还书管理模块源程序 (44)附录罚金查询模块源程序 (50)学生成绩管理系统的设计1 概述1.1 课程设计目的1、稳固并加深学生对C++语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、进一步掌握和应用VC++6.0集成开发环境;4、提高运用C++语言解决实际问题的能力;5、初步掌握开发小型实用软件的根本方法,能独立设计、实现根本的MIS系统;6、掌握书写程序设计开发文档的能力〔书写课程设计实验报告〕。
1.2 课程设计内容课题名称:图书管理系统的开发说明:实现简单图书信息的管理。
要求:1〕权限管理:增加或删除系统操作人员,并指定操作人员的权限;2〕读者管理:设置不同的读者身份,并对读者相关信息进展管理,包括建立新的读者,编辑已有的读者信息和删除读者信息的操作;3〕图书类别的管理:对图书的类别进展管理;4〕图书入库管理:录入新的图书信息;5〕图书信息修改管理:对已有的图书信息进展修改,包括删除指定图书操作;6〕图书借还管理:实现对图书的借出和归还的管理;7〕图书查询管理:通过各种查询方式可以来进展查询,比方书号,书名,作者等;8〕图书超期管理:对超期的情况能自动给出提示信息。
图书管理系统c课程设计报告
图书管理系统c 课程设计报告一、教学目标本课程旨在通过学习图书管理系统的设计与实现,使学生掌握数据库的基本操作、编程语言的应用以及软件工程的实践方法。
在知识目标上,学生应理解数据库的概念、结构及其在图书管理中的应用;掌握至少一种编程语言的基本语法和编程技巧;了解软件开发的流程和规范。
技能目标则要求学生能够独立设计简单的图书管理系统数据库;编写程序实现图书的增删改查等操作;运用软件工程的方法完成一个小型的图书管理项目。
情感态度价值观目标强调培养学生对计算机科学的兴趣,增强创新意识和团队协作精神,同时培养学生的信息素养,使其能够合法、合理地使用信息技术。
二、教学内容本课程的教学内容围绕图书管理系统的设计与实现展开,具体包括以下几个部分:1.数据库基础:介绍数据库的基本概念、数据模型以及SQL语言的使用,让学生掌握如何创建、查询和管理数据库。
2.编程语言应用:通过实例教学,使学生熟悉至少一种编程语言(如C语言)的基本语法,培养学生编写程序解决问题的能力。
3.软件工程实践:讲解软件开发的生命周期,包括需求分析、设计、编码、测试和维护等环节,强调编程规范和团队合作的重要性。
4.项目实现:指导学生利用所学知识设计并实现一个简易的图书管理系统,涵盖图书的录入、查询、借阅等功能。
三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行授课:1.讲授法:用于传授数据库理论基础、编程语言的基本语法和软件工程的概念。
2.案例分析法:通过分析具体的图书管理案例,使学生理解数据库设计和程序实现的过程。
3.实验法:安排实验室实践环节,让学生动手编写代码,实际操作数据库,加深理解和实践能力。
4.小组讨论法:学生分组完成项目设计,鼓励学生相互讨论、协作解决问题,培养团队精神和沟通能力。
四、教学资源教学资源将包括:1.教材:《数据库原理与应用》、《C程序设计》等,为学生提供理论学习的坚实基础。
2.多媒体资料:包括教学PPT、案例视频等,增强课堂的互动性和趣味性。
c语言图书管理系统课程设计
c语言图书管理系统课程设计一、教学目标本课程旨在通过学习C语言实现图书管理系统,让学生掌握C语言编程的基本语法,熟练运用C语言进行简单的系统开发。
具体目标如下:1.知识目标:a.掌握C语言的基本语法和数据结构;b.理解图书管理系统的需求和设计原理;c.学习C语言在文件操作、数据管理等方面的应用。
2.技能目标:a.能够使用C语言编写简单的程序;b.学会使用C语言进行图书信息的增删改查等操作;c.熟练运用C语言进行图书管理系统的开发和维护。
3.情感态度价值观目标:a.培养学生的编程兴趣,提高自主学习能力;b.培养学生解决问题的能力和团队合作精神;c.使学生认识到C语言在现实生活中的应用价值。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基础知识:C语言的基本语法、数据类型、运算符、控制语句等。
2.数据结构:数组、链表、栈和队列等基本数据结构。
3.函数:函数的定义、调用、参数传递、返回值等。
4.图书管理系统需求分析:了解图书管理系统的功能需求、性能需求等。
5.图书管理系统设计:系统架构设计、模块划分、功能实现等。
6.文件操作:文件打开、关闭、读写等基本操作。
7.系统测试与调试:测试图书管理系统的功能、性能,查找并修复程序中的错误。
三、教学方法为了提高教学效果,本课程将采用以下几种教学方法:1.讲授法:讲解C语言的基本语法、数据结构、函数等基础知识。
2.案例分析法:通过分析实际案例,使学生了解图书管理系统的需求分析和设计过程。
3.实验法:让学生动手编写代码,实现图书管理系统的各个功能模块。
4.小组讨论法:分组进行讨论,培养学生的团队合作精神和问题解决能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)等。
2.参考书:《C Primer Plus》、《C语言入门与实践》等。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
图书管理系统C课程设计
图书管理系统C课程设计一、课程目标知识目标:1. 学生能理解图书管理系统的基本概念,掌握C语言在系统开发中的应用。
2. 学生能掌握结构体、文件操作、指针等C语言核心知识,并运用到图书管理系统中。
3. 学生了解并掌握图书管理系统的功能模块,如图书入库、查询、借阅等。
技能目标:1. 学生能运用所学知识,设计并实现一个简单的图书管理系统。
2. 学生能通过C语言编程,完成图书管理系统中的各个功能模块。
3. 学生能运用调试工具,对程序进行调试和优化,提高程序的性能。
情感态度价值观目标:1. 培养学生主动探索、积极实践的精神,提高解决问题的能力。
2. 培养学生的团队协作意识,学会与他人共同完成项目任务。
3. 培养学生关注实际应用,将所学知识运用到实际项目中,提高学习兴趣。
分析课程性质、学生特点和教学要求:本课程为C语言课程设计,旨在让学生将所学知识运用到实际项目中。
学生已具备一定的C语言基础,但实际操作能力有待提高。
教学要求注重实践,强调学生动手能力,培养解决实际问题的能力。
课程目标分解:1. 知识目标:通过讲解和案例分析,使学生掌握图书管理系统的基本概念和C语言应用。
2. 技能目标:通过项目实践,让学生独立完成图书管理系统的设计与实现,提高编程能力。
3. 情感态度价值观目标:在教学过程中,注重培养学生主动探索、团队协作和关注实际应用的意识。
二、教学内容1. C语言基础知识回顾:结构体、文件操作、指针等核心概念及其应用。
2. 图书管理系统需求分析:介绍图书管理系统的功能需求,如图书入库、查询、借阅等。
3. 系统设计:- 系统架构设计:模块划分,功能描述。
- 数据结构设计:定义图书信息、用户信息等数据结构。
4. 功能模块实现:- 图书入库模块:实现图书信息的添加、修改和删除。
- 查询模块:实现按书名、作者、分类等条件的查询功能。
- 借阅模块:实现图书借阅、归还、续借等功能。
- 用户管理模块:实现用户注册、登录、权限设置等功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程设计题目:图书管理系统二、功能描述1工作人员登陆后,可以进行的操作:(1)添加学生的信息(学号,姓名,院系,最大借阅的图书数量等);(2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量);(3)删除学生的信息(学号,姓名,院系,最大借阅的图书数量),如果某个学生退学,就要清除他的信息;(4)查看学生的信息;(5)添加图书的信息(图书号,书名,作者,出版社,数量等);(6)修改图书的信息(图书号,书名,作者,出版社,数量等);(7)删除图书的信息(图书号,书名,作者,出版社,数量等);(8)查看图书的信息;2 学生登陆后,可以进行的操作:(1)查看学生自己借阅的数目信息;(2)借阅图书;(3)归还图书;备注:要求将学生和图书信息存放到外存上,每次从外存读取数据。
三、模块的功能与联系/const int Maxbor=5;//每位读者最多借五本书//读者类,实现对读者的信息的描述class Reader{private:int tag; //删除标记 1:已删 0:未删int no; //读者编号char name[10]; //读者姓名int borbook[Maxbor];//所借图书public:Reader() {}char *getname() {return name;} //获取姓名int gettag() {return tag;} //获取删除标记int getno() {return no;} //获取读者编号void setname(char na[]) //设置姓名{strcpy(name,na);}void delbook(){ tag=1; }//设置删除标记 1:已删 0:未删void addreader(int n,char *na)//增加读者{tag=0;no=n;strcpy(name,na);for(int i=0;i<Maxbor;i++)borbook[i]=0;}void borrowbook(int bookid)//借书操作{for(int i=0;i<Maxbor;i++){if (borbook[i]==0){borbook[i]=bookid;return;}}}int retbook(int bookid)//还书操作{for(int i=0;i<Maxbor;i++){if(borbook[i]==bookid){borbook[i]=0;return 1;}}return 0;}void disp()//读出读者信息{cout << setw(5) << no <<setw(10) << name<<"借书编号:["; for(int i=0;i<Maxbor;i++)if(borbook[i]!=0)cout << borbook[i] << "|";cout << "]"<<endl;}};//读者类库,实现建立读者的个人资料class RDatabase{private:int top; //读者记录指针Reader read[Maxr];//读者记录public:RDatabase() //构造函数,将reader.txt读到read[]中{Reader s;top=-1;fstream file("reader.txt",ios::in);//打开一个输入文件while (1){file.read((char *)&s,sizeof(s));if (!file)break;top++;read[top]=s;}file.close(); //关闭 reader.txt}void clear()//删除所有读者信息{top=-1;}int addreader(int n,char *na)//添加读者时先查找是否存在{Reader *p=query(n);if (p==NULL){top++;read[top].addreader(n,na);return 1;}return 0;}Reader *query(int readerid)//按编号查找{for (int i=0;i<=top;i++)if (read[i].getno()==readerid &&read[i].gettag()==0){return &read[i];}return NULL;}void disp() //输出所有读者信息{for (int i=0;i<=top;i++)read[i].disp();}void readerdata();//读者库维护~RDatabase() //析构函数,将read[]写到reader.txt文件中{fstream file("reader.txt",ios::out);for (int i=0;i<=top;i++)if (read[i].gettag()==0)file.write((char *)&read[i],sizeof(read[i]));file.close();}};void RDatabase::readerdata(){char choice;char rname[20];int readerid;Reader *r;while (choice!='0'){cout <<"\n\n\t\t\t读者维护\n\n\n\t\t 1 新增\n\n\t\t 2 更改\n\n\t\t 3 删除\n\n\t\t 4 查找\n\n\t\t 5 显示\n\n\t\t 6 全删\n\n\t\t 0 退出"<<endl;cin >> choice;switch (choice){case '1':cout << "输入读者编号:";cin >> readerid;cout << "输入读者姓名:";cin >> rname;addreader (readerid,rname);break;cout << "输入读者编号:";cin >> readerid;r=query(readerid);if (r==NULL){cout << " 该读者不存在 "<<endl; break;}cout << "输入新的姓名:";cin >> rname;r->setname(rname);break;case '3':cout << " 输入读者编号:";cin >> readerid;r=query(readerid);if (r==NULL){cout <<" 该读者不存在" << endl; break;}r->delbook();break;cout << "读入读者编号:";cin >> readerid;r=query(readerid);if (r==NULL){cout <<"该读者不存在"<< endl;break;}r->disp();break;case '5':disp();break;case '6':clear();break;default:cout<<"输入错误,请从新输入:";break;}}}//图书类,实现对图书的描述,图书的编号,书名,借出,还入等class Book{private:int tag;//删除标记 1:已删 0:未删int no;//图书编号char name[20];//书名int onshelf;//是否再架 1:再架 2:已借public:Book(){}char *getname() { return name; }//获取姓名int getno(){ return no; }//获取图书编号int gettag(){ return tag; }//获取删除标记void setname(char na[])//设置书名{strcpy(name,na);}void delbook(){ tag=1;}//删除图书void addbook(int n,char *na)//增加图书{tag=0;no=n;strcpy(name,na);onshelf=1;}int borrowbook()//借书操作{if (onshelf==1){onshelf=0;return 1;}return 0;}void retbook()//还书操作{onshelf=1;}void disp()//输出图书{cout << setw(6) << no << setw(18) << name << setw(10) <<(onshelf==1? "在架":"已借") <<endl;}};//图书库类,实现对图书的维护,查找,删除等class BDatabase{private:int top; //图书记录指针Book book[Maxb]; //图书记录public:BDatabase()//构造函数,将book.txt读到book[]中{Book b;top=-1;fstream file("book.txt",ios::in);while (1){file.read((char *)&b,sizeof(b));if (!file) break;top++;book[top]=b;}file.close();}void clear()//全删{top=-1;}int addbook(int n,char *na)//增加图书{Book *p=query(n);if (NULL==p)top++;book[top].addbook(n,na);return 1;}return 0;}Book *query(int bookid)//查找图书{for (int i=0;i<=top;i++)if (book[i].getno()==bookid &&book[i].gettag()==0) {return &book[i];}return NULL;}void bookdata();//图书库维护void disp(){for (int i=0;i<=top;i++)if (book[i].gettag()==0)book[i].disp();}~BDatabase()//析构函数,将book[]写到book.txt文件中fstream file("book.txt",ios::out);for (int i=0;i<=top;i++)if (book[i].gettag()==0)file.write((char *)&book[i],sizeof(book[i]));file.close();}};void BDatabase::bookdata(){char choice;char bname[40];int bookid;Book *b;while (choice!='0'){cout <<"\n\n\n\t\t\t图书维护 "<<endl<<endl;cout<<"\t\t1 新增\n \t\t2 更改\n\t\t3 删除\n\t\t4 查找\n\t\t5 显示\n\t\t6 全删\n\t\t0 退出"<<endl;cin >> choice;switch (choice){case '1':cout << "输入图书编号:"<<endl;cin >> bookid;cout << "输入图书书名:"<<endl; cin >> bname;addbook(bookid,bname);break;case '2':cout << "输入图书编号:"<<endl; cin >> bookid;b=query(bookid);if (b==NULL){cout << " 该图书不存在 "<<endl; break;}cout << "输入新的书名:"<<endl; cin >> bname;b->setname(bname);break;case '3':cout <<" 读入图书编号:"<<endl; cin >> bookid;b=query(bookid);if (b==NULL){cout <<" 该图书不存在" << endl;break;}b->delbook();break;case '4':cout << " 读入图书编号:"<<endl;cin >> bookid;b=query(bookid);if (b==NULL){cout <<" 该图书不存在"<< endl;break;}b->disp();break;case '5':disp();break;case '6':clear();break;default:cout<<"输入错误,请从新输入:"; }}}//main() 函数的实现,程序的主界面的引导void main(){char choice;int bookid,readerid;RDatabase ReaderDB;Reader *r;BDatabase BookDB;Book *b;while(choice!='0'){cout <<endl<<endl<<"\t\t\t 图书管理系统\n\n\n";cout <<"\t\t\t1 借书\n\n\t\t\t2 还书 \n\n\t\t\t3 图书维护\n\n\t\t\t4 读者维护\n\n\t\t\t0 离开"<<endl;cin >> choice;switch (choice){case '1':cout <<" 借书读者编号:";cin >>readerid;cout <<" 图书编号: ";cin >>bookid;r=ReaderDB.query(readerid);//按编号查找{cout <<" 不存在该读者,不能借书"<< endl; break;}b=BookDB.query(bookid);if (b==NULL){cout <<" 不存在该图书,不能借书"<< endl; break;}if (b->borrowbook()==0){cout << " 该图书已借出,不能借书"<< endl; break;}r->borrowbook(b->getno());break;case '2':cout<<"还书\n 读者编号:";cin >>readerid;cout << " 图书编号:";cin >>bookid;r=ReaderDB.query(readerid);{cout <<" 不存在该读者,不能还书" << endl; break;}b=BookDB.query(bookid);if (b==NULL){cout <<" 不存在该图书,不能还书" <<endl; break;}b->retbook();r->retbook(b->getno());break;case '3':BookDB.bookdata();break;case '4':ReaderDB.readerdata();break;default:cout<<"输入错误,请从新输入:"; }}}五、运行效果1界面2借书3还书4图书维护5读者维护六、存在不足即预期解决方法1查找到图书后,无法显示是否已借出。