c语言图书管理系统要有录入,删除,修改,查询,还书,借书,统计,输出
时间: 2023-09-20 07:11:52 浏览: 85
好的,那么您需要一个能够存储书籍信息的数据库,可以使用结构体数组来实现。以下是基本的代码框架:
```c
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 1000 // 最大书籍数量
// 定义书籍结构体
struct book {
char title[100]; // 书名
char author[50]; // 作者
char publisher[50]; // 出版社
int year; // 出版年份
int is_available; // 是否可借(1可借,0不可借)
};
struct book books[MAX_BOOKS]; // 存储所有书籍信息的结构体数组
int num_books = 0; // 当前书籍数量
// 函数声明
void add_book();
void delete_book();
void modify_book();
void search_book();
void borrow_book();
void return_book();
void show_statistics();
void show_books();
// 主函数
int main() {
int choice;
do {
printf("-----------------\n");
printf("1. 录入书籍信息\n");
printf("2. 删除书籍信息\n");
printf("3. 修改书籍信息\n");
printf("4. 查询书籍信息\n");
printf("5. 借出书籍\n");
printf("6. 归还书籍\n");
printf("7. 统计书籍信息\n");
printf("8. 输出所有书籍信息\n");
printf("0. 退出系统\n");
printf("-----------------\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_book();
break;
case 2:
delete_book();
break;
case 3:
modify_book();
break;
case 4:
search_book();
break;
case 5:
borrow_book();
break;
case 6:
return_book();
break;
case 7:
show_statistics();
break;
case 8:
show_books();
break;
case 0:
printf("谢谢使用!\n");
break;
default:
printf("无效的选择,请重新输入!\n");
}
} while (choice != 0);
return 0;
}
// 函数实现
void add_book() {
if (num_books == MAX_BOOKS) {
printf("已达到最大书籍数量,无法继续添加!\n");
return;
}
struct book new_book;
printf("请输入书名:");
scanf("%s", new_book.title);
printf("请输入作者:");
scanf("%s", new_book.author);
printf("请输入出版社:");
scanf("%s", new_book.publisher);
printf("请输入出版年份:");
scanf("%d", &new_book.year);
new_book.is_available = 1;
books[num_books] = new_book;
num_books++;
printf("成功添加新书籍!\n");
}
void delete_book() {
char title[100];
int found = 0;
printf("请输入要删除的书籍名称:");
scanf("%s", title);
for (int i = 0; i < num_books; i++) {
if (strcmp(title, books[i].title) == 0) {
found = 1;
// 将最后一个书籍信息覆盖要删除的书籍信息
books[i] = books[num_books - 1];
num_books--;
printf("成功删除书籍信息!\n");
break;
}
}
if (!found) {
printf("未找到要删除的书籍信息!\n");
}
}
void modify_book() {
char title[100];
int found = 0;
printf("请输入要修改的书籍名称:");
scanf("%s", title);
for (int i = 0; i < num_books; i++) {
if (strcmp(title, books[i].title) == 0) {
found = 1;
printf("请输入新的书名:");
scanf("%s", books[i].title);
printf("请输入新的作者:");
scanf("%s", books[i].author);
printf("请输入新的出版社:");
scanf("%s", books[i].publisher);
printf("请输入新的出版年份:");
scanf("%d", &books[i].year);
printf("成功修改书籍信息!\n");
break;
}
}
if (!found) {
printf("未找到要修改的书籍信息!\n");
}
}
void search_book() {
char title[100];
int found = 0;
printf("请输入要查询的书籍名称:");
scanf("%s", title);
for (int i = 0; i < num_books; i++) {
if (strcmp(title, books[i].title) == 0) {
found = 1;
printf("书名:%s\n", books[i].title);
printf("作者:%s\n", books[i].author);
printf("出版社:%s\n", books[i].publisher);
printf("出版年份:%d\n", books[i].year);
if (books[i].is_available) {
printf("此书可借阅!\n");
} else {
printf("此书已借出!\n");
}
break;
}
}
if (!found) {
printf("未找到要查询的书籍信息!\n");
}
}
void borrow_book() {
char title[100];
int found = 0;
printf("请输入要借阅的书籍名称:");
scanf("%s", title);
for (int i = 0; i < num_books; i++) {
if (strcmp(title, books[i].title) == 0) {
found = 1;
if (books[i].is_available) {
books[i].is_available = 0;
printf("成功借阅书籍!\n");
} else {
printf("此书已借出,请选择其他书籍!\n");
}
break;
}
}
if (!found) {
printf("未找到要借阅的书籍信息!\n");
}
}
void return_book() {
char title[100];
int found = 0;
printf("请输入要归还的书籍名称:");
scanf("%s", title);
for (int i = 0; i < num_books; i++) {
if (strcmp(title, books[i].title) == 0) {
found = 1;
if (books[i].is_available) {
printf("此书未借出,无需归还!\n");
} else {
books[i].is_available = 1;
printf("成功归还书籍!\n");
}
break;
}
}
if (!found) {
printf("未找到要归还的书籍信息!\n");
}
}
void show_statistics() {
int num_available = 0;
int num_borrowed = 0;
for (int i = 0; i < num_books; i++) {
if (books[i].is_available) {
num_available++;
} else {
num_borrowed++;
}
}
printf("可借阅书籍数量:%d\n", num_available);
printf("已借出书籍数量:%d\n", num_borrowed);
}
void show_books() {
if (num_books == 0) {
printf("当前无任何书籍信息!\n");
return;
}
printf("所有书籍信息如下:\n");
for (int i = 0; i < num_books; i++) {
printf("书名:%s\n", books[i].title);
printf("作者:%s\n", books[i].author);
printf("出版社:%s\n", books[i].publisher);
printf("出版年份:%d\n", books[i].year);
if (books[i].is_available) {
printf("此书可借阅!\n");
} else {
printf("此书已借出!\n");
}
printf("-------------------------\n");
}
}
```
这个代码框架不包括数据库创建和连接的部分,您需要根据实际情况进行添加。另外,您还需要为每个函数编写相应的 UI 界面,例如输入提示、查询结果等。
阅读全文