首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言圖書借還系統完整實作教學

     編輯:關於C語言

專案簡介

單檔案 book.c 實作圖書借還管理,功能含:初始化、借書、還書、查詢、歷史記錄。VC6 編譯通過,遵循編碼規範,適合練習 C 語言模組化設計。

核心資料結構

#define MAX_BOOK_COUNT 10
#define MIN_BOOK_NUMBER 1000

typedef unsigned char UINT8;
typedef int BookNumber;

typedef enum { BOOK_IN, BOOK_OUT } BOOK_STATE_EM;
typedef enum { BOOK_OP_IN, BOOK_OP_OUT } BOOK_OP_EM;

typedef struct {
    UINT8 nHour, nMin, nSec;
} SYS_TIME;

typedef struct {
    BookNumber nNum;
    BOOK_STATE_EM emState;
    char szName[MAX_BOOK_NAME_LEN + 1];
} BOOK_INFO;

typedef struct {
    BOOK_INFO *pstBookInfo;
    BOOK_OP_EM emBookOption;
    SYS_TIME stOptionTime;
} BOOK_HIS_INFO;

typedef struct tagBookHisNode {
    BOOK_HIS_INFO stBookHisInfo;
    struct tagBookHisNode *pstNext;
} BOOK_HIS_NODE;

主要功能函數

  • cmdBooksInit():初始化 10 本書資料並建立鏈表頭。
  • cmdBooksBorrow/Return/Query/History():對應業務操作,更新狀態並記錄歷史。
  • GetUserCommand():解析使用者指令(init/borrow/return/query/history/exit)。
  • apiPrintBookInfo/History():格式化輸出書本狀態與歷史紀錄。

歷史紀錄鏈表管理

BOOL AddHisNode(BOOK_INFO *pBook, BOOK_OP_EM op) {
    BOOK_HIS_NODE *node = malloc(sizeof(BOOK_HIS_NODE));
    node->stBookHisInfo.pstBookInfo = pBook;
    node->stBookHisInfo.emBookOption = op;
    node->stBookHisInfo.stOptionTime = GetSysTime();
    node->pstNext = NULL;
    // 尾插法加入全域鏈表 g_pstHisLogHead
}

執行畫面

程式執行截圖

完整程式碼較長,已上傳附件,核心邏輯涵蓋:結構體設計、鏈表操作、時間戳記錄、指令解析與錯誤碼訊息對應表。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved