图书目录管理系统用c写的代码
时间: 2023-11-07 22:04:48 浏览: 29
以下是一个简单的图书目录管理系统的 C 代码示例,实现了添加图书、删除图书、查询图书、显示所有图书等功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义图书结构体
typedef struct book {
char name[50]; // 书名
char author[50]; // 作者
char publisher[50]; // 出版社
int year; // 出版年份
struct book *next; // 指向下一本书的指针
} Book;
// 定义全局变量,指向图书链表的头结点
Book *head = NULL;
// 在链表末尾添加一本书
void add_book() {
Book *new_book = (Book *) malloc(sizeof(Book));
printf("请输入书名:");
scanf("%s", new_book->name);
printf("请输入作者:");
scanf("%s", new_book->author);
printf("请输入出版社:");
scanf("%s", new_book->publisher);
printf("请输入出版年份:");
scanf("%d", &new_book->year);
new_book->next = NULL;
if (head == NULL) {
head = new_book;
} else {
Book *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = new_book;
}
printf("添加成功!\n");
}
// 根据书名删除一本书
void delete_book() {
char name[50];
printf("请输入要删除的书名:");
scanf("%s", name);
if (head == NULL) {
printf("图书目录为空!\n");
return;
}
Book *p = head;
Book *prev = NULL;
while (p != NULL) {
if (strcmp(p->name, name) == 0) {
if (prev == NULL) {
head = p->next;
} else {
prev->next = p->next;
}
free(p);
printf("删除成功!\n");
return;
}
prev = p;
p = p->next;
}
printf("没有找到该书!\n");
}
// 根据书名查询一本书
void search_book() {
char name[50];
printf("请输入要查询的书名:");
scanf("%s", name);
if (head == NULL) {
printf("图书目录为空!\n");
return;
}
Book *p = head;
while (p != NULL) {
if (strcmp(p->name, name) == 0) {
printf("书名:%s\n作者:%s\n出版社:%s\n出版年份:%d\n", p->name, p->author, p->publisher, p->year);
return;
}
p = p->next;
}
printf("没有找到该书!\n");
}
// 显示所有图书
void show_books() {
if (head == NULL) {
printf("图书目录为空!\n");
return;
}
Book *p = head;
while (p != NULL) {
printf("书名:%s\n作者:%s\n出版社:%s\n出版年份:%d\n", p->name, p->author, p->publisher, p->year);
p = p->next;
}
}
int main() {
int choice;
while (1) {
printf("\n1. 添加图书\n");
printf("2. 删除图书\n");
printf("3. 查询图书\n");
printf("4. 显示所有图书\n");
printf("5. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_book();
break;
case 2:
delete_book();
break;
case 3:
search_book();
break;
case 4:
show_books();
break;
case 5:
exit(0);
default:
printf("请输入正确的操作序号!\n");
}
}
return 0;
}
```
上述代码实现了一个简单的图书目录管理系统,包括添加图书、删除图书、查询图书、显示所有图书等功能。你可以根据自己的需求进行修改和扩展。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)