NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

---Enunt---
Fie o clasa Project care modeleaza un proiect software. Proiectele vor avea un numar nelimitat de participanti si neaparat un manager. La un proiect se pot
adauga oricand participanti, folosind metoda public void addMember(Member m). Orice proiect are un titlu (String), un obiectiv (String) si niste (unul sau mai multe, vezi mai jos) fonduri (long).

Managerul si toti participantii vor fi programatori care au o varsta (int) si un nume (String). Un programator poate participa in mai
multe proiecte.

Exista trei tipuri de proiecte: comerciale, militare si open-source.
Cele comerciale si militare au un dead-line (String), cele open-source au un mailinglist (String) si numar nelimitat de membri. Cele militare au si o parola (String), iar cele comerciale au fonduri de marketing (long) egale cu jumatate din fondurile normale si un numar de echipe (int) mai mic decat numarul de membri.

Toate proiectele implementeaza o interfata Risky care are o metoda public int getRisk(). Aceasta metoda calculeaza riscurile legate de un proiect.
La cele militare, riscul estenumarul membrilor / lungimea parolei / fonduri * 0.00001.
La cele comerciale, riscul este echipe * 3 / numarul membrilor / fonduri * 0.00001 - fonduri de marketing *0.00003.
La proiectele open-source, riscul este nr. membrii / fonduri * 0.0001.

Clasa InvestmentCompany va modela o firma care, date fiind niste proiecte, calculeaza care este proiectul cel mai putin riscant. Va pune deci la dispozitie o metoda public void addProject(Project p) si o metoda public Project getBestInvestment(). Clasa InvestmentCompany va avea si o metoda public static void main(String[] args) care sa exemplifice folosirea ei.
----------------------------------------------------------------------------------------------------------------------------
//Clasa Projects

import java.util.ArrayList;

public class Projects implements Risky{

private String titlu;
private String obiectiv;
protected ArrayList<Member> membri = new ArrayList<Member>();
private long [] fonduri = new long[10];

public Projects ( String titlu, String obiectiv, long[]fonduri){
this.setTitlu(titlu);
this.setObiectiv(obiectiv);
this.setFonduri(fonduri);
}

public ArrayList<Member> getMembri() {
return membri;
}

public void setMembri(ArrayList<Member> membri) {
this.membri = membri;
}

public void addMember(Member m){

membri.add(m);
}

public String getTitlu() {
return titlu;
}

public void setTitlu(String titlu) {
this.titlu = titlu;
}

public String getObiectiv() {
return obiectiv;
}

public void setObiectiv(String obiectiv) {
this.obiectiv = obiectiv;
}

public long [] getFonduri() {
return fonduri;
}

public void setFonduri(long [] fonduri) {
this.fonduri = fonduri;
}

public long getFond(){

long suma = 0;
for( int i = 0;i<10;i++){
suma = suma + this.getFonduri()[i];
}
return suma;
}
public int getRisk(){
return 0;

}

}

// Clasa Comerciale

public class Comerciale extends Projects {

private String deadline;
private String fonduriDeMarketing;
private int numarDeEchipe;

public Comerciale(String titlu, String obiectiv, long []fonduri, String deadline, String fonduriDeMarketing, int numarDeEchipe ) {
super(titlu, obiectiv, fonduri);
this.setDeadline(deadline);
this.setFonduriDeMarketing(fonduriDeMarketing);
this.setNumarDeEchipe(numarDeEchipe);
}

public String getFonduriDeMarketing() {
return fonduriDeMarketing;
}

public void setFonduriDeMarketing(String fonduriDeMarketing) {
this.fonduriDeMarketing = fonduriDeMarketing;
}

public String getDeadline() {
return deadline;
}

public void setDeadline(String deadline) {
this.deadline = deadline;
}

public int getNumarDeEchipe() {
return numarDeEchipe;
}

public void setNumarDeEchipe(int numarDeEchipe) {
this.numarDeEchipe = numarDeEchipe;
}

@Override
public int getRisk() {
// TODO Auto-generated method stub

int nrMembri = this.getMembri().size();
int nrEchipe = this.getNumarDeEchipe();
long fond = this.getFond();
double fonduriM = Integer.parseInt(fonduriDeMarketing);

return (int) (nrEchipe*3/nrMembri/fond * 0.00001-fonduriM*0.00003);
}
}
// Clasa Militare


public class Militare extends Projects {
private String deadline;
private String parola;

public Militare(String titlu, String obiectiv, long []fonduri, String deadline, String parola){
super(titlu, obiectiv, fonduri);
this.setDeadline(deadline);
this.setParola(parola);
}

public String getDeadline() {
return deadline;
}

public void setDeadline(String deadline) {
this.deadline = deadline;
}

public String getParola() {
return parola;
}

public void setParola(String parola) {
this.parola = parola;
}

@Override
public int getRisk() {

// if (this.getRisk() < otherProj.getRisk())

int nrMembri = this.getMembri().size();
int lungimeParola = this.getParola().length();
long fond = this.getFond();

return (int) (nrMembri/lungimeParola/fond * 0.00001);
}

}
// Clasa OpenSource


public class OpenSource extends Projects {

private String mailingList;
public String getMailingList() {
return mailingList;
}
public void setMailingList(String mailingList) {
this.mailingList = mailingList;
}
public OpenSource(String titlu, String obiectiv, long []fonduri, String mailingList){
super(titlu, obiectiv, fonduri);
this.setMailingList(mailingList);

}
@Override
public int getRisk() {
// TODO Auto-generated method stub

//nr. membrii / fonduri * 0.0001

int nrMembri = this.getMembri().size();
long fond = this.getFond();

return (int) (nrMembri/fond * 0.00001);

}

}
//Clasa Member


public class Member {
int varsta;
private String nume;

public String getNume() {
return nume;
}
public void setNume(String nume) {
this.nume = nume;
}

}
// intefata Risky
public interface Risky {
public int getRisk();

}

//Clasa InvestmentCompany

import java.util.ArrayList;

public class InvestmentCompany {

/**The list of projects */
protected static ArrayList<Projects> AllProjects = new ArrayList<Projects>();

/**
* Adds a project to the project list
* @param p - the project to be added
*/
public static void addProject(Projects p){

AllProjects.add(p);

}

/**
* Calculates the best project investment
* @returns the best investment
*/
public static Projects getBestInvestment(){

int min = Integer.MAX_VALUE;

Projects bestProject = null;

for( int i=0 ; i < AllProjects.size() ; i++ ){
if(min > AllProjects.get(i).getRisk()){
min = AllProjects.get(i).getRisk();
bestProject = AllProjects.get(i);
}
}
return bestProject;

}
public static void main(String[] args){

long [] fonduri = {1,1,1, 1, 1, 1, 1, 1, 1, 1};
Comerciale c1 = new Comerciale("c1", "expansiune",fonduri ,"decembrie", "25", 15);
c1.addMember (new Member());
addProject(c1);

long [] fonduri1 = {4,5,6, 9, 8, 7, 6, 5, 4, 1};
Comerciale c2 = new Comerciale("c2", "expansiune",fonduri1 ,"decembrie", "25", 15);
c2.addMember (new Member());
addProject(c2);

long [] fonduri2 = {9,9,9, 9, 8, 7, 6, 5, 4, 1};
Militare m1 = new Militare("m1", "anihilare", fonduri2, "octombrie", "1a2b3c");
m1.addMember (new Member());
addProject(m1);

long [] fonduri3 = {5,9,9, 9, 8, 7, 5, 5, 5, 1};
OpenSource o1 = new OpenSource("o1", "homework", fonduri3, "spam");
o1.addMember (new Member());
addProject(o1);

System.out.println("Proiectul cel mai putin riscant este: " + getBestInvestment().getTitlu());

}




}

// am creat 4 proiecte si le-am comparat

     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.