Mostrando las entradas con la etiqueta Ayudantia Estructura de Datos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Ayudantia Estructura de Datos. Mostrar todas las entradas

jueves, 1 de noviembre de 2007

Tarea 1 de Estructura de datos


Usted trabaja de una empresa que se dedica a las ventas, dicha empresa tiene 3 sucursales y por cada sucursal tiene como máximo 10 vendedores, le han encargado hacer un programa para registrar el total de las ventas de cada sucursal, y luego sacar un promedio, por otra parte también se desea el total de ventas de cada trabajador y el promedio de ventas de los trabajadores de cada sucursal.

Diseñe un programa que permita obtener estos datos, además implemente las siguientes funciones:

Ingresar trabajadores

Modificar trabajadores

Eliminar trabajadores

Promedio de ventas por sucursal

Promedio de ventas de la empresa





Fecha de entrega 25 de Novienbre hasta las 23:59 al correo anny4884@gmail.com, el prpgrama debe estar debidamente documentado, debe compilar.

sábado, 27 de octubre de 2007

Recuperacion de ayudantia de Estructura de Datos

MIERCOLES 31 recuperccion de clases en la 301 AB a las 12:40, se entregara y xplicara la tarea y se veran archivos en C y C++

sábado, 25 de agosto de 2007

Ejemplo de programam en C++

Este es un ejemplo, en el cual se utiliza la jerarquia de clases Lista, en ella se utiliza Herencia y Polimorfismo.

El programa conciste en darle una serie de opciones al usuario, sobre que estructura de datos quiere trabajar, para ello se implementa un menu.

Programa.cpp

#include "iostream"
#include "cstdlib"
#include "sstream"
#include "Lista.hpp"
#include "Cola.hpp"
#include "ColaFifo.hpp"
#include "ColaPrioridad.hpp"
#include "Pila.hpp"



using namespace std;




class Main {
public:
Lista *l;

Main() {}

void Insertar(int item) {
l->insertar(item);
}


void elimina() {
l->eliminar();
}



void menu(int opcion)
{
switch ( opcion)
{
case 1: l = new Pila();
break;

case 2: l = new ColaFifo();
break;

case 3: l = new ColaPrioridad();
break;

case 4: exit(-1);

default: cout << "Intente nuevamente\n\n";
break;

}
}
};






int main(){
int opcion;
Main *a = new Main();
while(1){
cout<<"ELIJA UNA OPCION"< cout<<"1-para PILA"< cout<<"2-para COLAFIFO"< cout<<"3-para COLA DE PRIORIDAD"< cout<<"4-para SALIR"< cin >> opcion;
a->menu(opcion);


a->Insertar(5);
a->Insertar(10);
a->Insertar(7);
a->Insertar(100);
cout <<"\n";
cout <<"\n";
cout <<"Elementos ingresados:\n\n";
a->l->listar_elementos();
cout <<"\n";


a->elimina();
a->elimina();

cout <<"\n";

cout <<"Elementos que quedan despues de eliminar 2 veces ...\n\n" ;
a->l->listar_elementos();
cout <<"\n\n\n";

}
getchar();
return 0;
}

Pila.cpp

#include "Pila.hpp"
#include "Nodo.hpp"
#include "iostream>"
#include "cstdlib"

using namespace std;

Pila::Pila(): Lista(){}

Pila::~Pila(){}

void Pila::insertar(int item)
{
Nodo *n = new Nodo(item);
if(head == NULL)
head = last = n;
else
{
n->next= head;
head= n;
}
}

void Pila::eliminar()
{
Nodo* n;

n = head;
head = head->next;

delete n;
}

Pila.hpp

#ifndef PILA_HPP
#define PILA_HPP
#include "Lista.hpp"

using namespace std;

class Nodo;
class Lista;
class Iterador;

class Pila: public Lista
{
public:
Pila();
~Pila();
void insertar(int item);
void eliminar();

};
#endif

Nodo.cpp

#include "cstdlib"
#include "Nodo.hpp"

using namespace std;

/* Constructor que se encuentra sobrecargado */
Nodo::Nodo() {
dato = 0;
next = NULL;
}

Nodo::Nodo(int d) {
dato = d;
next = NULL;
}

Nodo::~Nodo(){}

int Nodo::getDato() {
return dato;
}

void Nodo::imprime_dato() {
cout << getDato() << endl;
}

Nodo.hpp

#ifndef NODO_HPP
#define NODO_HPP
#include "iostream"

using namespace std;

class Nodo {
// Variables de la instancia
protected:
int dato;

public:
Nodo *next;

// Constructor que se encuentra sobrecargado
Nodo();
Nodo(int d);
~Nodo();
int getDato();
void imprime_dato();
};

#endif

Lista.cpp

#include "cstdlib"
#include "Lista.hpp"
#include "Nodo.hpp"
#include "Iterador.hpp"

using namespace std;

Lista::Lista() {
head = NULL;
it = new Iterador(this);
}

Lista::~Lista(){}

void Lista::listar_elementos() {
it = new Iterador(head);
while ( !it->IsDone() ) {
it->Current()->imprime_dato();
it->Next();
}
}

Lista.hpp

#ifndef LISTA_HPP
#define LISTA_HPP

class Iterador;
class Nodo;

class Lista {
private:
Iterador *it;

public:
Nodo *head, *last;

Lista();
~Lista();
virtual void insertar(int item)= 0;
virtual void eliminar() = 0;
void listar_elementos();
};

#endif

Iterador.cpp

#include "stdlib.h>"
#include "Iterador.hpp"
#include "Lista.hpp"
#include "Nodo.hpp"

Iterador::Iterador(Lista *s)
{
current = s->head;
head = s->head;
}

Iterador::Iterador(Nodo *nodo)
{
current = nodo;
head = nodo;
}

Iterador::~Iterador(){}

void Iterador:: Next()
{
current = current->next;
}

Nodo* Iterador::Current()
{
if ( !IsDone() )
return current;
else return NULL;
}

int Iterador::IsDone()
{
return current == FALSE;
}

Iterador.hpp

#ifndef ITERA_HPP
#define ITERA_HPP
#define FALSE 0

using namespace std;

class Nodo;
class Lista;

class Iterador {
protected:
Nodo *current, *head;

public:
Iterador(Nodo *nodo);
Iterador(Lista *s);
~Iterador(); /* Destructor */

void Next();
Nodo* Current();
int IsDone();
};

#endif

ColaPrioridad.cpp

#include "cstdlib"
#include "iostream"
#include "ColaPrioridad.hpp"
#include "Nodo.hpp"
#include "Lista.hpp"
using namespace std;

ColaPrioridad::ColaPrioridad(): Cola(){
last = NULL;
}

ColaPrioridad::~ColaPrioridad(){}

void ColaPrioridad::insertar(int item){
Nodo* n= new Nodo(item);
if(head == NULL) head = n;
else
{
if( item <= head->getDato() )
{
n->next = head;
head = n;
}
else{
last = head;
while((last->next != NULL) && (last->next->getDato() < item))
last = last->next;
if(last->next == NULL)
last->next = n;
else
if( item <= last->next->getDato())
{
n->next = last->next;
last->next = n;
}
}
}
}

ColaPrioridad.hpp

#ifndef COLAPRIORIDAD_HPP
#define COLAPRIORIDAD_HPP
#include "Lista.hpp"
#include "Cola.hpp"

using namespace std;

class Iterador;
class Nodo;
class Cola;
class Lista;

class ColaPrioridad: public Cola{
public:
ColaPrioridad();
~ColaPrioridad();
void insertar(int item);
};
#endif

ColaFifo.cpp

#include "iostream"
#include "cstdlib"
#include "Cola.hpp"
#include "Nodo.hpp"
#include "ColaFifo.hpp"


using namespace std;

ColaFifo::ColaFifo(): Cola(){}


ColaFifo::~ColaFifo() {}

void ColaFifo::insertar(int item)
{
Nodo* n= new Nodo(item);
if (head == NULL)
head = last = n;
else
{
last->next = n;
last = n;
}
}

ColaFifo.hpp

#ifndef COLAFIFO_HPP
#define COLAFIFO_HPP
#include
#include"Cola.hpp"

using namespace std;


class Nodo;
class Cola;



class ColaFifo: public Cola
{
public:

ColaFifo();
~ColaFifo();


void insertar(int item);


};
#endif

Cola.cpp

#include "cstdio"
#include "cstdlib"
#include "iostream"
#include "Cola.hpp"
#include "Nodo.hpp"
#include "Lista.hpp"

using namespace std;

Cola::Cola():Lista(){}

Cola::~Cola(){}

void Cola::eliminar()
{
Nodo* temp;
temp = head;
head = head->next;

delete temp;
}

cola.hpp

#ifndef COLA_HPP
#define COLA_HPP
#include "Lista.hpp"

using namespace std;

class Iterador;
class Nodo;
class Lista;


class Cola: public Lista{
public:
Cola();
~Cola();

void eliminar();
};

#endif