The following code below must be edited to be able to run us

The following code below must be edited to be able to run using Linked list instead of using arrays

---------------------------------------------------------------------------------------------------------------------------------------

#include<iostream>

using namespace std;
//Class to hold due date
class Date
{
public:
  
   int m, d, y;//month,day,year
                 
       //default constructor
   Date()
   {
   }
   //parameterized constructor
   Date(int a, int b, int c)
   {
       m = a;
       d = b;
       y = c;
   }
};
class Homework
{

public:
   Date da;
   int assgn_id;
   Homework()
   {
   }
   Homework(int id, int m, int d, int y)
   {
       assgn_id = id;
       Date t(m, d, y);
       da = t;
   }
   //Displat id and due date of assignment
   void Display()
   {
       cout << \"\ Assignment ID \" << assgn_id << endl;
       cout << \"Assignment Due date \" << da.d << \"/\" << da.m << \"/\" << da.y << endl;
   }
};

int main(int argc, char const *argv[])
{
   int flag = 1;

   Homework *a[10];
   int count = 0;
   int ch;
   int id;
   int m, d, y;
   int c = 0;
   while (flag)
   {
       cout << \"\ \ 1)Add assignment\ 2)Delete assignment\ 3)Display List of assignments\ 4)Exit\ \ \";
       cin >> ch;
       switch (ch)
       {
       case 1:cout << \"\ Enter assignment id\ \";
           cin >> id;
           cout << \"Enter due day\ \";
           cin >> d;
           cout << \"Enter due month\ \";
           cin >> m;
           cout << \"Enter due year\ \";
           cin >> y;
           a[count] = new Homework(id, d, m, y);

           count++;
           break;
       case 2:
           cout << \"Enter ID to Delete assignment\ \";
           cin >> id;

           for (int i = 0; i < count; ++i)
           {

               if (a[i]->assgn_id == id)
               {
                   for (int j = i; j < count - 1; ++j)
                   {
                       a[j] = a[j + 1];
                   }
                   c++;
                   count--;
                   break;
               }
           }
           if (c == 0)
               cout << \"Assignment not found\ \";
           else
               cout << \"Assignment Deleted\ \";

           break;
       case 3:
           for (int i = 0; i < count; ++i)
           {
               a[i]->Display();
           }
           break;
       case 4:flag = 0; break;
       }
   }

   system(\"pause\");
   return 0;
}

/*
Output


1)Add assignment
2)Delete assignment
3)Display List of assignments
4)Exit

1

Enter assignment id
1
Enter due day
2
Enter due month
3
Enter due year
1980


1)Add assignment
2)Delete assignment
3)Display List of assignments
4)Exit

1

Enter assignment id
2
Enter due day
3
Enter due month
5
Enter due year
1475


1)Add assignment
2)Delete assignment
3)Display List of assignments
4)Exit

1

Enter assignment id
3
Enter due day

6
Enter due month
5
Enter due year
6846


1)Add assignment
2)Delete assignment
3)Display List of assignments
4)Exit

3

Assignment ID 1
Assignment Due date 3/2/1980

Assignment ID 2
Assignment Due date 5/3/1475

Assignment ID 3
Assignment Due date 5/6/6846


1)Add assignment
2)Delete assignment
3)Display List of assignments
4)Exit

2
Enter ID to Delete assignment
2
Assignment Deleted


1)Add assignment
2)Delete assignment
3)Display List of assignments
4)Exit

3

Assignment ID 1
Assignment Due date 3/2/1980

Assignment ID 3
Assignment Due date 5/6/6846


1)Add assignment
2)Delete assignment
3)Display List of assignments
4)Exit

*/

Solution

// Representation of both the classes is same as you have mentioned

/* Intially i have written the same code for declaring your classes then i have written 4 functions createNode, addAssignment, deleteAssignment, dispalyAssignment

*/

#include<iostream>

using namespace std;
//Class to hold due date
class Date
{
public:
  
   int m, d, y;//month,day,year
                 
       //default constructor
   Date()
   {
   }
   //parameterized constructor
   Date(int a, int b, int c)
   {
       m = a;
       d = b;
       y = c;
   }
};
class Homework
{

public:
   Date da;
   int assgn_id;
   Homework()
   {
   }
   Homework(int id, int m, int d, int y)
   {
       assgn_id = id;
       Date t(m, d, y);
       da = t;
   }
   //Displat id and due date of assignment
   void Display()
   {
       cout << \"\ Assignment ID \" << assgn_id << endl;
       cout << \"Assignment Due date \" << da.d << \"/\" << da.m << \"/\" << da.y << endl;
   }
};

// Now implementing Everything through Linked List

/* Let the linked list structure node is \"node\" which contains Homwwork object as data and next node to the next Homework node

*/

struct node {

Homework hw;

node *next;

};

node *head = NULL; // this is the Global Head node of the List

// This function will create a new node whenever we need

node * createNode(HomeWork homework){

node * newNode = (newNode *) malloc(sizeOf(node));

newNode -> hw = homework;

newNode->next = NULL;

return newNode;

}

// Add Assignment

// This function will add new assignment in the list

void addAssignment(node * newNode){

if(head == NULL){

head = newNode;

}

else{

node *temp = head;

while(temp->next != NULL){

temp = temp->next;

}

temp->next = newNode;

free(temp); // release the temp memory

}

void displayAssignment(){

node *temp = head;

while(temp != NULL){

cout<<\"Assignment Id \" << temp->hw.assgn_id<<endl;

cout<<\"Assignment Due Date \" << temp->hw.da.d<<\"/\"<<temp->hw.da.m<<\"/\"<<temp->hw.da.y<<endl;

}

}

void deleteAssignment(int id){

if(head==NULL){

cout<<\"List is Empty\";

}

node *temp = head;

node *preTemp = NULL;

while(temp != NULL){

if(temp->hw.assign_id == id && preTemp == NULL){

// That means we have to remove first element

head = head->next;

free(temp);

}

// If its not the first element

if(temp->hw.assign_id == id && preTemp != NULL){

preTemp -> next = temp->next;

free(temp);

}

preTemp = temp;

}

}

// Now Modifying your main function

int main(int argc, char const *argv[])
{
   int flag = 1;

   int ch;
   int id;
   int m, d, y;
   int c = 0;
   while (flag)
   {
       cout << \"\ \ 1)Add assignment\ 2)Delete assignment\ 3)Display List of assignments\ 4)Exit\ \ \";
       cin >> ch;
       switch (ch)
       {
       case 1:cout << \"\ Enter assignment id\ \";
           cin >> id;
           cout << \"Enter due day\ \";
           cin >> d;
           cout << \"Enter due month\ \";
           cin >> m;
           cout << \"Enter due year\ \";
           cin >> y;
Homework homework = new Homework(id, d, m, y);

node * newNode = createNode(homework);

addAssignment(newNode);

           break;
       case 2:
           cout << \"Enter ID to Delete assignment\ \";
           cin >> id;

deleteAssignment(id);

break;

       case 3:
dispalyAssignment();
           break;
       case 4:flag = 0; break;
       }
   }

   system(\"pause\");
   return 0;
}

The following code below must be edited to be able to run using Linked list instead of using arrays ------------------------------------------------------------
The following code below must be edited to be able to run using Linked list instead of using arrays ------------------------------------------------------------
The following code below must be edited to be able to run using Linked list instead of using arrays ------------------------------------------------------------
The following code below must be edited to be able to run using Linked list instead of using arrays ------------------------------------------------------------
The following code below must be edited to be able to run using Linked list instead of using arrays ------------------------------------------------------------
The following code below must be edited to be able to run using Linked list instead of using arrays ------------------------------------------------------------
The following code below must be edited to be able to run using Linked list instead of using arrays ------------------------------------------------------------

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site