aki les traifo el codigo en C/C++ de in programita que simula un elevador en la pantalla
espero sus opiniones.
Recibo sugerencias.
Compilado en dev C.

/* Simulacion de movimiento de elevador con POO donde un cliente solicita un piso y el elevador se mueve a este
con un control de tiempo para simular pausas
*/
// programado por Hector Nolasco
// Escuela Superior de Computo (ESCOM I.P.N.) Mexico.
// ("EL CONOCIMIENTO ES PARA TODOS NO PARA UNOS CUANTOS")

#include<stdlib.h>
#include <iostream>
#include <time.h>

using namespace std;

int Aleatorio(int limite);
void tiempo_espera(int tiempo);
void dibujar_edificio(int piso_actual,int solicitud,int tiempo);

const int PRIMER_PISO=1;
const int ULTIMO_PISO=15;

//clase elevador
class Elevador{

private:
int pisoActual;
public:
Elevador::Elevador(int piso);
void mover_elevador(int piso,int tiempo);
};

Elevador::Elevador(int piso){
pisoActual=piso;
}

//funcion para mover el elevador
void Elevador::mover_elevador(int piso,int tiempo){

if (piso>pisoActual && piso <=ULTIMO_PISO){

do
{
++pisoActual;
//se llama a la funcion dibujar
dibujar_edificio(pisoActual,piso,tiempo);
tiempo_espera(1);
}
while (pisoActual<piso);
cout <<"*** El elevador cumplio la solicitud satisfactoriamente ***"<<endl;
tiempo_espera(5);
}

else if (piso<pisoActual && piso>=PRIMER_PISO){

do
{
--pisoActual;
//se llama a la funcion dibujar
dibujar_edificio(pisoActual,piso,tiempo);
tiempo_espera(1);
}
while (pisoActual>piso);
cout <<"*** El elevador cumplio la solicitud satisfactoriamente ***"<<endl;
tiempo_espera(5);
}
else
{
cout << endl<<"EL elevador ya esta en el piso solicitado"<<endl;
tiempo_espera(3);
}
}

//genera una pausa de acuerdo a un valor ingresado
void tiempo_espera(int tiempo){
long i;

for (i=0;i<tiempo*100000000;i++){}
}

//genera "piso aleatorio" y "tiempo de espera aleatorio"
int Aleatorio(int limite){
return rand() % limite +1;
}

//dibuja la matriz que corresponde al edificio y actualiza el dibujo para mostrar el piso actual
void dibujar_edificio(int piso_actual,int solicitud,int tiempo){

char Edificio[18][8];
int i,j;

for (i=0;i<17;i++){
for (j=0;j<8;j++){
Edificio[j]=177;
}
}

system("cls");
Edificio[piso_actual][4]=32;
cout <<"\t*** Simulacion de un elevador con POO ***"<<endl<<endl<< "\t\t ";

for (i=0;i<5;i++){
cout << Edificio[5][5];
}cout <<endl;

for (i=15;i>0;i--){
cout <<"\t\t";
for (j=7;j>0;j--){
cout << Edificio[j];
if (i==8 && j==1){
cout <<"\tSolicitud del cliente en el piso: " <<solicitud;
}
}
cout <<endl;
}

cout << endl<<endl<<"\t\tPiso Actual: "<< piso_actual<< endl<<endl;
cout << "\t\tTiempo total de la simulacion: " << tiempo << endl;
}

//funcion principal
int main(){
int tiempo_simulacion,i=0,solicitado=0,tiempo_espera=0;

srand(time(NULL));
cout << "\t*** Simulacion de elevador con POO ***"<<endl<<endl;
cout << "Ingrese el tiempo deseado para la simulacion: ";
cin >>tiempo_simulacion;

//se crea objeto
Elevador Elevador1= Elevador(1);

//ciclo principal, solicitar, mover y aumentar tiempos
while (i<=tiempo_simulacion){

solicitado=Aleatorio(15);
Elevador1.mover_elevador(solicitado,i);
tiempo_espera=Aleatorio(6);
i+=tiempo_espera;
cout << "Tiempo total de la simulacion: " << i;
}
cout <<endl<<"Simulacion Terminada"<<endl;

system("pause");
}
Wow, Instituto Politecnico Nacional es muy buena esa casa de estudios pero me gusta mas la UNAM , esta muy bien el codigo solo no olvides poner el programita en .exe por si alguien quiere probarlo y no compilarlo.
Imagen

www.anonimosx.net
Responder

Volver a “Manuales”