C语言实现简单图书管理系统详细攻略
系统功能需求
一个简单的图书管理系统功能需求为:
-
借阅图书:用户能够借阅图书。
-
归还图书:用户能够归还图书。
-
查看图书:用户能够查看系统中的所有图书。
-
增加图书:管理员能够增加新的图书到系统中。
-
删除图书:管理员能够删除系统中已有的图书。
-
修改图书:管理员能够修改系统中已有的图书。
实现思路
-
创建一个图书结构体,包含图书的基本信息,如编号、书名、作者、出版社、出版日期、价格等。
-
借阅图书:将借阅的图书信息记录到一个链表中,并将该图书从系统中删除。
-
归还图书:将归还的图书信息从链表中删除,并将该图书添加回系统中。
-
查看图书:输出所有在系统中的图书信息。
-
增加图书:将新的图书信息添加到系统中。
-
删除图书:将该图书从系统中删除。
-
修改图书:将图书信息修改后更新到系统中。
代码实现
以下是一个简单的代码示例:
struct Book {
int id;
char title[50];
char author[50];
char publisher[50];
char pub_date[20];
double price;
};
// 定义链表结点类型
struct Node {
struct Book book;
struct Node *next;
};
// 添加图书到链表中
void addBook(struct Node **head, struct Book book) {
struct Node *new_node = (struct Node*) malloc(sizeof(struct Node));
new_node->book = book;
new_node->next = (*head);
(*head) = new_node;
}
// 从链表中删除图书
void deleteBook(struct Node **head, int book_id) {
struct Node *temp = *head, *prev;
if (temp != NULL && temp->book.id == book_id) {
*head = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->book.id != book_id) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return;
prev->next = temp->next;
free(temp);
}
// 修改图书信息
void editBook(struct Node *head, int book_id, char *title, char *author, char *publisher, char *pub_date, double price) {
struct Node *temp = head;
while (temp != NULL && temp->book.id != book_id) {
temp = temp->next;
}
if (temp == NULL) return;
strcpy(temp->book.title, title);
strcpy(temp->book.author, author);
strcpy(temp->book.publisher, publisher);
strcpy(temp->book.pub_date, pub_date);
temp->book.price = price;
}
// 查看图书信息
void displayBooks(struct Node *head) {
struct Node *temp = head;
while (temp != NULL) {
printf("ID: %d\n", temp->book.id);
printf("Title: %s\n", temp->book.title);
printf("Author: %s\n", temp->book.author);
printf("Publisher: %s\n", temp->book.publisher);
printf("Publish Date: %s\n", temp->book.pub_date);
printf("Price: %.2f yuan\n\n", temp->book.price);
temp = temp->next;
}
}
int main() {
struct Node *book_list = NULL;
// 添加图书
struct Book book1 = {1, "C Programming Language", "Dennis Ritchie", "Prentice Hall", "1978-02-22", 34.98};
addBook(&book_list, book1);
// 删除图书
deleteBook(&book_list, 1);
// 修改图书信息
editBook(book_list, 2, "The C Programming Language", "Dennis Ritchie and Brian Kernighan", "Prentice Hall", "1988-04-01", 39.99);
// 查看图书信息
displayBooks(book_list);
return 0;
}
以上示例展示了如何实现图书管理系统中的基本功能:添加图书、删除图书、修改图书信息、查看图书信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现简单图书管理系统 - Python技术站