All pastes #800216 Raw Edit

Mine

public text v1 · immutable
#800216 ·published 2007-11-28 06:41 UTC
rendered paste body
#include <iostream>
#include <fstream>
#include <string>
#include "guestLinkedListClass.h"

using namespace std;


void OpenFile(char fileName[], fstream & fileStream, int iosInOut); // prototype for OpenFile


int main()
{	
	
	
	fstream  inFile; // inFile name
	fstream  outFile; // outFile name

	
	DinnerGuestList dinnerObject; //object of DinnerGuestList
	DinnerGuest updateList[MAX_UPDATES] = {{"Beachum", STK},{"Fred",CHICK},{"Iguban",STK}}; // array of names to update

	
	char names[MAX_NAME]; // char array for names
	char meal; // char for meal type
	MealType mealTyp; // MealType to store meal type
	
	
	OpenFile("guestList.txt", inFile, ios::in);
	OpenFile("guestListoutput.out", outFile, ios::out);
	
	
	inFile >> names; // name priming read
	inFile >> meal; // meal priming read
	
	
	while (inFile) //while file has data
	{	
		
		switch (meal) // check for meal type
		{
			case 'C':
				mealTyp = CHICK;
				break;
			case 'V':
				mealTyp = VEG;
				break;
			case 'S':
				mealTyp = STK;
				break;
			default:
				cout << "Incorrect Meal Type\n";
		}//switch
		
		
		dinnerObject.InsertSorted(names, mealTyp); // call InsertSorted to store info
		
		
		inFile >> names; // next read
		inFile >> meal; // next read
		
	} //while
	
	
	dinnerObject.PrintGuestList(outFile); // Prints guest list
	dinnerObject.PrintMeals(outFile); // Prints meals
	
	
    for (int i = 0; i < MAX_UPDATES; i++) // transverses through updateList
    {
    	
    	if( dinnerObject.UpdateGuest(updateList[i].guestName, updateList[i].mealTyp) ) // calls UpdateGuest and checks bool value
    	{
    		
    		outFile << updateList[i].guestName << "'s meal was changed to " << MEAL_NAMES[updateList[i].mealTyp] << "\n";
    		
    	}
    	else
    	{
    		
    		outFile << updateList[i].guestName << " not found on guest list\n";
    		
    	}
    	
    } // for
    
    
    outFile << "\n"; // new line
    
    
    dinnerObject.PrintGuestList(outFile); // Prints guest list
    dinnerObject.PrintMeals(outFile); // Prints meals
    
    
    for (int i = 0; i < MAX_DELETES; i++) // transverses through DELETE_NAMES
    {
    	
    	if (dinnerObject.IsPresent(DELETE_NAMES[i])) //calls IsPresent and checks bool value
    	{
    		
    		dinnerObject.DeleteGuest(DELETE_NAMES[i]); // calls DeleteGuest to delete name
    		outFile << DELETE_NAMES[i] << " deleted from the list\n\n";
    		
    	}
    	else 
    	{
    		
    		outFile << DELETE_NAMES[i] << " could not be deleted from the list\n\n";
    		
    	}
    	
    } // for
    
    
    outFile << "\n"; // new line
    
    
    dinnerObject.PrintGuestList(outFile); // Prints guest list
    dinnerObject.PrintMeals(outFile); // Prints meals
    
    
    inFile.close(); // close input file
    outFile.close(); // close output file

    
	return 0;
	
} // main

//************************************************************
// OpenFile()- Takes filename, file stream, openmode
// and opens the file and checks for errors 
// Returns: NA
//*************************************************************
void OpenFile(char fileName[], // filename to open
			  fstream & fileStream, // file stream
			  int iosInOut) // openmode
{
	
	fileStream.open(fileName, (std::_Ios_Openmode)iosInOut); // opens file
	
	if(!fileStream) // checks if file opened
	{
		
		cerr << "File did not open\nHit enter to exit";
		cin.get();
		exit(1);
		
	}
	
} // OpenFile