一、綀習題目:顯示聖誕樹功能。 二、需求: 1、使用者 可以輸入 顯示聖誕樹的符號(取一個字)。 2、使用者 可以輸入 顯示聖誕樹的階層大小(取數字)。 3、使用者 可以選擇是否繼續或離開程式(按下y、Y為繼續,n、N及其它任一鍵為離開程式)。 4、程式開始時顯示聖誕樹的範例。 三、流程: 1、顯示程式標題及顯示聖誕樹的範例 2、使用者輸入符號 3、使用者輸入大小 4、顯示聖誕樹 5、是否繼續執行程式 6、選是 -> 從流程2開始 7、選否 -> 離開關閉程式 寫看看這綀習題目吧!

四、參考解答:
#include 
#include 

using namespace std;
/*
使用Dev-c++ 4.9.9.2 開發
作者:levin 
*/

/*--------------------function start-----------------------*/
/*
 顯示一般資訊 並 換幾行
*/
void printMsgNewline(char msg[],int line){
     char lines ;
     printf("%s",msg);
     if(line > 0){
         for(int i =0;i0){
          printf("輸入錯誤! "); 
       }
       printf("請您輸入想要的階層大小\n"); 
       re++;  
    }while(1 != scanf("%d",&n));
}

/*
輸入字 取第一個字 
*/
void inCharAndPrint(char &w,char msg[]){
     do{ 
         printMsgNewline(msg,1);
         fflush(stdin);// 刷新緩沖區   
     }while(1 != scanf("%1s",&w));
}


/*
 計算 腳的位置 
*/
void printToe(int n){
    int toe = 1; 
    if(n >= 4){
         toe = n/2;
    }
    do{
        printfBlank(1,n);
        printMsgNewline("█",1); 
        toe--;
    }while(toe > 0);
}

/*
計算顯示 Merry Christmas 的位置 
*/
void printEnd(int n){
    int endBlank=0;
    if(n >4){
         endBlank =  n/2;
    }
    printfBlank(1,endBlank);
    printMsgNewline("Merry Christmas",1);
}
/*
Merry Christmas主流程 
*/
void merryChristmasMain(int n,char w)
{
    printf("顯示的符號:%c\n顯示的階層:%d",w,n);
    printMsgNewline("",1);
    printfBlank(1,n);
    printMsgNewline("★",1);
    
    for (int i=1 ; i<=n; i++)
    {
        printMsgNewline(" ",1);
        printfBlank(i,n);
        printfSymbol(w,i+i);
        printMsgNewline("",1);
    }
    printToe(n);
    printEnd(n);
}
/*
顯示範例樣式 
*/
void printExample(){
    printMsgNewline("顯示結果範例:",1);
    merryChristmasMain(4,'*');
}

int main(int argc, char *argv[])
{
    int n;
    char w,rePlay;
    printMsgNewline("Hello~!\n這是顯示一個聖誕樹程式",2);
    printExample();
    do
    {
        printMsgNewline("開始!!",2);
        inCharAndPrint(w,"請您輸入想要顯示的符號");
        inTreeSize(n);
        
        printMsgNewline("",4);
        merryChristmasMain(n,w);
        printMsgNewline("",2);
         
        inCharAndPrint(rePlay,"是否繼續:\n 按下(y、Y)為繼續程式\n 按下(n、N及其它任一鍵)為不繼續程式\n輸入完請按下(Enter)");
        printMsgNewline("",7);
        
    } while( rePlay == 'y' || rePlay == 'Y' );

    return EXIT_SUCCESS;
}




五、測試結果: 圖1 執行開始,顯示範例

圖2 輸入 符號 及 大小

圖3 顯示結果及是否繼續

六、其它參考 C/C++ 目錄

其它文章

文章標籤
全站熱搜
創作者介紹
創作者 PG Levin Li 的頭像
PG Levin Li

程式開發學習之路

PG Levin Li 發表在 痞客邦 留言(0) 人氣(2,512)