生成一段图书管理系统C语言代码,要求菜单登录,书籍录入,包含书名,作者名,出版社,出版时间,分类名,价格,可以按照作者名和书名查询,具有浏览书籍的功能,还有增加书籍,删除书籍的功能
时间: 2023-10-22 08:07:46 浏览: 112
好的,以下是图书管理系统的C语言代码,注意:本代码仅供学习交流使用,不可用于商业用途。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 1000
struct Book {
char title[50];
char author[20];
char publisher[20];
char publish_time[20];
char category[20];
float price;
};
int login();
void show_menu();
void add_book(struct Book books[], int *num_books);
void delete_book(struct Book books[], int *num_books);
void search_book(struct Book books[], int num_books);
void browse_books(struct Book books[], int num_books);
int main() {
struct Book books[MAX_BOOKS];
int num_books = 0;
int option;
if (login()) {
do {
show_menu();
scanf("%d", &option);
switch (option) {
case 1:
add_book(books, &num_books);
break;
case 2:
delete_book(books, &num_books);
break;
case 3:
search_book(books, num_books);
break;
case 4:
browse_books(books, num_books);
break;
case 5:
printf("Goodbye!\n");
break;
default:
printf("Invalid option!\n");
}
} while (option != 5);
} else {
printf("Wrong password. Exiting...\n");
}
return 0;
}
int login() {
char password[20];
printf("Please enter password: ");
scanf("%s", password);
return strcmp(password, "123456") == 0;
}
void show_menu() {
printf("Welcome to the Book Management System!\n");
printf("1. Add book\n");
printf("2. Delete book\n");
printf("3. Search book\n");
printf("4. Browse books\n");
printf("5. Exit\n");
printf("Please enter your option: ");
}
void add_book(struct Book books[], int *num_books) {
if (*num_books >= MAX_BOOKS) {
printf("The library is full. Cannot add more books.\n");
} else {
printf("Please enter book title: ");
scanf("%s", books[*num_books].title);
printf("Please enter author name: ");
scanf("%s", books[*num_books].author);
printf("Please enter publisher name: ");
scanf("%s", books[*num_books].publisher);
printf("Please enter publish time: ");
scanf("%s", books[*num_books].publish_time);
printf("Please enter category name: ");
scanf("%s", books[*num_books].category);
printf("Please enter price: ");
scanf("%f", &books[*num_books].price);
(*num_books)++;
printf("Book added successfully.\n");
}
}
void delete_book(struct Book books[], int *num_books) {
char title[50];
char author[20];
int i, j;
printf("Please enter book title: ");
scanf("%s", title);
printf("Please enter author name: ");
scanf("%s", author);
for (i = 0; i < *num_books; i++) {
if (strcmp(books[i].title, title) == 0 &&
strcmp(books[i].author, author) == 0) {
for (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 search_book(struct Book books[], int num_books) {
char keyword[50];
int i;
printf("Please enter keyword: ");
scanf("%s", keyword);
printf("Search result:\n");
for (i = 0; i < num_books; i++) {
if (strstr(books[i].title, keyword) != NULL ||
strstr(books[i].author, keyword) != NULL) {
printf("Title: %s\n", books[i].title);
printf("Author: %s\n", books[i].author);
printf("Publisher: %s\n", books[i].publisher);
printf("Publish time: %s\n", books[i].publish_time);
printf("Category: %s\n", books[i].category);
printf("Price: %.2f\n", books[i].price);
printf("\n");
}
}
}
void browse_books(struct Book books[], int num_books) {
int i;
printf("Library books:\n");
for (i = 0; i < num_books; i++) {
printf("Title: %s\n", books[i].title);
printf("Author: %s\n", books[i].author);
printf("Publisher: %s\n", books[i].publisher);
printf("Publish time: %s\n", books[i].publish_time);
printf("Category: %s\n", books[i].category);
printf("Price: %.2f\n", books[i].price);
printf("\n");
}
}
```
阅读全文