c++编写图书管理系统
时间: 2023-09-04 15:10:51 浏览: 115
好的,那么我们开始编写图书管理系统。
首先,我们需要考虑系统的功能和需求。一个简单的图书管理系统应该至少包含以下功能:
1. 添加图书
2. 删除图书
3. 修改图书信息
4. 查询图书信息
5. 显示所有图书信息
接下来,我们可以考虑使用结构体来存储图书信息,并使用链表来存储图书列表。具体的代码实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义图书信息结构体
typedef struct book {
char name[50];
char author[50];
char publisher[50];
float price;
struct book *next;
} Book;
// 添加图书
Book *add_book(Book *head) {
Book *p, *new_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("%f", &new_book->price);
new_book->next = NULL;
if (head == NULL) {
head = new_book;
} else {
p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = new_book;
}
printf("添加成功!\n");
return head;
}
// 删除图书
Book *delete_book(Book *head) {
Book *p, *prev;
char name[50];
printf("请输入要删除的图书名称:");
scanf("%s", name);
p = head;
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 head;
}
prev = p;
p = p->next;
}
printf("未找到该图书!\n");
return head;
}
// 修改图书信息
void modify_book(Book *head) {
Book *p;
char name[50];
printf("请输入要修改的图书名称:");
scanf("%s", name);
p = head;
while (p != NULL) {
if (strcmp(p->name, name) == 0) {
printf("请输入图书作者:");
scanf("%s", p->author);
printf("请输入图书出版社:");
scanf("%s", p->publisher);
printf("请输入图书价格:");
scanf("%f", &p->price);
printf("修改成功!\n");
return;
}
p = p->next;
}
printf("未找到该图书!\n");
}
// 查询图书信息
void query_book(Book *head) {
Book *p;
char name[50];
printf("请输入要查询的图书名称:");
scanf("%s", name);
p = head;
while (p != NULL) {
if (strcmp(p->name, name) == 0) {
printf("图书名称:%s\n", p->name);
printf("图书作者:%s\n", p->author);
printf("图书出版社:%s\n", p->publisher);
printf("图书价格:%.2f\n", p->price);
return;
}
p = p->next;
}
printf("未找到该图书!\n");
}
// 显示所有图书信息
void display_books(Book *head) {
Book *p;
if (head == NULL) {
printf("当前没有任何图书!\n");
return;
}
p = head;
while (p != NULL) {
printf("图书名称:%s\n", p->name);
printf("图书作者:%s\n", p->author);
printf("图书出版社:%s\n", p->publisher);
printf("图书价格:%.2f\n", p->price);
p = p->next;
}
}
int main() {
int choice;
Book *head = NULL;
do {
printf("\n");
printf("1. 添加图书\n");
printf("2. 删除图书\n");
printf("3. 修改图书信息\n");
printf("4. 查询图书信息\n");
printf("5. 显示所有图书信息\n");
printf("0. 退出\n");
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
head = add_book(head);
break;
case 2:
head = delete_book(head);
break;
case 3:
modify_book(head);
break;
case 4:
query_book(head);
break;
case 5:
display_books(head);
break;
case 0:
printf("谢谢使用!\n");
break;
default:
printf("无效的选择!\n");
break;
}
} while (choice != 0);
return 0;
}
```
以上就是一个简单的图书管理系统的实现,你可以根据自己的需要做出相应的修改和扩展。
阅读全文