Deze oefening bouwt voort op oefening 2.5. Voeg het bestand
studentenEnDocenten.csv toe aan je project.
Indien die oefening niet volledig klaar is (en getest op Dodona) kan je beter vertrekken van het project dat je kan downloaden van
Minerva.
In het bestand studentenEnDocenten.csv staan ook docenten, die hebben uiteraard geen punten.
Het is de bedoeling dat de klasse Klasgroep studenten en docenten onthoudt in één array. De klasse moet grondig aangepast worden.
- Wijzig de aanroep in het hoofdprogramma zodat het bestand "studentenEnDocenten.csv" wordt verwerkt. Nu krijg je een fout bij het uitvoeren omdat er geen punten zijn voor docenten.
- Om straks ook de docenten te kunnen onthouden wijzig je het type van de array (in de klasse Klasgroep) naar Persoon.
Hierdoor krijg je compile-fouten op verschillende plaatsen. Pas de code aan zodat alle compile-fouten opgelost worden.
- Onthoud nu ook de informatie van de docenten in dezelfde array. Een docent is een object van de klasse Persoon, en kan dus in dezelfde array opgeslagen worden.
Merk op: om te bepalen of een regel uit het bestand informatie van een student dan wel docent bevat,
kan je na inlezen van de eerste drie gegevens, de methode hasNextDouble gebruiken om na te gaan of een lijn ook nog punten bevat.
Controleer dat alles nog correct werkt. Nadien vul je het hoofdprogramma aan zoals hieronder aangegeven.
public static void main(String[] args) throws FileNotFoundException {
Klasgroep klasgroep = new Klasgroep("studentenEnDocenten.csv");
for (String s : Student.testen){
System.out.println("Aantal geslaagd voor test " + s + ": " + klasgroep.aantalGeslaagdenVoor(s,"???"));
}
System.out.println("De beste student is " + klasgroep.geefBesteStudent());
System.out.println("Er zijn " + klasgroep.aantalDocenten() + " docenten");
Persoon p = klasgroep.kiesPersoon();
System.out.println("Persoon : " + p);
p = klasgroep.kiesDocent();
System.out.println("Docent : " + p);
}
De laatste vijf regels code hiervan zullen pas werken als je onderstaande methodes schrijft:
- de methode aantalDocenten() bepaalt het aantal docenten in de klasgroep.
- de methode kiesPersoon() kiest een willekeurig persoon (student of docent) en geeft die terug.
- de methode kiesDocent() kiest een willekeurige docent en geeft die terug.
Bij indienen op Dodona is het noodzakelijk om de instelling van de scanner aan te passen. Voeg in de constructor de volgende regel toe (voor je eigen Scanner-variabele die een lijn verder opsplitst):
sc2.useLocale(Locale.FRENCH);