系列: C++
cpp
74 行
· 更新於 2026-04-03
main.cpp
C++/Part4_現代CPP/Ch19_命名空間與多檔案專案/header_example/main.cpp
// main.cpp — 示範如何使用多檔案專案中的 MathUtils 類別
// 編譯方式(需要與 math_utils.cpp 一起編譯):
// g++ -std=c++17 -Wall -o program main.cpp math_utils.cpp
// 或使用 Makefile:
// make
#include <iostream>
#include <string>
#include "math_utils.h"
void printSeparator(const std::string& title) {
std::cout << "\n" << std::string(50, '=') << "\n";
std::cout << title << "\n";
std::cout << std::string(50, '=') << "\n";
}
int main() {
printSeparator("MathUtils 多檔案專案示範");
// --- 四則運算 ---
printSeparator("四則運算");
double a = 15.5, b = 4.2;
std::cout << a << " + " << b << " = " << MathUtils::add(a, b) << "\n";
std::cout << a << " - " << b << " = " << MathUtils::subtract(a, b) << "\n";
std::cout << a << " * " << b << " = " << MathUtils::multiply(a, b) << "\n";
std::cout << a << " / " << b << " = " << MathUtils::divide(a, b) << "\n";
// 測試除以零的例外處理
try {
std::cout << "嘗試 10 / 0 = ";
std::cout << MathUtils::divide(10.0, 0.0) << "\n";
} catch (const std::invalid_argument& e) {
std::cout << "捕獲例外:" << e.what() << "\n";
}
// --- 階乘 ---
printSeparator("階乘");
for (int i = 0; i <= 10; ++i) {
std::cout << i << "! = " << MathUtils::factorial(i) << "\n";
}
// 測試負數的例外處理
try {
std::cout << "嘗試 (-1)! = ";
std::cout << MathUtils::factorial(-1) << "\n";
} catch (const std::invalid_argument& e) {
std::cout << "捕獲例外:" << e.what() << "\n";
}
// --- 質數判斷 ---
printSeparator("質數判斷");
std::cout << "1 到 50 之間的質數:";
for (int i = 1; i <= 50; ++i) {
if (MathUtils::isPrime(i))
std::cout << i << " ";
}
std::cout << "\n";
// --- 最大公因數 ---
printSeparator("最大公因數 (GCD)");
std::cout << "gcd(12, 8) = " << MathUtils::gcd(12, 8) << "\n";
std::cout << "gcd(100, 75) = " << MathUtils::gcd(100, 75) << "\n";
std::cout << "gcd(17, 13) = " << MathUtils::gcd(17, 13) << "\n";
std::cout << "gcd(0, 5) = " << MathUtils::gcd(0, 5) << "\n";
std::cout << "gcd(-24, 18) = " << MathUtils::gcd(-24, 18) << "\n";
printSeparator("程式結束");
return 0;
}
相關文章
C++
c
更新於 2026-07-21
deviceAlpha.h
deviceAlpha.h — c source code from the C++ learning materials (C++/Mavis_Homework/FinalProject/deviceAlpha.h).
閱讀文章 →
C++
c
更新於 2026-07-21
finalproject.c
finalproject.c — c source code from the C++ learning materials (C++/Mavis_Homework/FinalProject/finalproject.c).
閱讀文章 →
C++
cpp
更新於 2026-07-21
finalproject.cpp
finalproject.cpp — cpp source code from the C++ learning materials (C++/Mavis_Homework/FinalProject/finalproject.cpp).
閱讀文章 →
C++
c
更新於 2026-07-21
deviceAlpha.h
deviceAlpha.h — c source code from the C++ learning materials (C++/Mavis_Homework/Lab8/deviceAlpha.h).
閱讀文章 →
C++
c
更新於 2026-07-21
lab8.c
lab8.c — c source code from the C++ learning materials (C++/Mavis_Homework/Lab8/lab8.c).
閱讀文章 →
C++
cpp
更新於 2026-07-21
lab8.cpp
lab8.cpp — cpp source code from the C++ learning materials (C++/Mavis_Homework/Lab8/lab8.cpp).
閱讀文章 →