网站建设佛山上海专业的网络推广
news/
2025/9/23 13:24:08/
文章来源:
网站建设佛山,上海专业的网络推广,网站开发查询,私人网盘服务器一#xff0c;开发环境
操作系统#xff1a;windows10, windows11, linux, mac等。开发工具#xff1a;Qt, vscode, visual studio等开发语言#xff1a;c
二#xff0c;功能需求 1. 图书信息管理#xff1a;
这个功能的主要任务是保存和管理图书的所有信息。这应该包…一开发环境
操作系统windows10, windows11, linux, mac等。开发工具Qt, vscode, visual studio等开发语言c
二功能需求 1. 图书信息管理
这个功能的主要任务是保存和管理图书的所有信息。这应该包括
添加新书输入新书的信息包括书名、作者、出版社、ISBN、库存数量等并将其添加到数据库中。修改书籍信息如果书籍的某些信息需要更改例如库存数量或作者信息应能够找到特定的书籍并修改其信息。删除书籍如果某本书不再被库存应能够从数据库中完全删除该书的所有信息。
2. 图书查询功能
这个功能应该让用户根据各种不同的信息查找书籍。这可以包括
书名查询输入书名返回所有与之匹配的书籍。作者查询输入作者的名字返回所有该作者的书籍。出版社查询输入出版社的名字返回所有由该出版社出版的书籍。ISBN查询输入ISBN号返回对应的书籍。
三功能设计
1. 主菜单
当用户启动程序时他们将首先看到主菜单。主菜单将包括以下选项 欢迎来到图书管理系统请选择一个操作
1. 添加新书
2. 修改书籍信息
3. 删除书籍
4. 查询书籍
5. 退出程序
请输入你的选择1-5用户可以通过输入数字选择一个操作。
2. 添加新书
当用户选择添加新书时他们将需要输入书的详细信息。例如
请输入书的详细信息
书名
作者
出版社
ISBN
库存数量程序将根据用户输入的信息创建一个新的书籍记录并将其添加到文件中。
3. 修改书籍信息
当用户选择修改书籍信息时他们首先需要通过某种方式找到要修改的书。例如程序可以让他们输入书名或ISBN来找到书。然后他们可以选择要修改的信息并输入新的值。例如
请输入要修改的书的ISBN
请输入要修改的信息书名、作者、出版社、ISBN、库存数量
请输入新的值程序将更新文件中的对应记录。
4. 删除书籍
当用户选择删除书籍时他们同样需要先找到要删除的书然后程序将删除对应的记录。例如
请输入要删除的书的ISBN
你确定要删除这本书吗yes/no5. 查询书籍
当用户选择查询书籍时他们将需要选择查询方式书名、作者、出版社或ISBN然后输入查询条件。例如
请选择查询方式书名、作者、出版社、ISBN
请输入查询条件程序将在文件中查找匹配的书籍并显示它们的详细信息。
6. 退出程序
当用户选择退出程序时程序将结束。
四代码目录
1. 目录结构
BookManagementSystem/ # 项目根目录 ├── CMakeLists.txt # CMake的主配置文件 ├── src/ # 源代码目录 │ ├── main.c # 主程序文件 │ ├── book_management.c # 图书管理相关的函数实现 │ └── book_management.h # 图书管理相关的函数声明 ├── data/ # 存放数据文件的目录 │ └── books.txt # 存储图书信息的文件 └── build/ # 存放编译结果的目录
2. 生成目录脚本
仅限linux系统使用
#!/bin/bash
# 创建目录结构
mkdir -p BookManagementSystem/src
mkdir -p BookManagementSystem/data
mkdir -p BookManagementSystem/build# 创建CMakeLists.txt文件
cat EOF BookManagementSystem/CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(BookManagementSystem)# 设置C语言标准
set(CMAKE_C_STANDARD 11)# 添加你的源代码文件
add_executable(BookManagementSystem src/main.c src/book_management.c)# 如果需要链接其他库使用target_link_libraries
# target_link_libraries(BookManagementSystem your_library)
EOF# 创建空的源代码文件
touch BookManagementSystem/src/main.c
touch BookManagementSystem/src/book_management.c
touch BookManagementSystem/src/book_management.h# 创建存储书籍信息的空文件
touch BookManagementSystem/data/books.txt# 提示
echo 目录结构已创建。请在BookManagementSystem目录下开始你的项目。五源代码
book_management.h
#ifndef BOOK_MANAGEMENT_GUARD__H
#define BOOK_MANAGEMENT_GUARD__H#include stdio.htypedef struct _Book {char title[100];char author[50];char publisher[50];char isbn[14];int quantity;
} Book;int add_new_book(const Book *book);
int delete_book(const char *isbn);
int modify_book(const char *isbn, const Book *book);
int search_books(const char *query, Book *result, int size);
int load_books(Book **books, int *size);
int save_books(const Book *books, int size);#endifbook_management.c
#include book_management.h
#include stdlib.h
#include string.hint add_new_book(const Book *book) {Book *books;int size;load_books(books, size);books realloc(books, (size 1) * sizeof(Book));books[size] *book;size;save_books(books, size);free(books);return 0;
}int load_books(Book **books, int *size) {FILE *file fopen(../data/books.txt, r);if (file NULL) {printf(无法打开文件\n);return -1;}*books NULL;*size 0;Book book;while (fscanf(file, %[^,],%[^,],%[^,],%[^,],%d\n, book.title, book.author, book.publisher, book.isbn, book.quantity) ! EOF) {*books realloc(*books, (*size 1) * sizeof(Book));(*books)[*size] book;(*size);}fclose(file);return 0;
}int modify_book(const char *isbn, const Book *book) {Book *books;int size;load_books(books, size);for (int i 0; i size; i) {if (strcmp(books[i].isbn, isbn) 0) {books[i] *book;break;}}save_books(books, size);free(books);return 0;
}int delete_book(const char *isbn) {Book *books;int size;load_books(books, size);int index -1;for (int i 0; i size; i) {if (strcmp(books[i].isbn, isbn) 0) {index i;break;}}if (index ! -1) {for (int i index; i size - 1; i) {books[i] books[i 1];}size--;}save_books(books, size);free(books);return 0;
}int search_books(const char *query, Book *result, int size) {Book *books;int books_size;load_books(books, books_size);int count 0;for (int i 0; i books_size; i) {if (strstr(books[i].title, query) ! NULL ||strstr(books[i].author, query) ! NULL ||strstr(books[i].publisher, query) ! NULL ||strstr(books[i].isbn, query) ! NULL) {if (count size) {result[count] books[i];} else {break;}}}free(books);return count;
}int save_books(const Book *books, int size) {FILE *file fopen(../data/books.txt, w);if (file NULL) {printf(无法打开文件\n);return -1;}for (int i 0; i size; i) {fprintf(file, %s,%s,%s,%s,%d\n,books[i].title,books[i].author,books[i].publisher,books[i].isbn,books[i].quantity);}fclose(file);return 0;
}main.c
#include book_management.hvoid print_menu() {printf(\n 图书管理系统 \n);printf(1. 添加图书\n);printf(2. 删除图书\n);printf(3. 修改图书信息\n);printf(4. 查找图书\n);printf(5. 展示所有图书\n);printf(6. 退出\n);printf(\n);printf(请选择你的操作: );
}void add_book() {Book book;printf(请输入书名: );scanf(%s, book.title);printf(请输入作者名: );scanf(%s, book.author);printf(请输入出版社: );scanf(%s, book.publisher);printf(请输入ISBN: );scanf(%s, book.isbn);printf(请输入库存量: );scanf(%d, book.quantity);add_new_book(book);
}void remove_book() {char isbn[14];printf(请输入你想要删除的图书的ISBN: );scanf(%s, isbn);delete_book(isbn);
}void update_book() {char isbn[14];printf(请输入你想要修改的图书的ISBN: );scanf(%s, isbn);Book book;printf(请输入新的书名: );scanf(%s, book.title);printf(请输入新的作者名: );scanf(%s, book.author);printf(请输入新的出版社: );scanf(%s, book.publisher);printf(请输入新的库存量: );scanf(%d, book.quantity);modify_book(isbn, book);
}void find_book() {char query[100];printf(请输入你的查询: );scanf(%s, query);Book books[10];int size search_books(query, books, 10);if (size 0) {printf(未找到相关图书。\n);} else {printf(找到以下图书\n);for (int i 0; i size; i) {printf(%s by %s, published by %s, ISBN: %s, quantity: %d\n,books[i].title, books[i].author, books[i].publisher, books[i].isbn, books[i].quantity);}}
}void show_all_books() {Book *books;int size;load_books(books, size);printf(图书库中的所有图书\n);for (int i 0; i size; i) {printf(%s by %s, published by %s, ISBN: %s, quantity: %d\n,books[i].title, books[i].author, books[i].publisher, books[i].isbn, books[i].quantity);}free(books);
}int main() {while (1) {print_menu();int option;scanf(%d, option);switch (option) {case 1:add_book();break;case 2:remove_book();break;case 3:update_book();break;case 4:find_book();break;case 5:show_all_books();break;case 6:printf(谢谢使用再见\n);return 0;default:printf(未知选项\n);break;}}return 0;
}books.txt
《红楼梦》,曹雪芹,人民文学出版社,9787020002207,10
《西游记》,吴承恩,人民文学出版社,9787020008728,15
《三国演义》,罗贯中,人民文学出版社,9787020008483,12
《水浒传》,施耐庵,人民文学出版社,9787020008728,20
《围城》,钱钟书,人民文学出版社,9787020002207,7
《活着》,余华,作家出版社,9787506365437,10
《平凡的世界》,路遥,人民文学出版社,9787020063155,9
《百年孤独》,加西亚·马尔克斯,南海出版公司,9787544253994,15
《1984》,乔治·奥威尔,北京十月文艺出版社,9787530216274,12
《动物农场》,乔治·奥威尔,人民文学出版社,9787020002207,8六界面展示 七项目资料
项目的资料及代码已整理打包有需要可取也可定制开发。后续会分享c,c,qt,python等语言的更多项目感谢关注。v:clzicheng
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912676.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!