0

Hi. I am trying to input values from a user and put them in a linked list. Some how when I display the values that the user inputs, they are both show up under one variable. ie. user inputs $3 and then inputs $5 for next variable. however, when i display, it displays both entered vlues under first variable. attached is code and picture of running program.
I don't know what the problem is, but when I display the values that I input from the users, i.e. coupon value and minimum to spend rule amount, it just displays both the values as one number under coupon value. i have attached a picture of the screen shot as well as my code.

void node::add_coupon()       
{
    char temp[201];
    char temp2[201];
    cout << "Adding a new coupon....."<<endl;
    cout << "Enter the name of the store coupon: ";
    cin.get(temp,200,'\n');
    cin.ignore();
    name = new char[strlen(temp)+1];
    strcpy(name,temp);
    cout << "Enter description: ";
    cin.get(temp2,200,'\n');
    cin.ignore();
    category = new char[strlen(temp2)+1];
    strcpy(category,temp2);
    cout << "Enter the coupon discount amount: $";
    cin >> discount;
    cin.ignore();
    cout << "Enter the spend amount before coupon discount can be applied: $";
    cin >> spend;
    cin.ignore();
    cout << "Enter the coupon expiration date in MM/DD/YYYY format: ";
    cout << "Enter MM-> ";
    cin >> mm;
    cin.ignore();
    cout << "Enter DD-> ";
    cin >> dd;
    cin.get();
    cout << "Enter YYYY-> ";
    cin >> yyyy;
}

 /*Function for creating my linked list. This creates the list in sorted order
   alphabetically based on the name of the coupon's store.
 */

void coupons::add_coupon()
{

    current = head;
   
    node* temp = new node;
    temp->add_coupon();
    temp->next = NULL;
   
    if(!head)
    head = temp;
   
    else if(strcmp(head->name,temp->name)>0)
    {
         temp->next = head;
         head = temp;
    }
    else
    {
        node *current = head->next;
        node *prev = head;
        while(current !=NULL && strcmp(temp->name, current->name)>0)
        {
             prev = current;
             current = current->next;
        }
       
    temp->next = current;
    prev->next = temp;
    }
}

void coupons::display_all()      //display function
  {  node *temp = head;
     cout << endl;
     if (temp == NULL)
       cout << "There are no coupons!" << endl;
     else
       { while (temp != NULL)
       {  // Display details for what temp points to
          cout<< left << setw(5) << "Name: " << temp->name << setw(5) << " Description: "<< setw(5) << temp->category << " Discount $" << temp->discount << setw(5) << temp->spend << " Rule $" << setw(5) << " Expires " <<temp->mm << "/" << temp->dd << "/"<< temp->yyyy; //display format
          if (temp == current)
        cout << " <-- Current Coupon";
              cout << endl;
          temp = temp->next;

       }
     cout << "End of Coupons!" << endl;
       }
Attachments screen_program1.png 17 KB
2
Contributors
1
Reply
2
Views
7 Years
Discussion Span
Last Post by thomas_naveen
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.