Initialize PA09
++ PA09 Files ++ Makefile for PA09
This commit is contained in:
parent
ba683c4f44
commit
146e26b5cf
17 changed files with 3832 additions and 0 deletions
120
PA09-1108/PA09_Main.c
Normal file
120
PA09-1108/PA09_Main.c
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
#include "StandardConstants.h"
|
||||
#include "File_Input_Utility.h"
|
||||
#include "GeneralUtility.h"
|
||||
#include "StudentUtility.h"
|
||||
#include "HeapUtility.h"
|
||||
|
||||
// Local Constants /////////////////////////////////////////////////////////////
|
||||
#define MAX_STUDENTS 50
|
||||
#define FILE_NAME_INDEX 1
|
||||
#define VERBOSE_INDEX 2
|
||||
#define SEMICOLON ';'
|
||||
|
||||
// Local function prototypes ///////////////////////////////////////////////////
|
||||
bool uploadData( const char *fileName, HeapType *heap, bool displayFlag );
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
HeapType *localHeap;
|
||||
StudentType testVal;
|
||||
int index;
|
||||
char outStr[ MAX_STR_LEN ];
|
||||
char fileName[ STD_STR_LEN ];
|
||||
bool dispFlag = false;
|
||||
|
||||
printf( "\nHEAP TYPE TEST\n" );
|
||||
printf( "==============\n\n" );
|
||||
|
||||
if( argc == 1 )
|
||||
{
|
||||
printf( "Error: Must provide file name as command line argument\n" );
|
||||
printf( " May also provide -v (after file name) " );
|
||||
printf( "to implement verbose operations\n" );
|
||||
printf( "\nProgram Aborted\n" );
|
||||
|
||||
return 1; // failed program
|
||||
}
|
||||
|
||||
// create heap type, initialize random priority source
|
||||
localHeap = createHeapType( MAX_STUDENTS );
|
||||
|
||||
privateCopyString( fileName, argv[ FILE_NAME_INDEX ] );
|
||||
|
||||
if( argc > VERBOSE_INDEX
|
||||
&& privateCompareStrings( argv[ VERBOSE_INDEX ], "-v" ) == 0 )
|
||||
{
|
||||
dispFlag = true;
|
||||
}
|
||||
|
||||
if( uploadData( fileName, localHeap, dispFlag ) )
|
||||
{
|
||||
printf( "========================================" );
|
||||
printf( "========================================\n" );
|
||||
|
||||
for( index = 0; index < 5; index++ )
|
||||
{
|
||||
removeItem( &testVal, localHeap, dispFlag );
|
||||
|
||||
studentDataToString( outStr, testVal );
|
||||
|
||||
printf( "\n%s removed\n", outStr );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// end program
|
||||
|
||||
// clear heap type, including clear random priority source generator
|
||||
localHeap = clearHeapType( localHeap );
|
||||
|
||||
// report program end
|
||||
printf( "\nProgram End\n" );
|
||||
|
||||
// return success
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool uploadData( const char *fileName, HeapType *heap, bool displayFlag )
|
||||
{
|
||||
char nameString [ STD_STR_LEN ];
|
||||
double inputGPA;
|
||||
int inputID, treeHt, inputGender, counter = 1;
|
||||
|
||||
// Open file
|
||||
if( openInputFile( fileName ) )
|
||||
{
|
||||
readStringToDelimiterFromFile( SEMICOLON, nameString );
|
||||
|
||||
while( !checkForEndOfInputFile() )
|
||||
{
|
||||
printf( "%3d) Uploading %s\n", counter, nameString );
|
||||
|
||||
counter = counter + 1;
|
||||
|
||||
inputID = readIntegerFromFile();
|
||||
readCharacterFromFile();
|
||||
|
||||
inputGender = readCharacterFromFile();
|
||||
readCharacterFromFile();
|
||||
|
||||
inputGPA = readDoubleFromFile();
|
||||
|
||||
addStudentWithData( heap, nameString,
|
||||
inputID, inputGender, inputGPA, displayFlag );
|
||||
|
||||
readStringToDelimiterFromFile( SEMICOLON, nameString );
|
||||
|
||||
treeHt = findTreeHeight( heap->size );
|
||||
|
||||
printf( "Current count: %d, current tree height: %d\n\n",
|
||||
heap->size, treeHt );
|
||||
}
|
||||
|
||||
closeInputFile();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue