Está en la página 1de 5

/*

Nombre: Oscar Alejandro Gonzalez Soto


Codigo: 20231578120
Grupo: 578-303 --- Programación Orientada a objetos
*/
#include <iostream>
using namespace std;
class Array
{
public:
int* operator+(int* array);
int* operator-(int* array);
bool arregloVacio(int*);
void mostrarArray(int*);
};
bool Array::arregloVacio(int* array)
{
return (array[1] == 0);
}
int* Array::operator+(int* array)
{
int x, tam, cap;
cap = array[0];
tam = array[1];
if (tam == cap-2)
cout << endl << "Arreglo lleno (limite de numeros alcanzado)";
else
{
cout << endl << "Dato: ";
if(cin >> x)
{
array[tam + 2] = x;
tam++;
array[1] = tam;
array[0] = cap;
}
else
{
cout<<endl<<"Entrada desconocida";
}
}
return array;
}
int* Array::operator-(int* array)
{
int tam = array[1], cap = array[0];

if (arregloVacio(array))
cout << endl << "Arreglo vacio";

else {
tam -= 1;
array[1] = tam;
int* temp = new int[cap];
if (temp == NULL)
cout << endl << "Error, no se pudo asignar memoria dinamica al arreglo";
for (int i = 2; i < tam + 2; i++)
{
temp[i] = array[i + 1];
}
delete[] array;
array = temp;
}
return array;
}
void Array::mostrarArray(int* array)
{
int tam, cap;
cap = array[0];
tam = array[1];
if (arregloVacio(array))
{
cout << endl << "Arreglo vacío" << endl;
return;
}
cout << endl << "Tamano\tCapacidad";
cout << endl << tam << "\t" << cap - 2;
cout << endl << "El arreglo es: ";

for (int i = 2; i < tam + 2; i++)


{
cout << array[i] << " ";
}
cout << endl;
}
int main()
{
int* array, cap, op;
Array ob;
cout << "Bienvenido al programa de manejo de arreglos dinámicos." << endl;
cout << "Ingrese capacidad del arreglo: ";
if (cin >> cap && cap > 0) {
array = new int[cap + 2];
if (array == nullptr) {
cout << "Error: No se pudo asignar memoria para el arreglo." << endl;
return 1;
}
array[0] = cap + 2;
array[1] = 0;
do {
cout << "\nMenú:\n";
cout << "1. Agregar elementos\n";
cout << "2. Eliminar elemento (primer elemento)\n";
cout << "3. Mostrar elementos\n";
cout << "4. Salir\n";
cout << "Opción: ";
if (cin >> op) {
switch (op) {
case 1:
array = ob.operator+(array);
break;
case 2:
array = ob.operator-(array);
break;
case 3:
ob.mostrarArray(array);
break;
case 4:
cout << "Saliendo del programa." << endl;
break;
default:
cout << "Opción incorrecta. Por favor, elija una opción válida." << endl;
}
} else {
cout << "Entrada desconocida. Por favor, ingrese una opción válida." << endl;
cin.clear();
cin.ignore();
}
} while (op != 4);
delete[] array;
} else {
cout << "Entrada desconocida. Por favor, ingrese una capacidad válida." << endl;
cin.clear();
cin.ignore();
}
return 0;
}

También podría gustarte