(一)模块化编程示例:求最大公约数(GCD)
#include <iostream>
using namespace std;
// 函数:求两个整数的最大公约数
int gcd(int n1, int n2){
int gcdVal = 1; // 初始公约数为1
for (int k = 2; k <= n1 && k <= n2; k++){
if (n1 % k == 0 && n2 % k == 0){
gcdVal = k; // 更新最大公约数
}
}
int main(){
int a, b;
cout << "输入两个正整数:";
cin >> a >> b;
cout << "最大公约数:" << gcd(a, b) << endl;
return 0;
}
(二)逐步细化(Stepwise Refinement)
实现。
示例:打印日历的函数分解
PrintCalendar(主函数)
readInput(读取年份/月份)
printMonth(打印单个月份日历)
printMonthTitle(打印月份标题)
printMonthBody(打印日历主体)
getNumOfDaysInMonth(获取当月天数)
getStartDay(获取当月第一天是星期几)
getTotalNumOfDays(获取从基准年到该年的总天数)
isLeapYear(判断是否为闰年)
getMonthName(获取月份名称)