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");
}
- General
- - Dudas y Preguntas
- - Troyanos y Herramientas
- - Manuales y Tutoriales
- - Programas de Protección
- - Mensajes Entre Nosotros
- Seguridad Informática
- - General
- - Exploits
- - Auditoria Web
- - Seguridad Wireless
- - - Antenas
- - - Adaptadores Wireless
- - Análisis de Malware
- - Informática Forense
- Sistemas Operativos
- - Windows
- - Linux
- - Otros
- Programación
- - Asm
- - - Manuales
- - - Fuentes
- - C/C++
- - - Manuales
- - - Fuentes
- - Delphi
- - - Manuales
- - - Fuentes
- - VB/.NET
- - - Manuales
- - - Fuentes
- - Java
- - - Manuales
- - - Fuentes
- - Python
- - - Manuales
- - - Fuentes
- - Otros lenguajes
- - - Manuales
- - - Fuentes
- - Autoit
- - - Manuales
- - - Fuentes
- - Otros lenguajes de Scripting
- - - Manuales
- - - Fuentes
- Programación Web
- - PHP
- - JS
- - NodeJS
- - Otros lenguajes
- - General
- I+D
- - Development Boards
- - - Arduino
- - - ESP
- - Single Board Computers y Embedded
- - - Raspberry Pi
- - Impresión 3D
- - - Mecánica
- - - Electrónica
- - - Firmware y Software
- - Electrónica
- Taller
- - Proyectos de Indetectables
- - - Desarrollo CoolvibesRAT
- - - KIMS MultiAV Scanner
- - Nuestros Programas
- - Cracking/Reversing
- - - Herramientas
- - - Manuales
- - Zona de Análisis
- - Lockpicking
- - - Bricolaje
- - - Manuales
- - - Vídeo Tutoriales
- - - Fresadoras