aboutsummaryrefslogtreecommitdiff
path: root/Project1
diff options
context:
space:
mode:
authorConnor McDowell <[email protected]>2024-02-26 14:45:17 -0800
committerConnor McDowell <[email protected]>2024-02-26 14:45:17 -0800
commit6f9a49f95cf3ca9e518bc460f7458719b43793b0 (patch)
treef4979539ca12bf4b85c553cbb422b31a124cf642 /Project1
parentadd deadline (diff)
downloadhomework-7-connormcdowell275-6f9a49f95cf3ca9e518bc460f7458719b43793b0.tar.xz
homework-7-connormcdowell275-6f9a49f95cf3ca9e518bc460f7458719b43793b0.zip
added menu driven address book from assignment 6
Diffstat (limited to 'Project1')
-rw-r--r--Project1/Contacts.h50
-rw-r--r--Project1/Project1.sln31
-rw-r--r--Project1/Project1.vcxproj139
-rw-r--r--Project1/Project1.vcxproj.filters30
-rw-r--r--Project1/contacts.cpp286
-rw-r--r--Project1/program.cpp67
6 files changed, 603 insertions, 0 deletions
diff --git a/Project1/Contacts.h b/Project1/Contacts.h
new file mode 100644
index 0000000..4ce76c4
--- /dev/null
+++ b/Project1/Contacts.h
@@ -0,0 +1,50 @@
+#ifndef CONTACTS_HEADER_H
+#define CONTACTS_HEADER_H
+
+
+
+// functions
+
+struct contact
+{
+ int a = 0;
+ size_t id = 0;
+ size_t count = 0;
+ char Name[30];
+ char Email[105];
+ char StreetAddress[45];
+ char City[35];
+ char State[4];
+ int Zip = 0;
+ contact() : a(true), id(0), count(0), Zip(0) {}
+};
+
+//struct contact
+//{
+// bool a = true;
+// size_t id = 0;
+// size_t count = 0;
+// char Name[25]{};
+// char Email[100]{};
+// char StreetAddress[35]{};
+// char City[30]{};
+// char State[3]{};
+// int Zip = 0;
+//};
+//contact newContact[11];
+
+int menu();
+
+char addNew(contact newContact[], size_t MAX, size_t& t);
+
+void update(contact newContact[], size_t MAX);
+
+void printAll(contact newContact[], size_t& MAX);
+
+contact contact_double(contact*& newContact, size_t& MAX, size_t t);
+
+size_t max_double(size_t MAX);
+
+void delete_contact(contact newContact[], size_t MAX);
+
+#endif CONTACTS_HEADER_H \ No newline at end of file
diff --git a/Project1/Project1.sln b/Project1/Project1.sln
new file mode 100644
index 0000000..951f197
--- /dev/null
+++ b/Project1/Project1.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.8.34511.84
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project1", "Project1.vcxproj", "{643642F2-1A17-4D44-8DB9-B427BCDCC9A2}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {643642F2-1A17-4D44-8DB9-B427BCDCC9A2}.Debug|x64.ActiveCfg = Debug|x64
+ {643642F2-1A17-4D44-8DB9-B427BCDCC9A2}.Debug|x64.Build.0 = Debug|x64
+ {643642F2-1A17-4D44-8DB9-B427BCDCC9A2}.Debug|x86.ActiveCfg = Debug|Win32
+ {643642F2-1A17-4D44-8DB9-B427BCDCC9A2}.Debug|x86.Build.0 = Debug|Win32
+ {643642F2-1A17-4D44-8DB9-B427BCDCC9A2}.Release|x64.ActiveCfg = Release|x64
+ {643642F2-1A17-4D44-8DB9-B427BCDCC9A2}.Release|x64.Build.0 = Release|x64
+ {643642F2-1A17-4D44-8DB9-B427BCDCC9A2}.Release|x86.ActiveCfg = Release|Win32
+ {643642F2-1A17-4D44-8DB9-B427BCDCC9A2}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {08002DB6-7F55-4FC3-BFCB-8DE7FFE2493E}
+ EndGlobalSection
+EndGlobal
diff --git a/Project1/Project1.vcxproj b/Project1/Project1.vcxproj
new file mode 100644
index 0000000..31b4e05
--- /dev/null
+++ b/Project1/Project1.vcxproj
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{643642f2-1a17-4d44-8db9-b427bcdcc9a2}</ProjectGuid>
+ <RootNamespace>Project1</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClInclude Include="Contacts.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="contacts.cpp" />
+ <ClCompile Include="program.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/Project1/Project1.vcxproj.filters b/Project1/Project1.vcxproj.filters
new file mode 100644
index 0000000..1ea8744
--- /dev/null
+++ b/Project1/Project1.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="Contacts.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="program.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="contacts.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/Project1/contacts.cpp b/Project1/contacts.cpp
new file mode 100644
index 0000000..295df0d
--- /dev/null
+++ b/Project1/contacts.cpp
@@ -0,0 +1,286 @@
+#include "Contacts.h"
+#include <iostream>
+#include <list>
+#include <vector>
+
+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;
+ // }
+} \ No newline at end of file
diff --git a/Project1/program.cpp b/Project1/program.cpp
new file mode 100644
index 0000000..ef06d25
--- /dev/null
+++ b/Project1/program.cpp
@@ -0,0 +1,67 @@
+// name: Connor McDowell
+// date: 2/19/2024
+// class: CST116
+// reason: homework number 6
+
+#include "Contacts.h"
+#include <iostream>
+
+using std::cin;
+using std::cout;
+using std::endl;
+
+//constexpr size_t MAX = 3;
+
+int main()
+{
+ size_t MAX = 3;
+ int O = 1;
+ /* t = index counter*/
+ size_t t = 0;
+ contact* newContact = new contact[MAX];
+ int length = sizeof(newContact[MAX]);
+ //cout << sizeof(newContact[MAX]) << endl;
+ while (O == 1)
+ {
+ //cout << MAX << endl;
+ // c = choice input
+ int c = 0;
+ cout << "1. Enter a contact\n";
+ cout << "2. Update a contact\n";
+ cout << "3. print all contacts\n";
+ cout << "4. Delete a contact\n";
+ cout << "5. Quit\n";
+ cout << "\nEnter your choice: " << endl;
+ cin >> c;
+ switch (c)
+ {
+ case 1:
+ addNew(newContact, MAX, t);
+ if (t >= MAX) // Check if the number of contacts exceeds MAX
+ {
+ contact* newContactTemp = new contact[MAX * 2]; // Double the size
+ for (size_t i = 0; i < MAX; ++i) // Copy existing contacts
+ newContactTemp[i] = newContact[i];
+ delete[] newContact; // Deallocate old memory
+ newContact = newContactTemp; // Update pointer
+ MAX *= 2; // Update MAX
+ }
+ break;
+ case 2:
+ update(newContact, MAX);
+ break;
+ case 3:
+ printAll(newContact, MAX); // Print only the existing contacts
+ break;
+ case 4:
+ delete_contact(newContact, MAX);
+ break;
+ case 5:
+ O = 0;
+ break;
+ default:
+ cout << "Invalid choice. Please enter a number from 1 to 5." << endl;
+ }
+ }
+ return 0;
+} \ No newline at end of file