Kanjut SHELL
Server IP : 172.16.15.8  /  Your IP : 3.146.152.119
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/csdixon/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //home/csdixon/clemsoncode1.cpp
/*
        Programmer:  Christopher S. Dixon
        Prof:  Dr. Zizhong Wang
        Procedure:  This program allows the user to input, delete, print, sort
		    and find numbers in a list that is created by the user.
        Compile(in linux environment): g++ clemsoncode1.cpp
        Execute(in linux environment): ./a.out
*/

#include <iostream>

using namespace std;

const int MAX=50;

class List
{ 
	int length;
	int data[MAX];
	void BinSearch ( int item, bool& found, int& position) const;

public:
	List ( ) // empty list
	{ 	length = 0; 	}
	int Length ( ) const
	{	 return length;	 }
	bool IsFull ( ) const
	{ 	return ( length == MAX );	 }
	bool IsEmpty ( ) const
	{ 	return ( length == 0 );	 }
	void Print ( ) const     // as an array
	{ 	for ( int k=0; k<length; k++ )
			cout << data[k] << ' ';
			cout << endl;
	}	
	void Insert ( int item )
	{ 	data[ length ] = item;
		length ++;
	}
	void Delete ( int item )
	{
		bool found;
		int position;
		BinSearch( item, found, position );
		if (!found)
			cout << "Error.  No " << item << " in the list.\n";
		else
			{ for (int i=position; i<length; i++)
				data[i] = data[i+1];
				//shift data to the left
				cout << item << " is deleted from the list.\n";
				length --;
			}
	}
	bool IsPresent ( int item ) const
	{
		bool done = false;
		for ( int k=0; k<length && ! done; k++ )
		if ( data[k] == item )
			done = true;
		return done;
	}
	void SelSort ( );
};

// implementation
void List :: SelSort ( )
{	 int temp; // dummy for swapping
	int passCount;
	int minIndex;
	// 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;
	}
}

void List :: BinSearch ( int item, bool& found, int& position )const
{ 
	int first = 0;
	int last = length - 1;
	int middle;

	found = false;
	while ( last >=first && !found )
	{	middle = ( first + last ) / 2;
		if ( item < data[middle] ) // located in the first half
			last = middle - 1;
		else if ( item > data[middle] ) // located in the last half
			first = middle + 1;
		else found = true;
	} // found or not find (last < first)
	if ( found ) position = middle;
}

// function prototypes
void menu ();
void process ( char, List& );

int main()
{
	List myList; // empty List
	char ch;

	cout << "******************************"<< endl; //30
	cout << "*   Thank You For Using My   *"<< endl;
	cout << "*     Number Input List      *"<< endl;
	cout << "******************************\n" << endl;

	menu(); // reads the first entry
	cin >> ch;
	while ( tolower(ch) != 'q' )
	{
		process(ch, myList);
		menu(); // read next entry
		cin >> ch;
	}
	getchar();

	cout << "******************************"<< endl; //30
        cout << "*   Thanks Again For Using   *"<< endl;
        cout << "*       My Number Input      *"<< endl;
        cout << "*   List.  Have A Nice Day   *"<< endl;
        cout << "******************************\n" << endl;


	return 0;
}

void menu ()
{
	cout << "i insert an integer\n";
	cout << "f find an integer\n";
	cout << "p print the list\n";
	cout << "d delete an integer\n";
	cout << "s sort the list\n";
	cout << "q quit the operation\n";
	cout << "\nPlease Make a Selection: ";
}

void process ( char ch, List& myList )
{
	int number;
	switch ( tolower(ch) )
	{	 case 'i':
			cout <<"Input a integer: ";
			cin >> number;
			myList.Insert(number);
			// for debug
			cout << "\n\nThe list is: ";
			myList.Print();
			cout << "\n\nType any key to continue ..\n\n\n\n";
			getchar();
			break;
		case 's':
			myList.SelSort();
			// for debug
			cout << "\n\nThe list is: ";
			myList.Print();
			cout << "\n\nType any key to continue ..\n\n\n\n";
			getchar();
			break;
		case 'p':
			cout << "\n\nThe list is: ";
			myList.Print();
			cout << "\n\nType any key to continue ..\n\n\n\n";
			getchar();
			break;
		case 'd':
			cout << "Input an integer to be deleted: ";
			cin >> number;
			myList.Delete(number);
			// for debug
			cout << "\n\nThe list is: ";
			myList.Print();
			cout << "\n\nType any key to continue ..\n\n\n\n";
			getchar();
			break;
		case 'f':
			cout << "Input an item to be found: ";
			cin >> number;
			if ( myList.IsPresent(number) )
				cout << "\n\n" << number << " is in the list.\n";
			else
				cout << "\n\n" << number << " isn't in the list.\n";
			cout << "\n\nType any key to continue ..\n\n\n\n";
			getchar();
			break;
		default:
			cout << "\nInvalid input.\n" ;
			cout << "\n\nType any key to continue ..\n\n\n\n";
			getchar();
	}
	return;
}

Stv3n404 - 2023