0

Hey everyone, I have to take some code and make my a linked list using the accounts class. would i simply have to replace the list class with a struct???? here is my code....

//Assignment #6 due 2-8-2010
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
//global declarations
typedef char Name_t[15];
typedef fstream Infile_t;
typedef fstream Outfile_t;
typedef char Filename_t[50];
//*********************************************************************************************************
//classes
class cAccount
{
	private:
		int accountID;
		Name_t accountName;//(last,first)
		float accountBal;
	public:
		cAccount();
		int get_accountID(int &accountID)
		{ accountID=this->accountID; return accountID;};
		void read(Infile_t &Infile);
		void print(Outfile_t &Outfile);
		void display();
};//end of cAccount
class cAccountList
{
	private:
		static const int MAXARRAYSIZE=51;
		int counter;
		typedef cAccount AccountArray[MAXARRAYSIZE];
		AccountArray AccountList;
	public:
		cAccountList();
		void load_data(Infile_t &Infile);
		void print_to_outfile(Outfile_t &Outfile);
		void print_to_screen();
		void sort_by_ID();
		bool search();
};//end of cAccountList
//*********************************************************************************************************
//class cAccount functions
cAccount::cAccount()
{
	accountID=0;
	accountBal=0;
};//default constructor
void cAccount::read(Infile_t &Infile)
{ Infile>>accountID>>accountName>>accountBal; };
//end of cAccount::Read
void cAccount::print(Outfile_t &Outfile)
{ 
	Outfile<<" "<<accountID<<"	"<<accountName<<"	$"<<accountBal<<endl;
	Outfile<<"_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_"<<endl;
};//end of print
void cAccount::display()
{
	cout<<" "<<accountID<<"		"<<accountName<<"	$"<<accountBal<<endl;
	cout<<"***********************************************************"<<endl;
};//end of display
//*********************************************************************************************************
//class cAccountList functions  
cAccountList::cAccountList()
{ counter=0; };//default constructors
void cAccountList::load_data(Infile_t &Infile)
{
	Filename_t Filename;
	cout<<"BEGINING PROCESS......."<<endl<<endl;
	cout<<"Please enter the name of the datafile to be used:"<<endl;
	cin>>Filename;
	Infile.open(Filename,ios::in);
	AccountList[counter].read(Infile);
	while(!Infile.eof())
	{
		counter=counter+1;
		AccountList[counter].read(Infile);
	}//end while
	Infile.close();
	cout<<"Datafile read....SUCCESS!"<<endl;
};//end of read_data
void cAccountList::print_to_outfile(Outfile_t &Outfile)
{
	Filename_t Filename;
	cout<<"Please enter the name of the output file:"<<endl;
	cin>>Filename;
	Outfile.open(Filename,ios::out);
	Outfile<<"*************************************************************************"<<endl;
	Outfile<<" "<<"ACCOUNT_ID#"<<"		"<<"ACCOUNT_NAME"<<"	"<<"ACCOUNT_BALANCE"<<endl;
	Outfile<<"*************************************************************************"<<endl<<endl;
	for(int I=0; I<counter; I++)
	{
		AccountList[I].print(Outfile);
	}//end for
	Outfile.close();
	cout<<"Outfile write...SUCCESS!"<<endl<<endl;
};//end print_to_outfile
void cAccountList::print_to_screen()
{
	int choice;
	cout<<"Would you like to preview your output file? (Y/N)"<<endl;
	cout<<"Enter '1' for yes or '2' for no"<<endl;
	cin>>choice;
	if(choice == 1)
	{
		cout<<"Generating preview of output....."<<endl<<endl;
		cout<<"********************************************************************"<<endl;
		cout<<" "<<"ACCOUNT_ID#"<<"	"<<"ACCOUNT_NAME"<<"	"<<"ACCOUNT_BALANCE"<<endl;
		cout<<"********************************************************************"<<endl<<endl;
		for(int I=0; I<counter; I++)
		{
			AccountList[I].display();
		}//end for
	}//end if
	else
	{ cout<<"Very well...MOVING TO NEXT PROCESS"<<endl;}
};//end print_to_screen
void cAccountList::sort_by_ID()
{
	int I,Pass;
	int accountID;
	AccountArray temp;
	for(Pass=1; Pass<counter-1; Pass++)
	{
		for(I=0; I<counter-1; I++)
		{
		if(AccountList[I].get_accountID(accountID) > AccountList[I+1].get_accountID(accountID))
		{
			temp[I]=AccountList[I];
			AccountList[I]=AccountList[I+1];
			AccountList[I+1]=temp[I];
		}//end if
		}//end inside for
	}//end outside for
};//end sort_by_ID
bool cAccountList::search()
{
	bool Found=false;
	int I=0;
	int accountID;
	int searchID=0;
	Name_t searchName;
	Name_t accountName;
	int choice;
	cout<<"Would you like to search for a record at this time? (Y/N)"<<endl;
	cout<<"Enter '1' for yes or '2' for no"<<endl;
	cin>>choice;
	while(choice==1)
	{
		cout<<"Please enter the 5 digit ID number:"<<endl;
		cout<<"If the record is not found you will be asked if you would like another search."<<endl;
		cin>>searchID;
		while((!Found)&&(I<counter))
		{
			if(AccountList[I].get_accountID(accountID)!=searchID)
			{ I=I+1;}//end if
			else if (AccountList[I].get_accountID(accountID)==searchID)
			{	Found=true;
			  	cout<<"**************************************************************"<<endl;
			  	cout<<" "<<"ACCOUNT_ID#"<<" "<<"ACCOUNT_NAME"<<" "<<"ACCOUNT_BALANCE"<<endl;
			  	cout<<"**************************************************************"<<endl<<endl;
			 	AccountList[I].display();
			}//end else if			
		}//end interior while
		Found=false;
		choice=0;
		searchID=0;
		I=0;					
		cout<<"Would you like to search for another record? (Y/N)"<<endl;
		cout<<"Enter '1' for yes or '2' for no"<<endl;
		cin>>choice;
	}//end while
	cout<<"Very Well...GOODBYE!"<<endl<<endl;
	return Found;	
};//end search	
//*********************************************************************************************************
//*********************************************************************************************************
//prototypes
bool search(List_t List, cAccount theaccount, Addr_t &Pred);
void Delete(List_t &List, Addr_t &start, Addr_t pred);
void remove(List_t &List, Addr_t &start, cAccount theaccount);

//main
int main()
{
	Infile_t Infile;
	Outfile_t Outfile;
	cAccountList ACCOUNT;
	ACCOUNT.load_data(Infile);
	ACCOUNT.sort_by_ID();
	ACCOUNT.print_to_outfile(Outfile);
	ACCOUNT.print_to_screen();
	ACCOUNT.search();
return 0;
}//end main
//*********************************************************************************************************
bool search(List_t List, cAccount theaccount, Addr_t &Pred)
{
	Addr_t current;
	bool Found;
	bool Done;
	
	Done=false;
	current=start;

	while(!Done)&&(current!=NIL));
	{
		if(List[current].account.comparenameto(theaccount)<0)
		{
			Pred=current;
			current=List[current].Link;
		}
		else if(List[current.account.comparenameto(theaccount)>0)
		{
			Done=true;
			Found=false;
		}
		else
		{
			Done=true;
			Found=true;
			theaccount=List[current].account;
		}//end of if
	}//end of while

	return Found;
};//end search
//*********************************************************************************************************
void Delete(List_t &List, Addr_t &start, Addr_t pred)
{
	Addr_t current;
	
	if(Pred!=NIL)
	{
		List[Pred].link=List[current].link;
	}
	else
	{
		start=List[current].link;
	}//end if
}//end of delete
//*********************************************************************************************************
void remove(List_t &List, Addr_t &start, cAccount theaccount)//contains the target
{
	Addr_t current;
	bool Found;
	Addr_t Pred;
	Found=Search(List,Start,theaccount,pred);
	if(Found)
	{
		Delete(List,Start,Pred)
	}
	return Found;
};//end remove
//*********************************************************************************************************
2
Contributors
1
Reply
2
Views
7 Years
Discussion Span
Last Post by Ancient Dragon
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.