Java

Moderators: jkien, Xilvo

Reageer
Berichten: 34

Java

Hallo kan iemand mij helpen alstublieft ik ben nog maar pas begonnen met het leren van programmeren Java en ik zit in de knoop met een heel grote oefening zet alvast de opgave hier onder

Jaarlijks moet een bedrijf belasting betalen op haar

voertuigenpark. Voor elke personenauto moet 1.1 keer het

aantal kW van de motor betaald worden. Verhoogd met 400

Euro indien de aankoopprijs van de wagen meer bedraagt dan

20.000 Euro. Voor elke vrachtwagen dient 69 Euro betaald te

worden per ton laadvermogen. Bereken de belasting die betaald

dient te worden door een bedrijf met volgend wagenpark:

1Vijf personenauto's: Mercedes (215kW, 34.000 Euro), VW

(167kW, 24.000 Euro), Renault (104kW, 18500 Euro) en

2 keer Renault (55kW, 11.000 Euro).

2 Twee vrachtwagens: _e_en met 18.5 ton laadvermogen en

een met 8 ton laadvermogen.

Creëer een extra klasse Bus. Voor een bus dient 33 Euro

Belasting betaald te worden per zitplaats en 11 Euro per m3

Laadruimte. Het bedrijf waarvan sprake in hoofstuk 4 schaft

twee busjes aan voor werknemerstransport: een met 22

Zitplaatsen en 7 m3 laadruimte en een met 14 zitplaatsen en 3

m3 laadruimte. Bereken de te betalen bedrijfsbelasting.

Wat wordt de te betalen belasting wanneer voor de belasting op

Auto’s er een bijkomende taks komt van 33 Euro per zitplaats?

Creëer een extra klasse Bedrijf, met 5 Auto, Vrachtwagen

en Bus attributen. Voorzie daarvoor de methodes addAuto,

addVrachtwagen en addBus met als parameters de waarden

Die je nodig hebt om een Auto, Vrachtwagen of Bus te

instantieren. Wanneer de client meer dan 5 attributen van een

Type wil toevoegen, verschijnt de boodschap `Maximaal 5 .

Attributen'.

Voorzie tenslotte de methode waarmee de belasting voor het

ganse bedrijf kan berekend worden.

Hier zijn ingeschreven codes die tot nu toe heb maar ik weet niet hoe het verder moet en of ze wel juist zijn

code 1

Code: Selecteer alles

public class Auto {

public int autoPrijs1= 34000;

public int autoPrijs2 =24000;

public int autoPrijs3 =18500;

public int autoPrijs4 =11000;

public int autoPrijs5= 11000;

public int autoKW1=215;

public int autoKW2=167;

public int autoKW3=104;

public int autoKW4=55;

public int autoKW5=55;

public Auto(int autoPrijs1,int autoPrijs2,int autoPrijs3,int autoPrijs4,int autoPrijs5, int autoKW1,int autoKW2,int autoKW3,int autoKW4,String bererkening){

}

public int getautoKW1(){

if (autoPrijs1 > 20000) { 

  return autoKW1 + 400; 

  } else {

  return autoKW1;

}

}

public int getautoKW2(){

if (autoPrijs2 > 20000) { 

  return autoKW2 + 400; 

  } else {

  return autoKW2;		 

  }

 }

public int getautoKW3(){

if (autoPrijs3 > 20000) { 

  return autoKW3 + 400; 

  } else {

  return autoKW3;		 

  }

}

public int getautoKW4(){

if (autoPrijs4 > 20000) { 

  return autoKW4 + 400; 

  } else {

  return autoKW4;		 

  }

}

public int getautoKW5(){

if (autoPrijs5 > 20000) { 

  return autoKW5 + 400; 

  } else {

  return autoKW5; 

}

}

}
code2

Code: Selecteer alles

public class Vrachtwagen {

public double laadvermogen1=18.5;

public double laadvermogen2;

public Vrachtwagen(double laadvermogen1,double laadvermogen2){

 }

public double laadvermogen1(){

if (laadvermogen1 == 18.5) { 

  return laadvermogen1 *69; 

  } else {

  return 0;		 

  }

}

public double laadvermogen2(){

if (laadvermogen2 == 8.0) { 

  return laadvermogen2 *69; 

  } else {

  return 0;  

}

}

}
code3

Code: Selecteer alles

public class Bus {

public int AantalZitPaatsen1=22;

public int  AantalZitPaatsen2=14;

public int laadruimte1;

public int laadruimte2;

public Bus (int AantalZitPaatsen1, int AantalZitPaatsen2,int laadruimte1,int laadruimte2){

}

public int AantalZitPaatsen1(){

if (AantalZitPaatsen1 == 22) { 

  return AantalZitPaatsen1 *33; 

  } else {

  return 0; 

  }

}

public int AantalZitPaatsen2(){

if (AantalZitPaatsen1 == 22) { 

  return AantalZitPaatsen1 *33; 

  } else {

  return 0; 

}

  }

public int laadruimte1(){

if (laadruimte1 == 7) { 

  return laadruimte1 *11; 

  } else {

  return 0; 

}

}

public int laadruimte2(){

if (laadruimte1 == 3) { 

  return laadruimte2 *11; 

  } else {

  return 0;

  }

}

}
kan u mij alstublieft helpen ik vind deze opgave moeilijk

vriendelijk groeten Marjan

Gebruikersavatar
Berichten: 2.097

Re: Java

Ik denk niet dat je met deze code op de goede weg zit.

In de klasses van auto, vrachtwagen en bus moet je maar 1 autio, vrachtwagen of bus aanmaken, en niet alle voertuigen ineens.

Stel dat je nu code moet schrijven om een andere hoeveelheid van voertuigen te berekenen, dan moet je alles herschrijven.

Ik zou het zo doen:

een abstracte klasse voertuig (deze is niet echt nodig, maar ik vind het altijd handig om gemeenschappelijke dingen van verschillende gelijkaardige klasses in een abstracte superklasse te steken):

public abstract class Voertuig

{

public abstract int getBelasting();

}

De klasses Auto, Vrachtwagen en Bus zijn allemaal subklasses van Voertuig.

Voorbeeld klasse Auto:

public class Auto extends Voertuig

{

private int kW;

private int prijs;

public Auto(int kW,int pijs)

{

this.kW=kW;

this.prijs=prijs;

}

@Override

public int getBelasting()

{

//TODO hier bereken je de belasting van de auto

}

}

Vrachtwagen en Bus zullen gelijkaardig zijn.

De klasse Bedrijf zal er nu zo uitzien:

public class Bedrijf

{

private Vector<Auto> autos;

public Vector<Vrachtwagen> vrachtwagens;

public Bedrijf()

{

autos=new Vector<Auto>(0);

vrachtwagens=new Vector<Vrachtwagens>(0);

}

public void addAuto(int kW,int prijs)

{

//TODO rekening houden met max van 5 autos

autos.add(new Auto(kW,prijs));

}

//TODO addVrachtwagen()

//TODO addBus()

public int getBelastingen()

{

int belastingen=0;

//TODO bereken belastingen

return belastingen;

}

Als er nu iets verandert aan de hoeveelheid voertuigen, dan moet je niet in alle klasses iets gaan aanpassen, maar enkel op de plaats van waar het object van Bedrijf aangemaakt en geïnitialiseerd wordt.
"Why must you speak when you have nothing to say?" -Hornblower

Conserve energy: Commute with a Hamiltonian

Berichten: 34

Re: Java

hoi

bedankt voor je reactie het gootste deel van de oefening is klaar

maar weet iemand hoe ik dit kan zetten in mijn add methoden Wanneer de client meer dan 5 attributen van een

Type wil toevoegen, verschijnt de boodschap `Maximaal 5 .

Attributen'.

groetjes marjan

Gebruikersavatar
Berichten: 2.097

Re: Java

Check eerst hoeveel attributen er al zijn (Voor een vector is dit vector.size()).

En indien er al vijf zijn, kan je dit laten weten door bv

System.out.println("boodschap...");

Of via een popupschermpje:

JOptionPane.showMessageDialog(null,"boodschap....");
"Why must you speak when you have nothing to say?" -Hornblower

Conserve energy: Commute with a Hamiltonian

Gebruikersavatar
Berichten: 4.810

Re: Java

ZVdP, je idee voor een abstracte bovenklasse is ok, enkel gebruik je in dit geval beter een interface (daar zijn ze voor gemaakt). Een abstracte bovenklasse is enkel aan te raden indien er gedeelde attributen of gedeelde, uitgewerkte methoden zijn (zelf in dit geval definieert men vaak nog een interface).

Reageer