Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 작성하는 해피 여성의 날 축하 프로그램


전 세계적으로 기념되는 여성의 날을 맞아, C++ 프로그래밍 언어로 축하 도형과 메시지를 출력하는 프로그램을 만들어 보았습니다. 이 코드는 콘솔 화면에 '#' 문자로 이루어진 원 안에 '7 Oct'와 'Happy Women's Day'라는 문구를 함께 출력해, 텍스트 기반의 특별한 축하 카드를 완성합니다.

코드 예제

아래 코드는 두 부분으로 구성되어 있습니다. 첫 번째 루프는 원 형태의 상단 디자인을 출력하고, 두 번째 루프는 세로 줄과 가로 줄로 이루어진 하단 패턴을 그려냅니다.

#include <iostream>
using namespace std;
int main(){
    // 디자인의 크기 초기화
    int n = 5;

    // 원(디자인의 윗부분)을
    // 출력하기 위한 루프

    // 디자인의 높이를 제어하는 바깥쪽 루프
    for (int i = 0; i <= 2 * n; i++) {
        // 너비를 제어하는 안쪽 루프
        if (i == n)
            cout << " "<< "7 Oct";
        for (int j = 0; j <= 2 * n; j++) {
            // 각 점과 중심 사이의 거리 계산
            float center_dist = sqrt((i - n) * (i - n) + (j - n) * (j - n));
            if (center_dist > n - 0.5 && center_dist < n + 0.5)
                cout << "#";
            else
                cout << " ";
        }
        // HappY Women's DaY 출력
        if (i == n)
            cout << " "<< "Happy Women's Day";
        cout << endl;
    }

    // 아랫부분을 출력하기 위한 루프

    // 높이를 제어하는 바깥쪽 루프
    for (int i = 0; i <= n; i++) {
        // 패턴 위치 조정

        // 가로줄을 출력하기 위한 루프
        if (i == (n / 2) + 1) {
            for (int j = 0; j <= 2 * n; j++)
                if (j >= (n - n / 2) && j <= (n + n / 2))
                    cout << "*";
                else
                    cout << " ";
        }
        else {
            for (int j = 0; j <= 2 * n; j++) {
                if (j == n)
                    cout << "*";
                else
                    cout << " ";
            }
        }
        cout << endl;
    }
}

코드 동작 원리

원 그리기: 각 좌표 (i, j)가 중심점 (n, n)으로부터 얼마나 떨어져 있는지 피타고라스 정리를 이용해 계산합니다(center_dist). 이 거리가 반지름 n의 근처 범위에 있으면 '#'을 출력하여 원의 테두리를 자연스럽게 완성합니다.

하단 패턴: 중앙 열(j == n)에는 '*'를 출력해 세로 줄을 그리고, 중간 위치에서는 일정 범위의 좌표에만 '*'를 출력해 가로 줄을 만듭니다.

참고: sqrt() 함수를 사용하므로, 사용하는 컴파일러나 환경에 따라 #include <cmath> 헤더를 추가해야 정상적으로 컴파일될 수 있습니다.

실행 결과

위 코드를 컴파일하고 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

C++로 작성하는 해피 여성의 날 축하 프로그램