2012-11-05 72 views
0

我需要用X標記用戶輸入的座位,然後再用標記的座位顯示飛機佈局(陣列),並且每次都重複一次。這是我的代碼,我有點卡住了。如果你能幫我把它分成兩個功能:第一個功能應該打印出陣列,第二個功能應該帶用戶輸入和標記座位,然後調用上一個功能刷新顯示。將我的代碼拆分爲功能

我的輸出應該是這樣的:

1 X B C D 

2 A X C D 

3 A B C D 

4 A B X D 

5 A B C D 

6 A B C D 

7 A B C D 

我的代碼是:

#include <iostream> 

    using namespace std; 


    int main() 
    { 
     int rowNumber=-1, columnNumber=-1; 
     char columnLetter; 
     char airplane[7][4] = {{'A', 'B', 'C', 'D'}, 
     {'A', 'B', 'C', 'D'}, 
     {'A', 'B', 'C', 'D'}, 
     {'A', 'B', 'C', 'D'}, 
     {'A', 'B', 'C', 'D'}, 
     {'A', 'B', 'C', 'D'}, 
     {'A', 'B', 'C', 'D'}}; 

     for (int i=0; i<7; i++) 
     { 
      cout<<i+1<<"\t"; 

      for (int j=0; j<4; j++) 
      { 
       cout<<airplane[i][j]<<"\t"; 
      } 

      cout<<"\n"; 
     } 

     do 
     { 
     cout<<"Enter row number:"<<endl; 
     cin>>rowNumber; 
     }while ((rowNumber<1)||(rowNumber>7)); 

     do 
     { 
     cout<<"Enter column letter:"<<endl; 
     cin>>columnLetter; 
     }while (columnLetter!='A'&&columnLetter!='B'&&columnLetter!='C'&&columnLetter!='D'); 

     if (columnLetter=='A') 
     { 
      columnNumber=0; 
     } 
     else if (columnLetter=='B') 
     { 
      columnNumber=1; 
     } 
     if (columnLetter=='C') 
     { 
      columnNumber=2; 
     } 
     else if (columnLetter=='D') 
     { 
      columnNumber=3; 
     } 

     airplane[rowNumber][columnNumber]='X'; 

      system ("PAUSE"); 
      return 0; 
    } 

我試過,但它不會編譯,所以我不能移動到下一個打印標記座位的功能:

#include <iostream> 

using namespace std; 
void fillArray (char array[][4]); 

int main() 
{ 
    char airplane[7][4] = {{'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}}; 

fillArray (airplane[][4]);  


     system ("PAUSE"); 
     return 0; 
} 

void fillArray (char array[][4]) 
{ 


    for (int i=0; i<7; i++) 
    { 
     cout<<i+1<<"\t"; 

     for (int j=0; j<4; j++) 
     { 
      cout<<array[i][j]<<"\t"; 
     } 

     cout<<"\n"; 
    } 
    return; 
} 

    enter code here 
+0

爲什麼不會你的函數編譯?你會得到什麼錯誤? –

+0

代替'if(columnLetter =='A').. else if(columnLetter ='B')..' 使用'switch(columnLetter)' – Srinivas

+0

將我們鏈接到[ideone]上的代碼(http:// ideone.com/)? – Srinivas

回答

0

線16應該是fillArray (airplane);代替fillArray (airplane[][4]);

+0

感謝您的幫助!現在我終於可以移動到程序的下一個部分 – user1799132

+0

現在我已經完成了,我正在嘗試在顯示可用座位(數組)後使它變成這樣,程序提示用戶輸入所需座位,然後標記它'X',然後更新可用座位的顯示。這一直持續到所有席位都被填滿或用戶發出信號表示程序應該結束。如果用戶鍵入已分配的座位 (標記爲「X」),程序應該說該座位已被佔用並要求另一選擇。 – user1799132

+0

我不知道該從哪裏開始,我目前的計劃如下。任何幫助,將不勝感激 – user1799132

0
#include <iostream> 

using namespace std; 

void fillArray (char array[][4]); 
void getSeat (char array[][4]); 

int main() 
{ 
    char airplane[7][4] = {{'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}, 
    {'A', 'B', 'C', 'D'}}; 

    fillArray (airplane); 
    getSeat (airplane); 
    fillArray (airplane); 



     system ("PAUSE"); 
     return 0; 
} 

void fillArray (char array[][4]) 
{ 


    for (int i=0; i<7; i++) 
    { 
     cout<<i+1<<"\t"; 

     for (int j=0; j<4; j++) 
     { 
      cout<<array[i][j]<<"\t"; 
     } 

     cout<<"\n"; 
    } 
    return; 
} 

void getSeat (char array[][4]) 
{ 
    int rowNumber=-1, columnNumber=-1; 
    char columnLetter; 
    do 
    { 
     cout<<"Enter row number:"<<endl; 
     cin>>rowNumber; 
     rowNumber=rowNumber-1; 
    }while ((rowNumber<1)||(rowNumber>7)); 

    do 
    { 
     cout<<"Enter column letter:"<<endl; 
     cin>>columnLetter; 
    }while (columnLetter!='A'&&columnLetter!='B'&&columnLetter!='C'&&columnLetter!='D'); 

    if (columnLetter=='A') 
    { 
     columnNumber=0; 
    } 
    else if (columnLetter=='B') 
    { 
     columnNumber=1; 
    } 
    if (columnLetter=='C') 
    { 
     columnNumber=2; 
    } 
    else if (columnLetter=='D') 
    { 
     columnNumber=3; 
    } 

    array[rowNumber][columnNumber]='X'; 
    return; 
}