Связанный список: сохраненные элементы не отображаются полностью - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь сохранить 5 связанных элементов, входной код работает нормально, но на дисплее не отображается 5-й элемент "RollNumber". Я не могу найти, где я совершил ошибку.

class Node
{
    friend class LinkedList;
    private:
        string BookName;
        string BookNo;
        string Price;
        string StudentName;
        string RollNumber;
        Node *next;
    public:
        Node(string bname = "", string bno = "", string pr = "", string sname = "", string rn = "", Node *nxt = NULL)
        {
            BookName=bname;
            BookNo=bno;
            Price=pr;
            StudentName=sname;
            RollNumber:rn;
            next=nxt;
        }
};

class LinkedList
{
    private:
        Node *head;
        Node *tail;
        int count;
    public:
        LinkedList()
        {
            head = NULL;
            tail = NULL;
            count = 0;
        }
    bool isEmpty()
        {
            if (head == NULL)
            {
                return true;
            }
            return false;
        }

    void add_input_head(string bname = "", string bno="", string pr="", string sname="", string rn="")
    {
        if (isEmpty())
        {
            head = new Node(bname, bno, pr, sname, rn, NULL);
            tail = head;
            count++;
        }
        else
        {
            Node *p = new Node(bname, bno, pr, sname, rn, head);
            head = p;
            count++;
        }
    }

    void traverse() 
    {
        Node *t = head;
        for (int i = 1; i <= count; i++) {
            cout <<endl<<endl<<endl<<endl<<"Book Name: "<< t->BookName << endl;
            cout <<endl<<endl<<"Book No: "<< t->BookNo << endl;
            cout <<endl<<endl<<"Price: "<< t->Price << endl;
            cout <<endl<<endl<<"Stuent Name: "<< t->StudentName << endl;
            cout <<endl<<endl<<"Roll No: "<< t->RollNumber << endl;
            t = t->next;
        }
    }

    void Exit()
    {
    cout<<"\t\t\tThank You for using this Program";
    }
    //Destructor for Linked List
    ~LinkedList()
    {
        Node *t;
        while (head != NULL)
        {
            t = head;
            head = head->next;
            delete t;
        }
        head = NULL;
        count = 0;
    }

};

int main()
{
    LinkedList l;
    int ch;
    string a,b,c,d,e;
do
{

    cout<<"\n\t\t\t  Press 1 for Addition";
    cout<<"\n\t\t\t  Press 2 for Display";
    cout<<"\n\t\t\t  Press 3 for Exit";
    cout<<"\n\t\t\t  Enter Option=";
    cin>>ch;
    switch(ch)
    {
        case 1:
        cout<<endl<<endl<<endl<<endl<<"Enter Book Name: ";
        cin>>a; 
        cout<<endl<<"Enter Book No: ";
        cin>>b;
        cout<<endl<<"Enter Price: ";
        cin>>c;
        cout<<endl<<"Enter Student Name: ";
        cin>>d;
        cout<<endl<<"Enter Roll No: ";
        cin>>e;
        l.add_input_head(a,b,c,d,e);
        break;
        case 2:
        l.traverse();
        case 3:
        l.Exit();
        break;
    }   
}while(ch!=6);  
}

Нет ошибки при компиляции, но все равно отсутствует последний элемент. Я не знаю, есть ли ошибка во входной или выходной функции. Я делаю проект класса, и я не могу решить эту проблему. Может ли кто-нибудь помочь мне найти ошибку?

...