Gå til innhold

sliter litt med en oppgave......


Anbefalte innlegg

sliter litt med følgende oppgave:

 

noen som kan hjelpe?

 

Vi skal lage en klasse som representerer vannflasker. En flaske er kjennetegnet med identifikasjon (tegnstreng), volum (f.eks. 3 liter), og vanninnhold (f.eks. 1 liter). Vanninnholdet kan ikke overstige volumet på flasken.

Når en flaske opprettes skal den være tom.

 

Følgende operasjoner på vannflasker er mulige:

 

 

Fylle en flaske helt full

Tømme en flaske

Helle alt vannet fra en flaske over i en annen. Hvis det ikke er plass til alt vannet i den andre flasken, skal vi helle til den er full. Vi skal altså alltid helle så mye vi kan, enten til en flaske går tom, eller til den andre blir full!

a)

Lag en klasse som representerer slike flasker.

 

B) Lag et lite java-program som bruker flaskeklassen til å

 

 

opprette en 2-liters flaske og en 7-liters flaske.

fylle 7-liters flasken

helle fra 7-liters flasken til 2-liters flasken

skrive ut innholdet i hver av flaskene.

Innholdet i flaskene skal skrives ut etter hver operasjon.

Lenke til kommentar
Videoannonse
Annonse

Jaja :smile:... da får du lage deg en vannflaske klasse da...

 

Code:

public class VannFlaske
{
float innhold;
float volum;
String id;

public vannflaske(String id, float volum)
{
this.id = id;
innhold = 0;
this.volum = volum;
}
...osv
}

 

Hvis du sier hva du har problemer med, så kan jeg hjelpe, vær litt mer spesifikk.

 

[ Denne Melding var redigert av: MailMan13 på 2002-04-14 14:08 ]

Lenke til kommentar

Må ærlig innrømme at jeg ikke er særlig god på dette. men prøver å øære megh litt da... !!

 

Har forstått det sånn at jeg må ha to klasser.

En vannflaske klasse og en programklasse.

Flaskene skal opprettes med 3 parametre:

 

Et flaskenavn; eks tolitersflasken,syvlitersflasken.

Et fast volum: eks 2 , 7

Og et innhold: ved oprettelse =0 men som jeg kan gjøre beregninger på ved å flytte innhold mellom de to flaskene jeg oppretter...

Hvis syvliteren skal helles over i toliteren, så skal evnt "oveddsvæske" fortsatt være i syvliteren... og omvendt.......

 

 

sliter litt her......

Lenke til kommentar

Ok... skjønner du er fersk på objektorientering.

 

Du må ha to klasser, en med programmet i og en vannflaske.

 

Vannflasken skal ha en konstruktor som tar imot id og volum som argumenter (vist i forrige innlegg), videre må den ha metoder for å fylle flasken osv... metoden som overfører innhold mellom flasker skal ta imot et flaske objekt som argument og fylle alt eller så mye så mulig av innholdet over i den.

 

Altså, du trenger disse variablene og metodene i flaskeklassen:

Code:

public float volum;
public float innhold;
String id;

public void vannflaske(String id, float volum){} // constuctor
public void fyll(){} //fyller flasken helt opp
public void fyll(float volum){} fyller antall liter som er oppgitt
public void tom(){} //tømmer flaske
public void overfor(Flaske flaske){} //helle over mellom flasker

 

Hjalp dette?

 

[ Denne Melding var redigert av: MailMan13 på 2002-04-14 14:34 ]

Lenke til kommentar

Jeg er klar over hvilke metoder jeg må ha men problemet er hvordan jeg skal klare å "huske" hvor mye innhold som er i hvilken flaske...

Og så må jeg vel ha en meny i programklassen som lar meg velge hvilke metoder jeg skal utføre.. Kan denne lages som en switch?

Lenke til kommentar

//

// Flaske-klassen

//

 

public class Flaske

{

private int volum;

private int innhold;

private String flaskenavn;

 

 

 

public Flaske (String flaskenavn, int volum)

{

this.flaskenavn = flaskenavn;

innhold =0;

this.volum = volum;

}

 

public int fyll (int fyllliter)

{

innhold=volum;

return innhold;

}

 

public int tom ()

{

innhold =0;

}

 

public int overfor()

{

//her må innholdet fra en flaske over i en annen flaske på et vis..... :smile:

}

 

public int getInnhold ()

{

 

return innhold;

}}

 

 

***************************************************

 

 

//

//Vannflasker.java

//

 

import Flaske;

public class Vannflasker

{

 

public static void main (String [] args)

{

Flaske toliter = new Flaske ("Toliteren", 0,2);

Flaske syvliter = new Flaske ("Syvliteren", 0,7);

 

int valg;

 

 

 

switch (valg)

{

case '1': syvliter.fyll(); break;

case '2': her skal det overføres mellom flaskene....

case '3': syvliter.getInnhold(); toliter.getInnhold(); break;

}

 

 

 

Noe sånn som dette??

Er det noe å arbeide videre med eller er det helt på trynet? sliter litt nå....

takknemlig for hjelp....!!

Lenke til kommentar
Quote:


On 2002-04-15 18:34, MailMan13 skrev:

'overfor' metoden din må ta imot en flaske som argument, slik at du har noe å overføre til... så må innhold og volum deklareres public slik at kan finne ut hvor mye vann du kan overføre mellom dem..


Ellers ser det greit ut.


Lenke til kommentar

oki da nærmer det seg vel en løsning:

takker så mye for hjelpen...

 

Ps! Når jeg kjører jbuilder får jeg feilmld "unable to start runtime due to incomplete configuration"

vet du hva det kan være?

kjører xp pro og jbuilder 5

(får samme mld med jbuilder 6)

Lenke til kommentar

Quote:


(...) så må innhold og volum deklareres public slik at du vet hvor mye vann du kan overføre mellom dem..


 

Jeg ville beholdt innhold og volum private.

 

Bruk heller public int getInnhold()

og lag en public int getVolum()

 

Har egentlig ingen betydning, men det er 'riktigere' med tanke på objekt-orienterings-tankegangen dere skal lære.

 

Tror faktisk jeg har gjort akkurat samme oppgave for en del år siden !

 

 

mvh KA

http://andersen.homeip.net

Lenke til kommentar
  • 3 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...