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 文档、代码、程序资源
相关推荐
天天摸鱼的java工程师2 分钟前
八年 Java 开发手敲:SpringBoot+SpringSecurity+JWT 实战,前后分离权限注解落地就能跑
java·后端
冰淇淋@4 分钟前
idea启动项目报错java: OutOfMemoryError: insufficient memory
java·ide·intellij-idea
techzhi6 分钟前
this view is read-only (IntelliJ IDEA)
java·ide·intellij-idea
技术小丁7 分钟前
使用 HTML + JavaScript 实现酒店订房日期选择器(附完整源码)
前端·javascript
编程学委8 分钟前
Idea(2023版)使用Svn
java·svn·intellij-idea
hashiqimiya8 分钟前
harmonyos的鸿蒙的跳转页面的部署
开发语言·前端·javascript
qianbailiulimeng8 分钟前
IDEA + Spring Boot 的三种热加载方案
java·后端
王元_SmallA9 分钟前
网卡驱动架构以及源码分析
java·后端
零基础的修炼17 分钟前
Linux---序列化与反序列化
java·开发语言
向日葵同志4433018 分钟前
使用@univerjs纯前端渲染excel, 显示图片、链接、样式
前端·react.js·excel