C/명품 C언어 프로젝트(안기수 저)

명품 C언어 프로젝트 8.4장 심리테스트

꾸준함. 2017. 9. 2. 15:49

/*

심리테스트 프로그램

*/

#include <stdio.h>

#include <conio.h>

#include <Windows.h>

 

void gotoxy(int x, int y);

void display_text(int count);

void display_question(void);

void display_result(void);

void intro_game(void);

char sol[10][11]; //사용자의 입력값을 저장할 배열

 

int main(void)

{

        intro_game();

        display_question();

        printf("\n문제풀이가 모두 끝났습니다\n");

        printf("\n\n풀이를 보려면 아무키나 누르시오");

        getch();

        display_result();

        return 0;

}

 

void gotoxy(int x, int y)

{

        COORD Pos = { x - 1, y - 1 };

        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);

}

 

//질문과 질문 사이에 진행 과정을 출력하는 함수 display_text

void display_text(int count)

{

        gotoxy(1, 2);

        printf("다음 문제를 읽고 답을 입력하시오\n\n");

        printf("(%d번 문제)\n\n", count + 1);

}

 

//심리테스트의 질문을 출력하고, 사용자의 입력 값을 처리하는 함수 display_question

void display_question(void)

{

        FILE *fp1;

        char chr1[82];

        int line = 5, count = 0;

        char *file1 = "C:\\심리테스트질문.txt";

        fp1 = fopen(file1, "r");

        system("cls");

        while (!feof(fp1))

        {

               fgets(chr1, 80, fp1);

               if (chr1[0] == 10) //질문과 질문 사이를 개행으로 구분

               {

                       display_text(count);

                       gotoxy(1, line);

                       scanf("%s", sol[count]);

                       system("cls");

                       line = 5;

                       count++;

               }

               else

               {

                       gotoxy(1, line++);

                       printf("%s", chr1);

               }

        }

        display_text(count);

        gotoxy(1, line);

        scanf("%s", sol[count]);

        fclose(fp1);

}

 

//심리 테스트의 해설과 입력 값을 출력하는 함수 display_result

void display_result(void)

{

        FILE *fp2;

        char chr1[82];

        int line = 5, count = 0;

        char *file2 = "C:\\심리테스트해설.txt";

        fp2 = fopen(file2, "r");

        system("cls");

        while (!feof(fp2))

        {

               fgets(chr1, 80, fp2);

               if (chr1[0] == 10) //질문과 질문 사이를 개행으로 구분

               {

                       gotoxy(1, line + 1);

                       printf("당신의 답은:%s\n", sol[count]);

                       printf("다음문제의 해설은 아무키나 누르시오");

                       getch();

                       system("cls");

                       line = 5;

                       count++;

               }

               else

               {

                       gotoxy(1, line++);

                       printf("%s", chr1);

               }

        }

        gotoxy(1, line + 1);

        printf("당신의 답은:%s\n", sol[count]);

        fclose(fp2);

}

 

//심리테스트에 대한 설명을 출력하는 함수 intro_game

void intro_game(void)

{

        system("cls");

        printf("심리테스트 게임\n\n");

        printf("제시되는 문제에 모두 답을 하고나면\n\n");

        printf("해설이 출력됩니다\n\n");

        printf("아무키나 누르면 시작합니다");

        getch();

}

 

[심리테스트 질문]

[심리테스트 해설]


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~


[참고] 명품 C언어 프로젝트 안기수 저


반응형