c语言以静态储存的方法实现一个图书管理系统
时间: 2024-09-17 13:02:43 浏览: 41
在C语言中,为了实现一个简单的图书管理系统,我们可以考虑使用数组作为静态存储,每个数组元素代表一本书的信息,如书名、作者、库存等。这里是一个基础的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 10
typedef struct {
char book_name[50];
char author[50];
int stock;
} Book;
// 动态分配内存实现图书管理系统的函数
void manage_books(Book books[]) {
int i;
// 添加书籍
void add_book(Book *books) {
printf("请输入新书信息(书名、作者):");
scanf("%s %s", books[MAX_BOOKS].book_name, books[MAX_BOOKS].author);
books[MAX_BOOKS].stock = 0; // 初始库存设为0
printf("添加成功!\n");
}
// 查看书籍信息
void view_book(Book books[]) {
for (i = 0; i < MAX_BOOKS; i++) {
if (books[i].stock > 0) {
printf("书籍ID %d - 书名:%s, 作者:%s, 库存:%d\n", i+1, books[i].book_name, books[i].author, books[i].stock);
}
}
}
// 主菜单
main() {
Book books[MAX_BOOKS]; // 静态数组初始化
char choice;
while (1) {
printf("\n1. 添加新书\n2. 查看现有书籍\n3. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1: add_book(&books); break;
case 2: view_book(books); break;
case 3: return;
default: printf("无效选择,请重试。\n");
}
}
}
}
```
这个程序创建了一个`Book`结构体,然后定义了管理书籍的基本操作:添加新书和查看现有书籍。因为C语言本身不支持动态内存管理,所以这里的"静态存储"是指数组的大小是固定的。
阅读全文