【C语言 实现图书管理系统】

项目 :C语言实现图书管理系统
编译环境 :Visual Studio 2019
作者 :wddkxg
时间 : 2019

LibraryManagementSystem.cpp

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#pragma warning(disable:4996)
struct book
{
	int id;
	char name[31];
	char author[27];
	char publish[31];
	int store;
	int total;
	int usr[10];
	int days[10];
}books[100];
main()
{
	void page_title(char* menu_item);
	void return_confirm();
	void book_add();
	int book_show();
	int book_search();
	int book_edit();
	int book_del();
	void book_out();
	void book_in(void);
meum:page_title("操作菜单");
	printf("用数字键选择操作\n\n");
	printf("\t\t1 注册新书 \t\t2 显示图书 \n");
	printf("\t\t3 查询图书信息 \t\t4 修改图书信息\n");
	printf("\t\t5 删除图书\t\t6 借阅图书\n");
	printf("\t\t7 归还图书\t\t8 退出系统\n");
	printf("请按数字键:\n");
	switch (getchar())
	{
	case'1':book_add(); break;
	case'2':book_show(); break;
	case'3':book_search(); break;
	case'4':book_edit(); break;
	case'5':book_del(); break;
	case'6':book_out(); break;
	case'7':book_in(); break;
	case'8':exit(0);
	}
}

void page_title(char* menu_item)
{
	printf("\t\t**********欢迎使用**大学图书管理系统**********\n\n-%s-%s\n\n", menu_item);
}
void return_confirm()
{
	printf("\n按任意键返回……\n");
	getchar();
}
void book_add()
{
	int i;
	system("cls");
	page_title("注册新书");
	for (i = 0; i < 100; i++) if (books[i].id == 0)
		break;
	printf("序号");
	scanf_s("%d", &books[i].id);
	printf("书名");
	scanf_s("%s", &books[i].name);
	printf("作者");
	scanf_s("%s", &books[i].author);
	printf("出版社");
	scanf_s("%s", &books[i].publish);
	printf("数量");
	scanf_s("%d", &books[i].total);
	books[i].store = books[i].total;
	return_confirm();
}
int book_show()
{
	int i, flag = 0;
	system("cls");
	for (i = 0; i < 100; i++)
	{
		if (strlen(books[i].name) != 0)
		{
			printf("序号:%d\t", books[i].id);
			printf("书名:%d\t", books[i].name);
			printf("作者:%d\t", books[i].author);
			printf("出版社;%d\t", books[i].publish);
			printf("存数:%d\t", books[i].store);
			printf("总数:%d\t", books[i].total);
			flag = 1;
		}
	}
	if (flag == 0)
		printf("\n没有找到相关记录.\n");
	return i;
}
int book_search()
{
	int n, i, flag = 0;
	char nam[30];
	system("cls");
	printf("输入书名");
	scanf_s("%s", &nam);
	for (i = 0; i < 100; i++)
	{
		if (strcmp(books[i].name, nam) == 0)
		{
			printf("序号:%d\t", books[i].id);
			printf("书名:%s\t", books[i].name);
			printf("作者:%s\t", books[i].author);
			printf("出版社:%s\t", books[i].publish);
			printf("存数:%d\t", books[i].store);
			printf("总数:%d\n", books[i].total);
			n = i;
			flag = 1;
			break;
		}
	}
	if (flag == 0)
	{
		printf("\n没有找到相关记录.\n");
		return -1;
	}
	return n;
}
int book_edit()
{
	int i, id_change;
	system("cls");
	page_title("修改图书信息");
	printf("输入要修改的图书编号:");
	scanf_s("%d", &id_change);
	for (i = 0; i < 100; i++)
	{
		if (books[i].id == id_change)
		{
			printf("修改书名:");
			scanf_s("%s", books[i].name);
			printf("修改作者:");
			scanf_s("%s", books[i].author);
			printf("修改出版社名:");
			scanf_s("%s", books[i].publish);
			printf("修改总数:");
			scanf_s("%s", books[i].total);
			printf("修改图书信息成功.\n");
			books[i].store = books[i].total;
			return i;
		}
	}
	printf("\n没有找到相关记录.\n");
	return -1;
}
int book_del()
{
	int i, num, j;
	system("cls");
	page_title("删除图书");
	printf("输入要删除的书的编号:");
	scanf_s("%d", &num);
	for (i = 0; i < 100; i++)
	{
		if (books[i].id == num)
			for (j = i; j < 100; j++)
			{
				books[j].id = books[j + 1].id;
				strcpy(books[j].name, books[j + 1].name);
				strcpy(books[j].publish, books[j + 1].publish);
				printf("该书已删除.\n");
				return i;
			}
	}
	printf("没有找到相关记录\n");
	return -1;
}
void book_out()
{
	int n, s, i, d;
	system("cls");
	page_title("借阅图书");
	n = book_search();
	if (n != -1 && books[n].store > 0)
	{
		printf("请输入借书证序号:");
		scanf_s("%d", &s);
		printf("输入可借天数:");
		scanf_s("%d", &d);
		for (i = 0; i < 10; i++)
			if (books[n].usr[i] == 0)
			{
				books[n].usr[i] = 0;
				books[n].usr[i] = 0;
				break;
			}
		books[n].store--;
	}
	else if (n != -1 && books[n].store == 0)
		printf("此书已经全部借出.\n");
	else
		;
	return_confirm();
}
void book_in(void)
{
	int n, s, i;
	page_title("归还图书");
	n = book_search();
	if (n != -1 && books[n].store < books[n].total)
	{
		printf("借阅图书证列表:\n");
		for (i = 0; i < 100; i++) if (books[n].usr[i] != 0)
			printf("[%d]-[%d]天\n", books[n].usr[i], books[n].days[i]);
		printf("输入借书证序号:");
		scanf_s("%d", &s);
		for (i = 0; i < 10; i++)
		{
			if (books[n].usr[i] == s)
			{
				books[n].usr[i] = 0;
				books[n].days[i] = 0;
				break;
			}
		}
		books[n].store++;
	}
	if (n != -1 && books[n].store == books[n].total)
		printf("全部归还.\n");
	else if (n != -1 && books[n].store < books[n].total)
		printf("归还成功.\n");
	else
		;
	return_confirm();
}
  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葛狂的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值