게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
와!! C언어!!
게시물ID : programmer_13875짧은주소 복사하기
작성자 : YouHyeok
추천 : 2
조회수 : 733회
댓글수 : 9개
등록시간 : 2015/10/14 23:52:00
안녕하세요 얼마전까지 맘을 못잡고 다른 언어 추천해주세요 뭐 이런식의 글을 남긴 사람입니당.
근데 생각해보니 그 시간에 C언어 공부하면 많이 할것 같아서 하기 싫어도 한번 꾹 참고 해봤습니다.
결과는 아주 좋더군요.
함수를 공부하고 나서 아 이제 내가 원하는 프로그램을 한번 제작해봐야겠다.
딱히 생각나는게 없어서 계산기를 붙잡고 함수로 여러가지를 분할해서 한번 제작을 해봤습니다.
덧셈만 구현했습니당.

/**/

#include <stdio.h>
#include <Windows.h>

void StartView();
void SecondView();
void FuncSelectView();
void CalcSelectView();
void MainMessageView();
void CalcRetryView();
void ProgramExit();

int AddFunc();
int MinusFunc();
int MultipleFunc();
int DivideFunc();


int main(void)
{
    StartView();
    SecondView();
    FuncSelectView();

    return 0;
}

void StartView(void)
{
    int i;
    char star = '*';

    printf("%50s \n", "Welcome To My Program!!");
    printf("%70s","Loading ");

    for (i = 0; i < 3; i++)
    {    
        putchar(star);
        Sleep(1000);
    }
    system("cls");
}

void SecondView(void)
{
    int i;
    int j;
    char star = '*';
    char escape = '\n';

    for (i = 0; i < 5; i++)
    {
        j = 0;
        for (j = 0; j < i; j++)
            putchar(star);

        putchar(escape);
    }

    for (i = 4; i >= 1; i--)
    {
        j = 0;
        for (j = 0; j < i; j++)
            putchar(star);
        putchar(escape);
    }
    printf("\n\n");
}

void FuncSelectView(void)
{
    int input = 0;


    printf("1. 계산기\n\n");
    printf("선택해주세요: ");
    scanf_s("%d", &input);

    switch (input)
    {
    case 1:
        CalcSelectView();
        break;
    }
}

void CalcSelectView(void)
{
    int input;
    int total = 0;


    printf("\n\n");
    printf("1. 덧셈\n");
    printf("2. 뺄셈\n");
    printf("3. 곱셈\n");
    printf("4. 나눗셈\n");
    printf("\n\n");

    printf("선택: ");
    scanf_s("%d", &input);

    system("cls");

    switch (input)
    {
    case 1:
        total = AddFunc();
        break;
    case 2:
        total = MinusFunc();
        break;
    case 3:
        total = MultipleFunc();
        break;
    case 4:
        total = DivideFunc();
        break;
    }

    printf("결과: %d \n", total);
    MainMessageView();
}

void MainMessageView()
{
    char select;
    while (getchar() != '\n');

    printf("메인 메뉴로 가시겠습니까?(Y/N) : ");
    scanf_s("%c", &select);

    switch (select)
    {
    case 'Y':
    case 'y':
        system("cls");
        FuncSelectView();
    case 'N':
    case 'n':
        system("cls");
        CalcRetryView();
    }
    
}

void CalcRetryView()
{
    char select;
    
    while (getchar() != '\n');

    printf("계산기 다시시작?(Y/N) : ");
    scanf_s("%c", &select);

    switch (select)
    {
    case 'Y':
    case 'y':
        system("cls");
        CalcSelectView();
    case 'N':
    case 'n':
        system("cls");
        ProgramExit();
    }


}

void ProgramExit()
{
    int i;

    printf("종료");
    Sleep(1000);
    system("cls");

    for (i = 3; i > 0; i--)
    {
        printf("%d", i);
        Sleep(500);
        system("cls");
        Sleep(500);
    }
    exit(1);
}

int AddFunc(void)
{
    int input1, input2;
    int result = 0;

    printf("두 정수를 입력해주세요: ");
    scanf_s("%d %d", &input1, &input2);

    result = input1 + input2;

    return result;
}

int MinusFunc(void)
{
    int input1, input2;
    int result = 0;

    printf("두 정수를 입력해주세요: ");
    scanf_s("%d %d", &input1, &input2);

    result = input1 + input2;

    return result;
}

int MultipleFunc(void)
{
    int input1, input2;
    int result = 0;

    printf("두 정수를 입력해주세요: ");
    scanf_s("%d %d", &input1, &input2);

}


함수를 공부하면서 C언어 할 맛이 난다는것을 알게 되었습니당!

이때까지 저에게 여러가지 답변을 해주신 분들께 진심으로 감사드립니다.

앞으로 열심히 공부하겠습니당!! 넙죽!!


그리고 1차원 배열을 공부하니 갑자기 드는 생각(아직 2차원 공부 안했습니당.)

'음 예전에 게임 소스 보면서 분명 모양을 찍는게 있었는데 그때 2차원 배열에 0과 1의 값을 넣은것 같구, 뭔가 1에 해당하는 부분이 모양으로 출력되었던것 같은뎅~?'


그래서 갑자기 원리가 떠올랐습니다 int형 2차 배열을 선언과 동시에 초기화 할때 대충 0과 1로 모양을 만들고 for문을 중첩시켜 각각 y와 x 좌표를 찍어낸 결과

모양이 출력되더군요!! 후!! 암튼 엄청난 짜릿함을 느꼈습니당!!


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호