Kanjut SHELL
Server IP : 172.16.15.8  /  Your IP : 3.138.118.194
Web Server : Apache
System : Linux zeus.vwu.edu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Wed Nov 6 14:29:02 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 7.2.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0705) :  /home/ipjoslyn/../mrlong/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/ipjoslyn/../mrlong/hw8_212.cpp
//      Miles Long
//      Instructor: Dr. Wang
//      2/2/08
//      filename: hw8_212.cpp
//      Program that allows you to play with char/string/ints.
//

#include <iostream>

using namespace std;

void menu();
void menuForList();
template<class T> void process();
const int MAX = 100;


template <class T>
class List
{ 
	int length;
	T data[MAX];

public:
	List() // empty
	{ length = 0; }
	int Length() const
	{ return length; }
	void Insert (T item)
	{	
		data[length] = item;
		length ++;
	}
	void Print() const // as an array
	{
		for ( int k=0; k<length; k++ )
		cout << data[k] << '\n';
		cout << endl;
	}
	void Delete()
	{
		length --;
	}
	void Empty()
	{
		length = 0;
	}
	bool IsPresent( T item ) const
	{       
		bool done = false;
        	for(int i=0; i<length&&!done; i++)
                	if( item == data[i])
                        	done = true;
        	return done;
	}
	void SelSort ()
	{
		T temp; // for swapping

        	int passCount;
        	int minIndex; // hold the index of the minimum
		// total (length - 1) passes
        	for ( passCount=0; passCount<length-1; passCount ++ )
        	{
               		// search the smallest from present location
               		minIndex = passCount;

               		// compare from next item
               		for ( int k=passCount+1; k<length; k++ )
               		{
                      		if ( data[minIndex] > data[k] )
                      			minIndex = k;
               		}
		

                // find the minIndex, then swap it with the starting index
                temp = data[minIndex];
                data[minIndex] = data[passCount];
                data[passCount] = temp;
		}
        }
};

int main()
{	
	char ch;
	
	menu();
	cin >> ch; 

	while ( tolower(ch) != 'q' )
	{
		switch(tolower(ch))
		{
			case 'i':	
				cout << "\n\n\n\tNow using the int list. ";
				process<int>();
				break;
			case 'c':
				cout << "\n\n\n\tNow using the char list. ";
				process<char>();	
				break;
			case 's':
                                cout << "\n\n\n\tNow using the string list. ";
                                process<string>();
				break;
			default:
				cout << "\n\tInvalid, try again!\n\n";
		}
		menu();
		cin >> ch;
	}
	
	cout << "\n\n\tFin^\n\n";
	return 0;
}
//-----------------------------------------------
void menu ()
{
	system("clear");
	cout << "\n\nPick Your Operation!!!\n";
	cout << "-=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=-";
	cout << "\nPress I to inster a int.\n";
	cout << "Press C to insert a char.\n";
	cout << "Press S to insert a string.\n";
	cout << "Press Q to quit the operation.\n";
	cout << "-=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=-";
	cout << "\n\nChoose a operation: ";
}
//-----------------------------------------------
template <class T>
void process()
{
	char selection;
	List<T> z;
	T item;
	
	
	menuForList();
	cin >> selection;
	while(tolower(selection) != 'q')
	{
		switch (tolower (selection) )
		{
			case 'i':
				cout << "\n\nInput an item: ";
				cin >> item;
				z.Insert(item);
				cout << "\n\nType any key to continue ..";
                                getchar();
				getchar();
                                system("clear");
				break;
			case 'p':
				cout << "\n\n\tThe list is: \n";
				z.Print();
				cout << "\n\nType any key to continue ..";
                                getchar();
                                getchar();
				break;
			case 's':
				cout << "\n\n\tThe list is: \n";
				z.SelSort();
				z.Print();
				cout << "\n\nType any key to continue ..";
                                getchar();
                                getchar();
				break;
			case 'd':
				cout << "\tThe last item has been deleted. \n";
				z.Delete();
				z.Print();
				cout << "\n\nType any key to continue ..";
                                getchar();
                                getchar();
				break;
			case 'f':
				cout << "\n\nInput what you want to find: ";
				cin >> item;
                             	if ( z.IsPresent(item) )
                                	cout << "Congrats! It's there.\n";
				else
					cout <<	"How do I put this? It's not there!\n";
				cout << "\n\nType any key to continue ..";
                                getchar();
                                getchar();
				break;
			case 'e':
				cout << "\n\tThe list is now empty.\n";
				z.Empty();
				cout << "\n\nType any key to continue ..";
                                getchar();
                                getchar();
				break;		
			default:
				cout << "\n\n\tInvalid entry.\n\n";
		}
		menuForList();
		cin >> selection;
	}
}
//-----------------------------------------------------------
void menuForList()
{
	system("clear");	
	cout << "\n\n\t  I   to insert an item to the list.\n";
	cout << "\t  P   to print the list.\n";
	cout << "\t  S   to sort the list.\n";
	cout << "\t  D   to delete the last inputed item.\n";
	cout << "\t  F   to find a item in the list.\n";
	cout << "\t  E   to empty the list.\n";
	cout << "\t  Q   to quit the operation.\n";
	cout << "\n\t  You choose: ";
} 

Stv3n404 - 2023