Får ikke programmer til å fungere

Får ikke programmer til å fungere

Innleggav 1337 » søn 13.03.2011 19:45

Sliter litt med et program jeg har holdt på med.
Det skal gjøre følgende:
- Helle over så mye som mulig fra Lastebil90 til Lastebil10.
- Helle over så mye som mulig fra Lastebil10 til Lastebil50.
- Helle over så mye som mulig fra Lastebil90 til Lastebil50

Det virker som det er noe gale med klient filen, de 8 siste linjene får jeg feilmeldinger på. Feilmeldingene sier:
multiple markers at this line:
- syntax error on token "lastebil10", variableDeclaratorID expected after this token.
- syntax error on token(s), misplaced construct(s)

Har prøvd å løse problemet med alternativene eclipse gir uten at problemet har blitt fikset. Håper dere kan hjelpe meg!

Klient filen (har market linjene jeg får feilmelding på med fet skrift).

Takker på forhånd for hjelp!

klient.java
Kode: Merk alt
//program so laster ulike mengder mellom lastebiler

import javax.swing.JOptionPane;

public class LastebilKlient {

    public static void main(String[] args) { //oppretter tre lastebiler.
          Lastebil Lastebil90 = new Lastebil(90); //90 kubikk
          Lastebil Lastebil50 = new Lastebil (50);
          Lastebil Lastebil10 = new Lastebil (10);
    }
   
    private int kapasitet;
    private int mengde1;
   
    //fyller lastebil90 full med sand
    public int fyllFull() {
      int Lastebil90;
      return (Lastebil90 = kapasitet);
}
[b]      Lastebil90.hellOver(Lastebil10);
      Lastebil10.hellOver(Lastebil50);
      Lastebil90.hellOver(Lastebil50);
      
     
     System.out.println(Lastebil90);
     System.out.println(Lastebil10);
     System.out.println(Lastebil50)[/b];
}
   





Kildekoden til Lastebil.java
Kode: Merk alt
public class Lastebil {

private int kapasitet;
private int mengde1;

// konstruktør for lastebil
public Lastebil (int kapasitet) {
   this.kapasitet = kapasitet;
this.mengde1 = 0;
}
//returnerer lastekapasitet
public int getKapasitet() {
   return this.kapasitet;
}
public int getmengde1() {
   return this.mengde1;
}
//returnerer nåværende mengde sand i lastebilen (kubikk)
public int nåværendeMengdeSand() {
return kapasitet - mengde1;
}
//fyller lastebilen full med sand
public void fyllFull() {
mengde1 = kapasitet;
}
//tømmer lastebilen for sand
public void tøm() {
mengde1 = 0;
}
//trenger jeg denne? Ser etter ledig plass
public double ledigPlass() {
   return (kapasitet - mengde1);
}

public void setmengde1 (int mengde1) {
{
        if (mengde1>kapasitet)
                return;
        else if (mengde1 <0)
                return;
        else
                this.mengde1 = mengde1;
}
}

//heller over fra en lastebil til en annen (?)
public void hellOver (Lastebil) {
   if (Lastebil.getmengde1 ==0 )
    {
            System.out.println("Ingenting å helle over.");
            return;
    }
    else if ((mengde + Lastebil.getmengde1()) > getKapasitet())
    {
            System.out.println("Avbrutt helleprosess. Ville rent over.");
            return;
    }
    else
    {
            System.out.println(Lastebil.getmengde1()+"liter helt over.");
            setmengde1(mengde1 + Lastebil.getMengde1());
            Lastebil.setmengde1(0);
    }
}

public String toString()
{
    return "Kapasitet: " + getKapasitet() + "\r\nmengde1: " + getmengde1();
}
}
medlem i 161 måneder
 

Re: Får ikke programmer til å fungere

Innleggav Soerboe » man 14.03.2011 9:51

For det første:
- tror ikke fyllFull() i klient.java gjør det du ønsker. du må kalle Lastebil90 sin funksjon fyllFull() som du har laget. (Lastebil90.fyllFull()) Det funksjonen gjør nå er ikke helt meningfylt tror jeg...

Så for å skrive ut info om lastebilene må du bruke toString() som du har laget i Lastebil.java nå du skriver ut med System.out.println.

Brukerens avatar
medlem i 202 måneder
 

Re: Får ikke programmer til å fungere

Innleggav 1337 » man 14.03.2011 15:21

Takker for tilbakemeldingen Soerboe!

Fikk fjernet fyllFull fra klient filen, når jeg no kaller fyllFull, går kapasiteten til lastebil90 opp på 90. PRoblemet er at lastebilen ikke heller over kapasitet til de andre lastebilene.

Jeg kaller metoden hellOVer, men det virker som at den ikke fungerer, eller noe slikt.

Programmet skal gjøre følgende:
Fyll Lastebil90 full med sand. (den er grei)
• Hell over så mye som mulig fra Lastebil90 til Lastebil10.
• Hell over så mye som mulig fra Lastebil10 til Lastebil50.
• Hell over så mye som mulig fra Lastebil90 til Lastebil50

Slik kjører programmet no:
apasitet: 90
mengde1: 90
Kapasitet: 50
mengde1: 0
Kapasitet: 10
mengde1: 0


Slik jeg ønsker å kjøre programmet:

Fyll Lastebil90 full og hell over til Lastebil10
Mengde sand i lastebil90: 80
Mengde sand i lastebil10: 10

Hell over fra lastebil 10 til lastebil 50
Mengde sand i lastebil 10: 0
Mengde sand i lastebil 50: 10




Håper dere kan hjelpe meg!

Kildekoden, klient:
Kode: Merk alt
//program so laster ulike mengder mellom lastebiler

import javax.swing.JOptionPane;

public class LastebilKlient {

         public static void main(String[] args) { //oppretter tre lastebiler.
                    Lastebil l90 = new Lastebil(90); //90 kubikk
                    l90.fyllFull();
                    Lastebil l50 = new Lastebil (50);
                    Lastebil l10 = new Lastebil (10);
         
   
                   
                    l90.hellOver(l10);
                    l10.hellOver(l50);
                    l90.hellOver(l50);
                   
                   
                    System.out.println(l90);
                    System.out.println(l50);
                    System.out.println(l10);
         
         
         }
}




main
Kode: Merk alt
 public class Lastebil {

private int kapasitet;
private int mengde1;

// konstruktør for lastebil
public Lastebil (int kapasitet) {
        this.kapasitet = kapasitet;
this.mengde1 = 0;
}
//returnerer lastekapasitet
public int getKapasitet() {
        return this.kapasitet;
}
public int getmengde1() {
        return this.mengde1;
}
//returnerer nåværende mengde sand i lastebilen (kubikk)
public int nåværendeMengdeSand() {
return kapasitet - mengde1;
}
//fyller lastebilen full med sand
public void fyllFull() {
mengde1 = kapasitet;
}
//tømmer lastebilen for sand
public void tøm() {
mengde1 = 0;
}
//trenger jeg denne? Ser etter ledig plass
public double ledigPlass() {
        return (kapasitet - mengde1);
}

public void setmengde1 (int mengde1) {
{
        if (mengde1>kapasitet)
                return;
        else if (mengde1 <0)
                return;
        else
                this.mengde1 = mengde1;
}
}

//heller over fra en lastebil til en annen (?)
public void hellOver (Lastebil lastebil) {
        if (lastebil.getmengde1() ==0 )
    {
            System.out.println("Ingenting å helle over.");
            return;
    }
    else if ((mengde1 + lastebil.getmengde1()) > getKapasitet())
    {
            System.out.println("Avbrutt helleprosess. Ville rent over.");
            return;
    }
    else
    {
            System.out.println(lastebil.getmengde1()+"liter helt over.");
            setmengde1(mengde1 + lastebil.getmengde1());
            lastebil.setmengde1(0);
    }
}

public String toString()

{
    return "Kapasitet: " + getKapasitet() + "\r\nmengde1: " + getmengde1();
}
}







Sliter forøvrig veldig med å skrive ut resultat. Som nevnt ønsker jeg å få det skrevt ut slik : Fyll Lastebil90 full og hell over til Lastebil10
Mengde sand i lastebil90: 80
Mengde sand i lastebil10: 10

Hell over fra lastebil 10 til lastebil 50
Mengde sand i lastebil 10: 0
Mengde sand i lastebil 50: 10

men etter mye prøving kommer det bare ut slik:
Fyll lastebil90 full og hell over til Lastebil10
mengde sand i Lastebil90
lastebil: 9090 kubikk





Vet det ikke er mye, men betaler forøvrig 50.- som takk, til den som kan hjelpe meg.
medlem i 161 måneder
 

Re: Får ikke programmer til å fungere

Innleggav Soerboe » man 14.03.2011 22:00

Det er i metoden hellOver() problemet ligger. Du bør gå gjennom den på ny og tenke deg til hvordan den skal fungere.

- Hvilken lastebil skal helle over til hvilken?
- Hvor mye skal helles over?

Det første if-setningen din i hellOver() gir ingen mening siden ingenting sand har blitt helt over i det hele tatt.

Gå gjennom den metoden en gang til og prøv å se hvor problemene ligger.


PS: er veldig lite interessert i penger...

Brukerens avatar
medlem i 202 måneder
 


Returner til Java



Hvem er i Forumene

Registrerte brukere: Google [Bot]