Question: (C++) My program keeps failing when I try to enter the birthdate or when I try to generate an birthday or anniversary card. I'm assuming

(C++) My program keeps failing when I try to enter the birthdate(C++)

My program keeps failing when I try to enter the birthdate or when I try to generate an birthday or anniversary card. I'm assuming I'm missing some piece of the code. Please help me figure out why this program keeps failing.

----------C++ Code Below----------

#include #include #include #include using namespace std;

class Node { public: Node(string newName) { name = newName; nextNode = NULL; } string name; time_t birthday; time_t anniversary; Node *nextNode; };

Node* pHeadNode;

void DrawMenu() { std::cout

Node* FindName(string name) { if (pHeadNode) { Node *pCurrentNode = pHeadNode; while (pCurrentNode && pCurrentNode->name != name) { if (pCurrentNode->name == name) return pCurrentNode; pCurrentNode = pCurrentNode->nextNode; } } return NULL; }

int TimeEntry(int year, int month, int day) { tm tm1; tm1.tm_year = year - 1900; tm1.tm_mon = month; tm1.tm_mday = day; return TimeEntry(year, month, day); }

void InsertNewNode(Node* pNewNode) { if (!pHeadNode || (pNewNode->name name)) { pNewNode->nextNode = pHeadNode; pHeadNode = pNewNode; } else { Node *pCurrentNode = pHeadNode; Node *pPrevNode = pCurrentNode; while (pCurrentNode && pCurrentNode->name name) { pPrevNode = pCurrentNode; pCurrentNode = pCurrentNode->nextNode; } pNewNode->nextNode = pPrevNode->nextNode; pPrevNode->nextNode = pNewNode; } } void AddNewEntry() { string name; time_t birthday; time_t anniversary; cout > bday >> bmonth >> byear; birthday = TimeEntry(byear, bmonth, bday); int aday, amonth, ayear; cout > aday >> amonth >> ayear; anniversary = TimeEntry(ayear, amonth, aday); if (pHeadNode) { Node* pNewNode = new Node(name); pNewNode->birthday = birthday; pNewNode->anniversary = anniversary; InsertNewNode(pNewNode); } else { pHeadNode = new Node(name); pHeadNode->birthday = birthday; pHeadNode->anniversary = anniversary; } cout name != name) { if (pCurrentNode->name == name) break; pCurrentNode = pCurrentNode->nextNode; } if (pCurrentNode) { if (pCurrentNode == pHeadNode) { pHeadNode = pCurrentNode->nextNode; } else { pPrevNode->nextNode = pCurrentNode->nextNode; } delete pCurrentNode; } else { cout name != name) { if (pCurrentNode->name == name) break; pCurrentNode = pCurrentNode->nextNode; } if (pCurrentNode) { cin.clear(); cin.sync(); cout nextNode; } else { pPrevNode->nextNode = pCurrentNode->nextNode; } delete pCurrentNode; int bday, bmonth, byear; cout > bday >> bmonth >> byear; birthday = TimeEntry(byear, bmonth, bday); int aday, amonth, ayear; cout > aday >> amonth >> ayear; anniversary = TimeEntry(ayear, amonth, aday); Node* pNewNode = new Node(name); pNewNode->birthday = birthday; pNewNode->anniversary = anniversary; InsertNewNode(pNewNode); cout name

{ cout name

} };

int main() { int choice; bool stop = false; do { do { DrawMenu(); cin >> choice; if (choice6) cout 6); switch (choice) { case 1: AddNewEntry(); break; case 2: DeleteEntry(); break; case 3: ChangeEntry(); break; case 4: GenerateBirthdayCards(); break; case 5: GenerateAnniversaryCards(); break; case 6: stop = true; break; default: //it's impossible, break; } } while (!stop); Node* pCurrentNode = pHeadNode; while (pCurrentNode) { Node* pNode = pCurrentNode; pCurrentNode = pCurrentNode->nextNode; delete pNode; } return 0; }

Capstone Data Structures (Global Scope) TimeEntry(int year, int month, int day) 45 46 47 48 49 50 51 52 53 54 if (pCurrentNode-namename) return pCurrentNode; pCurrentNode->nextNode; nextNode Exception Unh pCurrentNode Exception Unhandled Unhandled exception at OxOOEC6A19 in Capstone Data Structures.exe OxC0000005: Access violation writing location Cx00400FBO. return NULL; int TimeEntry (int year, int month, int day) Copy Details Exception Settings 56 57 58 59 60 61 62 63 void InsertNewNode (Node* pNewNode) 64 tmi.tm year year - 1900; tm1.tm_monmonth; tm1.tm_mdayday; return TimeEntry(year, month, day); Break when this exception type is thrown Except when thrown from: Capstone Data Structures.exe Open Exception Settings Edit Conditions if (oHeadNode I1 (oNewNode->name name)) 100 %

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!