帮我用c语言编写一个图书管理系统,实现图书库存、借阅信息管理。每本图书的记录信息包括:书号、书名、作者、单价、库存数量、出版时间、出版单位等。
时间: 2023-07-04 14:05:33 浏览: 47
好的,以下是一个简单的图书管理系统的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100 // 最大图书数量
struct Book {
char id[20];
char name[50];
char author[50];
float price;
int quantity;
char publishDate[20];
char publisher[50];
};
struct Book books[MAX_BOOKS];
int bookCount = 0;
void addBook() {
// 添加图书
if (bookCount >= MAX_BOOKS) {
printf("图书数量已达到上限,无法添加!\n");
return;
}
struct Book book;
printf("请输入图书编号:");
scanf("%s", book.id);
printf("请输入图书名称:");
scanf("%s", book.name);
printf("请输入图书作者:");
scanf("%s", book.author);
printf("请输入图书单价:");
scanf("%f", &book.price);
printf("请输入图书库存数量:");
scanf("%d", &book.quantity);
printf("请输入图书出版日期:");
scanf("%s", book.publishDate);
printf("请输入图书出版社:");
scanf("%s", book.publisher);
books[bookCount] = book;
bookCount++;
printf("图书添加成功!\n");
}
void listBooks() {
// 列出所有图书
printf("编号\t名称\t作者\t单价\t库存数量\t出版日期\t出版社\n");
for (int i = 0; i < bookCount; i++) {
struct Book book = books[i];
printf("%s\t%s\t%s\t%.2f\t%d\t\t%s\t%s\n",
book.id, book.name, book.author, book.price, book.quantity, book.publishDate, book.publisher);
}
}
void borrowBook() {
// 借阅图书
char id[20];
printf("请输入要借阅的图书编号:");
scanf("%s", id);
int index = -1;
for (int i = 0; i < bookCount; i++) {
if (strcmp(books[i].id, id) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到编号为 %s 的图书!\n", id);
return;
}
struct Book book = books[index];
if (book.quantity == 0) {
printf("编号为 %s 的图书库存不足,无法借阅!\n", id);
return;
}
book.quantity--;
books[index] = book;
printf("编号为 %s 的图书借阅成功!\n", id);
}
void returnBook() {
// 归还图书
char id[20];
printf("请输入要归还的图书编号:");
scanf("%s", id);
int index = -1;
for (int i = 0; i < bookCount; i++) {
if (strcmp(books[i].id, id) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到编号为 %s 的图书!\n", id);
return;
}
struct Book book = books[index];
book.quantity++;
books[index] = book;
printf("编号为 %s 的图书归还成功!\n", id);
}
int main() {
int choice;
do {
printf("请选择操作:\n");
printf("1. 添加图书\n");
printf("2. 列出所有图书\n");
printf("3. 借阅图书\n");
printf("4. 归还图书\n");
printf("5. 退出系统\n");
printf("请输入操作编号:");
scanf("%d", &choice);
switch (choice) {
case 1:
addBook();
break;
case 2:
listBooks();
break;
case 3:
borrowBook();
break;
case 4:
returnBook();
break;
case 5:
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("无效的操作编号,请重新输入!\n");
break;
}
} while (1);
return 0;
}
```
该程序实现了添加图书、列出所有图书、借阅图书和归还图书四种操作,每本图书的记录信息包括书号、书名、作者、单价、库存数量、出版时间、出版单位等。其中,数组 `books` 存储所有图书的信息,`bookCount` 表示当前已添加的图书数量。你可以根据自己的需要进行修改和扩展。