Documente Academic
Documente Profesional
Documente Cultură
Subiectul 1
Subiectul 2
Subiectul 3
2020
Subiectul 1
Programul de test
- (0,5 p) completeaza o colectie de localitati cu 4 comune si 2 municipii
- (0,5 p) afiseaza polimorfic colectia de localitati si densitatea populatiei fiecarei localitati.
- (0,5 p) afiseaza doar municipiile din colectie prin testarea tipului acestora.
- (0,5 p) scade cu 50% populatia tuturor comunelor. Dupa scadere se vor afisa toate
localitatile.
Subiectul 1 (continuare)
Subiectul 1 (continuare)
Clasa Localitate
package modelex;
public class Localitate {
private String nume;
private String judet;
private int nrLoc;
private double suprafata;
@Override
public String toString(){
return String.format("%s judet %s, %d locuitori, suprafata %.2f kmp, densitate %.2f loc/kmp",
nume,judet,nrLoc,suprafata,densitate());
}
package modelex;
public class ModelEx {
public static void main(String[] args) {
Localitate l= new Localitate("Medgidia","Constanta",30000, 70);
System.out.println(l);
l.setNrLoc(l.getNrLoc()/2);
System.out.println(l);
}
}
run:
Medgidia judet Constanta, 30000 locuitori, suprafata 70.00 kmp, densitate 428.57 loc/kmp
Medgidia judet Constanta, 15000 locuitori, suprafata 70.00 kmp, densitate 214.29 loc/kmp
Subiectul 1 (continuare)
Clasa Comuna
package modelex;
public class Comuna extends Localitate {
private int nrSate;
package modelex;
public class ModelEx {
public static void main(String[] args) {
Comuna c= new Comuna("Mihai Viteazu","Constanta",3000, 100, 4);
System.out.println(c);
}
}
run:
Comuna Mihai Viteazu judet Constanta, 3000 locuitori, suprafata 100.00 kmp, densitate 30.00 loc/kmp, nr sate 4
Subiectul 1 (continuare)
Clasa Municipiu
package modelex;
public class Municipiu extends Localitate {
private boolean esteResedinta;
public Municipiu(String n, String j, int nl, double s,boolean er){
super(n,j,nl,s);
esteResedinta=er;
}
@Override
public String toString(){
String t="este resedinta judet";
if (!esteResedinta) t="nu " + t;
return String.format("Municipiu %s, %s", super.toString(), t);
}
}
Subiectul 1 (continuare)
package modelex;
public class ModelEx {
public static void main(String[] args) {
Municipiu m= new Municipiu("Medgidia","Constanta",40000, 1000, false);
System.out.println(m);
}
}
run:
Municipiu Medgidia judet Constanta, 40000 locuitori, suprafata 1000.00 kmp, densitate 40.00 loc/kmp, nu este resedinta judet
Subiectul 1 (continuare)
Programul de test
package modelex;
public class ModelEx {
public static void main(String[] args) {
Localitate[] colectie= { new Comuna("Oltina","Constanta",2500,70,3),
new Comuna("Murfatlar","Constanta",2000,50,2),
new Comuna("Cristian","Brasov",400,60,4),
new Comuna("Vladesti","Salaj",5000,80,5),
new Municipiu("Tulcea","Tulcea",25000,780,true),
new Municipiu("Cernavoda","Constanta",25000,780,false)};
System.out.println("Toate localitatile");
for (Localitate l:colectie) System.out.println(l);
System.out.println("Doar municipiile");
for (Localitate l:colectie)
if(l instanceof Municipiu) System.out.println(l);
System.out.println("Reduc populatia comunelor");
for (Localitate l:colectie)
if(l instanceof Comuna) l.setNrLoc(l.getNrLoc()/2);
System.out.println("Toate localitatile");
for (Localitate l:colectie) System.out.println(l);
}
}
Subiectul 1 (continuare)
Programul de test
run:
Toate localitatile
Comuna Oltina judet Constanta, 2500 locuitori, suprafata 70.00 kmp, densitate 35.71 loc/kmp, nr sate 3
Comuna Murfatlar judet Constanta, 2000 locuitori, suprafata 50.00 kmp, densitate 40.00 loc/kmp, nr sate 2
Comuna Cristian judet Brasov, 400 locuitori, suprafata 60.00 kmp, densitate 6.67 loc/kmp, nr sate 4
Comuna Vladesti judet Salaj, 5000 locuitori, suprafata 80.00 kmp, densitate 62.50 loc/kmp, nr sate 5
Municipiu Tulcea judet Tulcea, 25000 locuitori, suprafata 780.00 kmp, densitate 32.05 loc/kmp, este resedinta judet
Municipiu Cernavoda judet Constanta, 25000 locuitori, suprafata 780.00 kmp, densitate 32.05 loc/kmp, nu este resedinta judet
Doar municipiile
Municipiu Tulcea judet Tulcea, 25000 locuitori, suprafata 780.00 kmp, densitate 32.05 loc/kmp, este resedinta judet
Municipiu Cernavoda judet Constanta, 25000 locuitori, suprafata 780.00 kmp, densitate 32.05 loc/kmp, nu este resedinta judet
Reduc populatia comunelor
Toate localitatile
Comuna Oltina judet Constanta, 1250 locuitori, suprafata 70.00 kmp, densitate 17.86 loc/kmp, nr sate 3
Comuna Murfatlar judet Constanta, 1000 locuitori, suprafata 50.00 kmp, densitate 20.00 loc/kmp, nr sate 2
Comuna Cristian judet Brasov, 200 locuitori, suprafata 60.00 kmp, densitate 3.33 loc/kmp, nr sate 4
Comuna Vladesti judet Salaj, 2500 locuitori, suprafata 80.00 kmp, densitate 31.25 loc/kmp, nr sate 5
Municipiu Tulcea judet Tulcea, 25000 locuitori, suprafata 780.00 kmp, densitate 32.05 loc/kmp, este resedinta judet
Municipiu Cernavoda judet Constanta, 25000 locuitori, suprafata 780.00 kmp, densitate 32.05 loc/kmp, nu este resedinta judet
Subiectul 2
Clasa Microbuz
package modelex;
public class Microbuz {
private int nr;
private String traseu;
private double tarif;
@Override
public String toString(){
return String.format("Microbuz nr: %d, traseu: %s, tarif: %.2f lei",nr, traseu,tarif);
}
}
Subiectul 2 (continuare)
Clasa de test
package modelex;
public class ModelEx {
public static void main(String[] args) {
Microbuz[] colectie = {new Microbuz(305,"Km4-5 - Mamaia", 3),
new Microbuz(310,"Gara - Tomis Nord", 2),
new Microbuz(304,"CET - Tomis Nord", 3),
new Microbuz(301,"Km 4-5 Bd.Mamaia", 3)};
for (Microbuz m:colectie)
System.out.println(m);
}
}
run:
Microbuz nr: 305, traseu: Km4-5 - Mamaia, tarif: 3.00 lei
Microbuz nr: 310, traseu: Gara - Tomis Nord, tarif: 2.00 lei
Microbuz nr: 304, traseu: CET - Tomis Nord, tarif: 3.00 lei
Microbuz nr: 301, traseu: Km 4-5 Bd.Mamaia, tarif: 3.00 lei
Subiectul 3
package modelex;
import java.awt.*;
import java.awt.event.*;
public class Fereastra extends Frame implements ActionListener {
private Microbuz[] colectie = new Microbuz[50];
private int n=0;
Clasa de test
package modelex;
public class ModelEx {
public static void main(String[] args) {
Fereastra f = new Fereastra("L12-1");
f.pack();
f.setBounds(300,200,200,280);
f.setVisible(true);
}
}