图书管理系统 c
时间: 2023-09-05 22:09:01 浏览: 38
图书管理系统的开发需要掌握以下技术:
- C语言基础
- 数据结构和算法
- 文件操作
- 数据库基础
- GUI编程(可选)
以下是一个简单的图书管理系统的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 1000
#define MAX_TITLE_LEN 100
#define MAX_AUTHOR_LEN 50
// 图书结构体
typedef struct {
int id;
char title[MAX_TITLE_LEN];
char author[MAX_AUTHOR_LEN];
int year;
int quantity;
} Book;
// 图书馆结构体
typedef struct {
Book books[MAX_BOOKS];
int num_books;
} Library;
// 初始化图书馆
void init_library(Library *lib) {
lib->num_books = 0;
}
// 添加图书
void add_book(Library *lib, Book book) {
if (lib->num_books < MAX_BOOKS) {
book.id = lib->num_books + 1;
lib->books[lib->num_books++] = book;
printf("图书%s添加成功\n", book.title);
} else {
printf("图书馆已满,无法添加\n");
}
}
// 查找图书
void find_book(Library *lib, char *title) {
int i;
for (i = 0; i < lib->num_books; i++) {
if (strcmp(lib->books[i].title, title) == 0) {
printf("找到图书:\n");
printf("编号:%d\n", lib->books[i].id);
printf("书名:%s\n", lib->books[i].title);
printf("作者:%s\n", lib->books[i].author);
printf("出版年份:%d\n", lib->books[i].year);
printf("数量:%d\n", lib->books[i].quantity);
return;
}
}
printf("未找到图书:%s\n", title);
}
// 删除图书
void delete_book(Library *lib, int id) {
int i, j;
for (i = 0; i < lib->num_books; i++) {
if (lib->books[i].id == id) {
printf("删除图书:%s\n", lib->books[i].title);
for (j = i; j < lib->num_books - 1; j++) {
lib->books[j] = lib->books[j + 1];
}
lib->num_books--;
return;
}
}
printf("未找到编号为%d的图书\n", id);
}
// 显示所有图书
void display_books(Library *lib) {
int i;
for (i = 0; i < lib->num_books; i++) {
printf("编号:%d\n", lib->books[i].id);
printf("书名:%s\n", lib->books[i].title);
printf("作者:%s\n", lib->books[i].author);
printf("出版年份:%d\n", lib->books[i].year);
printf("数量:%d\n", lib->books[i].quantity);
printf("\n");
}
}
// 保存图书馆到文件
void save_library(Library *lib, char *filename) {
FILE *fp = fopen(filename, "wb");
if (fp != NULL) {
fwrite(lib, sizeof(Library), 1, fp);
fclose(fp);
printf("保存成功\n");
} else {
printf("保存失败\n");
}
}
// 从文件加载图书馆
void load_library(Library *lib, char *filename) {
FILE *fp = fopen(filename, "rb");
if (fp != NULL) {
fread(lib, sizeof(Library), 1, fp);
fclose(fp);
printf("加载成功\n");
} else {
printf("加载失败\n");
}
}
int main() {
Library lib;
init_library(&lib);
Book book1 = {0, "C语言程序设计", "谭浩强", 2019, 100};
Book book2 = {0, "数据结构与算法分析", "Mark Allen Weiss", 2014, 50};
add_book(&lib, book1);
add_book(&lib, book2);
find_book(&lib, "数据结构与算法分析");
delete_book(&lib, 1);
display_books(&lib);
save_library(&lib, "library.dat");
init_library(&lib);
load_library(&lib, "library.dat");
display_books(&lib);
return 0;
}
```
这个例子包括图书结构体、图书馆结构体以及一些常用的图书馆操作函数,如添加图书、查找图书、删除图书、显示所有图书等等。代码中还包括了图书馆的保存和加载功能,可以将图书馆保存到文件中,并在程序重新运行时加载图书馆。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)