Sie sind auf Seite 1von 5

interface Risk{

public abstract double getRisk();


}

class Member{
private String name;
private int age;

public Member(String name,int age){


this.name=name;
this.age=age;
}
public String toString() {
return "-"+this.name+"\n-"+this.age;
}
}

abstract class Project implements Risk {


protected Member Manager;
protected String title;
protected String objective;
protected long stoc;
protected Member[] ListMemeber = new Member[15];

public abstract void addMember(Member m);


public abstract double getRisk();

public abstract void showMember();


public String toString() {
String s="";
s=s+"Manager: \n"+this.Manager.toString()
+"\n"+this.title+"\n"+this.objective+"\n"+this.stoc+"\nRisk:"+getRisk();
return s;
}
}

class ComercialProject extends Project{


private String deadline;
private long stocSEO;
private int team;
private int cntMem=0;

public ComercialProject(Member m,String title,String objective,long stoc,String


deadline,int team)
{
super.Manager=m;
super.title=title;
super.objective=objective;
super.stoc=stoc;
this.deadline=deadline;
this.stocSEO=stoc/2;

}
public void showMember(){
for (int i=0;i<cntMem;i++)
System.out.println(ListMemeber[i].toString()+"\n");
}
public double getRisk(){
if((cntMem !=0) && (stocSEO !=0 ))
return (double) (team)*3 / (double)cntMem/ (double)(stoc - stocSEO);
else
return -1;
}

public void addMember(Member m){


if(cntMem<15){
ListMemeber[cntMem]=m;
cntMem++;
}
}
}

class OpenSourceProject extends Project{


private String MailingList;
private int cntMem=0;
private Member[] aux;

public OpenSourceProject(Member m,String title,String objective,long


stoc,String mail)
{
super.Manager=m;
super.title=title;
super.objective=objective;
super.stoc=stoc;
this.MailingList=mail;

}
public void showMember(){
for (int i=0;i<cntMem;i++)
System.out.println(ListMemeber[i].toString()+"\n");
}

public double getRisk(){


if(stoc !=0)
return cntMem/stoc;
else
{
System.out.println("Nu se poate impartii la 0");
return -1;
}
}

public void addMember(Member m){


if(cntMem<15){
ListMemeber[cntMem]=m;
cntMem++;
}else{
aux=new Member[cntMem*2];

for(int i=0;i<cntMem;i++)
aux[i]=ListMemeber[i];

ListMemeber=aux;
ListMemeber[cntMem]=m;
}
}
}

class MilitaryProject extends Project{


private String deadline;
private String password;
private int cntMem=0;

public MilitaryProject(Member m,String title,String objective,long


stoc,String deadline,String password){
super.Manager=m;
super.title=title;
super.objective=objective;
super.stoc=stoc;
this.deadline=deadline;
this.password=password;

}
public void showMember(){
for (int i=0;i<cntMem;i++)
System.out.println(ListMemeber[i].toString()+"\n");
}
public double getRisk(){
if(this.password.length() !=0 && this.stoc !=0)
return (double)cntMem / (double)this.password.length() /stoc;
else
{
System.out.println("Nu se poate impartii la 0.\n");
return -1;
}
}

public void addMember(Member m){


if(cntMem<15){
ListMemeber[cntMem]=m;
cntMem++;
}
}
}

class InvestmentCompany{

private Project[] ListProject = new Project[10];


private Project[] auxP;
private int cntProj=0;
private double riskMin=1000;
private Project x=null;

public void addProject(Project p){


if(cntProj<10){
ListProject[cntProj]=p;
cntProj++;
}else{
auxP=new Project[cntProj*2];

for(int i=0;i<cntProj;i++)
auxP[i]=ListProject[i];

ListProject=auxP;
ListProject[cntProj]=p;
cntProj++;
}
}

public Project getBestInvestment(){

for(int i=0;i<cntProj;i++)
{
if(ListProject[i].getRisk()<=riskMin){
riskMin=ListProject[i].getRisk();
x=ListProject[i];
}
}
return x;
}

public static void main(String[] args){

//Se creaza obiecte membri;


Member m1=new Member("Andrei",28);
Member m2=new Member("Alina",23);

//Proiecte de tip Comercial


Project p1=new ComercialProject(m1,"Aplictie UPT 1","Gestionare
Studenti",10,"Marti 23/2018",3);
Project p2=new ComercialProject(m2,"Aplictie UPT 2","Biblioteca
Studenti",18,"Joi 2/2018",2);

p1.addMember(m2);
p2.addMember(m1);
p2.addMember(m2);
p1.addMember(m1);

//Proiecte de tip Militar


Project p3=new MilitaryProject(m2,"Atak USA","Stop Atak",56,"Vineri
05/2018","Krimea98#");
Project p4=new MilitaryProject(m1,"USA H2","Oprire Bomba",29,"Vineri
05/2018","DK123#");

//Proiecte OpenSource
Project p5=new OpenSourceProject(m2,"Seo Ads","Haribo
Gum",10,"adriandeaconu98@gmail.com");
Project p6=new OpenSourceProject(m1,"Marketing SA","Prezentare Coca
Cola",6,"cryston12@gmil.com");

p3.addMember(m1);
p4.addMember(m2);
p6.addMember(m2);
p5.addMember(m1);

InvestmentCompany firma=new InvestmentCompany();


firma.addProject(p1);
firma.addProject(p2);
firma.addProject(p3);
firma.addProject(p4);
firma.addProject(p5);

System.out.println(firma.getBestInvestment().toString());

}
}

Das könnte Ihnen auch gefallen