這是一個經典的 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);
}
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,實現插件式擴展這個「簡單計算器」雖小,但五臟俱全,是無數 C 語言學習者的第一個完整專案里程碑。