diff options
| author | Connor McDowell <[email protected]> | 2024-02-26 16:27:12 -0800 |
|---|---|---|
| committer | Connor McDowell <[email protected]> | 2024-02-26 16:27:12 -0800 |
| commit | c3b095676f0736a1712d8da1013a85bb3e467e58 (patch) | |
| tree | 66deb37530fec574fd10d2975e909a150302c566 /Project1 | |
| parent | added menu driven address book from assignment 6 (diff) | |
| download | homework-7-connormcdowell275-c3b095676f0736a1712d8da1013a85bb3e467e58.tar.xz homework-7-connormcdowell275-c3b095676f0736a1712d8da1013a85bb3e467e58.zip | |
getters and setters created
Diffstat (limited to 'Project1')
| -rw-r--r-- | Project1/Contacts.h | 76 | ||||
| -rw-r--r-- | Project1/contacts.cpp | 612 | ||||
| -rw-r--r-- | Project1/program.cpp | 6 |
3 files changed, 433 insertions, 261 deletions
diff --git a/Project1/Contacts.h b/Project1/Contacts.h index 4ce76c4..31e497b 100644 --- a/Project1/Contacts.h +++ b/Project1/Contacts.h @@ -5,7 +5,81 @@ // functions -struct contact +class contact +{ +public: + contact() = default; + + contact(const contact& copy); + contact& operator=(const contact& rhs); + + contact(contact&& move); + contact& operator=(contact&& rhs); + + const char* Get_firstName(); + void Set_firstName(const char* firstName); + + const char* Get_lastName(); + void Set_lastName(const char* lastName); + + const char* Get_streetAddress(); + void Set_streetAddress(const char* streetAddress); + + const char* Get_city(); + void Set_city(const char* city); + + const char* Get_state(); + void Set_state(const char* state); + + int Get_zip(); + void Set_zip(int zip); + + const char* Get_email(); + void Set_email(const char* email); + + void print(); + +private: + const char* _firstName{ }; + const char* _lastName{ }; + const char* _streetAddress{ }; + const char* _city{ }; + const char* _state{ }; + int _zip; + const char* _email{ }; + +}; + +class contact_list +{ +private: + + contact* contacts_{ nullptr }; + + size_t length_{ 0 }; + + size_t size_{ 0 }; + +public: + + void set_length(size_t MAX); + size_t get_length(); + + void set_size(size_t size); + size_t get_size(); + + void DeleteContact(contact& contact); + + void CopyList(const contact* contacts, const size_t& size); + + void AddContact(const contact& contact); + + void Print() const; + + size_t Size() const; +}; + +struct contact_struct { int a = 0; size_t id = 0; diff --git a/Project1/contacts.cpp b/Project1/contacts.cpp index 295df0d..429f8e5 100644 --- a/Project1/contacts.cpp +++ b/Project1/contacts.cpp @@ -7,280 +7,376 @@ using std::cin; using std::cout; using std::endl; -char addNew(contact newContact[], size_t MAX, size_t& t) +//getters n setters + +void contact::Set_firstName(const char* firstName) +{ + _firstName = firstName; +} + +const char* contact::Get_firstName() +{ + return _firstName; +} + +void contact::Set_lastName(const char* lastName) +{ + _lastName = lastName; +} + +const char* contact::Get_lastName() { - //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; + return _lastName; } -// print contact i -// name: -// email -// address -// city -// state -// zip -void update(contact newContact[], size_t MAX) +void contact::Set_streetAddress(const char* streetAddress) { - //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; - } + _streetAddress = streetAddress; } -void printAll(contact newContact[], size_t& MAX) +const char* contact::Get_streetAddress() { - //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; - } + return _streetAddress; +} +void contact::Set_city(const char* city) +{ + _city = city; +} + +const char* contact::Get_city() +{ + return _city; +} - 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; - } +void contact::Set_state(const char* state) +{ + _state = state; } -contact contact_double(contact*& newContact, size_t& MAX, size_t t) +const char* contact::Get_state() { - /*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]; + return _state; +} - 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]; +void contact::Set_zip(int zip) +{ + _zip = zip; } -size_t max_double(size_t MAX) +int contact::Get_zip() { - MAX = MAX * 2; - return MAX; + return _zip; } -void delete_contact(contact newContact[], size_t MAX) +void contact::Set_email(const char* email) { - //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; - // } -}
\ No newline at end of file + _email = email; +} + +const char* contact::Get_email() +{ + return _email; +} + +void contact_list::set_length(size_t MAX) +{ + length_ = MAX; +} + +size_t contact_list::get_length() +{ + return length_; +} + +void contact_list::set_size(size_t size) +{ + size_ = size; +} + +size_t contact_list::get_size() +{ + return size_; +} + + + +//functions +//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; +// // } +//} + diff --git a/Project1/program.cpp b/Project1/program.cpp index ef06d25..0ce584e 100644 --- a/Project1/program.cpp +++ b/Project1/program.cpp @@ -17,9 +17,11 @@ int main() size_t MAX = 3; int O = 1; /* t = index counter*/ + contact newContact; size_t t = 0; - contact* newContact = new contact[MAX]; - int length = sizeof(newContact[MAX]); + //contact* newContact = new contact[MAX]; + //int length = sizeof(newContact[MAX]); + int size = sizeof(newContact); //cout << sizeof(newContact[MAX]) << endl; while (O == 1) { |