给我写一个图书馆管理的c语言代码
时间: 2023-08-28 13:15:03 浏览: 61
好的,以下是一个简单的图书馆管理的C语言代码范例。这个程序可以实现添加、删除、查找和显示图书信息的基本功能,同时还包括一些基本的数据验证和错误处理。代码中的注释将解释每一个功能的实现细节。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100 // 最大书籍数量
struct Book {
char title[50]; // 书名
char author[50]; // 作者名
int year; // 出版年份
int id; // 书籍ID
};
int count = 0; // 书籍数量
struct Book books[MAX_BOOKS]; // 存储书籍的数组
// 显示菜单选项
void showMenu() {
printf("\n图书馆管理系统\n");
printf("------------------------\n");
printf("1. 添加书籍\n");
printf("2. 删除书籍\n");
printf("3. 查找书籍\n");
printf("4. 显示所有书籍\n");
printf("5. 退出\n");
printf("------------------------\n");
}
// 添加书籍
void addBook() {
if (count >= MAX_BOOKS) {
printf("图书馆已满,不能再添加新书籍!\n");
return;
}
struct Book book;
printf("请输入书籍标题:");
scanf("%s", book.title);
printf("请输入书籍作者:");
scanf("%s", book.author);
printf("请输入书籍出版年份:");
scanf("%d", &book.year);
printf("请输入书籍ID:");
scanf("%d", &book.id);
// 验证ID是否已存在
for (int i = 0; i < count; i++) {
if (books[i].id == book.id) {
printf("该ID已存在,请重新输入!\n");
return;
}
}
books[count] = book;
count++;
printf("书籍添加成功!\n");
}
// 删除书籍
void deleteBook() {
if (count <= 0) {
printf("图书馆中没有书籍,无法删除!\n");
return;
}
int id;
printf("请输入要删除的书籍ID:");
scanf("%d", &id);
// 查找要删除的书籍
int index = -1;
for (int i = 0; i < count; i++) {
if (books[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到该书籍!\n");
return;
}
// 删除书籍
for (int i = index; i < count - 1; i++) {
books[i] = books[i + 1];
}
count--;
printf("书籍删除成功!\n");
}
// 查找书籍
void searchBook() {
if (count <= 0) {
printf("图书馆中没有书籍,无法查找!\n");
return;
}
int id;
printf("请输入要查找的书籍ID:");
scanf("%d", &id);
// 查找书籍
int index = -1;
for (int i = 0; i < count; i++) {
if (books[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到该书籍!\n");
return;
}
// 显示书籍信息
printf("书籍信息:\n");
printf("书籍标题:%s\n", books[index].title);
printf("书籍作者:%s\n", books[index].author);
printf("书籍出版年份:%d\n", books[index].year);
printf("书籍ID:%d\n", books[index].id);
}
// 显示所有书籍
void showBooks() {
if (count <= 0) {
printf("图书馆中没有书籍!\n");
return;
}
printf("所有书籍信息:\n");
for (int i = 0; i < count; i++) {
printf("书籍标题:%s\n", books[i].title);
printf("书籍作者:%s\n", books[i].author);
printf("书籍出版年份:%d\n", books[i].year);
printf("书籍ID:%d\n", books[i].id);
printf("------------------------\n");
}
}
int main() {
int choice;
do {
showMenu();
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
addBook();
break;
case 2:
deleteBook();
break;
case 3:
searchBook();
break;
case 4:
showBooks();
break;
case 5:
printf("程序退出!\n");
break;
default:
printf("无效选项,请重新选择!\n");
break;
}
} while (choice != 5);
return 0;
}
```
这个程序包括了基本的函数和循环结构,使用了结构体和数组来存储和操作图书信息,实现了基本的数据验证和错误处理。当然,这只是一个简单的示例,如果您需要更加复杂和完整的图书馆管理系统,您需要添加更多的功能和代码。