miércoles, 1 de abril de 2009

Practica 9


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Practica_Visual_Elevador
{
public partial class Form1 : Form
{
int actualPiso, nuevoPiso,diferencia,i,pisoX,pisoY,menorIn;
double[] diferenciaPiso;
double menor;
Elevador E1,E2,E3;

public Form1()
{
actualPiso = nuevoPiso = diferencia = 0;
pisoX = 3;
pisoY = 8;
diferenciaPiso = new double [3];
E1 = new Elevador();
E2 = new Elevador(pisoX);
E3 = new Elevador(pisoY);
InitializeComponent();
}

private void btAceptar_Click(object sender, EventArgs e)
{
tbpisoActual.Enabled = true;
tbpisoActual.Focus();
tbpisoActual.Clear();


tbpisoNuevo.Clear();

menor = diferenciaPiso[0];
menorIn = 0;
for (i = 1; i < 3; i++)
{
if (diferenciaPiso[i] < menor)
{
menor = diferenciaPiso[i];
menorIn = i;
}
}

switch (menorIn)
{
case 0:
{
if (nuevoPiso > actualPiso)
{
diferencia = nuevoPiso - actualPiso;
lbxDatos.Items.Add("E l e v a d o r 1");
lbxDatos.Items.Add("");
lbxDatos.Items.Add("Empezando en el piso " + actualPiso);

for (i = 0; i < diferencia; i++)
{
lbxDatos.Items.Add("Va para arriba, ahora esta en el piso " + E1.Solicitud(nuevoPiso));
}
lbxDatos.Items.Add("Se detiene en el piso: " + E1.Pisoactual);
}

else
{
diferencia = actualPiso - nuevoPiso;
lbxDatos.Items.Add("E l e v a d o r 1");
lbxDatos.Items.Add("");
lbxDatos.Items.Add("Empezando en el piso " + actualPiso);
for (i = 0; i < diferencia; i++)
{
lbxDatos.Items.Add("Va para abajo, ahora esta en el piso " + E1.Solicitud(nuevoPiso));
}
lbxDatos.Items.Add("Se detiene en el piso: " + E1.Pisoactual);
}
break;
}

case 1:
{
if (nuevoPiso > actualPiso)
{
diferencia = nuevoPiso - actualPiso;
lbxDatos.Items.Add("E l e v a d o r 2");
lbxDatos.Items.Add("");
lbxDatos.Items.Add("Empezando en el piso " + actualPiso);

for (i = 0; i < diferencia; i++)
{
lbxDatos.Items.Add("Va para arriba, ahora esta en el piso " + E2.Solicitud(nuevoPiso));
}
lbxDatos.Items.Add("Se detiene en el piso: " + E2.Pisoactual);
}

else
{
diferencia = actualPiso - nuevoPiso;
lbxDatos.Items.Add("E l e v a d o r 2");
lbxDatos.Items.Add("");
lbxDatos.Items.Add("Empezando en el piso " + actualPiso);
for (i = 0; i < diferencia; i++)
{
lbxDatos.Items.Add("Va para abajo, ahora esta en el piso " + E2.Solicitud(nuevoPiso));
}
lbxDatos.Items.Add("Se detiene en el piso: " + E2.Pisoactual);
}
break;
}

case 2:
{
if (nuevoPiso > actualPiso)
{
diferencia = nuevoPiso - actualPiso;
lbxDatos.Items.Add("E l e v a d o r 3");
lbxDatos.Items.Add("");
lbxDatos.Items.Add("Empezando en el piso " + actualPiso);

for (i = 0; i < diferencia; i++)
{
lbxDatos.Items.Add("Va para arriba, ahora esta en el piso " + E3.Solicitud(nuevoPiso));
}
lbxDatos.Items.Add("Se detiene en el piso: " + E3.Pisoactual);
}

else
{
diferencia = actualPiso - nuevoPiso;
lbxDatos.Items.Add("E l e v a d o r 3");
lbxDatos.Items.Add("");
lbxDatos.Items.Add("Empezando en el piso " + actualPiso);
for (i = 0; i < diferencia; i++)
{
lbxDatos.Items.Add("Va para abajo, ahora esta en el piso " + E3.Solicitud(nuevoPiso));
}
lbxDatos.Items.Add("Se detiene en el piso: " + E3.Pisoactual);
}
break;
}

}
lbE1.Text = "" + E1.Pisoactual;
lbE2.Text = "" + E2.Pisoactual;
lbE3.Text = "" + E3.Pisoactual;
btAceptar.Enabled = false;

}

private void tbpisoActual_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == Convert.ToChar(Keys.Enter))
{
actualPiso = int.Parse(tbpisoActual.Text);

tbpisoNuevo.Enabled = true;
tbpisoNuevo.Focus();
tbpisoActual.Enabled = false;
diferenciaPiso[0] = Math.Pow((E1.Pisoactual - actualPiso), 2);
diferenciaPiso[1] = Math.Pow((E2.Pisoactual - actualPiso), 2);
diferenciaPiso[2] = Math.Pow((E3.Pisoactual - actualPiso), 2);





}
}

private void Form1_Load(object sender, EventArgs e)
{
lbE1.Text = ""+E1.Pisoactual;
lbE2.Text = "" + E2.Pisoactual;
lbE3.Text = "" + E3.Pisoactual;
tbpisoNuevo.Enabled = false;
btAceptar.Enabled = false;
}

private void tbpisoNuevo_KeyPress(object sender, KeyPressEventArgs e)
{

if (e.KeyChar == Convert.ToChar(Keys.Enter))
{

nuevoPiso = int.Parse(tbpisoNuevo.Text);

if (nuevoPiso <> 15)
{
MessageBox.Show("El piso solicitado no existe");


tbpisoNuevo.Clear();
tbpisoNuevo.Focus();


}
else
{
btAceptar.Enabled = true;
tbpisoNuevo.Enabled = false;
}


}
}
}
}
Class Elevador:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Practica_Visual_Elevador
{
class Elevador
{
int piso_Act;

public Elevador()
{
piso_Act = 1;
}

public Elevador(int p)
{
piso_Act = p;
}

public int Solicitud(int pisoNuevo)
{
if (pisoNuevo <> 15)
{
return 0 ;
}
else
{
if (pisoNuevo > piso_Act)
{

while (pisoNuevo > piso_Act)
{
piso_Act++;
return piso_Act;
}
return piso_Act;

}
else
{

while (pisoNuevo < piso_Act)
{
piso_Act--;
return piso_Act;
}
return piso_Act;
}
}

}

public int Pisoactual
{
get { return piso_Act; }
}
}
}

No hay comentarios:

Publicar un comentario