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
//////////////// import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; public class Aparcamiento { { ///// lista de vehiculos registrados (residentes) //// LO INICIALIZO Y CARGO registrado.add("O8976"); registrado.add("P7564"); registrado.add("S7534"); registrado.add("P1111"); registrado.add("Z6966"); registrado.add("M1122"); registrado.add("L5897"); registrado.add("T2349"); boolean estaReg = false; ///// ALMACEN PARA INFORMES //// declaro un ArrayList de Vehiculos que hacen estancias (otro ArrayList) ArrayList<EstanciaVehiculo> estanciado = new ArrayList<EstanciaVehiculo>(); ////////////////////// /* MODULO PARA INTRODUCIR VEHICULO */ ////////////////////// //// primero cojo un coche y lo estaciono Vehiculo vehiculo = new Vehiculo(); vehiculo.setMatricula("Z1234A"); vehiculo.setOficial(false); Estancia estancia = new Estancia(); estancia.setHoraEntrada("19:00:23"); estancia.setHoraSalida("00:00:00"); estancia.estaEstacionado=true; //// e introduzco el vehiculo en el arraylist de los que estan EstanciaVehiculo ev = new EstanciaVehiculo(); ev.estancia = estancia; ev.vehiculo = vehiculo; estanciado.add(ev); /////////// otro coche vehiculo = new Vehiculo(); vehiculo.setMatricula("M1122"); vehiculo.setOficial(false); estancia = new Estancia(); estancia.setHoraEntrada("09:00:23"); estancia.setHoraSalida("00:00:00"); estancia.estaEstacionado=true; //// e introduzco el vehiculo en el arraylist de los que estan ev = new EstanciaVehiculo(); ev.estancia = estancia; ev.vehiculo = vehiculo; estanciado.add(ev); ////////////////////// /* MODULO PARA SACAR VEHICULO */ ////////////////////// estancia.estaEstacionado=true; /////// comprobar que esta estacionado (aunque ya lo tiene el booleano) boolean encontrado = false; estancia.horaSalida=horaSalida; EstanciaVehiculo evbuscado = null; for (int i = 0; i< estanciado.size();i ++) { evbuscado = estanciado.get(i); if (evbuscado.vehiculo.getMatricula().equals(matriculaSalida)) { encontrado = true; ///////// ahora vemos si esta registrado for (int j = 0; j < registrado.size();j++) { { estaReg = true; } } ////// lo quitamos estanciado.remove(i); darSalida(evbuscado, estancia, estaReg, almacen); } } } public static void darSalida(EstanciaVehiculo evbuscado, Estancia estancia, boolean estaReg, ArrayList almacen) { float importe = 0; evbuscado.estancia.estaEstacionado = false; if (evbuscado.vehiculo.isOficial()) importe = 0; try { tiempoSalida = sdf.parse("2017-01-11 "+ estancia.horaSalida); // TODO Auto-generated catch block e.printStackTrace(); } try { tiempoEntrada = sdf.parse("2017-01-11 "+ estancia.getHoraEntrada()); // TODO Auto-generated catch block e.printStackTrace(); } int minutosEstacionado = tiempoSalida.getMinutes() - tiempoEntrada.getMinutes(); int horasEstacionado = tiempoSalida.getHours() - tiempoEntrada.getHours(); System.out.println("El Coche " + evbuscado.vehiculo.getMatricula() + " ha permanecido "+ horasEstacionado + " : " + minutosEstacionado + " minutos."); if (!estaReg) { importe = horasEstacionado * 60 * evbuscado.estancia.getImporteMinutoNoRes(); importe = importe + minutosEstacionado* evbuscado.estancia.getImporteMinutoNoRes(); } else { if (evbuscado.vehiculo.isOficial()) { importe = 0; } else if (evbuscado.vehiculo.isResidente()) { importe = horasEstacionado * 60 * evbuscado.estancia.getImporteMinutoResidente(); importe = importe + minutosEstacionado* evbuscado.estancia.getImporteMinutoResidente(); } } almacenGlobal(evbuscado, importe, minutosEstacionado, horasEstacionado, almacen); } public static void almacenGlobal(EstanciaVehiculo ev, float importe, int minEst, int horEst, ArrayList almacen) { EstancVehImporte evi = new EstancVehImporte(); evi.setEv(ev); evi.setImporte(importe); evi.setTiempoHoras(horEst); evi.setTiempoMinutos(minEst); almacen.add(evi); }
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex