亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C語言實現圖書管理系統(文件數據庫)

小云
132
2023-08-08 15:07:47
欄目: 編程語言

以下是一個簡單的C語言實現的圖書管理系統,使用文件數據庫進行數據的存儲和讀取。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定義圖書結構體
typedef struct Book {
int id;
char title[100];
char author[100];
float price;
} Book;
// 添加圖書
void addBook(FILE* fp) {
Book book;
printf("請輸入圖書ID: ");
scanf("%d", &book.id);
printf("請輸入圖書標題: ");
scanf("%s", book.title);
printf("請輸入圖書作者: ");
scanf("%s", book.author);
printf("請輸入圖書價格: ");
scanf("%f", &book.price);
// 寫入文件
fseek(fp, 0, SEEK_END);
fwrite(&book, sizeof(Book), 1, fp);
printf("圖書添加成功\n");
}
// 顯示所有圖書
void displayBooks(FILE* fp) {
Book book;
rewind(fp); // 將文件指針設置到文件開頭
printf("圖書列表:\n");
while (fread(&book, sizeof(Book), 1, fp) != 0) {
printf("ID: %d\n", book.id);
printf("標題: %s\n", book.title);
printf("作者: %s\n", book.author);
printf("價格: %.2f\n", book.price);
printf("---------\n");
}
}
// 查找圖書
void searchBook(FILE* fp) {
int id;
Book book;
printf("請輸入要查找的圖書ID: ");
scanf("%d", &id);
while (fread(&book, sizeof(Book), 1, fp) != 0) {
if (book.id == id) {
printf("ID: %d\n", book.id);
printf("標題: %s\n", book.title);
printf("作者: %s\n", book.author);
printf("價格: %.2f\n", book.price);
return;
}
}
printf("未找到該圖書\n");
}
int main() {
FILE* fp;
int choice;
fp = fopen("books.dat", "ab+"); // 打開文件,如果文件不存在則創建
if (fp == NULL) {
printf("文件打開失敗\n");
exit(1);
}
while (1) {
printf("圖書管理系統\n");
printf("1. 添加圖書\n");
printf("2. 顯示所有圖書\n");
printf("3. 查找圖書\n");
printf("0. 退出\n");
printf("請選擇操作: ");
scanf("%d", &choice);
switch (choice) {
case 1:
addBook(fp);
break;
case 2:
displayBooks(fp);
break;
case 3:
searchBook(fp);
break;
case 0:
fclose(fp); // 關閉文件
exit(0);
break;
default:
printf("無效的選擇\n");
break;
}
}
return 0;
}

這個程序使用了一個Book結構體來表示圖書信息,包括ID、標題、作者和價格。圖書信息被存儲在一個二進制文件中,每次操作時將文件指針設置到文件開頭或文件末尾來讀取或寫入數據。在程序運行過程中,用戶可以選擇添加圖書、顯示所有圖書或查找圖書。

0
阿坝县| 文安县| 乌拉特前旗| 陈巴尔虎旗| 聂拉木县| 都安| 汤原县| 阳山县| 汤阴县| 巫山县| 松滋市| 安丘市| 黄梅县| 安新县| 甘德县| 桑植县| 阿鲁科尔沁旗| 五大连池市| 芮城县| 湟源县| 黎平县| 龙游县| 永福县| 长沙市| 肇源县| 红原县| 霍州市| 佛冈县| 普格县| 廊坊市| 元氏县| 桓台县| 铜川市| 隆子县| 运城市| 阳谷县| 正镶白旗| 昌江| 平江县| 竹山县| 甘德县|