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