這是一個基於 **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 代碼**。請根據目標平台選擇:
提供的 C 代碼為 **教學/歷史參考價值**,展示了 DOS 時代圖形界面、輸入處理、狀態機計算邏輯。現代開發請使用上述現代技術棧重寫,核心計算邏輯 (狀態機:輸入數字 -> 運算符 -> 輸入數字 -> 計算) 可直接移植。