C语言图书管理系统

一、 系统概述

图书管理系统是一个用C语言编写的软件系统,旨在帮助图书馆或图书机构管理其图书馆藏书和读者信息。该系统提供了一套完整的功能,包括图书录入、借阅管理、归还管理、读者管理、图书查询、统计报表等。

二、 系统功能

2.1 图书录入

管理员可以通过系统界面录入新书的信息,包括书名、作者、出版社、ISBN号、分类等。系统将自动生成图书的唯一编号。

可以输入图书的入库数量和单价等相关信息。

2.2 借阅管理

用户可以通过系统界面借阅图书。用户需要提供借书人信息和借书日期,系统将自动生成借书记录,并更新库存信息。

系统会检查图书是否可借,如库存是否足够。

系统会记录借阅过程中的相关信息,如借阅人、借阅时间、借阅期限等。

2.3 归还管理

用户可以通过系统界面归还已借阅的图书。用户需要提供图书编号和归还日期。

系统会更新图书的库存信息,并计算逾期天数和罚款金额(如有)。

系统会记录归还过程中的相关信息,如归还日期、逾期天数、罚款金额等。

2.4 读者管理

管理员可以通过系统界面管理读者信息,包括添加新读者、修改读者信息、删除读者等。

可以记录读者的基本信息,如姓名、性别、年龄、联系方式等。

2.5 图书查询

用户可以通过系统界面进行图书查询,根据书名、作者、分类等关键字进行搜索。

系统会返回匹配的图书列表,并显示图书的详细信息。

2.6 统计报表

系统提供统计报表功能,生成各类报表,如图书借阅统计、图书归还统计、读者借阅情况等。

报表可以按照日期、图书分类等条件进行筛选和排序。

运行环境

  • 运行环境:Visual C++ 6.0
  • 编码格式为GBK,如果打开中文为乱码请转换成UTF-8

代码片段演示:

C++ 复制代码
//图书管理系统结构体
//时间
typedef struct timeInfo{
	int year;
	int mouth;
	int day;
	int hour;
	int min;
	int sec;
}TIME;

//读者信息
typedef struct readerInfo{
	char name[30];//姓名
	char no[20];//学号
	char password[16];//密码
	int maxnum;//最大借阅额度
	struct readerInfo * next;
 }READ;

//图书信息
typedef struct book{
	char no[20];//图书编号
	char bookName[50];//图书名
	char author[20];//作者名
	char type[10];//图书类型
	char unit[30];//出版单位	
	float price;//图书单价
	int num;//库存数量
	struct book * next;
}BOOK;

//图书借阅信息
typedef struct bookLend{
	char no[20];//借书学生学号
	char bookno[20];//图书编号
	TIME * remand;//借/还日期
	char condition[10];//借阅状态
	struct bookLend * next;
}LEND;

//管理员登录信息结构体
typedef struct loginInfo{
	int times;//次数
	char username[20];//用户名
	char password[16];//密码
	TIME * logintime;//登录时间
	struct loginInfo * next;
}LOGIN;

//图书管理界面
void book_windows()
{
	BOOK * head = getNode();
	int n;
	book_read(head);
	system("cls");
	printf("\n");
	printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
	printf("***********************[图书信息管理]***********************");
	printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n\n");
	printf("                                                            \n");
	printf("                      [1.图书信息添加]                      \n");
	printf("                                                            \n");
	printf("                      [2.图书信息查询]                      \n");
	printf("                                                            \n");
	printf("                      [3.图书信息修改]                      \n");
	printf("                                                            \n");
	printf("                      [4.图书信息删除]                      \n");
	printf("                                                            \n");
	printf("                      [5.返回上级菜单]                      \n");
	printf("                                                            \n");
	printf("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n");
	printf("\n\t[请选择]\t·");
	scanf("%d", &n);
	switch (n)
	{
	case 1: bookLoad_system(head); break;
	case 2: book_inquire(head); break;
	case 3: book_change(head); break;
	case 4: book_delete(head); break;
	case 5:administrator_windows(); break;
	default:printf("\t\t输入有误!\n");
		Sleep(1000);
		book_windows();
		break;
	}
}

程序部分示例:








三、联系与交流

复制代码
q:969060742 文档、代码、程序资源
相关推荐
程序员黑豆6 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
To_OC7 小时前
踩了个 TS 的坑之后,我终于把 type 和 interface 掰明白了
前端·react.js·typescript
GreenTea7 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
风流 少年7 小时前
Spring AI 2.0:Memory
java·后端·spring
码匠许师傅7 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
浮生望7 小时前
前端API工程化:用 Mock 数据与 Axios 配置实现独立于后端的并行开发
前端
万少8 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
小席是个热心肠8 小时前
AI相关的自我学习
java·人工智能·学习
波波0078 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
Brown.alexis9 小时前
es6知识点1-自备使用
前端·ecmascript·es6