基于C语言的图书管理系统设计的代码
时间: 2023-10-24 13:08:47 浏览: 71
好的,以下是一个简单的基于C语言的图书管理系统设计的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义图书结构体
struct book {
char title[100];
char author[50];
char ISBN[20];
int year;
int quantity;
};
// 定义全局变量
struct book *books;
int num_books = 0;
// 函数声明
void add_book();
void remove_book();
void search_book();
void borrow_book();
void return_book();
int main() {
int choice;
printf("Welcome to the library management system!\n");
while(1) {
printf("\nEnter your choice:\n");
printf("1. Add book\n");
printf("2. Remove book\n");
printf("3. Search book\n");
printf("4. Borrow book\n");
printf("5. Return book\n");
printf("6. Quit\n");
scanf("%d", &choice);
switch(choice) {
case 1:
add_book();
break;
case 2:
remove_book();
break;
case 3:
search_book();
break;
case 4:
borrow_book();
break;
case 5:
return_book();
break;
case 6:
printf("Goodbye!\n");
exit(0);
default:
printf("Invalid choice!\n");
break;
}
}
return 0;
}
void add_book() {
struct book new_book;
printf("Enter the book title: ");
scanf("%s", new_book.title);
printf("Enter the author name: ");
scanf("%s", new_book.author);
printf("Enter the ISBN: ");
scanf("%s", new_book.ISBN);
printf("Enter the publication year: ");
scanf("%d", &new_book.year);
printf("Enter the quantity: ");
scanf("%d", &new_book.quantity);
num_books++;
books = (struct book*)realloc(books, num_books * sizeof(struct book));
books[num_books-1] = new_book;
printf("Book added successfully!\n");
}
void remove_book() {
char ISBN[20];
printf("Enter the ISBN of the book you want to remove: ");
scanf("%s", ISBN);
int found = 0;
for(int i=0; i<num_books; i++) {
if(strcmp(books[i].ISBN, ISBN) == 0) {
found = 1;
for(int j=i; j<num_books-1; j++) {
books[j] = books[j+1];
}
num_books--;
books = (struct book*)realloc(books, num_books * sizeof(struct book));
printf("Book removed successfully!\n");
break;
}
}
if(!found) {
printf("Book not found!\n");
}
}
void search_book() {
char ISBN[20];
printf("Enter the ISBN of the book you want to search: ");
scanf("%s", ISBN);
int found = 0;
for(int i=0; i<num_books; i++) {
if(strcmp(books[i].ISBN, ISBN) == 0) {
found = 1;
printf("Book title: %s\n", books[i].title);
printf("Author name: %s\n", books[i].author);
printf("Publication year: %d\n", books[i].year);
printf("Quantity: %d\n", books[i].quantity);
break;
}
}
if(!found) {
printf("Book not found!\n");
}
}
void borrow_book() {
char ISBN[20];
printf("Enter the ISBN of the book you want to borrow: ");
scanf("%s", ISBN);
int found = 0;
for(int i=0; i<num_books; i++) {
if(strcmp(books[i].ISBN, ISBN) == 0) {
found = 1;
if(books[i].quantity > 0) {
books[i].quantity--;
printf("Book borrowed successfully!\n");
} else {
printf("Book not available!\n");
}
break;
}
}
if(!found) {
printf("Book not found!\n");
}
}
void return_book() {
char ISBN[20];
printf("Enter the ISBN of the book you want to return: ");
scanf("%s", ISBN);
int found = 0;
for(int i=0; i<num_books; i++) {
if(strcmp(books[i].ISBN, ISBN) == 0) {
found = 1;
books[i].quantity++;
printf("Book returned successfully!\n");
break;
}
}
if(!found) {
printf("Book not found!\n");
}
}
```
这只是一个简单的示例,您可以根据实际需求进行修改和优化。希望对您有所帮助!