Autor |
Wiadomość |
ten
Piotr W.
Dołączył: 01 Gru 2006 Posty: 188 Skąd: Posen |
|
NIFY - rozwiązanie zad. nr 2 |
|
probowalem zrobic to zadanie ale cos mi nie dziala. niby wszystko jest ok i okienka sie wyswietlaja ale na koniec nie wypluwa zadnego wyniku. ktos wie z czym moze byc problem?
MAIN
import javax.swing.JOptionPane;
public class main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
samochod skladka = new samochod();
int marka = Integer.parseInt(JOptionPane.showInputDialog("Jaki masz samochód? \n 1 - Mitsubishi \n 2 - Suzuki \n 3 - BMW"));
int wiekSamo = Integer.parseInt(JOptionPane.showInputDialog("Podaj wiek samochodu."));
int wiek = Integer.parseInt(JOptionPane.showInputDialog("Ile masz lat?"));
}
}
SKLADKA
import javax.swing.JOptionPane;
public class samochod {
double obliczSkladka(int wiekSamo, int wiek, int marka){
double temp=1.0;
int skladka = 500;
while (wiekSamo>10){
skladka+=30*(wiekSamo-10);
}
switch (marka){
case 1: skladka+=210;
case 2: skladka-=110;
case 3: skladka+=666;
default: skladka+=100000000;
}
if (wiek<25){
skladka*=1.2*skladka;
System.out.print("Wysokość składki: "+ skladka +"");
}
else System.out.print("Wysokość składki: "+ skladka +"");
return temp;
}
}
|
|
Sro Paź 10, 2007 18:12 |
|
|
Reklama
|
|
Sro Paź 10, 2007 18:12 |
|
|
omik
Kognik
Dołączył: 13 Gru 2006 Posty: 69
|
|
|
|
nie masz wywolanej metody obliczSkladka(parametry) z klasy Samochod, musisz dodac wywolanie metody z parametrami w main. mi nie dziala po prostym przeklejeniu do eclipsa, wiec to tak na oko. ktos chetny na moje rozwiazanie? jak tak to wrzuce
ps. nie ma breaków w switchu, brakuje warunku o tym, ze mniej jak 25lat i skladka wynosi mniej niz 900.
|
|
Sro Paź 10, 2007 18:36 |
|
|
ten
Piotr W.
Dołączył: 01 Gru 2006 Posty: 188 Skąd: Posen |
|
|
|
warunek ze mniej niz 25 lat jest, a o tym ze nie wiecej niz 900 zl zapomnialem rzeczywiscie. ale wlasnie jak sie wywoluje ta metode dokladnie, bo wlasnie wiedzialem ze tego mi brakuje ale nie wiem jak to sie robi... help!
|
|
Sro Paź 10, 2007 20:18 |
|
|
omik
Kognik
Dołączył: 13 Gru 2006 Posty: 69
|
|
|
|
nazwaObiektu.nazwaMetody(parametry).
nie wiem czy to u ciebie zadziała. ja zrobiłem to tak, żeby metoda obliczSkladka zwracała (return) wartość obliczoną, a następnie w main robiłem coś takiego:
double OC = skladka(tak nazwalem klase liczaca oc).obliczSkladka(wiek, wieks, marka);
System.out.print("OC wynosi "+OC+".");
mam nadzieje że to pomoże.
moje: http://gildia.info/~omi/OC.zip (z komentarzami objaśniającymi! )
|
|
Sro Paź 10, 2007 20:53 |
|
|
aimila
Agnieszka M.
Dołączył: 07 Gru 2006 Posty: 341 Skąd: z JUMY;) |
|
|
|
Namieszałeś w tej pętli z wiekiem samochodu
jeżeli samochód jest starszy niż 10 lat, należy dodać 30 za każdy rok powyżej 10 [pętla]
public class Skladka {
public double obliczSkladka(int marka, int wiek, int wieks) {
double s = 500;
for(int i = 0; i<wieks; i+=10){
s+=30; }
z Twojego kodu wynika że pętla wykona sie raz nawet dla samochodu poniżej 10 lat, a potem co 10 lat będzie dodawała 30 a nie co rok, tak?
Dla samochodu 7-letniego
zerujesz i
i=0 wieks=7
0<7 wiec zaczyna sie pętla i i zwiększa sie o 10
doliczasz do składki 30 mimo iż samochód ma mniej niż 10 lat
tak interpretuję ten kod, zastrzegam sobie prawo do błedu
Mój kod na te okoliczność wygląda tak:
if(wiekauta>10){
for(int i = wiekauta-10;i>0;i--){
wartosc+=30;
|
|
Wto Paź 23, 2007 14:49 |
|
|
tipi tapi
Kognik
Dołączył: 10 Paź 2006 Posty: 124
|
|
|
|
Popieram;)
|
|
Wto Paź 23, 2007 16:46 |
|
|
zosia
Zosia
Dołączył: 19 Lis 2006 Posty: 187
|
|
|
|
a mój jakoś tak:
while(wiekAuta>10){
wartosc+=30;
wiekAuta--;
}
ale na jedno wychodzi...
|
|
Wto Paź 23, 2007 21:22 |
|
|
omik
Kognik
Dołączył: 13 Gru 2006 Posty: 69
|
|
|
|
przyznaje się do błędu, źle przeczytałem pytanie, dzieki
|
|
Wto Paź 23, 2007 22:42 |
|
|
Reklama
|
|
Wto Paź 23, 2007 22:42 |
|
|
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
|
|
|