Café

Grupper · 49649 inlägg · 1045 ämnen

Inlägg #1196745

Sv: Programmeringsmetodik i Java
DJ Hemp: Jag är certifierad inom Java och jobbar med det så fråga på du.
Kommentera

Svarskommentarer

Sv: Programmeringsmetodik i Java
Marcus:

Okej, trevligt! Detta blir ett långt inlägg. Uppgiften är följande:

Skriv ett program som kan skriva ut en pojke, en flicka eller en raket efter val av användaren, gör det möjligt för användaren att repetera så länge som han/hon önskar.

Öva att arbeta med top-down design. Skriv ett main som anropar ett antal tomma metoder, "stubs". Därefter kan du koncentrera dig på att lösa en uppgift i taget. Du kan göra "stubs" även för delmetoderna och således testa ut programmet steg för steg.

Skriv tre metoder draw_boy, draw_girl och draw_rocket som skriver ut en pojke, en flicka eller en flerstegsraket enligt figurerna nedan.

Metoderna använder i sin tur byggstenar i form av metoder för att skapa och skriva ut figurernas huvud och kroppsdelar m m. Dessa metoder kan heta draw_head o s v (se nedan).

OBS! För att skriva tecknet \ i en textsträng måste tecknet skrivas två gånger \.



Figurerna finns i nedanstående länk:

webct6.miun.se/webct/urw/lc340053116001.tp340053140001/RelativeResourceManager/sfsid/375253124001

(Tveksamt om den fungerar dock.)


Nu till min fråga:

Hur ska jag göra för att få programmet att skriva ut raketen i det antal steg som användaren anger? Jag har testat lite med en for-loop, men får inte riktigt till det...


Jag har hittills skrivit följande programrader:

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

do {
String svar;
System.out.println("Vill du skriva ut en pojke, en flicka eller en raket (P/F/R)? ");
svar = sc.next();

if ("P".equalsIgnoreCase(svar))
{
draw_boy();
}
else if ("F".equalsIgnoreCase(svar))
{
draw_girl();
}
else if ("R".equalsIgnoreCase(svar))
{
int antalSteg;
System.out.println("Hur många steg önskar du att raketen ska ha? ");
antalSteg = sc.nextInt();
draw_rocket();
}
System.out.println("Vill du fortsätta (J/N)? ");
}
while ("J".equalsIgnoreCase(sc.next()));
}

public static void draw_boy() {
draw_head();
draw_base();
draw_parallel();
draw_base();
draw_cone();
}

public static void draw_girl() {
draw_head();
draw_cone();
draw_base();
draw_cone();
}

public static void draw_rocket() {
draw_cone();
draw_base();
draw_parallel();
draw_base();
draw_cone();
}

public static void draw_head() {
System.out.println(" //\ ");
System.out.println(" |o,o|");
System.out.println(" \v/ ");
}

public static void draw_cone() {
System.out.println(" /\ ");
System.out.println(" / \ ");
System.out.println(" / \ ");
}

public static void draw_parallel() {
System.out.println("| |");
System.out.println("| |");
System.out.println("| |");
}

public static void draw_base() {
System.out.println("========");
}

}
Kommentera