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);

}

}