0
点赞
收藏
分享

微信扫一扫

图书馆系统(期末大作业)

唯米天空 2022-01-10 阅读 113
c语言

本系统实现了书籍的入库出库借书以及还书的系统

//要求:使用结构体完成图书馆出库、入库、借书、还书功能
#include <stdio.h>
#include <string.h>

int n = 0;//系统总数
struct book {
	char a[20];//书籍名称
	int b;//书籍编号
	char c[20];//作者
	int d;//数量
} arr[100];

void showfuction(); //功能栏
void bookfile();//查看菜单
void menu(int);//菜单链接
void ruku();//入库
void chuku();//出库
void borrowbook();//借书
void returnbook();//还书

int main() {
	showfuction();
	int x;
	scanf("%d", &x);
	while (x >= 1 && x <= 5) {
		menu(x);
		scanf("%d", &x);
	}
	printf("欢迎下次使用!");
	return 0;
}

void showfuction() {
	printf("################菜单栏################\n");
	printf("###                                ###\n");
	printf("###    请输入想要实现的功能选项    ###\n");
	printf("###    1、书籍入库                 ###\n");
	printf("###    2、书籍出库                 ###\n");
	printf("###    3、借书                     ###\n");
	printf("###    4、还书                     ###\n");
	printf("###    5、查看书单                 ###\n");
	printf("###    6、退出系统                 ###\n");
	printf("###                                ###\n");
	printf("################菜单栏################\n");
}

void bookfile() {
	if (n == 0) {
		printf("暂无书籍\n");
	} else {
		for (int i = 0; i < n; i++) {
			printf("书籍名称:%s    编号:%d    作者:%s    数量:%d\n", arr[i].a, arr[i].b, arr[i].c, arr[i].d);
		}
	}
}

void ruku() {
	printf("请输入入库书籍的种类:\n");
	int m;
	scanf("%d", &m);
	for (int i = n, j = 1; i < m + n; i++, j++) {
		printf("现在输入第%d种书:\n", j);
		scanf("%s%d%s%d", arr[i].a, &arr[i].b, arr[i].c, &arr[i].d);
	}
	n = n + m;
	printf("入库成功!\n");
}

void chuku() {
	printf("请输入出库书籍的编号:\n");
	int s;
	scanf("%d", &s);
	if (n == 0) {
		printf("暂无书籍\n");
	} else {
		for (int i = 0; i < n; i++) {
			if (arr[i].b == s) {
				for (int j = i; j < 100; j++) {
					struct book temp;
					temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
				n--;
			}
		}
	}
	printf("出库成功!\n");
}

void borrowbook() {
	printf("请输入您要借书的书籍编号:\n");
	int y;
	scanf("%d", &y);
	for (int i = 0; i < n; i++) {
		if (arr[i].b == y) {
			arr[i].d--;
			printf("借书成功!\n");
		}
	}
}

void returnbook() {
	printf("请输入您要还书的书籍编号:\n");
	int y;
	scanf("%d", &y);
	for (int i = 0; i < n; i++) {
		if (arr[i].b == y) {
			arr[i].d++;
			printf("还书成功!\n");
		}
	}
}

void menu(int t) {
	switch (t) {
		case 1:
			ruku();
			showfuction();
			break;
		case 2:
			chuku();
			showfuction();
			break;
		case 3:
			borrowbook();
			showfuction();
			break;
		case 4:
			returnbook();
			showfuction();
			break;
		case 5:
			bookfile();
			showfuction();
			break;
		default:
			break;
	}
}

以四大名著的入库出库等一系列操作为例:

1.入库函数

查看书单:

2.出库函数

我把西游记出库:

查看书单:

西游记出库成功。

3.借书函数

查看书单:

借了一本三国演义,书本数量由12->11.

4.还书函数:

查看书单:

归还三国演义,书本数量由11->12;

5.退出系统:

欢迎下次使用!

举报

相关推荐

0 条评论