2016-02-19 29 views
0
void opt3() 
{ 
    cout << "ENTER STUDENT NAME>"; 
    cin >> Assigned[Col][Row];//Get New Assignment of Student Name at appropriate Col and Row 
    Col++; 
    cout << "ENTER COURSE ID>"; 
    cin >> Assigned[Col][Row];//Get new Assignement of class at appropriate Col and Row 
    Row++; 
    return; 
} 
void opt7(int& Col, int& Row) 
{ 
    cin.clear(); 
    cin.ignore(); 
    int x,y,z; 
    string CouC; 
    cout << "ENTER COURSE ID>"; 
    getline(cin,CouC,'\n'); 
    bool Ans; 
    do 
    { 
      for (int i=0;i<Row;i++) 
      { 
        for (int j=0;j<Col;j++) 
        { 
          x = j; 
          y = i; 
          Ans = CouC.compare(Assigned[j][i]); 
          if(Ans) 
            z=j; 
        //Compares until it finds the right course ID woop and then sets it to arr$ 
        } 
      } 

    }while (Ans == false); 

    for (y=0;y<10;y++) 
    { 
      cout << Assigned[z][y];//Print out the students in the course 
    } 

這是我的問題代碼部分的樣子。我很難將學生存儲在所需的課程中,然後根據所選課程將其打印出來。我試圖將我的數組Assigned [] []與適當的用戶輸入進行比較,我似乎無法弄清楚。我目前沒有編譯錯誤,只有邏輯錯誤。這在運行時我的輸出看起來很奇怪。它通常會打印一個隨機的學生姓名,並輸入課程名稱。邏輯錯誤分配和打印陣列

幫助將不勝感激,謝謝!

+2

*我很難將學生存儲在所需的課程中* - 您應該先編寫代碼的這一部分,並對其進行測試。你問了3個不同的問題,我們不知道這個斜體字是否正常工作。另外,應該發佈[mcve]。 – PaulMcKenzie

+1

另外,你的任務很混亂,或者你寫了一些非常混亂的代碼。 2d數組的目的是什麼?什麼是「Row」和「Col」應該表示?我期望1維數組,其中每個元素將是學生信息(作爲類或結構),而不是象國際象棋棋盤那樣的二維數組。 – PaulMcKenzie

+0

是的,我很困惑自己。我無法有效地解決問題。 – AmandaS

回答

0

它看起來像二維數組Assigned的含義需要明確定義。

  • 這可能是學生和課程的布爾矩陣,如果學生服用一個療程的數值表明,或
  • 這可能是學生,當然對的列表。

填充Assigned功能opt3()做奇怪的事情:它需要學生和課程,併爲學生和課程新行新列。所以這個函數似乎使用Assigned作爲矩陣,但它同時添加了一個新學生和一個新課程。此矩陣的值也是學生和課程ID的混合,並且有許多未使用的值。這沒有多大意義。

如果該功能的目的是要輸入哪個學生需要哪些過程,它應取決於Assigned的意義,無論是

  • 搜索學生列,當然行,將該值設置爲true
  • 將新學生和課程對添加到列表中。