Café

Grupper · 49649 inlägg · 1045 ämnen

Inlägg #1196747

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

Svarskommentarer

Sv: Programmeringsmetodik i Java
Som väntat fungerar inte länken, men jag ska nedan försöka att belysa mitt problem:

För varje ytterligare steg som användaren önskar ha i raketen behöver man lägga till en draw_parallel och en draw_base, det vill säga:

| |
| |
| |
========

Det handlar alltså om att konstruera en flerstegsraket enligt användarens önskemål. Ungefär så här ska raketen se ut om man svarar "1" på frågan "Hur många steg önskar du att raketen ska ha?". (Observera att antalet = egentligen är åtta.)

/\
/ \
/ \
====
| |
| |
| |
====
/\
/ \
/ \

Jaji, hoppas nu verkligen att det hela framstår som begripligt. Dessa inlägg må vara de mest konstiga i HS historia, men det bjuder jag på om kursen kan bli avklarad :)
Kommentera