음성고등학교 로고이미지

RSS 페이스북 공유하기 트위터 공유하기 카카오톡 공유하기 카카오스토리 공유하기 네이버밴드 공유하기 프린트하기
2507 라용대 작품 제출
작성자 라용대 등록일 19.12.26 조회수 53
첨부파일
Calculator.zip (28.89KB) (다운횟수:23)
계산기 시연 영상.mp4 (2.01MB) (다운횟수:125)

솔루션 작품 제출합니다.

 

#include

#include

#include

#include

int main()

{

    int res,m;

    int type,i,j;

    int scnt=0,cnt1=0,cnt2=0;

    char ca[1000],cb[1000],cc[1000];

    int a,d,r,s=1,n,ty;//수열 계산기 변수

    start:

    if(scnt==0){

        printf("\n계산기의 종류를 선택하세요\n");

        Sleep(1000);

        printf("\n*숫자만 입력해주세요*\n");

        Sleep(1000);

        printf("\n1. 일반 계산기\n");

        Sleep(300);

        printf("\n2. 수열 계산기\n");

        Sleep(300);

        printf("\n0. 종료\n\n");

        scanf("%d",&type);

    }

    else{

        printf("\n계산기의 종류를 선택하세요\n");

        printf("\n*숫자만 입력해주세요*\n");

        printf("\n1. 일반 계산기\n");

        Sleep(300);

        printf("\n2. 수열 계산기\n");

        Sleep(300);

        printf("\n0. 종료\n\n");

        scanf("%d",&type);

    }

//계산기 종류

    if(type==1){ //일반 계산기수

        res=0;

        if(cnt1==0){

            printf("\n일반 계산기입니다\n");

            Sleep(1000);

            printf("\n연산하고자 하는 항의 개수를 입력하세요\n");

            Sleep(300);

            printf("\n0. 처음으로\n\n");

            scanf("%d",&m);

            if(m==0){

                scnt++;

                printf("\n처음으로 돌아갑니다\n");

                Sleep(1000);

                goto start;

            }

            Sleep(1000);

            printf("\n연산할 식을 입력하세요\n");

            Sleep(300);

            printf("\n*사칙연산만 허용됩니다\n");

            Sleep(300);

            printf("\n*\"/\"기호는 몫을 출력합니다\n");

            Sleep(300);

            printf("\n*괄호는 구현되지 않았습니다\n");

            Sleep(300);

            printf("\n*예시처럼 입력해주세요*\n\n예시 : 1+2*3=\n\n");

        }

        else{

            printf("\n일반 계산기입니다\n");

            printf("\n연산하고자 하는 항의 개수를 입력하세요\n");

            printf("\n0. 처음으로\n\n");

            scanf("%d",&m);

            if(m==0){

                scnt++;

                printf("\n처음으로 돌아갑니다\n");

                Sleep(1000);

                goto start;

            }

            else{

                printf("\n연산할 식을 입력하세요\n");

                Sleep(300);

                printf("\n*사칙연산만 허용됩니다\n");

                Sleep(300);

                printf("\n*\"/\"기호는 몫을 출력합니다\n");

                Sleep(300);

                printf("\n*괄호는 구현되지 않았습니다\n");

                Sleep(300);

                printf("\n*예시처럼 입력해주세요*\n\n예시 : 1+2*3=\n\n");

            }

        }

        for(i=0; i; i++){<="" p=""></m;>

            scanf("%d%c",&ca[i],&cb[i]);

        }

        for(i=0; i; i++){<="" p=""></m;>

            if(cb[i]=='*'){

                ca[i+1]=ca[i]*ca[i+1];

                ca[i]=ca[i-1];

                cb[i]=cb[i-1];

                ca[i-1]='\0';

                cb[i-1]='\0';

            }

            else if(cb[i]=='/'){

                ca[i+1]=(double)ca[i]/ca[i+1];

                ca[i]=ca[i-1];

                cb[i]=cb[i-1];

                ca[i-1]='\0';

                cb[i-1]='\0';

            }

            //printf("%d%c",ca[i],cb[i]);

        }

        for(i=0; i; i++){<="" p=""></m;>

            switch(cb[i]){

                case '+':

                    if(ca[i+1]=='\0'){

                        ca[i+1]=ca[i];

                        ca[i]='\0';

                        cb[i+1]=cb[i];

                        cb[i]='\0';

                    }

                    ca[i+1]=ca[i]+ca[i+1];

                    break;

                case '-':

                    if(ca[i+1]=='\0'){

                        ca[i+1]=ca[i];

                        ca[i]='\0';

                        cb[i+1]=cb[i];

                        cb[i]='\0';

                    }

                    ca[i+1]=ca[i]-ca[i+1];

                    break;

                case '=':

                    printf("\n계산 중입니다...\n");

                    Sleep(1000);

                    printf("\n입력하신 식의 결과는 %d 입니다\n",ca[m-1]);

                    break;

            }

        }

        Sleep(1000);

        printf("\n처음으로 돌아갑니다\n");

        Sleep(1000);

        scnt++;

        cnt1++;

        goto start;

    }

    else if(type==2){ //수열 계산기

        type2:

        if(cnt2==0){

            printf("\n수열 계산기입니다\n");

            Sleep(1000);

            printf("\n어떤 수열을 계산할지 고르세요\n");

            Sleep(500);

        }

        else{

            printf("\n수열 계산기입니다\n");

            printf("\n어떤 수열을 계산할지 고르세요\n");

        }

            printf("\n1. 등차수열\n");

            Sleep(300);

            printf("\n2. 등비수열\n");

            Sleep(300);

            printf("\n0. 처음으로\n\n");

            scanf("%d",&ty);

        if(ty==1){//등차수열 계산기

            printf("\n처음 값과 공차, 그리고 몇 번째 항인지 입력하세요\n");

            Sleep(1000);

            printf("\n처음 값(a) : ");

            Sleep(1000);

            scanf("%d",&a);

            printf("\n공차(d) : ");

            Sleep(1000);

            scanf("%d",&d);

            printf("\n몇 번째 항?(n) : ");

            Sleep(1000);

            scanf("%d",&n);

            printf("\n계산 중입니다...\n");

            Sleep(1000);

            printf("\n입력하신 등차수열의 %d 번째 항은 %d 입니다\n",n,a+(n-1)*d);

            Sleep(1000);

            printf("\n처음으로 돌아갑니다\n");

            cnt2++;

            goto start;

        }

        else if(ty==2){//등비수열 계산기

            printf("\n처음 값과 공비, 그리고 몇 번째 항인지 입력하세요\n");

            Sleep(1000);

            printf("\n처음 값(a) : ");

            Sleep(1000);

            scanf("%d",&a);

            printf("\n공비(r) : ");

            Sleep(1000);

            scanf("%d",&r);

            printf("\n몇 번째 항?(n) : ");

            Sleep(1000);

            scanf("%d",&n);

            for(int i=1; i<=n-1; i++){

                s=s*r;

            }

            printf("\n계산 중입니다...\n");

            Sleep(1000);

            printf("\n입력하신 등비수열의 %d 번째 항은 %d 입니다\n",n,a*s);

            Sleep(1000);

            printf("\n처음으로 돌아갑니다\n");

            cnt2++;

            goto start;

        }

        else if(ty==0){

            printf("\n수열 선택 화면으로 돌아갑니다\n");

            Sleep(1000);

            cnt2++;

            goto type2;

        }

        else{

            printf("\n처음으로 돌아갑니다\n");

            goto start;

        }

    }

    else if(type==0){ //프로그램 종료

        printf("\n연산을 마칩니다\n");

    }

    else{

        printf("\n처음으로 돌아갑니다\n");

        Sleep(1000);

        scnt++;

        goto start;

    }

}

이전글 2505 김준호 작품 보고서
다음글 20415 송민주 솔루션 보고서