图书信息管理系统用c语言
时间: 2023-09-29 19:10:14 浏览: 45
实现
以下是一个简单的图书信息管理系统的C语言实现。该系统可以添加、删除、查找和显示图书信息。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100
typedef struct {
char title[50];
char author[50];
char publisher[50];
int year;
} Book;
Book books[MAX_BOOKS];
int num_books = 0;
void add_book() {
if (num_books >= MAX_BOOKS) {
printf("Error: too many books\n");
return;
}
Book book;
printf("Enter book title: ");
fgets(book.title, 50, stdin);
printf("Enter author name: ");
fgets(book.author, 50, stdin);
printf("Enter publisher name: ");
fgets(book.publisher, 50, stdin);
printf("Enter publication year: ");
scanf("%d", &book.year);
getchar(); // consume newline
books[num_books++] = book;
printf("Book added successfully\n");
}
void delete_book() {
if (num_books == 0) {
printf("Error: no books available\n");
return;
}
char title[50];
printf("Enter book title to delete: ");
fgets(title, 50, stdin);
for (int i = 0; i < num_books; i++) {
if (strcmp(books[i].title, title) == 0) {
for (int j = i; j < num_books - 1; j++) {
books[j] = books[j+1];
}
num_books--;
printf("Book deleted successfully\n");
return;
}
}
printf("Error: book not found\n");
}
void search_books() {
if (num_books == 0) {
printf("Error: no books available\n");
return;
}
char title[50];
printf("Enter book title to search: ");
fgets(title, 50, stdin);
for (int i = 0; i < num_books; i++) {
if (strstr(books[i].title, title) != NULL) {
printf("Book found:\n");
printf("Title: %s", books[i].title);
printf("Author: %s", books[i].author);
printf("Publisher: %s", books[i].publisher);
printf("Year: %d\n", books[i].year);
return;
}
}
printf("Error: book not found\n");
}
void display_books() {
if (num_books == 0) {
printf("No books available\n");
return;
}
printf("List of books:\n");
for (int i = 0; i < num_books; i++) {
printf("%d. %s", i+1, books[i].title);
}
}
int main() {
int choice;
do {
printf("\n");
printf("1. Add book\n");
printf("2. Delete book\n");
printf("3. Search books\n");
printf("4. Display books\n");
printf("5. Exit\n");
printf("Enter choice: ");
scanf("%d", &choice);
getchar(); // consume newline
switch (choice) {
case 1:
add_book();
break;
case 2:
delete_book();
break;
case 3:
search_books();
break;
case 4:
display_books();
break;
case 5:
printf("Goodbye\n");
break;
default:
printf("Invalid choice\n");
}
} while (choice != 5);
return 0;
}
```
该系统定义了一个`Book`结构体,包含图书的标题、作者、出版商和出版年份。它还定义了一个`books`数组来存储所有的图书,并跟踪`num_books`变量来记录当前有多少本图书。
该系统包含四个函数:`add_book()`、`delete_book()`、`search_books()`和`display_books()`。`add_book()`函数从用户输入中读取图书信息,并将其添加到`books`数组中。`delete_book()`函数允许用户输入要删除的图书标题,并从`books`数组中删除匹配的图书。`search_books()`函数允许用户输入要查找的图书标题,并在`books`数组中查找匹配的图书。`display_books()`函数显示所有已添加的图书。
在`main()`函数中,该系统提供了一个简单的菜单,允许用户选择要执行的操作。循环直到用户选择退出。