skapa Meny
Ett program kommer att skapas för att användas av ägaren av en frisbeegolfpark. Det är det redan
byggt två banor, men ägaren kommer att ha möjlighet att lägga till nya banorna så snart de är byggda.
Detta innebär att två banor, med all sin data, matas in i koden i början av programmet
("Hardcodes").
Tips: använd strcpy () för att ange banorBeskrivning [0] och [1]
Programmet måste innehålla:
const int MAXBANOR = 18; /// <Max antal kurser.
const int STRLEN = 100; /// <Max textlängd.
och inuti main:
char laneDescription [MAXBANER] [STRLEN]; // Beskrivning av kurserna.
Int laneLength [MAXBANER]; // Längden på banor (i meter).
int banePar [MAXBANER]; // Förväntat antal kast (par)
// för varje spår.
bool baneOB [MAXBANER]; // Har sökvägarna OB eller inte
int numberPaths; // Antal kurser per år.
Det är förmodligen en bra idé att använda några fler hjälpvariabler för att läsa in värden/ val från användaren
Jag skal prova att laga en meny vart man har 3 val.
L - Lägg till spår
S - Se alla banor
Q - Avsluta
Hur börjar jag med att skapa et program som gör så att om man tex väljer L, så får man möjlighet att lägga till input på frågor.
Tex. om man väljer L, så kommer dessa alt. upp:
Hur lång är den tredje banan: ___
Par på banan(2-8): ___
Har sökvägen OB (J / N): __
Kursbeskrivning: _____
eller om man väljer S, så kommer alla info om BANA 1 och BANA 2 upp (som har själv lagd till i början?
Vet du hur man läser in en textrad från användaren, hur man skriver ut en rad, hur man skriver ett huvudprogram, hur man skriver en loop?
Ja, har typ börjad lite, men vet det inte är helt korrekt pga jag inte riktig vet exakt vad jag måste göra
menu = 0
while menu
printf("Menyval: ");
printf("\n\tL - Legg till bana");
printf("\n\tS - Se alla banor);
printf("\n\tQ - Avsluta);
scanf("%c", val);
printf("Val: %c", val)
int index = L;
while(index=1){
printf("Hur många meter er den 3.banan?: ");
scanf("%i", &bananLengd);
printf("\nPar på banan(2-8): ");
scanf("%i", &banorPar);
printf("\nHar banen OB (J/N): ");
scanf("%c", &baneOB);
getchar();
printf("\nBanan beskrivelse");
gets("%s", banaBeskrivning);
}
har så klart det inuti en
int main() {
return 0;
}
Jag funderar på om man kan använda switch, men vet inte riktg hur jag då får tex dom alternativ om skrivar in L, och sen input
switch är bra för att välja rätt kod utgående från 'val'.
Någon while(index) behöver du inte.
Om du vill använda gets så är det bara gets(banaBeskrivning). Hur är den deklarerad?
Kan du kompilera programmet?
Frågan er nu, om man väljer "Lägg till bana".
1) Hur gör jag så att dom frågarna kommar upp då? (dom jag har skrivet under)
2) Gör så att om man skriver nått annat en L, S, Q, så kommer en fel meddelande upp
int main() {
printf("Menyval: ");
printf("\n\tL - Lägg till bana");
printf("\n\tS - Se alla banor);
printf("\n\tQ - Avsluta);
scanf("%c", val);
printf("Val: %c", val)
printf("Hur många meter er den 3.banan?: ");
scanf("%i", &bananLengd);
printf("\nPar på banan(2-8): ");
scanf("%i", &banorPar);
printf("\nHar banen OB (J/N): ");
scanf("%c", &baneOB);
getchar();
printf("\nBanan beskrivelse");
gets("%s", banaBeskrivning);
}
return 0;
}
så i början skrivar jag
char banaBeskrivning[MAXBANOR][STRLEN];
Sen, skrivar jag för att få input?
gets("%s", banaBeskrivning);
eller
gets(banaBeskrivning);
Den deklarationen antyder att du har ett bannummer för varje bana, 0, 1, etc. så att bana 0 t.ex. har banaBeskrivning[0]. Du får ha nån variabel som anger bannumret.
Så blir det såhär då?
int main() {
char banaBeskrivning[MAXBANOR][STRLEN];
printf("\nBana beskrivning");
gets(banaBeskrivning[0]);
return 0;
}
men frågan är också hur jag "linkar" dom ihop.
Alltså, om du tex skriver in L, så kommer dom frågarna up
Det verkar bäst att skriva pseudokod först för vad programmet ska göra.
Blir ungefär såhär. Bana 3 är det användaren som läggar till , men bana 1 och 2 måste jag lägga till själv i början.
Meny val
L - Lägg till bana
S - Se alla banor
Q - Avsluta
Val: L
Hur många meter er den 3.banan?:
Par på banan:
Har banen OB (J/N):
Banan beskrivning:
Om du väljer S:
Bana 1:
Längd: 62 meter
Par: 3
Med OB
Beskrivning: bana med många träd och buskar.
Bana 2:
Längd: 94 meter
Par: 3
Utan OB
Beskrivning: Platt terräng under hela banan
Bana 3:
Längd:
Par:
Med
Beskrivning:
Antal banor: 3
För att hamna i par används 10 kast
Laguna skrev:Det verkar bäst att skriva pseudokod först för vad programmet ska göra.
Nån tips? :/
Pseudokod är en beskrivning med hur programmet ska fungera, strukturerat likadant som den färdiga koden, men med många detaljer borttagna och med mest bara vanliga ord.
Det blir ungefär:
Så länge 'färdig' inte är sann:
Läs in användarens menyval.
Om valet är L:
Bestäm var informationen för den nya banan ska ligga
Läs in information om ny bana
Lägg in informationen för den nya banan
Om valet är Q:
Sätt 'färdig' till sann
Du kan välja att skriva kod utifrån detta eller förfina pseudokoden först.