I've written a program that keeps a linked list of Personnel. The Personnel can be of the type Student(inherited from Personnel) each student has the name and id from Personnel and a Queue of type books. Everything works except it doesn't display the list of books. please offer any help here is my code
struct Book{ //Number 1
char title[30];
long dueDate;
struct Book *next;
};
void display(void){ //Display function for part 2.4
struct Book *temp;
temp=front;
while(temp!=0){
cout<<"The title of the book:\n"<<temp->title<<endl;
cout<<"The due date of the book is:\n\n"<<temp->dueDate<<endl;
}
void display(void){ //Number 3 part 3
Personnel::display();
cout<<"Student"<<endl;
cout<<"Level:\t"<<x<<endl;
cout<<"Books:\t"<<endl;
bookQueue->display();
}
and here's how i'm inserting a book to a particular student
int insert_book(void){ //Number 4 part 2
Personnel *person=NULL;
PersonnelNode *node=NULL;
PersonnelNode *temp, *prev;
Student *s=new Student();
temp=head;
int index=1;
char name[50], title[30];
long due;
cout<<"Enter the name: ";
cin.ignore();
cin.getline(name, 50);
cout<<"Enter the title of the book: ";
cin.ignore();
cin.getline(title, 30);
cout<<"Enter the due date of the book: ";
cin.ignore();
cin>>due;
while (temp != NULL) {
person = temp->getNode();
if (stricmp(name,name)==0){
prev = temp;
temp = temp->getNext();
index++;
}
else{
cout <<"Person to delete is found at index" << index<<endl;
display_node(person, index);
s=(Student*)person; //This changes person from a type personnel pointer to type Student using casting
s->bookQueue->enqueue(title, due); //Calls the pointer s to access bookQueue then calls the method enqueue using enqueue
}
}