C语言实现图书管理系统(文件数据库)攻略
本攻略将介绍如何使用C语言实现基础的图书管理系统,数据存储采用文件数据库。本攻略包含以下内容:
- 设计数据结构
- 实现操作函数
- 完成主函数
- 示例1: 添加书籍
- 示例2: 按名称查询书籍
设计数据结构
首先,图书管理系统需要存储书籍的信息,因此需要定义一个书籍结构体,包含书籍的相关信息。
struct Book {
int id; // 书籍编号
char name[50]; // 书籍名称
char author[50]; // 作者
char press[50]; // 出版社
float price; // 价格
int quantity; // 库存
};
实现操作函数
接下来需要实现基本的操作函数,包括添加书籍、删除书籍、修改书籍信息以及查询书籍。这里只列举添加、查询两个操作函数代码作为示例。
添加书籍
void addBook(struct Book book) {
FILE *fp;
fp = fopen("database.txt", "a+");
fprintf(fp, "%d %s %s %s %f %d\n", book.id,
book.name,
book.author,
book.press,
book.price,
book.quantity);
fclose(fp);
}
该函数首先打开名为database.txt
的文本文件,使用fprintf函数在文件末尾写入一行表示书籍信息的字符串,最后关闭文件。
查询书籍
void searchBook(char *name) {
FILE *fp;
fp = fopen("database.txt", "r");
int found = 0;
struct Book book;
while(!feof(fp)) {
fscanf(fp, "%d %s %s %s %f %d\n", &book.id,
book.name,
book.author,
book.press,
&book.price,
&book.quantity);
if(strcmp(book.name, name) == 0) {
printf("%d %s %s %s %f %d\n", book.id,
book.name,
book.author,
book.press,
book.price,
book.quantity);
found = 1;
break;
}
}
if(!found) {
printf("Book not found.\n");
}
fclose(fp);
}
该函数首先打开名为database.txt
的文本文件,使用fscanf函数从文件中读取一行表示书籍信息的字符串,如果书名与参数匹配,则将关于该书籍的信息输出,found标记为1,退出循环。如果遍历完所有行后仍未找到,则提示“Book not found.”,最后关闭文件。
完成主函数
最后,在主函数中实现用户选择操作的过程即可。以下为伪代码。
int main() {
while(1) {
switch(用户选择) {
case 1: // 添加书籍
输入书籍信息;
addBook(书籍信息);
break;
case 2: // 删除书籍
输入书籍编号;
deleteBook(书籍编号);
break;
case 3: // 修改书籍信息
输入书籍编号;
输入修改后信息;
editBook(书籍编号, 修改后信息);
break;
case 4: // 查询书籍
输入书籍名称;
searchBook(书籍名称);
break;
case 5: // 退出程序
return 0;
break;
default:
printf("Invalid operation.\n");
break;
}
}
}
示例1: 添加书籍
假设要添加名为《C语言程序设计》的书籍,作者为“小明”,出版社为“清华大学出版社”,价格为180元,库存为10本,书籍编号自动生成。
- 用户选择添加书籍操作。
- 系统提示用户输入书籍信息。
- 用户输入书籍信息。
- 系统调用addBook函数,将书籍信息写入数据库。
- 系统提示操作成功。
示例2: 按名称查询书籍
假设要查询名为《Java编程思想》的书籍。
- 用户选择查询书籍操作。
- 系统提示用户输入书籍名称。
- 用户输入书籍名称。
- 系统调用searchBook函数,从数据库中检索与给定名称相匹配的书籍信息。
- 系统输出匹配的书籍信息,如果未找到,则输出“Book not found.”。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现图书管理系统(文件数据库) - Python技术站