基于C语言数据结构图书管理系统
基于C语言的图书馆管理系统
职业技术学院编号本科生毕业论文设计题目基于C语言的图书馆管理系统作者姓名指导教师所在学院职业技术学院专业(系)班级(届)完成日期 2016 年 5 月 4 日目录中文摘要、关键字 (Ⅰ)英文摘要、关键字 (Ⅱ)第一章引言 (2)1.1 选题的背景和意义 (2)1.1.1 选题背景 (2)1.1.2 选题意义 (3)1.2 图书管理系统简介 (3)1.3 图书管理系统的需求分析....... (错误!未定义书签。
)第二章设计分析.. (4)2.1 题目分析 .................... (错误!未定义书签。
)2.2 系统分析 .................... (错误!未定义书签。
)第三章管理系统的设计.............. (错误!未定义书签。
)3.1 系统的总体设计 .............. (错误!未定义书签。
)3.2 系统的详细设计 .............. (错误!未定义书签。
)3.2.1 主函数.................. (错误!未定义书签。
)3.2.2 输入模块................ (错误!未定义书签。
)3.2.3 删除模块................ (错误!未定义书签。
)3.2.4 查询模块................ (错误!未定义书签。
)3.2.5 修改模块................ (错误!未定义书签。
)3.2.6 显示模块................ (错误!未定义书签。
)3.2.7 借出模块................ (错误!未定义书签。
)3.2.8 归还模块................ (错误!未定义书签。
)3.2.9 公共函数................ (错误!未定义书签。
)第四章调试与测试.................. (错误!未定义书签。
)第五章系统的实现.................. (错误!未定义书签。
原创c语言图书馆管理系统源代码
原创C语言图书馆管理系统源代码介绍图书馆作为一个重要的知识储备和学习场所,必须进行有效的管理和组织。
使用C语言编写的图书馆管理系统可以帮助图书馆实现自动化的借阅、归还和管理功能。
本文将介绍一个原创的C语言图书馆管理系统的源代码。
功能概述这个图书馆管理系统具有以下核心功能: - 图书管理:包括添加图书、删除图书、查询图书等操作。
- 借阅管理:可以进行借阅操作,记录借阅者和借阅时间。
- 归还管理:可以进行归还操作,并更新图书的可借状态。
- 用户管理:管理借阅者的信息,包括添加用户、删除用户、查询用户等操作。
数据结构设计该图书馆管理系统使用了以下几种数据结构: 1. 图书(Book)结构体:包含图书的ID、书名、作者、可借状态等字段。
2. 用户(User)结构体:包含用户的ID、姓名、地址等字段。
3. 借阅记录(BorrowRecord)结构体:包含借阅者ID、图书ID、借阅时间等字段。
系统流程整个系统的流程可以分为以下几个步骤: 1. 用户打开系统,进入主菜单。
2. 用户选择不同的功能选项(如图书管理、借阅管理、用户管理等)。
3. 根据用户选择的功能,进入相应的功能界面。
4. 用户可以根据提示,输入相应的信息进行图书管理、借阅管理或用户管理操作。
5. 用户完成操作后,可以选择返回主菜单或退出系统。
代码实现以下是一个简化版的C语言图书馆管理系统的源代码:```c #include <stdio.h>// 定义结构体 struct Book { int id; char name[50]; char author[50]; int isAvailable; };struct User { int id; char name[50]; char address[100]; };struct BorrowRecord { int userId; int bookId; char borrowDate[20]; };// 函数声明 void addBook(); void deleteBook(); void searchBook(); void borrowBook(); void returnBook(); void addUser(); void deleteUser(); void searchUser();int main() { int choice;do {// 显示主菜单printf(\。
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%。
基于vc++的C语言图书馆管理系统课程设计报告
图书管理课程设计学生姓名:学生学号:所在班级:任课教师:图书馆管理系统【设计目的】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等. 试设计一图书信息管理系统,使之能提供以下功能:1)系统以菜单方式工作2)图书信息录入功能(图书信息用文件保存)--输入3)图书信息浏览功能--输出4)查询和排序功能:(至少一种查询方式)--算法5)按书名查询6)按作者名查询7)图书信息的删除与修改(可选项)*/【设计思路】根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
【总体设计】图1 系统功能模块图【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】#include<stdio.h>#include<stdlib.h>#include<conio.h>int get(){int o;scanf("%d",&o);}struct BOOK{int ID,usr[10],total,store,days[10];char name[31],aurthor[21];}books[100];/*上面是结构体的定义,用于存放书籍及借书的信息。
*/void page_title(char*menu_item){printf("图书管理系统\n-%s-\n",menu_item);}/*通过参数menu_item,可以显示当前的状态。
*/void return_confirm(){printf("\n按任意返回\n");getch();}/*上面是返回前请求确认的函数,以便在返回前观察结果*/int search_book(){int n,i;printf("输入图书序号:");scanf("%d",&i);for(n=0;n<100;n++){if(books[n].ID==i){printf("书名:%s\n",books[n].name);printf("作者:%s\n",books[n].aurthor );printf("存数:%d of ",books[n].store );printf("%d\n",books[n].total);return n;}}printf("\n输入错误或无效图书序号\n");return -1;}/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返回数组下标,如果找不到相应记录则提示错误并返回-1。
基于C语言的图书管理系统
摘要摘要21世纪是信息的社会,信息作为社会最主要的资源,将成为战略资引起人们广泛的关注。
然而如何获取信息?图书是我们最好的获取信息的方式。
但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来,对读者去图书馆借书造成了一定困扰,学校图书馆为了更加快捷的管理学校的图书资源,方便广大读者借阅图书。
节省图书馆管理的经济成本与时间成本,方便图书馆各个部门间的合作以及与图书供应商的联系。
决定开发此借阅系统。
本系统便是尝试用c++架构一个图书管理系统,它是在Windows 7下,以visual C++开发平台。
它分为用户部分和管理员部分,用户应该有查找,注册,归还,查看的功能,管理员应该添加,删除,查找,查看,修改等功能。
建成后的系统是一个静态的,具有图书提供、系统管理等功能的基本的图书管理系统。
关键词C++;visual C++;图书管理系统目录目录摘要 (I)第1章专业综合课程设计概述 (1)1.1专业综合课程设计的目的和意义 (1)1.2专业综合课程设计内容安排 (1)1.3本报告主要内容 (1)第2章技术综述 (2)2.1C++简介 (2)2.2C++技术的优势 (2)2.3C++的基本组成部分 (3)2.4C++程序技术的实现 (3)2.5本章小结 (4)第3章图书系统分析 (5)3.1需求分析 (5)3.2可行性分析 (5)3.3本章小结 (5)第4章图书管理系统设计 (7)4.1总体设计 (7)4.2系统功能结构设计 (7)4.3设计目标 (9)4.4本章小结 (9)第5章图书管理系统实现 (10)5.1详细设计 (10)5.1.1书籍结构体(Book) (10)5.1.2书籍管理结构体(BookManage) (10)5.1.3读者结构体(Reader) (11)专业综合课程设计报告5.1.4读者管理结构体(ReaderManage) (12)5.1.5菜单结构体(Menu) (12)5.1.6主函数(main) (13)5.2编码调试、测试 (13)5.2.1各界面菜单显示 (13)5.2.2登录验证 (16)5.2.3注册新读者用户 (17)5.2.4添加新的图书资料 (17)5.2.5修改已有图书资料 (18)5.4.6删除已有图书资料 (18)5.4.7查找已有图书资料 (19)5.4.8显示所有图书资料 (19)5.3本章小结 (20)专业综合课程设计总结 (21)参考文献 (22)第1章专业综合课程设计概述第1章专业综合课程设计概述1.1专业综合课程设计的目的和意义通过这次课程设计具体了解计算机科学与技术专业相关领域的技术现状和发展动态,了解软件技术的应用和发展,通过在相关软件开发人员指导下进行软件开发基本技能的学习和训练,力求对本专业相关领域形成较为专业、系统、和全面的认识,培养专业兴趣和实践技能。
c语言图书信息管理系统c语言
图书管理系统目录一、问题描述这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
通过这些信息使之提供以下功能:(1)图书信息创建功能。
其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
(图书信息用文件保存)。
(2)图书信息查看功能。
用来查看各项图书信息。
(3)图书信息查找功能。
通过已知信息来查找想要的图书。
(4)图书信息的删除。
可以删除特定图书。
(5)图书信息的修改。
可以修改图书的各项信息。
(6)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能二、概要设计1 数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。
struct book{int num;//编号char name[20];//书名char author[20];//作者char publisher[20];//出版社int price;//价格int store;//库存};//图书信息结构体2 模块划分本系统主要有创建新的图书、查找图书、删除图书、修改图书、查看图书和图书排序几个基本功能。
void setup(struct book bo[]);//新建图书void search(struct book bo[]);//查找图书void modify(struct book bo[]);//查看图书void del(struct book bo);//删除图书void allbook(struct book bo[]);显示所有图书3 程序流程图否开始菜单新建图书修改信息查询图书删除图书所有图书退出是结束三、详细设计1 主函数int main()//主{struct book bo[100];char c;while(1){system("color 1A");printf("\n");printf("\n\t\t\t >>>欢迎进入图书管理系统<<<\n\n");printf("===================================== ===========================================\ n\n");printf("\t\t\t\t 1 录入新书\n\t\t\t\t 2 查询图书\n");printf("\t\t\t\t 3 修改信息\n\t\t\t\t 4 删除图书\n");printf("\t\t\t\t 5 所有图书\n");printf("\t\t\t\t 0 退出系统\n\n");printf("===================================== ===========================================\ n");printf("请选择:");c=getchar();switch(c){case'1':{setup(bo); getchar();break;}case'2':{search(bo);getchar();break;}case'3':{modify(bo);getchar();break;}case'4':{del(bo);getchar();break;}case'5':{allbook(bo);getchar;break;}case'0':{printf("\n感谢使用本系统");return 0;break;}default:{printf("\n输入有误,请重新输入:" );c=getchar();} }}}2 新建图书void setup(struct book bo[])打开文件或者新建一个文件,键盘输入新建的图书信息,然后把数据全部保存在数组bo数组中,最后存入文件。
c语言课程设计图书管理系统
c语言课程设计图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程的基本知识,能够运用C语言设计简单的图书管理系统。
具体目标如下:1.知识目标:•掌握C语言的基本语法和数据结构。
•理解图书管理系统的需求和设计原理。
2.技能目标:•能够使用C语言进行程序设计和调试。
•能够独立设计并实现图书管理系统的功能模块。
3.情感态度价值观目标:•培养学生的编程兴趣和自主学习能力。
•培养学生的团队协作能力和问题解决能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的需求分析和设计。
具体内容如下:1.C语言的基本语法:•变量和数据类型•运算符和表达式•函数和数组2.数据结构:3.图书管理系统的需求分析和设计:•用户界面设计•图书信息管理•借阅信息管理•查询和统计功能三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解C语言的基本语法和数据结构,使学生掌握相关知识。
2.案例分析法:通过分析图书管理系统的需求和设计案例,使学生理解并能够独立设计类似的系统。
3.实验法:通过编写和调试代码,使学生掌握C语言编程的技巧和方法。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
具体如下:1.教材:选用权威出版的C语言编程教材,为学生提供系统的学习资料。
2.参考书:提供相关的C语言编程参考书籍,供学生深入学习和参考。
3.多媒体资料:制作课件和教学视频,以图文并茂的方式呈现教学内容,增强学生的学习兴趣。
4.实验设备:提供计算机和相关的编程工具,为学生提供实践编程的机会。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
1.平时表现:通过课堂参与、提问和小组讨论等方式评估学生的学习态度和参与程度。
2.作业:布置适量的编程作业,评估学生的编程能力和对知识的掌握程度。
3.考试:进行期中和期末考试,评估学生的综合运用能力和对知识的全面掌握。
基于C语言的图书管理系统
1图书管理系统和开发环境简介
进 行代码 编写和功能的实现,最后进行测试和 的功能实现出发,测试主要功能的实现 。白盒 功 能的分 析,完成一个应用系统的整体设计工 测 试需要了解程序的逻辑结构 ,对程序 的各种
随 着 社 会 主 义 经 济 的 发 展 , 各 种 信 息 管 程 , 需 要 用 到 c 语 言 中 的 算 法 , 功 能 通 过 函 通 路结构和基本算法都要了解 ,来检测 图书管
展迅速 ,图书馆 的馆藏量也在不断的加大 ,图
根 据系 统分 析功 能 的需求 制定 图书 管理 护 。 随着 信 息 化 时 代 的 到 来 , 运 用 互 联 网 技 术
书管理系统可 以代替 图书管理员大部分 的工作 系统的总体设计 ,采用 自顶向下的层次化 的模 进行对 日常工 作的 管理 是今后 业务 发展 的潮
格按照编程 的标准 要求 自己,在 复杂的函数结 构 上 加 注 释 ,有 利 于 后 期 管 理 人 员 的维 护 。
代 码测 试通 过两 种方 式来 实现 ,黑 盒测
析 ,从 图 书 管 理 系 统 目标 的 建 立 、需 求 分 析 、 试 , 不考 虑 程序 的 语 法 结 构 , 从 图 书 管 理 系 统
来说 ,计算机系统 实现对 图书的管理功能,代 对 于 缺 失 和 淘 汰 的 图书 进 行信 息 的删 除 ; 修 改 确 保 图 书 管 理 系 统 的 正 常 投 入 使 用 。
替人工管理 ,使得 图书管 理变得 规范化和严谨 功能 ,对 图书馆 图书信 息进 行修 改;借阅功能, 5结语 化 ,避 免 了很 多 因 人 工操 作而 带 来 的 不 必 要 的 通过 系统实现 自主借 阅功 能,并且能查阅相关
C语言课程设计——图书馆管理系统
C语言课程设计——图书馆管理系统目录第1章引言 (2)1.1 题目背景 (2)1.2 设计目的 (2)1.3 解决问题 (2)第2章使用工具与特点 (4)2.1 C语言的发展 (4)2.2 C语言的特点 (5)第3章总体设计 (6)3.1编写目的 (6)3.2系统功能 (6)第4章系统分析与设计 (12)4.1添加功能设计 (12)4.2借阅图书功能 (13)第5章系统功能实现 (19)5.1添加功能 (19)5.2借阅功能 (19)结论 (22)致谢 (23)第1章引言1.1 题目背景随着计算机技术的飞速发展,改变了世界,也改变了人类的生活。
作为现代科学技术的飞速发展,改变了世界,也改变了人类的生活。
新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求当今社会,多元文化快速发展,人与人的交流也越来越多,社交也越来越广泛,这时,记住自己认识的人是很重要的,因此我们做了这个程序,为了使我们更有效的记录下自己所认识的人,更方便去和更多的人交流而不会记错。
C语言成了在国内外使用的一种计算机语言。
C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。
现在大多数的高校都把C语言作为第一门计算机语言进行教学,这是可行的,学生也是能够学习好的。
1.2 设计目的这次设计主要是应用了C程序设计中的一些算法,还有一些函数的调用,结构体的应用等,根据他们的基本思想来编写程序。
程序包括的主要内容可以对图书馆管理系统进行输入、修改、删除、借阅、归还、显示等操作,设计一个有关学生借阅图书的管理程序,来方便人们对信息更方便的使用,经过这样一个过程来巩固和完善自己所学的知识,同时来培养一下自己的实践能力。
通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。
图书管理系统c语言
图书管理系统C语言1. 简介图书管理系统是一种用于管理图书馆藏书和借阅记录的软件系统。
它通常包括图书的录入、借阅、归还、查询等功能,能够提高图书馆的工作效率和服务质量。
本文将使用C语言编写一个简单的图书管理系统,实现基本的图书信息录入、修改、查询、借阅、归还等功能。
2. 功能实现2.1 数据结构我们首先需要定义合适的数据结构来存储图书信息和借阅记录。
以下是一个简单的数据结构示例:struct Book {int id; // 图书编号char title[100]; // 图书标题char author[50]; // 图书作者char category[50]; // 图书分类int isBorrowed; // 图书是否已借阅,0表示未借阅,1表示已借阅char borrowerName[100]; // 借阅者姓名// 可根据需求扩展其他字段};struct BorrowRecord {int bookId; // 图书编号char borrowerName[100]; // 借阅者姓名char borrowDate[20]; // 借阅日期char returnDate[20]; // 归还日期// 可根据需求扩展其他字段};2.2 图书信息录入和修改我们可以通过实现相应的函数来实现图书信息的录入和修改。
以下是一个简单的示例:void addBook(struct Book *library, int *count) {// 输入图书信息,将其存入library数组中,同时更新count}void updateBook(struct Book *library, int count, int bookId) { // 根据图书编号bookId,更新library数组中对应图书的信息}2.3 图书查询我们可以根据图书的不同字段来实现不同的查询功能,比如根据图书标题、作者、分类等进行模糊查询,或根据图书编号进行精确查询。
基于c语言的图书管理系统毕业论文
图书分类号:密级:毕业设计(论文)基于C语言的图书管理系统Design and Implementation of Books Management System Based on C Language学生姓名学院名称专业名称指导教师2012年5月日摘要人类已经跨入了新世纪,正在进入信息化时代。
信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求。
随着馆藏量的不断增加,图书资料的录入和查询的难度也就相应增加,数据处理手工操作,工作量大,出错率高,出错后不易更改的手工方式,已经不能满足要求。
基于此问题,建立一个规范化,系统化,程序化的图书管理系统迫不急待。
为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写程序以提高图书馆的管理效率。
使用程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,以便全面掌握图书的流通情况等等。
关键词:C语言;图书管理;数据处理;信息技术AbstractMankind has entered the new century, which is entering the information age. Wave of information technology, the network revolution has brought about the impact, but also make the library service has been badly hit,and library management and services of traditional methods can not meet the growing literature on the information the reader needs. With the continuous increase in the collections, books, data entry and also a corresponding increase in the difficulty of queries, data processing manual operation, heavy workload, error rate, error is not easy to change after the manual mode can no longer meet the requirements.Based on this problem, the establishment of a standardized, systematic, process-oriented library management system can not wait. For the convenience of library books, readers information, such as borrowing and returning books for efficient management, especially the preparation of the management procedures to enhance the efficiency of the library. After using the program, staff can search for certain readers, borrow some books, can also borrow books on the current situation of some statistics in order to fully grasp the flow of books.KEY WORDS:C language, Library Management, Data Processing, Information Technology目录摘要 (I)Abstract (II)1 绪论 (1)1.1 选题的背景和选题的意义 (1)1.1.1 选题的背景 (1)1.1.2 选题的意义 (1)1.2 系统的特点 (2)1.3 需求分析 (2)2 系统的总体设计 (3)2.1 系统总体设计 (3)2.2运行环境和开发工具 (3)2.2.1开发工具 (3)2.2.2运行环境 (4)2.3 系统流程图 (5)3 系统的详细设计 (6)3.1主体界面设计 (6)3.1.1主函数 (6)3.1.2输入模块 (7)3.1.3删除模块 (8)3.1.4查询模块 (9)3.1.5修改模块 (11)3.1.6显示模块 (12)3.1.7借出模块 (13)3.1.8归还模块 (14)3.1.9公共函数 (16)4 系统调试 (17)5系统运行 (19)结论 (23)致谢 (24)参考文献 (25)附录程序源代码 (26)1 绪论1.1 选题的背景和选题的意义1.1.1 选题的背景随着社会的发展,信息管理系统越来越受到人们的重视,运用信息管理系统可以减少人们的工作量和工作时间,让我们不必花费大量的时间在查找上,所以信息管理系统越来越受到管理人员的青睐并且被普遍应用与各行各业中。
数据结构_c语言_图书管理系统
图书借阅管理是图书馆一个最基本的工作,这里用C语言的知识设计开发一个简单的图书借阅管理系统,系统主要实现图书信息和学生信息的管理,图书查询及图书借阅管理。
系统设计要求系统主要实现以下六个功能:①用户登录。
系统用户分为管理员和学生。
管理员登录时必须输入密码,密码正确才能进入系统;学生登录时无需密码,输入学号即可。
②图书信息管理。
图书信息包括:书号、书名、作者、图书分类、出版社、出版时间、单价、总量和库存量。
图书信息管理包括:输入图书信息(从键盘或从文件)、保存图书信息、修改图书信息、增加图书信息、删除图书信息和输出图书信息。
③学生信息管理。
学生信息包括:学号、姓名、借书卡(借阅标记、书号、借阅时间)。
学生信息管理包括:输入学生信息(从键盘或从文件)、保存学生信息、修改学生信息、增加学生信息、删除学生信息和输出学生信息。
④图书查询功能。
图书查询分为:按书名查询、按作者查询、按图书分类查询、按出版社查询和按出版时间查询。
⑤借书功能。
借书时,先判断学生是否有空闲的借书卡,若没有则应输出提示信息;若有空闲的借书卡,则要求学生输入所借图书的书号,若该书库存量不为0,则将该书借出,同时在借书卡上记录该书的书号和借阅时间,并修改该书的库存量。
⑥还书功能。
还书时,先检查学生的借书卡,若借书卡都为空,则不能进行还书操作,若有借书卡不为空,则可以还书,此时要求学生输入所还图书的书号,将对应借书卡上的记录清零,并修改该书的库存量。
数据结构设计系统共定义了四个结构体类型,包括日期类型、借书卡类型、图书类型和学生类型,其中在图书类型中要使用日期类型,而在学生类型中要使用日期和借书卡类型,定义如下:typedef struct date //日期类型{ short year; //年short month; //月short day; //日}SDATE;typedef struct library_card //借书卡类型{ Short flag; //是否借阅标记Char ISBN[20]; //所借图书的书号SDATE bor_time; //借阅时间}SLCARD;typedef struct student //学生类型{ char num[15]; //学号char name[20]; //姓名SLCARD card[5]; //借书卡(规定每人最多有5张)}SSTUD;typedef struct book //图书类型{ char ISBN[20]; //书号char bookname[40]; //书名char author[20]; //作者char publisher[30]; //出版社char bookclass[20]; //图书分类short total_num, stock_num; //总量,库存量float price; //单价SDATE publish_time; //出版时间}SBOOK;系统定义了两个全局变量数组,分别存放图书信息和学生信息,因数组大小是固定的,为使用方便在系统中定义两个符号常量,具体定义如下:#define BOOKNUM 1000 // BOOKNUM为系统允许的最大图书数量#define STUDNUM 100 // STUDNUM为系统允许的最多学生人数SSTUD student[STUDNUM]={0}; //学生数组,初始化为0SBOOK book[BOOKNUM]={0}; //图书数组,初始化为03. 功能模块设计(1) main函数的设计:由于图书信息和学生信息都保存在文件中,系统运行的第一个工作是从文件中将图书信息和学生信息读入到内存数组book和数组student中,在读入信息的过程中同时统计出目前图书的数量和学生的人数,并将数据分别存放在整型变量bn和sn中,bn为图书数量,sn为学生人数。
图书管理系统的设计(C语言)
图书管理系统设计图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等功能描述:1 .新进熟土基本信息的输入2 .图书基本信息的查询3 .对撤销图书信息的删除4 .为借书人办理注册5 .办理借书手续6 .办理换书手续要求:以文件方式存储数据,系统以菜单方式工作。
这是本人大一第二学期初 C 语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ 网络硬盘中找到了当初的teta 版,发布于此,以作记念。
C 源代码如下:#include〈stdio 。
h〉#include<stdlib。
h〉#include〈string 。
h>struct book {char book_name [30];int bianhao;double price;char author[20];char state [20] ;char name[20];char sex [10];int xuehao;struct book *book_next;};struct club {char name [20];char sex[10];int xuehao;char borrow [30];struct club *club_next;};void Print_Book(struct book *head_book);/*浏览所有图书信息*/void Print_Club(struct club *head_club);/*浏览所有会员信息*/struct book *Create_New_Book();/*创建新的图书库, 图书编号输入为0 时结束*/struct book *Search_Book_bianhao(int bianhao,struct book *head_book);struct book *Search_Book_name (char *b_name,struct book *head_book);struct book *Search_Book_price (double price_h,double price_l,struct book *head_book);struct book *Insert_Book (struct book *head_book,struct book *stud_book) ;/*增加图书,逐个添加*/struct book *Delete_Book(struct book *head_book,int bianhao);/*删除图书*/struct club *Create_New_Club() ;struct club *Search_Club_xuehao(int xuehao,struct club *head_club);struct club *Search_Club_name (char *c_name,struct club *head_club);struct club *Insert_Club (struct club *head_club,struct club *stud_club);struct club *Delete_Club (struct club *head_club,int xuehao);struct book *Lent_Book (int bianhao ,int xuehao,struct book *head_book,struct club *head_club);struct book *back (int bianhao,int xuehao,struct book *head_book,struct club *head_club); int main(){struct book *head_book,*p_book;char book_name [30],name [20],author [20],sex [10];int bianhao;double price,price_h,price_l;int size_book=sizeof(struct book);int m=1,n=1,f;char *b_name,*c_name;struct club *head_club,*p_club;int xuehao;int size_club=sizeof (struct club) ;int choice;printf ("\n 欢迎您第一次进入图书管理系统!\n\n");printf("---——>[向导]————-〉[新建图书库] \n\n”) ;printf ("注意:当输入图书编号为0 时,进入下一步.\n\n");head_book=Create_New_Book();system(”cls”) ;printf("\n 欢迎您第一次进入图书管理系统!\n\n") ;printf("----—〉[向导]——---〉[新建会员库]\n\n”);printf(”注意:当输入会员学号为0 时,进入主菜单.\n\n”);head_club=Create_New_Club () ;system (”cls”);do {printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”);printf("\n”);printf ("\t\t\t[1] :借书办理\t");printf(" [6]:还书办理\n”);printf (”\n");printf(”\t\t\t[2]:查询图书\t");printf(" [7]:查询会员\n”);printf (” \t\t\t[3]:添加图书\t");printf (" [8]:添加会员\n”);printf ("\t\t\t[4]:删除图书\t");printf (” [9] :删除会员\n") ;printf (” \t\t\t[5]:遍历图书\t");printf (” [10]:遍历会员\n\n”) ;printf ("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n”);printf("\t\t\t0:退出\n\n”) ;printf(”请选择〈0~10〉:”);scanf(”%d",&choice);switch(choice) {case 1:printf ("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");printf (”输入所借图书编号:\n");scanf (”%d",&bianhao);printf ("输入借书人的学号:\n”);scanf ("%d",&xuehao);head_book=Lent_Book(bianhao,xuehao,head_book,head_club);system (”cls");printf (” \n 借阅成功!\n\n");printf (”相关信息如下:\n\n");head_book=Search_Book_bianhao (bianhao,head_book);break;case 2:system ("cls”) ;printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”); printf ("1。
c语言课程设计报告图书管理系统
C语言课程设计报告: 图书管理系统1. 引言本报告旨在介绍一个基于C语言的图书管理系统的设计与实现。
图书管理系统是一个用于管理图书馆图书的软件,它能够方便地进行图书的借阅、归还、查询等操作,提高图书馆的管理效率。
2. 系统需求分析在设计图书管理系统之前,我们首先需要明确系统的需求。
根据需求分析,该系统需要具备以下功能:•图书的录入与管理:管理员可以添加、修改和删除图书信息,包括书名、作者、出版社、ISBN等。
•读者的管理:管理员可以添加、修改和删除读者信息,包括姓名、学号、联系方式等。
•图书借阅与归还:读者可以借阅图书,并在归还时完成相应的操作。
•图书查询:管理员和读者都可以通过关键字查询图书信息。
•预约图书:读者可以预约图书,待图书可用时通知读者。
•罚款管理:系统可以自动计算读者逾期归还图书的罚款金额,并进行相应的处理。
3. 系统设计与实现3.1 数据结构设计为了实现图书管理系统的各项功能,我们需要设计合适的数据结构来存储图书信息、读者信息等。
以下是我们设计的数据结构:•图书结构体:包括书名、作者、出版社、ISBN等信息;•读者结构体:包括姓名、学号、联系方式等信息;•借阅记录结构体:包括图书信息、读者信息、借阅日期、归还日期等信息;3.2 系统模块设计根据系统需求,我们可以将图书管理系统划分为以下几个模块:•图书管理模块:包括图书的添加、修改和删除功能;•读者管理模块:包括读者的添加、修改和删除功能;•图书借阅模块:包括图书的借阅和归还功能;•图书查询模块:包括关键字查询功能;•预约图书模块:包括图书的预约功能;•罚款管理模块:包括读者逾期归还图书的罚款管理功能;3.3 系统实现根据系统设计,我们使用C语言编写相应的代码来实现整个图书管理系统。
我们使用结构体来存储图书、读者和借阅记录的信息,并使用文件来存储这些数据。
我们可以通过菜单方式来实现用户和管理员的交互,用户可以根据需求选择相应的功能。
c语言图书管理系统课程设计报告
C语言图书管理系统课程设计报告一、项目介绍本项目是一个基于C语言的图书管理系统,旨在提供一个管理图书信息的平台,包括图书的增删查改、借还管理等功能。
二、功能需求本项目的主要功能需求如下:1.用户登录/注册:用户可以输入用户名和密码登录系统,也可以进行注册。
2.图书增删查改:管理员可以录入图书信息,包括书名、作者、出版社、ISBN、分类、价格、剩余数量等。
管理员可以根据图书名称、作者等信息查询图书信息,也可以对图书进行修改或删除。
3.借还管理:用户可以进行借书、还书,系统将会记录借书人信息、图书信息以及借书时间、归还时间等信息。
4.归还提醒:系统将会在借书过期且未归还的情况下自动发送邮件或短信提醒用户归还图书。
三、开发环境及相关技术本项目的开发环境为Windows10,使用的开发工具是Visual Studio Code。
在开发该项目时,我们主要使用了C语言和相关库函数。
四、开发流程本项目的开发流程如下:1.需求分析:根据用户需求,进行需求分析,确定系统需求。
2.概要设计:初步设计出系统的结构框架、数据模型等。
3.详细设计:根据概要设计,进一步详细设计出系统的各个功能模块的具体实现方法。
4.编码实现:根据详细设计,使用C语言和相关库函数编写代码实现各个功能模块。
5.测试调试:在编写完代码后,进行测试调试,找出问题并进行修复和优化。
6.部署实施:完成测试调试后,进行项目上线和部署。
五、实现效果展示以下是系统的主界面和功能界面展示:1.登录/注册界面登录/注册界面登录/注册界面2.主界面主界面主界面3.图书管理界面图书管理界面图书管理界面4.借阅管理界面借阅管理界面借阅管理界面六、总结与展望本项目基于C语言,使用了相关库函数开发了一个图书管理系统。
通过该项目的开发,我们深刻理解了系统开发的整个流程。
同时,我们也了解到了C语言在系统开发上的应用及其局限性。
未来,我们还可以继续完善该系统,增加其他功能模块,如图书推荐、借阅排行等,从而进一步完善该系统,提高用户体验。
c语言图书管理系统实验报告
c语言图书管理系统实验报告C语言图书管理系统实验报告引言:图书管理系统是现代图书馆必备的管理工具,它通过计算机技术的应用,实现了图书的借阅、归还、查询等功能,提高了图书馆的管理效率。
本实验旨在通过使用C语言编写一个简单的图书管理系统,掌握C语言的基本语法和数据结构的应用。
一、系统需求分析在开始编写图书管理系统之前,我们首先需要明确系统的需求。
根据实际情况,我们确定了以下几个主要功能模块:1. 图书信息管理:包括图书的录入、修改、删除等操作。
2. 学生信息管理:包括学生的注册、借书、还书等操作。
3. 借阅记录管理:记录学生借阅图书的时间、归还时间等信息。
4. 查询功能:可以根据图书名称、作者、学生姓名等信息进行查询。
二、系统设计与实现1. 数据结构设计:为了实现图书管理系统的各项功能,我们需要定义一些数据结构,如图书信息结构体、学生信息结构体、借阅记录结构体等。
通过定义这些结构体,我们可以方便地对图书信息、学生信息进行管理和操作。
2. 主菜单设计:系统启动后,会显示一个主菜单,用户可以通过输入相应的数字选择不同的功能模块。
我们使用switch语句来实现主菜单的功能选择,确保用户可以根据自己的需求进行操作。
3. 功能实现:根据需求分析中确定的功能模块,我们逐一实现了相应的功能。
例如,对于图书信息管理模块,我们实现了图书的录入、修改、删除等功能。
对于学生信息管理模块,我们实现了学生的注册、借书、还书等功能。
通过合理的函数设计和调用,我们保证了系统的正常运行。
三、系统测试与优化在完成系统的设计与实现后,我们进行了一系列的测试。
通过输入不同的数据,测试系统的各项功能是否正常运行。
我们发现了一些问题,如输入错误时系统的错误提示不够友好、系统的响应速度较慢等。
为了解决这些问题,我们进行了相应的优化。
通过增加错误提示信息、优化算法等方式,提高了系统的用户体验。
四、总结与展望通过本次实验,我们掌握了C语言的基本语法和数据结构的应用。
基于C语言的图书管理系统
图书信息管理系统程序设计报告
一、程序名称:图书信息管理系统
二、设计内容:基于C语言程序设计,使用Microsoft Visual C++软件编
程实现对图书信息的管理,用C语言的结构体、各种语句来实现对图书信息的输入输出、查询、修改、删除等多种功能。
三、设计目的:能够具体而又系统的对图书信息进行管理,方便同
学对图书信息查询和借阅的使用及图书管理人员的管理。
四、设计流程:
五、设计要求:1、系统主要以菜单方式工作;
2、进入系统时要输入用户名和密码;
3、可实现功能:图书信息输入、图书信息浏览、图书信息查询、图书借阅次数排序、图书信息删除和修改功能。
六、心得体会:。
基于C语言数据结构图书管理系统
计算机科学与技术专业课程设计任务书1 需求分析1本演示程序中,用户从键盘输入图书信息,图书编号,名称,类别,作者,出版社,价格,购买日期。
2演示程序以用户和计算机的对话方式执行,即在运行窗口出现提示信息,有用户从键盘录入,显示结果会在显示之后。
3程序执行的命令包括:查询图书信息,删除图书信息,对所有图书进行排序,统计各种类的图书数目。
显示所有图书信息4 测试数据:2001 离散数学 X 左孝凌上海科学出版社 18.00 2009/6/82002 数据结构 B 严蔚敏清华大学出版社 30.00 2010/4/1 2 程序总体设计(1)数据结构依据输入的数据信息和数据格式,连表结点用结构体实现。
采用链表方式存储,typedef:typedef struct //定义表示日期数据的结构体数据类型{int month;int day;int year;} DATE;typedef struct Booktype //定义表示图书信息的结构体数据类型{char id[10]; /* 图书编号*/char name[40]; /* 图书名称*/char type; /* 图书类型*/char writer[10]; /* 图书作者*/char publisher[20]; /* 图书出版社*/float price; /* 图书价格*/DA TE buydate; /* 图书购买日期*/} Btype;typedef struct Booklist /* 定义表示所有图书信息的链表数据类型*/{Btype *bk;struct Booklist *next;} Blist;(2)模块划分程序函数清单:Void maininterface(); /* 主界面函数*/ void Bookinput(); /* 输入图书信息函数*/ void Bookdisplay(); /* 显示所有图书信息函数*/ void Booksort(); /* 对图书分类排序函数*/ void Booksearch(); /* 查找图书详细信息函数*/ void Bookdelete(); /* 删除图书信息函数*/ void Bookstat(); /* 统计全部图书数目*/(3)程序总体框架菜单代码3 功能块函数与调试录入图书信息函数1 函数名称:voidBookinput();函数功能:从键盘祸从文件读入图书信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与技术专业课程设计任务书1 需求分析1本演示程序中,用户从键盘输入图书信息,图书编号,名称,类别,作者,出版社,价格,购买日期。
2演示程序以用户和计算机的对话方式执行,即在运行窗口出现提示信息,有用户从键盘录入,显示结果会在显示之后。
3程序执行的命令包括:查询图书信息,删除图书信息,对所有图书进行排序,统计各种类的图书数目。
显示所有图书信息4 测试数据:2001 离散数学 X 左孝凌上海科学出版社 18.00 2009/6/82002 数据结构 B 严蔚敏清华大学出版社 30.00 2010/4/1 2 程序总体设计(1)数据结构依据输入的数据信息和数据格式,连表结点用结构体实现。
采用链表方式存储,typedef:typedef struct //定义表示日期数据的结构体数据类型{int month;int day;int year;} DATE;typedef struct Booktype //定义表示图书信息的结构体数据类型{char id[10]; /* 图书编号*/char name[40]; /* 图书名称*/char type; /* 图书类型*/char writer[10]; /* 图书作者*/char publisher[20]; /* 图书出版社*/float price; /* 图书价格*/DA TE buydate; /* 图书购买日期*/} Btype;typedef struct Booklist /* 定义表示所有图书信息的链表数据类型*/{Btype *bk;struct Booklist *next;} Blist;(2)模块划分程序函数清单:Void maininterface(); /* 主界面函数*/ void Bookinput(); /* 输入图书信息函数*/ void Bookdisplay(); /* 显示所有图书信息函数*/ void Booksort(); /* 对图书分类排序函数*/ void Booksearch(); /* 查找图书详细信息函数*/ void Bookdelete(); /* 删除图书信息函数*/ void Bookstat(); /* 统计全部图书数目*/(3)程序总体框架菜单代码3 功能块函数与调试录入图书信息函数1 函数名称:voidBookinput();函数功能:从键盘祸从文件读入图书信息。
2 程序清单 { int n=0; Btype bk;FILE *fp;Loop:printf("\n\n\n\t\t\t 图书信息录入\n"); printf("\n\t\t1: 图书编号:"); scanf("%s",bk.id);printf("\n\t\t2: 图书名称:"); scanf("%s",);printf("\n\t\t3: 图书类别(X:学习 B:编程 Y:娱乐 G:工具 Q:其它):"); scanf("%s",&bk.type); printf("\n\t\t4: 图书作者:"); scanf("%s",bk.writer);printf("\n\t\t5: 图书出版社:"); scanf("%s",bk.publisher); printf("\n\t\t6: 图书价格(元):"); scanf("%f",&bk.price);printf("\n\t\t7: 购买日期(mm/dd/yyyy):");scanf("%d/%d/%d",&,&,&;printf("\n\t\t1: 保存并继续输入\n");printf("\n\t\t2: 保存并返回\n");printf("\n\t\t3: 取消并重新输入\n");printf("\n\t\t4: 返回主菜单\n");printf("\t\t请输入选项:");scanf("%d",&n);if(n==1){if((fp=fopen("Book.lib","ab"))==NULL)fp=fopen("Book.lib","wb+");fwrite(&bk,sizeof(Btype),1,fp);goto Loop;}if(n==2){ if((fp=fopen("Book.lib","ab"))==NULL)fp=fopen("Book.lib","wb+");fwrite(&bk,sizeof(Btype),1,fp);fclose(fp);}if(n==3) goto Loop;}3 运行结果查询图书信息函数1.函数原型,功能和形参说明函数原型:void Booksearch();函数功能:查询图书信息;2.程序清单:{Btype bk,ts;FILE *fp;int i;int j=0;if((fp=fopen("Book.lib","rb+"))==NULL){printf("找不到文件Book.lib !\n");exit(0);}rewind(fp);printf("\n请选择按哪个参数查询(1:编号2:名称3:作者4:出版社5:价格):");scanf("%d",&i);if(i==1){printf("请输入您要查询的图书的编号\n");scanf("%s",ts.id);while(!feof(fp)){if (fread(&bk,sizeof(Btype),1,fp))if(strcmp(ts.id,bk.id)==0){printf("\n%4s %-20s%4s %-8s %-20s%-8s %8s","编号","图书名称","类别","作者","出版社","价格","购买日期");printf("\n%4s %-18s %-3c %-8s %-18s%8.2f %2d/%d/%d",bk.id,,bk.type,bk.writer,bk .publisher,bk.price,,,;j++;}}fclose(fp);if(j==0) printf("\n找不到您要查询的图书信息!\n");}if(i==2){printf("请输入您要查询的图书的名称\n");scanf("%s",);while(!feof(fp)){if (fread(&bk,sizeof(Btype),1,fp))if(strcmp(,)==0){printf("\n%4s %-20s%4s %-8s %-20s%-8s %8s","编号","图书名称","类别","作者","出版社","价格","购买日期");printf("\n%4s %-18s %-3c %-8s %-18s%8.2f %2d/%d/%d",bk.id,,bk.type,bk.writer,bk .publisher,bk.price,,,;j++;}}fclose(fp);if(j==0) printf("\n找不到您要查询的图书信息!\n");}if(i==3){printf("请输入您要查询的图书的作者\n");scanf("%s",ts.writer);while(!feof(fp)){if (fread(&bk,sizeof(Btype),1,fp))if(strcmp(ts.writer,bk.writer)==0){printf("\n%4s %-20s%4s %-8s %-20s%-8s %8s","编号","图书名称","类别","作者","出版社","价格","购买日期");printf("\n%4s %-18s %-3c %-8s %-18s%8.2f %2d/%d/%d",bk.id,,bk.type,bk.writer,bk .publisher,bk.price,,,;j++;}}fclose(fp);if(j==0) printf("\n找不到您要查询的图书信息!\n");}if(i==4){printf("请输入您要查询的图书的出版社\n");scanf("%s",ts.publisher);while(!feof(fp)){if (fread(&bk,sizeof(Btype),1,fp))if(strcmp(ts.publisher,bk.publisher)==0){printf("\n%4s %-20s%4s %-8s %-20s%-8s %8s","编号","图书名称","类别","作者","出版社","价格","购买日期");printf("\n%4s %-18s %-3c %-8s %-18s%8.2f %2d/%d/%d",bk.id,,bk.type,bk.writer,bk .publisher,bk.price,,,;j++;}}fclose(fp);if(j==0) printf("\n找不到您要查询的图书信息!\n");}if(i==5){printf("请输入您要查询的图书的价格\n");scanf("%f",&ts.price);while(!feof(fp)){if (fread(&bk,sizeof(Btype),1,fp))if(ts.price==bk.price){printf("\n%4s %-20s%4s %-8s %-20s%-8s %8s","编号","图书名称","类别","作者","出版社","价格","购买日期");printf("\n%4s %-18s %-3c %-8s %-18s%8.2f %2d/%d/%d",bk.id,,bk.type,bk.writer,bk .publisher,bk.price,,,;j++;}}fclose(fp);if(j==0) printf("\n找不到您要查询的图书信息!\n");}}3 运行结果:删除图书信息函数1.函数原型,功能和形参说明函数原型:void Bookdelete();函数功能:查询图书信息;2.程序清单:void Bookdelete(){Blist *head, *p, *q;Blist *s,*h;FILE *fp;int n=0;int i=0;if((fp=fopen("Book.lib","rb+"))==NULL){printf("找不到文件Book.lib !\n");exit(0);}head= (Blist *)malloc(sizeof(Blist));head->bk = (Btype *)malloc(sizeof(Btype)); head->bk = NULL;q=p = (Blist *)malloc(sizeof(Blist));q->bk=p->bk = (Btype *)malloc(sizeof(Btype)); rewind(fp);printf("\n");while(!feof(fp)){p= (Blist *)malloc(sizeof(Blist));p->bk = (Btype *)malloc(sizeof(Btype));if (fread(p->bk,sizeof(Btype),1,fp)){n++;if(n==1) head->next=p;else q->next=p;q=p;}}q->next=NULL;fclose(fp);s=head;h = (Blist *)malloc(sizeof(Blist));h->bk = (Btype *)malloc(sizeof(Btype));printf("请输入您要删除的图书的编号!\n");scanf("%s",h->bk->id);for(s=head;s->next;s=s->next){if(strcmp(h->bk->id,s->next->bk->id)==NULL){if(!s->next->next) { s->next=NULL; printf("已删除编号为:%d的图书!\n",s->next->bk->id);i++;break;}else { s->next=s->next->next; printf("已删除编号为:%d的图书!\n",s->next->bk->id);i++;break; }}}if(i!=0){for(s=head->next;s;s=s->next){printf("\n%4s %-18s %-3c %-8s %-18s%8.2f %2d/%d/%d",s->bk->id,s->bk->name,s->bk->ty pe,s->bk->writer,s->bk->publisher,s->bk->price,s->bk->buydate.month,s->bk->buydate.day,s->bk ->buydate.year);}if((fp=fopen("Book.lib","w+"))==NULL)fp=fopen("Book.lib","wb+");/* 将输入的图书信息写入磁盘文件"Book.lib" */for(s=head->next;s;s=s->next)fwrite(s->bk,sizeof(Btype),1,fp);fclose(fp);}if(i==0) printf("找不到该编号的图书信息!\n");}3 运行结果:图书排序函数1.函数原型,功能和形参说明函数原型:void Bookdelete();函数功能:查询图书信息;2.程序清单:int sort(Btype *str1, Btype *str2, int type);void Booksort(){Blist *head, *p, *q;FILE *fp;int type;printf("\n请选择对哪一个参数排序(1:编号2:名称3:作者4:出版社5:价格6:类别):"); printf("\n");scanf("%d",&type);/* 打开文件*/if((fp=fopen("Book.lib","rb+"))==NULL){printf("找不到文件Book.lib !\n");exit(0);}if (!(head = (Blist *)malloc(sizeof(Blist)))){printf("内存不足!\n");exit(0);}head->bk= NULL;head->next = NULL;rewind(fp);printf("\n%4s %-20s%4s %-8s %-20s%-8s %8s","编号","图书名称","类别","作者","出版社","价格","购买日期");while(!feof(fp)){if (!(p = (Blist *)malloc(sizeof(Blist))) || !(p->bk = (Btype *)malloc(sizeof(Btype)))){printf("内存不足!\n");exit(0);}if (fread(p->bk,sizeof(Btype),1,fp)){for (q = head; q->next && sort(q->next->bk, p->bk, type) < 0; q = q->next);p->next = q->next;q->next = p;}}fclose(fp);for (q = head->next; q; q=q->next)printf("\n%4s %-18s %-3c %-8s %-18s%8.2f %2d/%d/%d",q->bk->id,q->bk->name,q->b k->type,q->bk->writer,q->bk->publisher,q->bk->price,q->bk->buydate.month,q->bk->buydate.da y,q->bk->buydate.year);}int strsort(char *str1, char *str2, int len){int i = 0;for (; i < len && str1[i] != '\0' && str2[i] != '\0' && str1[i] == str2[i]; i ++);if (i == len || str1[i] == str2[i])return 0;else if (str1[i] > str2[i])return 1;elsereturn -1;}int sort(Btype *bk1, Btype *bk2, int type){switch (type){case 1:return strsort(bk1->id, bk2->id, 10);case 2:return strsort(bk1->name, bk2->name, 40);case 3:return strsort(bk1->writer, bk2->writer, 10);case 4:return strsort(bk1->publisher, bk2->publisher, 20);case 5:if (bk1->price > bk2->price)return 1;else if (bk1->price < bk2->price)return -1;elsereturn 0;default:if (bk1->type > bk2->type)return 1;else if (bk1->type < bk2->type)return -1;elsereturn 0;}}3 运行结果:图书总数统计函数1.函数原型,功能和形参说明函数原型:void Bookstat();函数功能:图书总数统计函数;2.程序清单:void Bookstat() //图书总数统计函数{Blist *head, *p, *q;FILE *fp;int n;/* 打开文件*/if((fp=fopen("Book.lib","rb+"))==NULL){printf("找不到文件Book.lib !\n");exit(0);}if (!(head = (Blist *)malloc(sizeof(Blist)))){printf("内存不足!\n");exit(0);}head->bk = NULL;head->next = NULL;rewind(fp);printf("\n");while(!feof(fp)){if (!(p = (Blist *)malloc(sizeof(Blist))) || !(p->bk = (Btype *)malloc(sizeof(Btype)))) {printf("内存不足!\n");exit(0);}if (fread(p->bk,sizeof(Btype),1,fp)){for (q = head; q->next && sort(q->next->bk, p->bk, 6) < 0; q = q->next);p->next = q->next;q->next = p;}}fclose(fp);for (q = head->next; q; q=q->next){for (n = 1; q->next && q->bk->type == q->next->bk->type; n ++, q = q->next);printf("\t\t%c 类型的图书共有%d 本\n", q->bk->type, n);}}3 运行结果:全部图书信息显示函数1.函数原型,功能和形参说明函数原型:void Bookdisplay();函数功能:图书总数统计函数;2.程序清单:void Bookdisplay() /{Btype bk;FILE *fp;if((fp=fopen("Book.lib","rb+"))==NULL){ printf("找不到文件Book.lib !\n");exit(0);}rewind(fp);printf("\n%4s %-20s%4s %-8s %-20s%-8s %8s","编号","图书名称","类别","作者","出版社","价格","购买日期");while(!feof(fp)){ if (fread(&bk,sizeof(Btype),1,fp))printf("\n%4s %-18s %-3c %-8s %-18s%8.2f %2d/%d/%d",bk.id,,bk.type,bk.writ er,bk.publisher,bk.price,,,;}fclose(fp);}3 运行结果:主函数1.函数原型,功能和形参说明函数原型:void main();函数功能:用户操作界面;2.程序清单:void main(){ int n=0;do{ maininterface();printf("请选择功能(0-5)\n");scanf("%d",&n);switch (n){ case 1: { Bookinput(); break; }case 2: { Booksearch(); break; }case 3: { Bookdelete(); break; }case 4: { Booksort(); break; }case 5: { Bookdisplay(); break; }case 6: { Bookstat(); break; }case 0: { printf("谢谢使用该系统再见!\n"); break; } }}while(n!=0);}void maininterface(){ printf("\n\n\n\t\t\t个人图书管理系统\n");printf("\n\t\t1: 输入图书信息\n");printf("\n\t\t2: 查询图书信息\n");printf("\n\t\t3: 删除图书信息\n");printf("\n\t\t4: 图书信息排序\n");printf("\n\t\t5: 显示全部图书信息\n");printf("\n\t\t6: 统计全部图书数目\n");printf("\n\t\t0: 退出系统\n");}运行结果:4 参考文献C程序设计(第三版)谭浩强数据结构(严蔚敏)高质量的编程指南数据结构与算法(科学出版社)。