C++

2016-04-10 6 views
0

'daki işlevler için Tanımlanmamış Referans C++ programlama üzerinde hala bir tanıtıcı bulmaya çalışıyorum ve farklı personel nesneleri oluşturması ve kitap başlıklarını ağaç kullanan kişilere kaydetmesi gereken bir kod derlemeye çalışıyorum. Benim insert() işlevinde içinC++

tanımlanamayan referansı 'insert_Book()' için

tanımlanamayan referansı 'search_Book()'

: Ben bir almaya devam. Bu neden? Teşekkür ederim! tanımlanmadan önce (eğer insert() sonra bunları tanımlamak olarak)

//insert function 
void insert(){ 
    char ch; 

    cout << endl << "@Insertion module..............."; 
    do { 
    sub_menu(); 
    cin >> ch; 
    ch = tolower(ch); 

    switch(ch) { 
     case 'p': if(insert_personnel() != 0) 
         cout << "@INSERTION OPERATION FAILED." << endl; 
        else 
         cout << "@INSERTED SUCCESSFULLY." << endl; 
         break; 
     case 'e': if(insert_employee() != 0) 
         cout << "@INSERTION OPERATION FAILED." << endl; 
        else 
         cout << "@INSERTED SUCCESSFULLY." << endl; 
         break; 
     case 'f': if(insert_faculty() != 0) 
         cout << "@INSERTION OPERATION FAILED." << endl; 
        else 
         cout << "@INSERTED SUCCESSFULLY." << endl; 
         break; 
     case 's': if(insert_student() !=0) 
         cout << "@INSERTION OPERATION FAILED." << endl; 
        else 
         cout <<"@INSERTED SUCCESSFULLY." << endl; 
         break; 
     case 'b': if(insert_Book() !=0) 
       cout << "@INSERTION OPERATION FAILED." << endl; 
      else 
       cout <<"@INSERTED SUCCESSFULLY." << endl; 
         break; 
     case 'g': if (search_Book() !=0) 
       cout << "@INSERTION OPERATION FAILED." << endl; 
      else 
       cout <<"@INSERTED SUCCESSFULLY." << endl; 
        break; 
     case 'q': cout << endl << "@Exiting the insertion..." << endl; 
        cin.get(); 
        break; 
     default:  cout << endl << "@ERROR - Invalid input." << endl; 
        cout << "@Try again....." << endl; 
     } 
    } 
    while (ch != 'q'); 
} 

int search_Book(Book *root,char *ntitle){ 
    if (root == NULL){ 
     cout<<"No Books found"; 
     return -1; 
    } 
    else if(ntitle == root->title){ 
     cout<<"Title:\t"<<root->title<<endl<<"URL:\t"<<root->url<<endl; 
     return 0; 
    } 
    else if(ntitle[0] < root->title[0]){ 
     return search_Book(root->left,ntitle); 
    } 
    else { 
     return search_Book(root->right,ntitle); 
    } 
} 
int insert_Book(){ 
    char name[50]; 
    char title[100]; 
    char url[100]; 
    Student* node; 
    cout<<"Enter the name of the student you want the book to be added to: "; 
    cin>>name; 
    node = searchstudent(name); 
    if(node == NULL){ 
     return 1; 
    } 
    else{ 
     cout<<"Enter the Title: "; 
     cin>>title; 
     cout<<"Enter the url: "; 
     cin>>url; 
     add_Book(node->bookTree,title,url); 
     return 0; 
    } 

} 

cevap

3

insert()insert_Book() ve search_Book() kullanır.

İki çözümleri: Ya insert() önce onları beyan insert()

2- önce

1- Taşı insert_Book() ve search_Book() kodu: sadece

int insert_Book(); 
int search_Book(Book *root,char *ntitle); 

Bu, o endişe etmeyin derleyici söyler yazma Yakında uygulanacak ... daha sonra, insert() sonra uygulayabilirsiniz.