Cursanti
Enunt
abstract class Cursant{
private String nume,prenume;
private int varsta;
protected double nota=0;
public Cursant(String nume, String prenume, int varsta){
this.nume=nume;
this.prenume=prenume;
this.varsta=varsta;
}
public abstract void primestePunctaj(double nota);
public double getNota() {
return nota;
}
public String afisareInformatii(){
return nume+" "+prenume+" "+varsta;
}
public String toString(){
return afisareInformatii()+" "+getNota();
}
}
class Student extends Cursant{
public Student(String nume, String prenume, int varsta){
super(nume,prenume,varsta);
}
public void primestePunctaj(double nota){
super.nota=Math.floor(nota+0.5);
}
public String toString(){
return "Student: "+super.toString();
}
}
class Elev extends Cursant{
public Elev(String nume, String prenume, int varsta){
super(nume,prenume,varsta);
}
public void primestePunctaj(double nota){
double tmp=Math.ceil(nota+1.5);
if(tmp>10)
super.nota=10;
else
super.nota=tmp;
}
public String toString(){
return "Elev: "+super.toString();
}
}
class Profesor{
private String materie;
private Cursant[] cursanti;
private int nrCursanti=0;
public Profesor(String materie){
this.materie=materie;
cursanti=new Cursant[100];
}
public void adaugareCursant(Cursant cursant){
if(cursant!=null){
if(nrCursanti==cursanti.length){
Cursant[] tmp=new Cursant[cursanti.length+100];
for(int i=0;i<cursanti.length;i++)
tmp[i]=cursanti[i];
cursanti=tmp;
}
cursant[nrCursanti]=cursant;
nrCursanti++;
}
}
public void evalueazaCursanti(){
for(int i=0;i<nrCursanti;i++)
cursanti[i].primestePunctaj(Math.random()*10);
}
public double afisareMedieNote(){
double s=0;
if(nrCursanti==0) {
return s;
}
else{
for(int i=0;i<nrCursanti;i++)
s=s+cursanti[i].getNota();
return (double)s/nrCursanti;
}
}
public String toString(){
String result="Rezultate:\n";
for(int i=0;i<nrCursanti;i++)
result=result+cursanti[i].toString()+"\n";
return result;
}
}
public class Main {
public static void main(String[] args) {
Cursant c1=new Student("Nume1","Prenume1",20);
Cursant c2=new Elev("Nume2","Prenume2",21);
Cursant c3=new Student("Nume 3","Prenume3",22);
Profesor p1=new Profesor("Matematica");
p1.adaugareCursant(c1);
p1.adaugareCursant(c2);
p1.adaugareCursant(c3);
p1.evalueazaCursanti();
System.out.println("Media notelor:"+p1.afisareMedieNote());
System.out.println(p1);
}
}