c语言图书管理系统
时间: 2023-07-03 17:05:04 浏览: 79
c语言图书管理系统
好的,我可以为您提供一些关于 C 语言图书管理系统的信息。
首先,图书管理系统可以包括以下功能:
1. 添加图书:管理员可以添加新图书,包括书名、作者、出版社、价格等信息。
2. 删除图书:管理员可以删除不需要的图书。
3. 修改图书信息:管理员可以修改图书信息,例如价格、库存等。
4. 查询图书信息:用户和管理员都可以查询图书信息,例如书名、作者等。
5. 借还图书:用户可以借阅图书并归还,管理员可以管理借阅记录。
下面是一个简单的 C 语言图书管理系统的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义结构体 Book,存储图书信息
struct Book {
char name[50]; // 书名
char author[20]; // 作者
char publisher[30]; // 出版社
float price; // 价格
int stock; // 库存
};
// 添加图书
void add_book(struct Book books[], int *book_count) {
printf("请输入书名:");
scanf("%s", books[*book_count].name);
printf("请输入作者名:");
scanf("%s", books[*book_count].author);
printf("请输入出版社:");
scanf("%s", books[*book_count].publisher);
printf("请输入价格:");
scanf("%f", &books[*book_count].price);
printf("请输入库存:");
scanf("%d", &books[*book_count].stock);
(*book_count)++;
}
// 删除图书
void delete_book(struct Book books[], int *book_count) {
char name[50];
printf("请输入要删除的书名:");
scanf("%s", name);
int i;
for (i = 0; i < *book_count; i++) {
if (strcmp(name, books[i].name) == 0) {
// 找到了要删除的书,将后面的书向前移动一位
int j;
for (j = i + 1; j < *book_count; j++) {
books[j - 1] = books[j];
}
(*book_count)--;
printf("删除成功!\n");
return;
}
}
printf("未找到要删除的书!\n");
}
// 修改图书信息
void modify_book(struct Book books[], int book_count) {
char name[50];
printf("请输入要修改的书名:");
scanf("%s", name);
int i;
for (i = 0; i < book_count; i++) {
if (strcmp(name, books[i].name) == 0) {
printf("请输入新的价格:");
scanf("%f", &books[i].price);
printf("请输入新的库存:");
scanf("%d", &books[i].stock);
printf("修改成功!\n");
return;
}
}
printf("未找到要修改的书!\n");
}
// 查询图书信息
void search_book(struct Book books[], int book_count) {
char name[50];
printf("请输入要查询的书名:");
scanf("%s", name);
int i;
for (i = 0; i < book_count; i++) {
if (strcmp(name, books[i].name) == 0) {
printf("书名:%s,作者:%s,出版社:%s,价格:%.2f,库存:%d\n",
books[i].name, books[i].author, books[i].publisher,
books[i].price, books[i].stock);
return;
}
}
printf("未找到要查询的书!\n");
}
// 借阅图书
void borrow_book(struct Book books[], int book_count) {
char name[50];
printf("请输入要借阅的书名:");
scanf("%s", name);
int i;
for (i = 0; i < book_count; i++) {
if (strcmp(name, books[i].name) == 0) {
if (books[i].stock > 0) {
books[i].stock--;
printf("借阅成功!\n");
return;
} else {
printf("库存不足,无法借阅!\n");
return;
}
}
}
printf("未找到要借阅的书!\n");
}
// 归还图书
void return_book(struct Book books[], int book_count) {
char name[50];
printf("请输入要归还的书名:");
scanf("%s", name);
int i;
for (i = 0; i < book_count; i++) {
if (strcmp(name, books[i].name) == 0) {
books[i].stock++;
printf("归还成功!\n");
return;
}
}
printf("未找到要归还的书!\n");
}
int main() {
struct Book books[100];
int book_count = 0;
int choice;
do {
printf("1. 添加图书\n");
printf("2. 删除图书\n");
printf("3. 修改图书信息\n");
printf("4. 查询图书信息\n");
printf("5. 借阅图书\n");
printf("6. 归还图书\n");
printf("0. 退出\n");
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 0:
printf("谢谢使用!\n");
break;
case 1:
add_book(books, &book_count);
break;
case 2:
delete_book(books, &book_count);
break;
case 3:
modify_book(books, book_count);
break;
case 4:
search_book(books, book_count);
break;
case 5:
borrow_book(books, book_count);
break;
case 6:
return_book(books, book_count);
break;
default:
printf("无效选项,请重新输入!\n");
break;
}
} while (choice != 0);
return 0;
}
```
以上代码仅供参考,可以根据实际需求进行修改。
阅读全文