06.08.2013 Views

Lösningsförslag till tentamen i EDAA10, Programmering i Java

Lösningsförslag till tentamen i EDAA10, Programmering i Java

Lösningsförslag till tentamen i EDAA10, Programmering i Java

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4. public class TimeQuestionnaire {<br />

private TimePeriod[] times;<br />

private ArrayList persons;<br />

}<br />

/** Beskriver en tidsenkät för ett möte. times innehåller mötestiderna<br />

sorterade efter starttid. */<br />

public TimeQuestionnaire(TimePeriod[] times) {<br />

this.times = times;<br />

persons = new ArrayList();<br />

}<br />

/** Lägger <strong>till</strong> en person med namnet name förutsatt att det inte redan finns en<br />

sådan person. Returnerar true om personen lagts <strong>till</strong>, annars false. */<br />

public boolean addPerson(String name) {<br />

if (findPerson(name) == null) {<br />

persons.add(new Person(name, times));<br />

return true;<br />

} else {<br />

return false;<br />

}<br />

}<br />

/** Markerar att personen med namnet name kan delta i mötet med nummer nbr (0,1,2 ...).<br />

Om det inte finns någon person med namnet name händer ingenting. */<br />

public void markPossible(String name, int nbr) {<br />

Person p = findPerson(name);<br />

if (p != null) {<br />

p.mark(nbr);<br />

}<br />

}<br />

/* Söker efter och returnerar personen med namnet name. Om ingen sådan person<br />

finns returneras null. */<br />

private Person findPerson(String name) {<br />

for (int i = 0; i < persons.size(); i++) {<br />

if (persons.get(i).getName().equals(name)) {<br />

return persons.get(i);<br />

}<br />

}<br />

return null;<br />

}<br />

/** Returnerar en lista med tider som passar alla personerna. Om ingen sådan<br />

tid finns returneras en tom lista. */<br />

public ArrayList possibleTimes() {<br />

ArrayList list = new ArrayList();<br />

for (int i = 0; i < times.length; i++) {<br />

boolean ok = true;<br />

for (int k = 0; k < persons.size(); k++) {<br />

if (! persons.get(k).isMarked(i)) {<br />

ok = false;<br />

}<br />

}<br />

if (ok) {<br />

list.add(times[i]);<br />

}<br />

}<br />

return list;<br />

}<br />

4(4)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!