Documente Academic
Documente Profesional
Documente Cultură
PORTOFOLIU TEME
PCLP2
Pandelea Daniel-Bogdan
Gr. 4441, AIA
BRAȘOV, 2015
Departamentul Automatică şi Tehnologia Informaţiei
Programul de studii Automatică şi Informatică Aplicată
Portofoliu teme PCLP2
Cuprins
1
Departamentul Automatică şi Tehnologia Informaţiei
Programul de studii Automatică şi Informatică Aplicată
Portofoliu teme PCLP2
TEMA #1 – Itinerarii
1.1. Enunț
Să se scrie un program Java care permite utilizatorului calcularea lungimii unui
itinerariu specificat de utilizator. Programul va oferi un meniu cu opțiuni pentru:
a. Adăugare oraș; programul va cere numele orașului, coordonatele geografice
(latitudine și longitudine) exprimate în grade zecimale (numere reale) și
poziția în itinerariu (un număr unic de ordine).
i. Orice eroare apărută la citirea datelor va fi raportată utilizatorului și
va determina anularea adăugării.
b. Eliminare oraș după nume. Numele orașului este furnizat de utilizator și
identificarea acestuia în listă se va face fără distincție între litere mari și
litere mici.
i. Orice eroare apărută va fi raportată utilizatorului.
c. Afișarea lungimii itinerariului. Pentru calculul distanțelor se vor folosi
următoarele valori: 1 grad latitudine = 111 km, 1 grad longitudinal = 79 km
și se vor considera rute liniare între orașe. Se va respecta ordinea orașelor.
d. Salvarea într-un fișier text a distanțelor dintre fiecare două orașe vecine, în
formatul:
d(nume oraș 1, nume oraș 2) = distanță 1 km
d(nume oraș 2, nume oraș 3) = distanță 2 km
…..
Se va respecta ordinea orașelor.
i. Orice eroare apărută va fi raportată utilizatorului.
2
Departamentul Automatică şi Tehnologia Informaţiei
Programul de studii Automatică şi Informatică Aplicată
Portofoliu teme PCLP2
Itinerariu.java
package mainPackage;
import java.io.FileWriter;
if(poz<nrOrase)
{
System.out.println("Pozitia introdusa este deja ocupata,
asa ca celelalte orase au fost mutate cu o pozitie mai in fata.");
for(int i = nrOrase+1; i>poz; i--)
orase[i]=orase[i-1];
}
orase[poz] = n;
nrOrase++;
}
if(((orase[i].getNume()).toLowerCase()).equals(n.toLowerCase()))
poz = i;
if(poz == -1)
return false;
3
Departamentul Automatică şi Tehnologia Informaţiei
Programul de studii Automatică şi Informatică Aplicată
Portofoliu teme PCLP2
nrOrase--;
return true;
}
out.close();
}
catch(Exception e)
{
System.out.println("A aparut o eroare la salvarea in
fisier: " + e.getMessage());
}
}
}
MainPrg.java
package mainPackage;
import java.util.Scanner;
5
Departamentul Automatică şi Tehnologia Informaţiei
Programul de studii Automatică şi Informatică Aplicată
Portofoliu teme PCLP2
do
{
try
{
System.out.print("Introduceti
pozitia orasului din itinerariu (intre 1 si " + (I.getNrOrase()+1) + "): ");
poz = in.nextInt();
}
catch(Exception e)
{
System.out.println("A aparut o
eroare la citirea pozitiei. Reincercati introducerea orasului.");
in.close();
return;
}
if(poz<1 || poz>I.getNrOrase()+1)
{
poz=-1;
System.out.println("Nu puteti
introduce orasul pe pozitia respectiva.");
}
} while(poz==-1);
x.setNume(n);
x.setLatitudine(la);
x.setLongitudine(lo);
I.addOras(x, poz);
break;
case 2:
try
{
in.nextLine();
System.out.print("Introduceti numele
orasului pe care doriti sa-l stergeti: ");
n = in.nextLine();
}
catch(Exception e)
{
System.out.println("A aparut o eroare la
citirea numelui. Reincercati introducerea orasului.");
in.next();
break;
}
if(!I.deleteOras(n))
System.out.println("Orasul cautat nu
exista in lista.");
break;
case 3:
System.out.println("Lungimea itinerariului
este: " + I.lungimeItinerariu());
break;
case 4:
6
Departamentul Automatică şi Tehnologia Informaţiei
Programul de studii Automatică şi Informatică Aplicată
Portofoliu teme PCLP2
I.saveToFile();
break;
case 5:
break;
default:
System.out.println("Optiunea introdusa nu
exista.");
break;
}
} while(option!=5);
in.close();
1.3. Rezultate
7
Departamentul Automatică şi Tehnologia Informaţiei
Programul de studii Automatică şi Informatică Aplicată
Portofoliu teme PCLP2
Figură 2 - Introducerea unei valori greșite, tratarea excepției și introducerea unui oraș pe o poziție deja ocupată
8
Departamentul Automatică şi Tehnologia Informaţiei
Programul de studii Automatică şi Informatică Aplicată
Portofoliu teme PCLP2