c语言数据结构帮我写一段代码关于图书信息管理系包含创建打印增加删除修改查找的功能
时间: 2024-03-26 09:38:05 浏览: 14
好的,以下是一段完整的代码,实现了一个基本的图书信息管理系统,包括创建、打印、增加、删除、修改和查找图书信息的功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100
struct book {
int id;
char title[50];
char author[50];
float price;
};
struct book books[MAX_BOOKS];
int num_books = 0;
void create_book() {
struct book b;
printf("Enter book id: ");
scanf("%d", &b.id);
printf("Enter book title: ");
scanf("%s", b.title);
printf("Enter book author: ");
scanf("%s", b.author);
printf("Enter book price: ");
scanf("%f", &b.price);
books[num_books++] = b;
printf("Book added successfully.\n");
}
void print_books() {
printf("ID\tTitle\t\tAuthor\t\tPrice\n");
for (int i = 0; i < num_books; i++) {
printf("%d\t%s\t\t%s\t\t%.2f\n", books[i].id, books[i].title, books[i].author, books[i].price);
}
}
void add_book() {
if (num_books >= MAX_BOOKS) {
printf("The library is full.\n");
return;
}
struct book b;
printf("Enter book id: ");
scanf("%d", &b.id);
printf("Enter book title: ");
scanf("%s", b.title);
printf("Enter book author: ");
scanf("%s", b.author);
printf("Enter book price: ");
scanf("%f", &b.price);
books[num_books++] = b;
printf("Book added successfully.\n");
}
void find_book() {
int id;
printf("Enter book id: ");
scanf("%d", &id);
for (int i = 0; i < num_books; i++) {
if (books[i].id == id) {
printf("Book found:\n");
printf("Title: %s\n", books[i].title);
printf("Author: %s\n", books[i].author);
printf("Price: %.2f\n", books[i].price);
return;
}
}
printf("Book not found.\n");
}
void update_book() {
int id;
printf("Enter book id: ");
scanf("%d", &id);
for (int i = 0; i < num_books; i++) {
if (books[i].id == id) {
printf("Enter new book title: ");
scanf("%s", books[i].title);
printf("Enter new book author: ");
scanf("%s", books[i].author);
printf("Enter new book price: ");
scanf("%f", &books[i].price);
printf("Book updated successfully.\n");
return;
}
}
printf("Book not found.\n");
}
void delete_book() {
int id;
printf("Enter book id: ");
scanf("%d", &id);
for (int i = 0; i < num_books; i++) {
if (books[i].id == id) {
for (int j = i; j < num_books - 1; j++) {
books[j] = books[j + 1];
}
num_books--;
printf("Book deleted successfully.\n");
return;
}
}
printf("Book not found.\n");
}
void print_menu() {
printf("\n1. Create a book\n");
printf("2. Print all books\n");
printf("3. Add a book\n");
printf("4. Find a book\n");
printf("5. Update a book\n");
printf("6. Delete a book\n");
printf("7. Exit\n");
printf("Enter your choice: ");
}
int main() {
int choice;
do {
print_menu();
scanf("%d", &choice);
switch (choice) {
case 1:
create_book();
break;
case 2:
print_books();
break;
case 3:
add_book();
break;
case 4:
find_book();
break;
case 5:
update_book();
break;
case 6:
delete_book();
break;
case 7:
printf("Goodbye!\n");
break;
default:
printf("Invalid choice.\n");
}
} while (choice != 7);
return 0;
}
```
这段代码使用了一个结构体 `book` 来表示一本书的信息,包括书籍ID、书名、作者和价格。图书信息存储在一个数组 `books` 中。 `create_book()` 用于创建一本新书, `print_books()` 用于打印所有书籍的信息, `add_book()`、`find_book()`、`update_book()` 和 `delete_book()` 分别实现了添加、查找、修改和删除图书信息的功能。在 `main()` 函数中,我们使用一个循环打印菜单,让用户选择要执行的操作,直到用户选择退出。