#include "Contacts.h" #include #include #include using std::cin; using std::cout; using std::endl; char addNew(contact newContact[], size_t MAX, size_t& t) { //using couts to prompt using for all parts of newContact struct. //update plans: check for newContact[i].bool value, if false, use a modified void update //(new function thats just void update with different couts) to be called with an if statement. //or another for. //for (size_t i = 0; i < max/length; i++) //if (bool == false) // void mod_update // to check for any "empty"/deleted contacts before adding one. if bool == false should include break after mod_update. //CURRENTLY WORKS for (size_t i = 0; i < MAX, i++;) { for(newContact[i].a = 1; ++i;) { newContact[i].a = 0; for (auto j = newContact[i].id; j < MAX; j++) { if(newContact[i].id != 0) { i = i + 1; } } newContact[i].id = i; newContact[i].count = t; cin.ignore(1000, '\n'); cout << "Please enter each piece of information when you are prompted to" << endl; cout << "enter name: " << endl; cin.getline(newContact[i].Name, 25); cout << "enter Email: " << endl; cin.getline(newContact[i].Email, 100); cout << "enter Street Address: " << endl; cin.getline(newContact[i].StreetAddress, 35); cout << "enter city: " << endl; cin.getline(newContact[i].City, 30); cout << "enter State as two letter abbreviation: " << endl; cin.getline(newContact[i].State, 3); cout << "Please enter the next value as a series of numbers" << endl; cout << "enter Zip: " << endl; cin >> newContact[i].Zip; break; } } for (size_t i = t ; i < MAX; i++) { newContact[i].a = 0; newContact[i].id = i+1; newContact[i].count = t; cin.ignore(1000, '\n'); cout << "Please enter each piece of information when you are prompted to" << endl; cout << "enter name: " << endl; cin.getline(newContact[i].Name, 25); cout << "enter Email: " << endl; cin.getline(newContact[i].Email, 100); cout << "enter Street Address: " << endl; cin.getline(newContact[i].StreetAddress, 35); cout << "enter city: " << endl; cin.getline(newContact[i].City, 30); cout << "enter State as two letter abbreviation: " << endl; cin.getline(newContact[i].State, 3); cout << "Please enter the next value as a series of numbers" << endl; cout << "enter Zip: " << endl; cin >> newContact[i].Zip; t++; break; } //cout << newContact[i]->Name << "\n" << newContact[i]->Email << "\n" << newContact[i]->StreetAddress << "\n" << newContact[i]->City << "\n" << newContact[i]->State << "\n" << newContact[i]->Zip << endl; return 0; } // print contact i // name: // email // address // city // state // zip void update(contact newContact[], size_t MAX) { //uses input based on list number from print (though when delete is made will be using that id/name print) to update the values of. //CURRENTLY WORKING cout << "select a contact to update based on their position in the list (check print all contacts for list position)" << endl; int c = 0; cin >> c; int t = c - 1; for (size_t i = t; i < MAX;) { cin.ignore(1000, '\n'); cout << "Please enter each piece of information when you are prompted to" << endl; newContact[i].id = c; cout << "enter name: " << endl; cin.getline(newContact[i].Name, 25); cout << "enter Email: " << endl; cin.getline(newContact[i].Email, 100); cout << "enter Street Address: " << endl; cin.getline(newContact[i].StreetAddress, 35); cout << "enter city: " << endl; cin.getline(newContact[i].City, 30); cout << "enter State as two letter abbreviation: " << endl; cin.getline(newContact[i].State, 3); cout << "Please enter the next value as a series of numbers" << endl; cout << "enter Zip: " << endl; cin >> newContact[i].Zip; break; } } void printAll(contact newContact[], size_t& MAX) { //prints all info but count and bool for every existing (non trash value filled) contact struct //CURRENTLY WORKING for (size_t i = 0; i <= MAX; ++i) { /*for (int t = -1; t < newContact[i].id;) { break; }*/ if (newContact[i].a == 1) { i = i + 1; } if (newContact[i].id == 0) { break; } if (newContact[i].id < 0) { break; } if (newContact[i].id > MAX) { break; } cout << "List number: " << newContact[i].id << endl; cout << "name: " << newContact[i].Name << endl; cout << "Email: " << newContact[i].Email << endl; cout << "Address: " << newContact[i].StreetAddress << endl; cout << "city: " << newContact[i].City << endl; cout << "state: " << newContact[i].State << endl; cout << "Zip: " << newContact[i].Zip << endl; } } contact contact_double(contact*& newContact, size_t& MAX, size_t t) { /*hell on earth is in this condenced comment*/ //supposedly doubles length. doesn't work. //current ideas: add if loop to whole main with the id counter t and if length of newContact = max double the length. //current problems: using const size_t max prevents editing size for the whole function, and it resets as soon as the while loop loops or leaves the scope of the if statement. //contact* doubleContact = new contact[MAX * 2]; //for (auto a = 0u; a < MAX; ++a) //{ // doubleContact[a].a = newContact[a].a; // doubleContact[a].id = newContact[a].id; // doubleContact[a].count = newContact[a].count; // doubleContact[a].Name[25] = newContact[a].Name[25]; // doubleContact[a].Email[100] = newContact[a].Email[100]; // doubleContact[a].StreetAddress[35] = newContact[a].StreetAddress[35]; // doubleContact[a].City[30] = newContact[a].City[30]; // doubleContact[a].State[3] = newContact[a].State[3]; // doubleContact[a].Zip = newContact[a].Zip; // cout << "List number: " << doubleContact[a].id << endl; // cout << "name: " << doubleContact[a].Name << endl; // cout << "Email: " << doubleContact[a].Email << endl; // cout << "Address: " << doubleContact[a].StreetAddress << endl; // cout << "city: " << doubleContact[a].City << endl; // cout << "state: " << doubleContact[a].State << endl; // cout << "Zip: " << doubleContact[a].Zip << endl; //} //newContact = doubleContact; //delete[] doubleContact; ////delete[] newContact; //MAX = MAX * 2; ////printAll(&doubleContact[MAX], MAX); ////printAll(&newContact[MAX], MAX); //return newContact[MAX]; contact* doubleContact = new contact[MAX * 2]; for (auto a = 0u; a < MAX; ++a) { doubleContact[a] = newContact[a]; } delete[] newContact; newContact = doubleContact; MAX = MAX * 2; return newContact[MAX - 1]; } size_t max_double(size_t MAX) { MAX = MAX * 2; return MAX; } void delete_contact(contact newContact[], size_t MAX) { //Work in progress, add BOOL (true) to struct, when this is selected print id list with respective names //then take input of id list number and set bool to false //add to new part to addNew: if bool != 0 then copy and paste update code w/addNew couts cout << "The list of contacts and their names will now print" << endl; for (auto i = 0u; i < MAX; i++) { if (newContact[i].id == 0) { break; } if (newContact[i].id < 0) { break; } if (newContact[i].id > MAX) { break; } //if (newContact[i].a == 1) //{ // break; //} cout << "Id number: " << newContact[i].id << " is under the name: " << newContact[i].Name << endl; //size_t delete_choice = 0; //cout << "\n"; //cin.ignore(1000, '\n'); //cout << "Enter the id number of the contact you'd like to delete" << endl; //cin >> delete_choice; //if (delete_choice == newContact[i].id) //{ // newContact[i].a = 1; // cout << "Contact number: " << newContact[i].id << " deleted" << endl; // newContact[i + 1].id = newContact[i + 1].id - 1; // break; //} } for (auto i = 0u; i < MAX; i++) { size_t delete_choice = 0; cout << "\n"; cin.ignore(1000, '\n'); cout << "Enter the id number of the contact you'd like to delete" << endl; cin >> delete_choice; if (delete_choice != newContact[i].id) { i = i + 1; } if (delete_choice == newContact[i].id) { newContact[i].a = 1; cout << "Contact number: " << newContact[i].id << " deleted" << endl; newContact[i + 1].id = newContact[i + 1].id - 1; break; } } //cout << "The list of contacts and their names will now print" << endl; // for (auto i = 0u; i <= MAX; i++) // { // if (newContact[i].id == 0) { // break; // } // if (newContact[i].id < 0) { // break; // } // if (newContact[i].id > MAX) { // break; // } // //if (newContact[i].a == 1) // //{ // // break; // //} // cout << "Id number: " << newContact[i].id << " is under the name: " << newContact[i].Name << endl; // } //size_t delete_choice = 0; //cout << "\n"; //cin.ignore(1000, '\n'); //cout << "Enter the id number of the contact you'd like to delete" << endl; //cin >> delete_choice; // if (delete_choice == newContact[i].id) // { // newContact[i].a = 1; // cout << "Contact number: " << newContact[i].id << " deleted" << endl; // break; // } }