elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Traduccion Java a C++, 5 clases, uso de registros y fechas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Traduccion Java a C++, 5 clases, uso de registros y fechas  (Leído 1,851 veces)
DAMIANNN

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Traduccion Java a C++, 5 clases, uso de registros y fechas
« en: 18 Enero 2017, 12:14 pm »

Hola!

Tengo un programa hecho en Java en el cual he empleado 5 clases, cómo os vendría traducirlo a C++, emplea ArrayList e instancias de clases claro. Solo el esqueleto, toda la algoritmia la intentaría pasar yo.

Saludos

La clase principal es esta, las demas son como registros con gets y sets (javabeans)

Código
  1. ////////////////
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6.  
  7.  
  8.  
  9.  
  10. public class Aparcamiento {
  11.  
  12.  
  13.  
  14. public static void main (String args[])
  15. {
  16.  
  17.  
  18. ///// lista de vehiculos registrados (residentes)
  19. ArrayList registrado = new ArrayList();
  20.  
  21. //// LO INICIALIZO Y CARGO
  22. registrado.add("O8976");
  23. registrado.add("P7564");
  24. registrado.add("S7534");
  25. registrado.add("P1111");
  26. registrado.add("Z6966");
  27. registrado.add("M1122");
  28. registrado.add("L5897");
  29. registrado.add("T2349");
  30. boolean estaReg = false;
  31.  
  32.  
  33. ///// ALMACEN PARA INFORMES
  34. ArrayList almacen = new ArrayList();
  35.  
  36.  
  37. //// declaro un ArrayList de Vehiculos que hacen estancias (otro ArrayList)
  38.  
  39.  
  40. ArrayList<EstanciaVehiculo> estanciado = new ArrayList<EstanciaVehiculo>();
  41.  
  42.  
  43.  
  44. //////////////////////
  45. /* MODULO PARA INTRODUCIR VEHICULO */
  46. //////////////////////
  47.  
  48.  
  49. //// primero cojo un coche y lo estaciono
  50. Vehiculo vehiculo = new Vehiculo();
  51.  
  52. vehiculo.setMatricula("Z1234A");
  53. vehiculo.setOficial(false);
  54.  
  55. Estancia estancia = new Estancia();
  56.     estancia.setHoraEntrada("19:00:23");
  57.     estancia.setHoraSalida("00:00:00");
  58.  
  59.     estancia.estaEstacionado=true;
  60.  
  61.     //// e introduzco el vehiculo en el arraylist de los que estan
  62.     EstanciaVehiculo ev = new EstanciaVehiculo();
  63.     ev.estancia = estancia;
  64.            ev.vehiculo = vehiculo;
  65.  
  66.     estanciado.add(ev);
  67.  
  68.  /////////// otro coche
  69.     vehiculo = new Vehiculo();
  70.  
  71. vehiculo.setMatricula("M1122");
  72. vehiculo.setOficial(false);
  73.  
  74. estancia = new Estancia();
  75.     estancia.setHoraEntrada("09:00:23");
  76.     estancia.setHoraSalida("00:00:00");
  77.  
  78.     estancia.estaEstacionado=true;
  79.  
  80.     //// e introduzco el vehiculo en el arraylist de los que estan
  81.     ev = new EstanciaVehiculo();
  82.            ev.estancia = estancia;
  83.            ev.vehiculo = vehiculo;
  84.  
  85.     estanciado.add(ev);
  86.  
  87.  
  88.  
  89.     //////////////////////
  90.     /* MODULO PARA SACAR VEHICULO */
  91.     //////////////////////
  92.        String matriculaSalida = "Z1234A";
  93.     String horaSalida = "21:12:00";
  94.     estancia.estaEstacionado=true;
  95.        /////// comprobar que esta estacionado (aunque ya lo tiene el booleano)
  96.        boolean encontrado = false;
  97.  
  98.        estancia.horaSalida=horaSalida;
  99.  
  100.        EstanciaVehiculo evbuscado = null;
  101.  
  102.  
  103.         for (int i = 0; i< estanciado.size();i ++)
  104.         {
  105.            evbuscado = estanciado.get(i);
  106.         System.out.println("matricula estanciado::::: " + evbuscado.vehiculo.getMatricula());
  107.  
  108.         if (evbuscado.vehiculo.getMatricula().equals(matriculaSalida))
  109.         {
  110.         System.out.println("ENCONTRADO");
  111.            encontrado = true;
  112.            ///////// ahora vemos si esta registrado
  113.            for (int j = 0; j < registrado.size();j++)
  114.            {
  115.             if (((String)registrado.get(j)).equals(evbuscado.vehiculo.getMatricula()))
  116.             {
  117.                  System.out.println("ESTA REGISTRADO ES OFICIAL O RESIDENTE");
  118.                  estaReg = true;
  119.             }
  120.            }
  121.            ////// lo quitamos
  122.            estanciado.remove(i);
  123.  
  124.            darSalida(evbuscado, estancia, estaReg, almacen);
  125.         }
  126.         }
  127.  
  128.  
  129.  
  130.  
  131.   }
  132.  
  133.  
  134.  
  135.  
  136.  
  137. public static void darSalida(EstanciaVehiculo evbuscado, Estancia estancia, boolean estaReg, ArrayList almacen)
  138. {
  139. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  140. float importe = 0;
  141.  
  142.  
  143. evbuscado.estancia.estaEstacionado = false;
  144.         if (evbuscado.vehiculo.isOficial()) importe = 0;
  145.  
  146.         Date tiempoSalida=null;
  147.  
  148. try {
  149. tiempoSalida = sdf.parse("2017-01-11 "+ estancia.horaSalida);
  150. } catch (ParseException e) {
  151. // TODO Auto-generated catch block
  152. e.printStackTrace();
  153. }
  154.         Date tiempoEntrada = null;
  155. try {
  156. tiempoEntrada = sdf.parse("2017-01-11 "+ estancia.getHoraEntrada());
  157. } catch (ParseException e) {
  158. // TODO Auto-generated catch block
  159. e.printStackTrace();
  160. }
  161.  
  162.        int minutosEstacionado = tiempoSalida.getMinutes() - tiempoEntrada.getMinutes();
  163.        int horasEstacionado = tiempoSalida.getHours() - tiempoEntrada.getHours();
  164.  
  165.         System.out.println("El Coche " + evbuscado.vehiculo.getMatricula() + " ha permanecido "+ horasEstacionado + " : " + minutosEstacionado +  " minutos.");
  166.  
  167.  
  168.                if (!estaReg)
  169.            {
  170.           importe = horasEstacionado * 60 * evbuscado.estancia.getImporteMinutoNoRes();
  171.           importe = importe + minutosEstacionado* evbuscado.estancia.getImporteMinutoNoRes();
  172.  
  173.           System.out.println(" tiene que pagar " + importe + " al tratarse de un no residente.");
  174.  
  175.            }
  176.                else
  177.                {
  178.  
  179.  
  180.  
  181.  
  182.         if (evbuscado.vehiculo.isOficial())
  183.         {
  184.  
  185.         importe = 0;
  186.         System.out.println(" Su estancia es gratuita ");
  187.  
  188.         }
  189.         else if (evbuscado.vehiculo.isResidente())
  190.         {
  191.           importe = horasEstacionado * 60 * evbuscado.estancia.getImporteMinutoResidente();
  192.           importe = importe + minutosEstacionado* evbuscado.estancia.getImporteMinutoResidente();
  193.           System.out.println(" tiene que pagar " + importe + " al tratarse de un residente.");
  194.         }
  195.  
  196.                }
  197.         almacenGlobal(evbuscado, importe, minutosEstacionado, horasEstacionado, almacen);
  198.  
  199.  
  200. }
  201.  
  202. public static void almacenGlobal(EstanciaVehiculo ev, float importe, int minEst, int horEst, ArrayList almacen)
  203. {
  204. EstancVehImporte evi = new EstancVehImporte();
  205.  
  206. evi.setEv(ev);
  207. evi.setImporte(importe);
  208. evi.setTiempoHoras(horEst);
  209. evi.setTiempoMinutos(minEst);
  210.  
  211. almacen.add(evi);
  212. }
  213.  
  214.  


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 18 Enero 2017, 14:38 pm por engel lex » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Traduccion Java a C++, 5 clases, uso de registros y fechas
« Respuesta #1 en: 18 Enero 2017, 19:56 pm »

Las clases las replicas. El ArrayList lo puedes cambiar por un vector.

Las operaciones con tiempos y fechas, puedes usar funciones de la librería ctime. Échale un ojo a time y strftime. En sus respectivas páginas en esa web tienes ejemplos.

Para todo lo demás, si tienes alguna duda en alguna conversión, pregunta por aquí.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] consultar registros entre fechas
Programación Visual Basic
NeoXero 1 1,906 Último mensaje 16 Mayo 2008, 12:01 pm
por Hans el Topo
Buscar registros entre 2 fechas usando maskedtextbox en vb.net
.NET (C#, VB.NET, ASP)
erick185 0 5,258 Último mensaje 25 Agosto 2009, 06:55 am
por erick185
problema con fechas en java y conexion a MS Acces
Java
AngelFQC 0 3,205 Último mensaje 26 Agosto 2009, 07:39 am
por AngelFQC
CODIGO DE JAVA - CALCULA LA DIFERENCIA DE FECHAS.....
Java
joseprox 0 9,450 Último mensaje 24 Junio 2010, 19:08 pm
por joseprox
ORDENACION DE NOTAS POR FECHAS EN JAVA.
Java
el_otro_yo 8 6,158 Último mensaje 19 Mayo 2012, 17:38 pm
por RyogiShiki
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines