首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言簡單計算器源代碼:圖形界面版 (BGI 圖形庫)

     編輯:程式設計綜合問答

代碼說明

這是一個基於 **Borland BGI 圖形庫** (graphics.h) 的 DOS 時代計算器程序,包含圖形界面、鼠標/鍵盤交互、四則運算及乘方、取模功能。**現代環境無法直接編譯運行**,需配置 Turbo C / DOSBox 或移植至現代圖形庫 (SDL、Qt、Win32 GDI、Web Canvas 等)。

核心邏輯結構


// 主流程
int main() {
    initialize();      // 初始化圖形模式
    computer();        // 運行計算器主循環
    closegraph();      // 關閉圖形模式
    return 0;
}

// 計算器核心
void computer() {
    // 1. 繪製界面 (窗口、顯示區、按鈕網格)
    // 2. 顯示光標 (自定義箭頭圖形)
    // 3. 事件循環:
    //    - 獲取鍵盤輸入 (方向鍵移動光標、回車確認)
    //    - 更新光標位置
    //    - 處理按鈕點擊: 數字輸入、運算符、等號計算、清零、退出
    // 4. 計算邏輯: 兩操作數 + 運算符 -> 結果
}

關鍵模塊

模塊功能
initialize()初始化 BGI 圖形驅動,獲取屏幕分辨率、調色板
mwindow()繪製主窗口邊框、標題
drawboder()繪製視口邊框
arrow()創建自定義鼠標/光標圖形 (多邊形),用 XOR 模式顯示/隱藏
specialkey()讀取 BIOS 鍵盤掃描碼,識別方向鍵、回車、功能鍵
按鈕佈局4行5列:數字 0-9、小數點、運算符 + - * / ^ %、清零 C、退出 Q、等號 =
計算邏輯雙操作數模式:輸入第一數 -> 運算符 -> 輸入第二數 -> 等號 -> 顯示結果

現代化移植建議

**不要在現代項目中使用 BGI 代碼**。請根據目標平台選擇:

  • Windows 桌面:C# WinForms/WPF、C++ Qt/Win32 API、Python Tkinter/PyQt
  • Web:HTML5 Canvas / JavaScript (最簡單、跨平台)
  • 嵌入式/跨平台 C/C++:SDL2、Dear ImGui、LVGL、Qt
  • 學習圖形編程:Processing (Java/JS)、p5.js、Raylib (C)

極簡 Web 計算器示例 (可直接運行)






總結

提供的 C 代碼為 **教學/歷史參考價值**,展示了 DOS 時代圖形界面、輸入處理、狀態機計算邏輯。現代開發請使用上述現代技術棧重寫,核心計算邏輯 (狀態機:輸入數字 -> 運算符 -> 輸入數字 -> 計算) 可直接移植。

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