1580, 78/79 회원가입  로그인  
   sihun1113
   <샤오쓰 타로>5.안내문표시pri.h

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1785 [복사]


우선 안내문은 저번강좌에 올릴려고 했으나 내용이 길어서 따로 추출해서 올려드립니다.





자.이번 강좌는 안내문 만들기입니다.



그냥 생각해보면 별것 없어보입니다.



cout만 하면 되잖아~ 라고 생각하시는 분들이 대부분이실 거라고 생각합니다.



하지만 저처럼 JQ가 뛰어난(짠머리) 분들은 재탕(재활용성)을 생각하시지요



그래서 만들었습니다.





자자..JQ짠머리의 산실..



      private:

              //안내문
              string ct1;//중간 안내문 1페이지 1번째 줄
              string ct2;//중간 안내문 1페이지 2번째 줄
              string ct3;//중간 안내문 1페이지 3번째 줄
              string ct4;//중간 안내문 1페이지 4번째 줄
              string ct5;//중간 안내문 2페이지 1번째 줄
              string ct6;//중간 안내문 2페이지 2번째 줄
              string ct7;//중간 안내문 2페이지 3번째 줄
              string ct8;//중간 안내문 2페이지 4번째 줄
              string ct9;//중간 안내문 3페이지 1번째 줄
              string ct10;//중간 안내문 3페이지 2번째 줄
              string ct11;//중간 안내문 3페이지 3번째 줄
              string ct12;//중간 안내문 3페이지 4번째 줄
              string ct0;//중간 안내문 줄 지우기

              int pp;//중간 안내문 페이지 변수 기본은0으로1페이지 2는2p 3은 3p이다.



입니다..총 중간 안내문은 최대 3페이지가 되구요



이렇게 string을 남발하는 투박한 프로그래밍을 하셔도 되며



배열로 깔끔하게 처리를 하셔도 됩니다.



각자의 취향과 실력에 맡길게요. 전 일단 투박하게 일일히 다했습니다.



왜 string을 많이 만들었느냐고요?



음 대충 눈치 채신분들도 보이는군요.



그렇습니다. 안내문을 출력할때카다 cout을 하지않고 저위의 string들을 cout해주는 함수를 불러오기 위해서입니다.



ct1~ct12까지의 내용만 바꿔주고 cout을 해주는 함수를 따로만들어 호출만하게되면



소스의 길이는 더 줄어들겠지요.



자 예를 들어보이겠습니다.



                             else if(imenu==2)//종료가 선택되어 있으면
                             {
                                        //중간 안내문 내용 저장
                                        helpcho();//ct초기화.
                                        ct1="자신의 운은";
                                        ct2="타고 나지만";
                                        ct3="그 운의 결과는";
                                        ct4="자신이 만들어가는 것";
                                        ct5="미래를 위한";
                                        ct6="자신이 되시길바래요.";
                                        pp=2;//중간 안내문 페이지가 2페이지임.
                                        centerhelp(); //중간 안내문 출력
                                        gotoxy(0,30);
                                        break;
                             }



메뉴에서 종료를 선택할 경우의 안내문 출력부분입니다.



이렇게 ct들의 내용을 바꾼다음 centerhelp(); 함수로 cout을 해주게 되면 좀더 소스가 짧아지게 됩니다.



helpcho는 ct들의 내용을 ""으로 만들고 전체 출력을 해줌으로써 이미출력된 안내문을 지우게 만드는 부분입니다.



우선 centerhelp(); 먼저 보지요



void pri::centerhelpnos()
{
     WHITE;
     helpclr();
     //첫 페이지 출력
     gotoxy(33,10);
     cout<<ct1;
     gotoxy(35,12);
     cout<<ct2;
     gotoxy(37,14);
     cout<<ct3;
     gotoxy(39,16);
     cout<<ct4;
     if(pp>=2)//만약 안내페이지쪽수가 2페이지 이상이면
     {
     //페이지 지우고
     helpclr();
     //두번째 페이지 출력
     gotoxy(33,10);
     cout<<ct5;
     gotoxy(35,12);
     cout<<ct6;
     gotoxy(37,14);
     cout<<ct7;
     gotoxy(39,16);
     cout<<ct8;
       if(pp==3)//만약 안내페이지수가 3페이지이면
       {
                    //페이지 지우고
                    helpclr();
                    //세번째 페이지 출력
                    gotoxy(33,10);
                    cout<<ct9;
                    gotoxy(35,12);
                    cout<<ct10;
                    gotoxy(37,14);
                    cout<<ct11;
                    gotoxy(39,16);
                    cout<<ct12;
       }    
     }
}



요롷고롬 해치워 버리는겁니다.



그럼 gotoxy와cout을 확실히 줄일수 있게되죠.



여기서 pp는 딱보고 아셨겠지만 페이지 숫자입니다.



모든 안내문의 페이지가 같을 수는 없잖아요^^



이 소스에 Sleep문을 걸게되면 페이지가 차례대로 보이게 되는겁니다.





위에 소스를 보니 helpclr();는 더욱 쉽겠죠?



네..아래처럼 간단하게 안내문을 지워주는 부분을 만들수 있습니다.



void pri::helpclr()//중간 안내문 지우기 구현
{
     string ct0="                       ";//중간 안내문 줄 지우기 구현
     gotoxy(33,10);
     cout<<ct0;
     gotoxy(35,12);
     cout<<ct0;
     gotoxy(37,14);
     cout<<ct0;
     gotoxy(39,16);
     cout<<ct0;
}



이렇게 안내문의 구현은



string에 내용을 넣고 string을 양식에맞춰출력해주는 함수를 호출하는것으로 해결됩니다.



다..이런 내용들을 class안에 넣은 모습은 다음강좌에 1~5강 총소스를 올려드리겠습니다.
[출처] <샤오쓰 타로>5.안내문표시pri.h (C언어를 배우자) |작성자 해커푸


  Hit : 6593     Date : 2011/06/04 08:20



    
dkdkfjgh [출처] <샤오쓰 타로>5.안내문표시pri.h (C언어를 배우자) |작성자 해커푸


출처는 남겨도.... 포인트 얻으실려구 허락도 안받고 막 퍼오시면 저작권법 위반인거 아시죠??
2011/07/25  
40   * 해킹의 공격기술 *[3]     HackerMapia
03/01 13257
39   * C언어를 꼭배워야하는가 *[2]     HackerMapia
02/21 8399
38   * C C++ *     HackerMapia
03/01 7708
37   * 윈도우를 빠르게열자 *[6]     HackerMapia
02/24 7399
36   * 윈도우 단축키 아는것들 *[7]     HackerMapia
02/20 7172
35   * 윈도우 해킹의 기본원리 *     HackerMapia
02/21 17820
34   * 윈도우 해킹의 기본 원리*[29]     oes2
08/26 12950
33   * 윈도우 종료를 빠르게 *[2]     HackerMapia
02/20 7696
32   * 점화식의 간단한 알고리즘     limjongmin
08/20 8923
31   * 점화식 간단하게     limjongmin
08/20 6744
30   * 인터넷검색이 달인이 되는 10가지 방법 *[1]     HackerMapia
02/24 7752
29   (꼼수) L.O.B 한방에 클리어하기[1]     해킹잘하고싶다
01/14 862
28   (펌)Wireshark 설치 및 사용법입니다.~[2]     Mach
04/29 7820
27   (WindowXP기준) 간단한 컴퓨터 최적화     dzhfldk
08/22 6700
26   (잡담)포인터는 쉽다?[2]     sihun1113
05/01 6243
25   (2차수정)단순하고 위험한 파일 업로드 해킹기술[2]     gohy032
07/30 13193
  <샤오쓰 타로>5.안내문표시pri.h[1]     sihun1113
06/04 6592
23   <샤오쓰 타로>4.첫화면구현pri.h     sihun1113
06/04 6060
22   <샤오쓰 타로>3.show.h-2     sihun1113
06/04 6536
21   <샤오쓰 타로>2. show.h 구현-1     sihun1113
06/04 6617
[1]..[71][72][73][74][75][76][77] 78 [79]

Copyright 1999-2023 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com