Vorige onderwerp :: Volgende onderwerp |
Auteur |
Bericht |
Vincent
Geregistreerd op: 06 Okt 2010 Berichten: 80 Woonplaats: Tremelo
|
Geplaatst: 25-11-2010 18:25:37 Onderwerp: Bop Student |
|
|
Code: |
public class Student {
//Instantievariabelen
private String naam;
private String voornaam;
private int[] punten = new int[6];
//Constructors
public Student(){
}
public Student (String n, String v){
this.setNaam(n);
this.setVoornaam(v);
this.initialiseerRij();
}
//Setters
public void setNaam(String n){
if (n != null){
this.naam = n;
}
}
public void setVoornaam(String v){
if (v != null){
this.voornaam = v;
}
}
//Getters
public String getNaam (){
return this.naam;
}
public String getVoornaam(){
return this.voornaam;
}
public int getPuntOpPositie(int n){
return punten[n];
}
public int aantalPunten(){
return punten.length;
}
public int[] getPunten(){
return this.punten;
}
public int aantalPuntenIngevuld(){
int n = 0;
for(int i = 0; i < punten.length; i++){
if (punten[i] != -1){
n++;
}
}
return n;
}
//Andere Methodes;
public void initialiseerRij(){
for (int i =0; i <this.punten.length;i++){
this.punten [i] = -1;
}
}
public void geefIn(int p){
int i = 0;
boolean stop = false;
if (p >= 0 && p <=20){
while( i <this.punten.length && stop ==false){
if (this.punten[i]== -1){
this.punten[i] = p;
stop = true;
}
i++;
}
}
}
public int gemiddelde(){
int gem = 0;
int som =0;
int n =0;
for (int i=0 ; i <this.punten.length; i++){
if (this.punten[i] != -1){
som = som + this.punten[i];
n++;
}
}
gem = som /n;
return gem;
}
public int hoogstePunt(){
int hoogste = -1;
for (int i = 0; i <this.punten.length; i++){
if (this.punten[i] > hoogste){
hoogste = this.punten[i];
}
}
return hoogste;
}
public int laagstePunt(){
int laagste = 20;
for (int i=0;i< this.punten.length;i++){
if (this.punten[i] < laagste){
laagste = this.punten[i];
}
}
return laagste;
}
public String toString(){
String s = new String(this.getVoornaam() + " " + this.getNaam() + "\n");
for (int i = 0; i < this.punten.length; i++){
s = s + ("Vak " + i + ": " + this.punten[i] + "\n");
}
return s;
}
public boolean isZelfde(Student s2){
boolean gelijk = false;
int [] temp1 = new int[21];
int [] temp2 = new int[21];
int n = 0;
if (s2 != null){
if (this.getNaam().equals(s2.getNaam()) && this.getVoornaam().equals(s2.getVoornaam())) {
for (int i =0; i < this.punten.length; i++){
if (this.punten[i] == -1){
temp1[20]= temp1[20] + 1;
}
else{
temp1[this.punten[i]]= temp1[this.punten[i]] + 1;
}
}
for (int i = 0; i < s2.punten.length; i++){
if (s2.punten[i] == -1){
temp2[20] = temp2[20] +1;
}
else{
temp2[s2.punten[i]] = temp2[s2.punten[i]] + 1;
}
}
gelijk = true;
while (n < 21 & gelijk == true){
if (temp1[n] != temp2[n]){
gelijk = false;
}
n++;
}
}
}
return gelijk;
}
public boolean isGeslaagd(){
boolean geslaagd = false;
if (this.aantalPuntenIngevuld() != 0){
if (this.gemiddelde() >=10){
geslaagd = true;
}
}
return geslaagd;
}
public int totaalProcent(){
int procent = 0;
procent = this.gemiddelde() * 5;
return procent;
}
public int[] kopieerPuntenlijst(){
int[] kopie = new int[this.punten.length];
for (int i = 0; i<this.punten.length; i++){
kopie[i] = this.punten[i];
}
return kopie;
}
public void verwijderPunt(int p){
for (int i = p; i < this.punten.length - 1; i++){
this.punten[i] = this.punten[i+1];
}
this.punten[this.punten.length - 1] = -1;
}
}
|
|
|
Terug naar boven |
|
 |
userkef1992

Geregistreerd op: 06 Okt 2010 Berichten: 220
|
Geplaatst: 29-11-2010 21:22:42 Onderwerp: Reeks |
|
|
Code: |
public class Reeks {
private String naam;
private Student[] studenten = new Student[25];
public Reeks (String naam){
this.naam = naam;
}
public void voegStudentToe(Student student){
int x=this.legepositie();
/* int x = 0
while (x<studenten.length-1&&studenten[x] != null){
x++;
}*/
if (x > -1){
this.studenten[x]=student;
}
}
public void voegStudentToe(String naam){
voegStudentToe(new Student(naam));
}
public void geefIn(int p, String naam){
int positie=bestaatStudent(naam);
if (positie > -1){
studenten[positie].geefIn(p);
}else{
int legepositie = legepositie();
if (legepositie != -1){
studenten[legepositie]= new Student(naam);
studenten[legepositie].geefIn(p);
}
}
}
public int legepositie(){
int i = 0;
int leeg = -1;
boolean stop = false;
while( i <this.studenten.length && stop ==false){
if (this.studenten[i]== null){
stop = true;
leeg = i;
}
i++;
}
return leeg;
}
public int bestaatStudent(String naam){
boolean gevonden = false;
int i = 0;
int pos = -1;
while (i<studenten.length && gevonden == false){
if(studenten[i]!= null && studenten[i].getNaam().equals(naam)){
gevonden = true;
pos = i;
}
i++;
}
return pos;
}
}
|
_________________
Citaat: |
if it ain't broke, fiddle with it until it is |
534907
Laatst aangepast door userkef1992 op 30-11-2010 14:31:55; in totaal 3 keer bewerkt |
|
Terug naar boven |
|
 |
userkef1992

Geregistreerd op: 06 Okt 2010 Berichten: 220
|
Geplaatst: 29-11-2010 21:23:16 Onderwerp: UI |
|
|
public class UI {
public static void main(String[]args){
Student seppe = new Student("seppe");
seppe.geefIn(4);
Reeks reeks2 = new Reeks("1TXREEKS2");
reeks2.voegStudentToe("Sander");
reeks2.voegStudentToe(seppe);
reeks2.geefIn(10,"sander");
}
} _________________
Citaat: |
if it ain't broke, fiddle with it until it is |
534907 |
|
Terug naar boven |
|
 |
ilias

Geregistreerd op: 06 Okt 2010 Berichten: 110
|
Geplaatst: 29-11-2010 21:43:45 Onderwerp: Re: Reeks |
|
|
userkef1992 schreef: |
Code: |
public void voegStudentToe(Student student){
int x=0;
while (x<studenten.length&&studenten[x] != null){
x++;
}
studenten[x]=student;
} |
|
Da gaat misgaan als uw reeks volzit en ge probeert er nog ene toe te voege. X wordt 25 en dan stopt de while, aangezien x == studenten.length. En dus, gaat hij die nieuwe student in studenten[25] steken, en dan een ArrayIndexOutOfBoundsException throwe.
Betere oplossing lijkt mij:
Code: |
int i = 0;
boolean gelukt = false;
while (!gelukt && i < studenten.length) {
if (studenten[i] == null) {
studenten[i] = student;
gelukt = true;
} else {
i += 1;
}
} |
Edit:
of beter nog, gebruik uw methode om een legeplaats te vinde, en als die er is, zet de student dan daar. Ge hebt die methode nu toch al; dus houde we ons aan het basisprincipe van OOP: DRY (don't repeat yourself) |
|
Terug naar boven |
|
 |
userkef1992

Geregistreerd op: 06 Okt 2010 Berichten: 220
|
Geplaatst: 29-11-2010 23:57:32 Onderwerp: hmmm |
|
|
stel nu dat ge de while loop doet tot rijlengte -1?
[edit] nee, doeme, me dumb, dan gaat dieje ni controleren of die != null _________________
Citaat: |
if it ain't broke, fiddle with it until it is |
534907 |
|
Terug naar boven |
|
 |
ilias

Geregistreerd op: 06 Okt 2010 Berichten: 110
|
Geplaatst: 30-11-2010 13:28:42 Onderwerp: Re: hmmm |
|
|
Code: |
function voegStudentToe(Student student) {
int positie = this.legepositie();
if (positie >= 0) {
this.studenten[positie] = student;
}
}
|
|
|
Terug naar boven |
|
 |
userkef1992

Geregistreerd op: 06 Okt 2010 Berichten: 220
|
Geplaatst: 30-11-2010 14:32:38 Onderwerp: Re: hmmm |
|
|
ilias schreef: |
Code: |
function voegStudentToe(Student student) {
int positie = this.legepositie();
if (positie >= 0) {
this.studenten[positie] = student;
}
}
|
|
moeten de andere methodes dan ook aangepast worden met "this."? _________________
Citaat: |
if it ain't broke, fiddle with it until it is |
534907 |
|
Terug naar boven |
|
 |
ilias

Geregistreerd op: 06 Okt 2010 Berichten: 110
|
Geplaatst: 30-11-2010 15:06:35 Onderwerp: Re: hmmm |
|
|
userkef1992 schreef: |
ilias schreef: |
Code: |
function voegStudentToe(Student student) {
int positie = this.legepositie();
if (positie >= 0) {
this.studenten[positie] = student;
}
}
|
|
moeten de andere methodes dan ook aangepast worden met "this."? |
Neuh, da's gewoon wa da ge zelf het liefst heb. Ik gebruik nogal graag heel veel "this"; kwestie van het duidelijk te houde da ge ni zomaar functies oproept, ma methodes op een object, en dan wel op het "eigen" object. |
|
Terug naar boven |
|
 |
|