aboutsummaryrefslogtreecommitdiff
path: root/Project1
diff options
context:
space:
mode:
authorConnor McDowell <[email protected]>2024-02-26 16:41:41 -0800
committerConnor McDowell <[email protected]>2024-02-26 16:41:41 -0800
commit5d43b761af021cd669630e0fc3e0014e24376c68 (patch)
treedceb788eb59c2b94ebddf371fab0075a10b69eaa /Project1
parentgetters and setters created (diff)
downloadhomework-7-connormcdowell275-5d43b761af021cd669630e0fc3e0014e24376c68.tar.xz
homework-7-connormcdowell275-5d43b761af021cd669630e0fc3e0014e24376c68.zip
testing. will finish later in the week
Diffstat (limited to 'Project1')
-rw-r--r--Project1/Contacts.h6
-rw-r--r--Project1/contacts.cpp568
2 files changed, 296 insertions, 278 deletions
diff --git a/Project1/Contacts.h b/Project1/Contacts.h
index 31e497b..f453350 100644
--- a/Project1/Contacts.h
+++ b/Project1/Contacts.h
@@ -16,6 +16,9 @@ public:
contact(contact&& move);
contact& operator=(contact&& rhs);
+ int Get_index();
+ void Set_index(int id);
+
const char* Get_firstName();
void Set_firstName(const char* firstName);
@@ -40,6 +43,7 @@ public:
void print();
private:
+ int _id;
const char* _firstName{ };
const char* _lastName{ };
const char* _streetAddress{ };
@@ -82,7 +86,7 @@ public:
struct contact_struct
{
int a = 0;
- size_t id = 0;
+ size_t id = contact_list::get_length;
size_t count = 0;
char Name[30];
char Email[105];
diff --git a/Project1/contacts.cpp b/Project1/contacts.cpp
index 429f8e5..6462a52 100644
--- a/Project1/contacts.cpp
+++ b/Project1/contacts.cpp
@@ -99,284 +99,298 @@ size_t contact_list::get_size()
return size_;
}
+void contact::Set_index(int id)
+{
+ _id = id;
+}
+
+int contact::Get_index()
+{
+ return _id;
+}
+
+
//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;
-// // }
-//}
+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;
+}
+
+void contact_list::AddContact(const contact& contact)
+{
+ size_t length = contact_list::length_;
+ for (size_t i = 0; i < length, i++;)
+ {
+
+ }
+
+}
+
+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;
+ // }
+}