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

C 語言入門專案:手寫多功能計算器(菜單驅動、函數模塊化)

     編輯:關於C語言

C 語言入門專案:手寫多功能計算器(菜單驅動、函數模塊化)

這是一個經典的 C 語言入門專案:基於終端機的多功能計算器。支援加減乘除、取餘、階乘、累加、階乘累加八大功能,採用菜單驅動 + 函數模塊化架構,展示了 switch-case、do-while 迴圈、函數分解、格式化輸入輸出等核心語法的綜合運用。

程式架構總覽

main()
  └─ do-while 迴圈
       ├─ system("cls") 清屏
       ├─ displayMenu() 顯示菜單
       ├─ scanf 讀取選項
       ├─ switch 分發功能函數
       └─ system("pause") 暫停

核心代碼模組

菜單顯示與主迴圈

void displayMenu() {
    printf("*** Welcome to Simple Calculator ***\n");
    printf("Author: xiaobo\n");
    printf("1. Add\n2. Subtract\n3. Multiply\n4. Divide\n");
    printf("5. Modulo\n6. Factorial\n7. Accumulate\n8. Factorial Sum\n");
    printf("0. Exit\n");
}

int main() {
    int n;
    do {
        system("color 2e"); // 綠字黑背景
        system("cls");
        displayMenu();
        scanf("%d", &n);
        switch (n) {
            case 1: add(); break;
            case 2: sub(); break;
            case 3: multiply(); break;
            case 4: divide(); break;
            case 5: yushu(); break;
            case 6: jiecheng(); break;
            case 7: leijia(); break;
            case 8: jiechengleijia(); break;
            case 0: exit(0);
        }
        system("pause");
    } while (1);
}

四則運算模塊(雙操作數)

void add() {
    double n1, n2;
    printf("Enter two numbers: ");
    scanf("%lf %lf", &n1, &n2);
    printf("Sum = %.2lf\n", n1 + n2);
}
// sub(), multiply(), divide() 結構同理

取餘(整數)

void yushu() {
    long n1, n2;
    printf("Enter two integers: ");
    scanf("%ld %ld", &n1, &n2);
    printf("Remainder = %ld\n", n1 % n2);
}

階乘(迴圈累乘)

void jiecheng() {
    double n, result = 1;
    printf("Enter an integer: ");
    scanf("%lf", &n);
    for (double i = 1; i <= n; i++) result *= i;
    printf("Factorial = %.0lf\n", result);
}

累加(哨兵結束)

void leijia() {
    double n, sum = 0;
    printf("Enter numbers (>0 to continue, <0 to stop): ");
    while (scanf("%lf", &n), n >= 0) sum += n;
    printf("Total = %.2lf\n", sum);
}

階乘累加(固定 5 個數)

void jiechengleijia() {
    long sum = 0;
    printf("Enter 5 integers: ");
    for (int i = 0; i < 5; i++) {
        long x, fact = 1;
        scanf("%ld", &x);
        for (long j = x; j >= 1; j--) fact *= j;
        sum += fact;
    }
    printf("Sum of factorials = %ld\n", sum);
}

學習價值總結

知識點體現位置
函數聲明與定義頂部聲明,底部實現
模塊化分解每功能一個函數
菜單驅動迴圈do-while + switch
格式化輸入輸出scanf/printf 格式符
迴圈控制for/while 累加、累乘
系統調用system("cls")、color
類型選擇double/long 區分場景

改進方向

  • 輸入驗證(非數字、除零保護)
  • 用函數指針表替換 switch,實現插件式擴展
  • 加入科學計算功能(sin、log、冪)
  • 移植到圖形界面(Win32/QT/GTK)

這個「簡單計算器」雖小,但五臟俱全,是無數 C 語言學習者的第一個完整專案里程碑。

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