markusrc11 / portamaprop Goto Github PK
View Code? Open in Web Editor NEWProjecte final de Programacio Java (2n GEINF)
Projecte final de Programacio Java (2n GEINF)
--
public double pes()
@pre després de realitzar l’algorisme
@post retorna el pes total generat per l’algorisme
public boolean acceptable(Candidat iCan)
@pre ---
@post retorna true si es pot afegir el candidat actual a la solució
public Candidat inicialitzarCandidats()
@pre ---
@post retorna els candidats inicialitzats
public boolean completa()
@pre ---
@post torna cert si la solució és completa
public boolean potSerMillor(Solucio s, Candidat iCan)
@pre ---
@post ens indica si la solució pot ser millor o no segons el candidat d’iCan
public boolean esMillor(Solucio s)
@pre ---
@post ens diu si la solució és millor
public void anotar(Candidat iCan)
@pre iCan és acceptable
@post afegiu iCan a la solució
public void anotar(Candidat iCan)
@pre iCan és l'últim candidat
@post treure iCan a la solució
Vista que gestiona la GUI de la finestra que mostra l'historial de fitxers
Punt de recàrrega on els vehicles poden carregar-se. Cada punt de recàrrega admet un màxim diferent de vehicles a la vegada.
DESCARTAT - PuntRecarrega()
Pre: - - -
Post: Crea un punt de recàrrega buit.
PuntCarrega(int codi, int capMax)
Pre: - - -
Post: Crea un punt de recàrrega amb la capacitat màxima.
boolean ple()
Pre: - - -
Post: Retorna cert si el punt de recàrrega ha arribat a la capacitat màxima de vehicles recarregant.
int capacitat()
Pre: - - -
Post: Retorna la capacitat màxima del punt de recàrrega
Controlador que gestiona les accions del menú d'historial
Destinada a gestionat tots els apartats necessaris per realitzar una simulació per l'empresa PortemAProp.
Aquesta classe s'ocupará de l'algorisme voraç. Pel cas de solucionador, es farà servir l'altre classe ja creada Solucionador.
public class Ruta /extends GraphicNode /{
int n_ruta;
//Graph the_g;
//Ruta (GraphicGraph graph, String id, HashMap <String,Object> attributes ){
//}
Ruta(){
n_ruta=0;
}
public static void main (String[] args)
{
Ruta r=new Ruta();
Graph graph = new SingleGraph("Tutorial 1");
//Punt de carrega
Node pc= graph.addNode("1");
pc.setAttribute("PC",r);
//Normal
Node n1= graph.addNode("2");
n1.setAttribute("N");;
//Normal
Node n2= graph.addNode("3");
n2.setAttribute("N");
Node n3= graph.addNode("4");
//n3.addAttribute("N", "4");
n3.setAttribute("N");
graph.addEdge("12", "1", "2");
graph.addEdge("23", "2", "3");
//Edge e= graph.getEdge("12");
//e.setAttribute("weight",5.0);
//double w = e.getNumber("weight");
//System.out.print(w);
for(Node n: graph)
{
if(n.hasAttribute("PC"))
{
System.out.println("Es un punt de carrega");
Ruta a=n.getAttribute("PC");
System.out.println(a);
}
else if(n.hasAttribute("N")) System.out.println("Es un punt normal");
}
//graph.display();
}
@OverRide // Heretat d'Object
public String toString() {
String s =" "+n_ruta;
return s;
}
}
Ruta amb el camí a seguir per cada vehicle per completar les peticions generades. L’origen i destí de la ruta és sempre un punt de càrrega.
int tempsTotal()
Pre: - - -
Post: Retorna el cost total, en temps, d’una ruta.
Node ultimNodeVisitat() {
Pre: _node.size > 0
Post: Retorna l'ultim Node a visitar
Node ultimaPeticio() {
Pre: _peticio.size > 0
Post: Retorna la última Peticio guardada
void afegirSeguentVisita(Node n, int temps)
Pre: --
Post: Afegeix el Node a la llista i incrementa el temps total
void afegirPeticio(Peticio p)
Pre: --
Post: Afegeix el Node a la llista i incrementa el temps total
void eliminarUltimaVisita(int temps)
Pre: _node.size > 0
Post: Elimina l'ultim Node de la llista i redueix el temps total
void eliminarUltimaPeticio()
Pre: _peticio.size > 0
Post: Elimina la última peticio acceptada de la llista
Classe encarregada de gestionar tots els espectes visuals (grafs, estadístiques...) amb una interfície gràfica.
Petició amb les dades de la ruta demanada per un client. Conté les dades del client i els punts d’origen (recollida) i destí demanats.
DESCARTADA - Peticio()
Pre: - - -
Post: Crea una petició buida.
Peticio(Client c, Node ubiIni, Node ubiFin, int horaPet, int horaRec)
Pre: - - -
Post: Crea una petició amb lloc de recollida ubiIni, lloc de destí ubiFi i hora de recollida horaRec.
public double tempsReal(Graph g)
Pre: - - -
Post: retorna el temps directe entre nodes de la petició
private double tempsDirecte(Graph g)
Pre: - - -
Post: retorna el temps directe entre nodes de la petició
TEMPORAL - public Node ubiIni()
Pre: - - -
Post: retorna la ubicació inicial
TEMPORAL - public Node ubiFin()
Pre: - - -
Post: retorna la ubicació final
Aquest apartat consisteix (un cop acabat el projecte) a aclarar quí és l'author o autors de cada apartat del programa. Per aixó, s'hauràn de modificar els autors indicats en els comentaris de cada .java realitzat.
--
public boolean solucionar(Solucio inicial)
@pre ha d'haver estat executat per resoldre
@post torna si heu trobat una solució
void trobarMillor(Solucio actual)
@pre ---
@post troba la millor solució segons l’última i òptimitza solució
S'ocupa de gestionar tots els apartats visuals d'interacció amb l'usuari.
Descripció general
Localització identificada amb un codi. Aquestes localització representa una ubicació en un mapa.
DESCARTADA - Localitzacio()
Pre: - - -
Post: Crea una localització buida.
Localitzacio(int codi)
Pre: - - -
Post: Crea un nova localització identificada amb un codi.
Vista que gestiona la GUI de la pantalla principal
Destinada al tractament de dades entrades per fitxer. Sempre seguiràn una estructura estàndard d'entrada de dades i a partir d'aquí es gestionaràn per tal d'obtenir els objectes adients.
Mapa format per diferents ubicacions (localitzacions), on cada ubicació està unida amb una altra ubicació (carrer). Aquesta unió tindrà un cost que representa el temps que tardem en anar d’una ubicació a un altra.
Mapa
Pre: - - -
Post: Crea un mapa buit.
Mapa(int numUbi)
Pre: 0 <= numUbi.
Post: Si numUbi >= 0 es creara un mapa amb numUbi ubicacions,altrament si numUbi < 0 es crearà un mapa buit.
boolean existeixUbi(Localitzacio ubi)
Pre: - - -
Post: Retorna cert si ubi existeix al mapa, fals altrament.
boolean existeixUnio(Localitzacio ubiIni, Localitzacio ubiFin)
Pre: - - -
Post: Si ubilni i ubiFin existeixen al mapa i estan units entre si retornarà cert, fals altrament.
int costUnio(Localitzacio ubiIni, Localitzacio ubiFin)
Pre: - - -
Post: Si ubiln i ubiFin existeixen al mapa i estan units retornarà el cost de la unió entre ubilni i ubiFin. Si no estan units o no existeixen al mapa retorna -1.
int temps(Localitzacio ubiIni, Localitzacio ubiFin)
Pre: - - -
Post: Si ubilni i ubiFin existeixen en el mapa i estan units entre si retornarà el cost de la unió entre ubilni i ubiFin. Si no estan units o no existeixen al mapa retorna -1.
int numeroUbi()
Pre: - - -
Post: Retorna el número d’ubicacions del mapa.
DESCARTADA - void afegirPuntRecarrega (PuntRecarrega ptCarr)
Pre: --
Post : S’ha afegit el punt de recàrrega al mapa.
void afegirUbi (Localitzacio ubi )
Pre: - - -
Post : S’ha afegit la localització ubi el mapa.
void afegirTram (Localitzacio ubiIni, Localitzacio ubiFin, int temps)
Pre: - - -
Post: Si ubilni i ubiFin existeixen al mapa i estan units entre si, s’afegira temps com el cost que hi ha entre la unió de les ubicacions ubiIni i ubiFin.
Vehicle identificat per un codi. Cada vehicle té assignat un conductor i un número màxim de personas admès.
Vehicle()
Pre: - - -
Post: Crea un vehicle buit.
Vehicle(int codi)
Pre: - - -
Post: S’ha creat un nou vehicle amb identificador codi.
Vehicle(int codi, int numCond)
Pre: - - -
Post: S’ha creat un nou vehicle amb identificador codi i té assignat el conductor cond.
boolean ocupat()
Pre: - - -
Post: Retorna cert si el vehicle ja no té més seients disponibles, fals altrament .
int capacMax()
Pre: - - -
Post: Retorna el número màxim de passatgers que pot admetre el vehicle .
int ocupacio()
Pre: - - -
Post: Retorna el nombre de passatgers que té assignats el vehicle actualment .
DESCARTAT - void assignarConductor (String cond)
Pre: - - -
Post : S’ha assignat cond com a conductor del vehicle.
void afegirPassatger (int nombrePassat)
Pre: hi ha lloc.
Post : S’incrementa el nombre de passatgers del vehicle.
Destinada a la interpretació de les dades obtingudes després de realitzar el tractament de rutes i obtenir un estadístic complert de forma estructurada per una correcta interpretació per part de l'usuari.
Client identificat per un codi. El client esterà associat amb les peticions que hagi generat. Disposarà d'informació basica del client.
public Client()
Pre: - - -
Post: Constructor per defecte
public Client(String nom, String cog, int codi)
Pre: - - -
Post: Crea un client amb un codi i les dades personals
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.