c语言图书信息管理系统
时间: 2023-08-02 15:45:39 浏览: 43
好的,我可以给你提供一个简单的图书信息管理系统的代码,供你参考:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100 // 最大书籍数量
#define MAX_NAME_LEN 50 // 书名最大长度
#define MAX_AUTHOR_LEN 20 // 作者名最大长度
#define MAX_PUBLISHER_LEN 30 // 出版社名最大长度
#define MAX_ISBN_LEN 20 // ISBN 最大长度
// 定义图书结构体
typedef struct {
char name[MAX_NAME_LEN];
char author[MAX_AUTHOR_LEN];
char publisher[MAX_PUBLISHER_LEN];
char pub_date[11]; // 格式:yyyy-mm-dd
char isbn[MAX_ISBN_LEN];
double price;
} book_t;
// 全局变量:存储所有图书信息
book_t books[MAX_BOOKS];
int book_count = 0;
// 函数声明
void input_book(void);
void search_book(void);
void modify_book(void);
void delete_book(void);
void statistics_book(void);
void output_book(void);
int main(void) {
int choice;
while (1) {
// 显示菜单
printf("******************************\n");
printf("* 图书信息管理系统 *\n");
printf("* *\n");
printf("* 1. 录入图书信息 *\n");
printf("* 2. 查找图书信息 *\n");
printf("* 3. 修改图书信息 *\n");
printf("* 4. 删除图书信息 *\n");
printf("* 5. 统计图书信息 *\n");
printf("* 6. 输出图书信息 *\n");
printf("* 0. 退出系统 *\n");
printf("******************************\n");
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
input_book();
break;
case 2:
search_book();
break;
case 3:
modify_book();
break;
case 4:
delete_book();
break;
case 5:
statistics_book();
break;
case 6:
output_book();
break;
case 0:
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("输入有误,请重新输入!\n");
}
}
return 0;
}
// 录入图书信息
void input_book(void) {
if (book_count == MAX_BOOKS) {
printf("图书数量已达到上限,无法继续录入!\n");
return;
}
book_t book;
printf("请输入图书名称:");
scanf("%s", book.name);
printf("请输入图书作者:");
scanf("%s", book.author);
printf("请输入图书出版社:");
scanf("%s", book.publisher);
printf("请输入图书出版日期(格式:yyyy-mm-dd):");
scanf("%s", book.pub_date);
printf("请输入图书ISBN:");
scanf("%s", book.isbn);
printf("请输入图书价格:");
scanf("%lf", &book.price);
books[book_count++] = book;
printf("图书信息已录入成功!\n");
}
// 查找图书信息
void search_book(void) {
if (book_count == 0) {
printf("目前没有任何图书信息!\n");
return;
}
char keyword[30];
int i, found = 0;
printf("请输入关键字:");
scanf("%s", keyword);
printf("查找结果如下:\n");
printf("=====================================================================\n");
printf("书名\t\t作者\t\t出版社\t\t出版日期\t\tISBN\t\t价格\n");
printf("=====================================================================\n");
for (i = 0; i < book_count; i++) {
if (strstr(books[i].name, keyword) || strstr(books[i].author, keyword) || strstr(books[i].publisher, keyword) || strstr(books[i].isbn, keyword)) {
printf("%-16s%-16s%-16s%-24s%-16s%-8.2f\n", books[i].name, books[i].author, books[i].publisher, books[i].pub_date, books[i].isbn, books[i].price);
found = 1;
}
}
if (!found) {
printf("没有找到任何相关信息!\n");
}
}
// 修改图书信息
void modify_book(void) {
if (book_count == 0) {
printf("目前没有任何图书信息!\n");
return;
}
char isbn[20];
int i, found = 0;
printf("请输入要修改的图书ISBN:");
scanf("%s", isbn);
for (i = 0; i < book_count; i++) {
if (strcmp(books[i].isbn, isbn) == 0) {
printf("请输入新的图书名称:");
scanf("%s", books[i].name);
printf("请输入新的图书作者:");
scanf("%s", books[i].author);
printf("请输入新的图书出版社:");
scanf("%s", books[i].publisher);
printf("请输入新的图书出版日期(格式:yyyy-mm-dd):");
scanf("%s", books[i].pub_date);
printf("请输入新的图书ISBN:");
scanf("%s", books[i].isbn);
printf("请输入新的图书价格:");
scanf("%lf", &books[i].price);
found = 1;
break;
}
}
if (found) {
printf("图书信息已修改成功!\n");
} else {
printf("没有找到任何相关信息!\n");
}
}
// 删除图书信息
void delete_book(void) {
if (book_count == 0) {
printf("目前没有任何图书信息!\n");
return;
}
char isbn[20];
int i, found = 0;
printf("请输入要删除的图书ISBN:");
scanf("%s", isbn);
for (i = 0; i < book_count; i++) {
if (strcmp(books[i].isbn, isbn) == 0) {
found = 1;
break;
}
}
if (found) {
for (; i < book_count - 1; i++) {
books[i] = books[i + 1];
}
book_count--;
printf("图书信息已删除成功!\n");
} else {
printf("没有找到任何相关信息!\n");
}
}
// 统计图书信息
void statistics_book(void) {
if (book_count == 0) {
printf("目前没有任何图书信息!\n");
return;
}
int i;
double total_price = 0;
printf("当前图书总数量为:%d 本\n", book_count);
for (i = 0; i < book_count; i++) {
total_price += books[i].price;
}
printf("当前图书总价格为:%.2f 元\n", total_price);
}
// 输出图书信息
void output_book(void) {
if (book_count == 0) {
printf("目前没有任何图书信息!\n");
return;
}
int i;
printf("所有图书信息如下:\n");
printf("=====================================================================\n");
printf("书名\t\t作者\t\t出版社\t\t出版日期\t\tISBN\t\t价格\n");
printf("=====================================================================\n");
for (i = 0; i < book_count; i++) {
printf("%-16s%-16s%-16s%-24s%-16s%-8.2f\n", books[i].name, books[i].author, books[i].publisher, books[i].pub_date, books[i].isbn, books[i].price);
}
}
```
这是一个基于命令行的图书信息管理系统,包含了录入、查找、修改、删除、统计和输出图书信息等基本功能。你可以根据自己的需求进行修改和完善。