From 7cebe821326a10f9cbd569fda07f8ea540a60308 Mon Sep 17 00:00:00 2001 From: cdez Date: Sat, 16 Sep 2023 15:24:18 -0700 Subject: [PATCH] Started PA03 for real this time +- Makefile for PA03 ++ PA03_Main ++ StateData.csv +- StateUtilities_LogN.c ++ outDebug --- PA03-0920/Makefile | 24 ++++----- PA03-0920/PA03_Main | Bin 0 -> 29184 bytes PA03-0920/StateData.csv | 51 ++++++++++++++++++ PA03-0920/StateUtilities_LogN.c | 88 +++++++++++++++++++++++++++++++- PA03-0920/build/Debug/outDebug | Bin 0 -> 85040 bytes 5 files changed, 149 insertions(+), 14 deletions(-) create mode 100755 PA03-0920/PA03_Main create mode 100644 PA03-0920/StateData.csv create mode 100755 PA03-0920/build/Debug/outDebug diff --git a/PA03-0920/Makefile b/PA03-0920/Makefile index 133be4b..0b58727 100644 --- a/PA03-0920/Makefile +++ b/PA03-0920/Makefile @@ -1,17 +1,17 @@ CC = gcc -Wall -SOURCES = PA02_Main.c StateUtilities.c Console_IO_Utility.c File_Input_Utility.c File_Output_Utility.c -OBJECTS = PA02_Main.o StateUtilities.o Console_IO_Utility.o File_Input_Utility.o File_Output_Utility.o +SOURCES = PA03_Main.c StateUtilities_LogN.c Console_IO_Utility.c File_Input_Utility.c File_Output_Utility.c +OBJECTS = PA03_Main.o StateUtilities_LogN.o Console_IO_Utility.o File_Input_Utility.o File_Output_Utility.o -all: PA02_Main +all: PA03_Main -PA02_Main: $(OBJECTS) - $(CC) $(OBJECTS) -o PA02_Main +PA03_Main: $(OBJECTS) + $(CC) $(OBJECTS) -o PA03_Main -PA02_Main.o: PA02_Main.c - $(CC) -c PA02_Main.c -o PA02_Main.o +PA03_Main.o: PA03_Main.c + $(CC) -c PA03_Main.c -o PA03_Main.o -StateUtilities.o: StateUtilities.c - $(CC) -c StateUtilities.c -o StateUtilities.o +StateUtilities_LogN.o: StateUtilities_LogN.c + $(CC) -c StateUtilities_LogN.c -o StateUtilities_LogN.o Console_IO_Utility.o: Console_IO_Utility.c $(CC) -c Console_IO_Utility.c -o Console_IO_Utility.o @@ -23,13 +23,13 @@ File_Output_Utility.o: File_Output_Utility.c $(CC) -c File_Output_Utility.c -o File_Output_Utility.o clean: - rm -f $(OBJECTS) PA02_Main PA02_Main.out + rm -f $(OBJECTS) PA03_Main PA03_Main.out clean_objects: rm -f $(OBJECTS) run: - ./PA02_Main + ./PA03_Main run_win: - PA02_Main \ No newline at end of file + PA03_Main \ No newline at end of file diff --git a/PA03-0920/PA03_Main b/PA03-0920/PA03_Main new file mode 100755 index 0000000000000000000000000000000000000000..23a3a0696ce2dca83509674f89109bd4d03c7922 GIT binary patch literal 29184 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 LnPU^MRki;D=LhD# literal 0 HcmV?d00001 diff --git a/PA03-0920/StateData.csv b/PA03-0920/StateData.csv new file mode 100644 index 0000000..45fda77 --- /dev/null +++ b/PA03-0920/StateData.csv @@ -0,0 +1,51 @@ +State,Population,Growth,Majority +North Carolina,10698973,0.0851,N +Texas,30029572,0.1336,R +Ohio,11756058,0.0222,N +Arkansas,3045637,0.0315,R +Mississippi,2940057,-0.002,R +Tennessee,7051339,0.0804,R +Missouri,6177957,0.0268,R +Alabama,5074296,0.0482,R +Arizona,7359197,0.104,N +Massachusetts,6981974,0.0677,D +Rhode Island,1093734,0.0405,D +Maine,1385340,0.0248,D +South Dakota,909824,0.0804,R +West Virginia,1775156,-0.0333,R +Delaware,1018396,0.0912,D +Florida,22244823,0.1239,N +New Jersey,9261699,0.0529,D +Utah,3380800,0.1505,R +Nebraska,1967923,0.068,R +South Carolina,5282634,0.0945,R +Wyoming,581381,0.0228,R +Georgia,10912876,0.0938,N +Oklahoma,4019800,0.052,R +Colorado,5839926,0.1257,D +Kentucky,4512310,0.0367,R +Washington,7785786,0.1241,D +Nevada,3177772,0.1268,N +Michigan,10034113,0.0191,N +Connecticut,3626205,0.0088,D +Wisconsin,5892539,0.0348,N +Louisiana,4590241,0.0266,R +Hawaii,1440196,0.0644,D +Virginia,8683619,0.072,D +New Mexico,2113344,0.0274,D +Oregon,4240137,0.0941,D +North Dakota,779261,0.1331,R +New Hampshire,1395231,0.0439,D +Pennsylvania,12972008,0.023,N +Kansas,2937150,0.0287,R +Minnesota,5717184,0.0696,N +Indiana,6833037,0.0441,R +Idaho,1939033,0.1434,R +Montana,1122867,0.0859,R +Alaska,733583,0.0314,R +Maryland,6164660,0.0645,D +Vermont,647064,0.0268,D +New York,19677151,0.0404,D +California,39029342,0.0571,D +Iowa,3200517,0.0447,R +Illinois,12582032,-0.0014,D diff --git a/PA03-0920/StateUtilities_LogN.c b/PA03-0920/StateUtilities_LogN.c index 7ce9d22..92effa9 100644 --- a/PA03-0920/StateUtilities_LogN.c +++ b/PA03-0920/StateUtilities_LogN.c @@ -1,4 +1,4 @@ -#include "StateUtilities.h" +#include "StateUtilities_LogN.h" // local constants const int NAME_BLOCK_SIZE = 16; @@ -32,6 +32,24 @@ void addElementFromData( StateArrayType *stateArr, const char *stateName, int statePop, double stateGrowth, char politicalMajority ) { + printf("\nAdding Element(from data)\n"); + printf("\nSize is: %d\n", &stateArr->size); + printf("\nCapacity is: %d\n", &stateArr->capacity); + // check to see if the size will go over the capacity + if(&stateArr->size < &stateArr->capacity) + { + printf("\nInside IF\n"); + // put in the data to the array + // stateArr->array[stateArr.size] = parameter + stateArr->array[&stateArr->size].population = statePop; + stateArr->array[&stateArr->size].growth = stateGrowth; + stateArr->array[&stateArr->size].majority = politicalMajority; + // use strcpy(stateArr->array[stateArr.size].name, stateName) + strcpy(stateArr->array[&stateArr->size].name, stateName); + // increment size (stateArr.size = stateArr.size + 1) + &stateArr->size = &stateArr->size + 1; + printf("\nDONE IF\n"); + } // no return, void } @@ -50,6 +68,10 @@ Dependencies: addElementFromData - function uses one code statement void addElementFromElement( StateArrayType *stateArr, const StateDataType state ) { + printf("\nAdding Element\n"); + addElementFromData(stateArr, state.name, state.population, + state.growth, state.majority); + printf("\nAdded Element\n"); // no return, void } @@ -87,7 +109,15 @@ Dependencies: as needed, including free */ StateArrayType *clearStateArrayType( StateArrayType *stateArray ) { - // return NULL (temporarily) + int stateIterator; + for(stateIterator = 0; stateIterator < stateArray->size; stateIterator++) + { + // free the states from memory + free(&stateArray->array[stateIterator]); + } + // free the array in the stateArray + free(stateArray); + // return NULL once complete return NULL; } @@ -304,6 +334,13 @@ Dependencies: none */ void setEmptyElementData( StateDataType *element ) { + // set the element's name to "" + strcpy(element->name, ""); + // set the element's population and growth to 0 + element->population = 0; + element->growth = 0.0; + // set the element's majority to 'x' + element->majority = 'x'; // no return, void } @@ -320,6 +357,14 @@ Dependencies: as needed */ void showTitle() { + // use console io utilities to display the string + printString("Data Management with Log N Sorting"); + // print endline + printEndline(); + // use console io utilities to display 38 '=' + printCharacters(TITLE_LENGTH, EQUALS); + // print an endline + printEndline(); // no return, void } @@ -355,6 +400,45 @@ Dependencies: as needed */ bool uploadStateData( StateArrayType *arrayType, const char *fileName ) { + // setup a counter and other variables + int stateNum = 0; + StateDataType stateUpload; + bool fileOpenCheck; + char currentString[STD_STR_LEN]; + // int populationUpload; + // double growthUpload; + // char majorityUpload; + // open file + setEmptyElementData(&stateUpload); + fileOpenCheck = openInputFile(fileName); + if(fileOpenCheck) + { + // read in the four strings/starting line + // (use readStringToLineEndFromFile) + readStringToLineEndFromFile(currentString); + while(!checkForEndOfInputFile()) + { + // repeat these steps: (use readStringToDelimiterFromFile) + // read in the state name, store + readStringToDelimiterFromFile(COMMA, currentString); + strcpy(stateUpload.name, currentString); + // read in the population, store (cast from string to int) + stateUpload.population = readIntegerFromFile(); + readCharacterFromFile(); + // read in the growth, store (cast from string to double) + stateUpload.growth = readDoubleFromFile(); + // read in the majority, store + readCharacterFromFile(); + stateUpload.majority = readCharacterFromFile(); + // use the addElementFromElement function to add the data to array + printf("\nElement: %d uploaded\n", stateNum); + stateNum = stateNum + 1; + addElementFromElement(arrayType, stateUpload); + // do until end of the file is reached. + } + // return true when completely finished + return true; + } // return false return false; } diff --git a/PA03-0920/build/Debug/outDebug b/PA03-0920/build/Debug/outDebug new file mode 100755 index 0000000000000000000000000000000000000000..fc5b29a7af43412432e771f4dbf5bd431dc78d1f GIT binary patch literal 85040 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

{p+9%fJ5zbEQZ`zZS1%k^u@(xH|; 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 literal 0 HcmV?d00001