Forum: Noob fråga

Forum huvudsida -> Programmering -> Noob fråga

Sidor: 1

Till botten

TheOne 08:21 - 3:e Augusti 2006 | Post #1
Medlem
Inlägg: 5


Skicka PM
Nu är det så att jag är alldeles ny på det här med C++ programmering. Jag har gjort lite kod:

  1.  
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. void saldo(); //Skapar min funktion
  7.  
  8. void saldo()
  9.  
  10. {
  11. cout << "Dit nuvarande saldo ar: 5 000 000 000 $";
  12.  
  13. return;
  14.  
  15. }
  16.  
  17. int main()
  18. {
  19. int ett_tal;
  20.  
  21. cout << "Vill du se ditt saldo tryck 1";
  22. cin >> ett_tal;
  23.  
  24. cout << ett_tal;
  25. cin.get();
  26. cin.get();
  27.  
  28. return 0;
  29.  
  30. }


Som ni ser är det inte alls seriöst, den är bara till för att få en liten feeling för vad detta med C++ är egentligen.

Nu till mitt probelm. Som ni ser under int main() så finns denna snut:
cout << "Vill du se ditt saldo tryck 1";

Och under void saldo() finns denna: cout << "Dit nuvarande saldo ar: 5 000 000 000 $";

Nu vill jag skapa en funktion (antar att det blir en if sats?) som gör så att om man trycker 1 så kommer man till saldot. Och om man inte gör det händer inget.

Har kollat runt här inne men verkar inte hitta något bra svar.. Smiley

Tack på för hand för hjälp!

-------------------------
Ingen signatur!



Independence 09:38 - 3:e Augusti 2006 | Post #2
Administratör
Inlägg: 1800


Skicka PM
Det bör väl gå att klura ut hur man gör om man läser delen om if-satser. Kan göra ett lite tafatt försök till en kodsnutt som gör något som liknar det du vill här:

  1.  
  2. int val=0;
  3. cout << "Välj vad du vill göra:\n1. Visa saldo.\n2. Avsluta." << endl;
  4. cin << val;
  5. if (val == 1)
  6. saldo();
  7. else
  8. return;


-------------------------

Vi är riddarna som säger fiskbulle!





tobbez 09:38 - 3:e Augusti 2006 | Post #3
Medlem
Inlägg: 364


Skicka PM
Jag hade nog gjort något liknande det här:
  1.  
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. void saldo()
  7. {
  8. cout << "Dit nuvarande saldo ar: 5 000 000 000 $n";
  9. }
  10.  
  11. int main()
  12. {
  13. int ett_tal;
  14.  
  15. while(true)
  16. {
  17. cout << "Vill du se ditt saldo tryck 1nVill du avsluta tryck 2n";
  18. cin >> ett_tal;
  19.  
  20. if (ett_tal == 1)
  21. saldo();
  22. else if (ett_tal == 2)
  23. break;
  24. }
  25. cin.get();
  26. cin.get();
  27.  
  28. return 0;
  29. }


Men om du har tänkt använda många val så är det nog bättre om du använder switch() istället för if() (Jag skulle gjort det om man kunde ha använt break för att bryta loopen i en switch-sats. Som sagt om du tänker ha många val är något sådant här nog bättre:
  1.  
  2. switch(ett_tal)
  3. {
  4. case 1:
  5. saldo();
  6. break;
  7. case 2:
  8. gorNantingAnnat();
  9. break;
  10. case 3:
  11. gorTredjeSak();
  12. break:
  13. }
  14. if (ett_tal == 4) break; //bryter while-loopen



Senast redigerad 09:40 - 3:e Augusti 2006


TheOne 10:29 - 3:e Augusti 2006 | Post #4
Medlem
Inlägg: 5


Skicka PM
Ok, tack för alla svaren! Nu har jag kommit en liten bit till. Koden ser ut som följer:

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6.  
  7. int main()
  8.  
  9. {
  10. int ett_tal;
  11. cout << "Vad vill du gEURra?";
  12. cout << endl;
  13. cout << endl;
  14. cout << "1: Se ditt saldo.";
  15. cout << endl;
  16. cout << endl;
  17. cin >> ett_tal;
  18. if (ett_tal == 1)
  19. {
  20. int kod;
  21. cout << "Skriv in din fyr (4) sifriga kod";
  22. cout << endl;
  23. cout << endl;
  24. cin >> kod;
  25. cout << endl;
  26. cout << endl;
  27. if (kod == 1234)
  28. {
  29. cout << "Ditt saldo EURzr: 592 235 522 000 $";
  30. }
  31. else
  32. {
  33. cout << endl;
  34. cout << "Fel kod!";
  35. }
  36. }
  37. cin.get();
  38. cin.get();
  39. return 0;
  40. }


Det är SKIT kul att leka med, man blir som barn på nytt! Men jag har en fråga. Google viste inte, och inte Altavista heller! (som för övrigt är en bättre sökmotor)

Hur får man så att när man skriver in koden (1234) så blir det stjärnor precis som vid en vanlig bankomat. Hoppas ni fattar!

Alltså här:

int kod;
cout << "Skriv in din fyr (4) sifriga kod";
cout << endl;
cout << endl;
cin >> kod;
cout << endl;
cout << endl;

när man skriver in cin >> kod; så ska det bara synas stjärnor på skrämen.

Tack igen får svaren så långt!

-------------------------
Ingen signatur!



TheOne 10:38 - 3:e Augusti 2006 | Post #5
Medlem
Inlägg: 5


Skicka PM
Ok, tack för alla svaren! Nu har jag kommit en liten bit till. Koden ser ut som följer:

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6.  
  7. int main()
  8.  
  9. {
  10. int ett_tal;
  11. cout << "Vad vill du gEURra?";
  12. cout << endl;
  13. cout << endl;
  14. cout << "1: Se ditt saldo.";
  15. cout << endl;
  16. cout << endl;
  17. cin >> ett_tal;
  18. if (ett_tal == 1)
  19. {
  20. int kod;
  21. cout << "Skriv in din fyr (4) sifriga kod";
  22. cout << endl;
  23. cout << endl;
  24. cin >> kod;
  25. cout << endl;
  26. cout << endl;
  27. if (kod == 1234)
  28. {
  29. cout << "Ditt saldo EURzr: 592 235 522 000 $";
  30. }
  31. else
  32. {
  33. cout << endl;
  34. cout << "Fel kod!";
  35. }
  36. }
  37. cin.get();
  38. cin.get();
  39. return 0;
  40. }


Det är SKIT kul att leka med, man blir som barn på nytt! Men jag har en fråga. Google viste inte, och inte Altavista heller! (som för övrigt är en bättre sökmotor)

Hur får man så att när man skriver in koden (1234) så blir det stjärnor precis som vid en vanlig bankomat. Hoppas ni fattar!

Alltså här:

int kod;
cout << "Skriv in din fyr (4) sifriga kod";
cout << endl;
cout << endl;
cin >> kod;
cout << endl;
cout << endl;

när man skriver in cin >> kod; så ska det bara synas stjärnor på skrämen.

Tack igen får svaren så långt!

-------------------------
Ingen signatur!



Nissebosselasse 17:40 - 3:e Augusti 2006 | Post #6
Medlem
Inlägg: 490


Skicka PM
Det är inget som finns inbyggt i språket, så du får själv ombesörja för den rutinen.

En variant kan vara att vänta på tangentnedtryckningar, spara undan tecknet i en variabel och istället skriva ut en asterisk (*), sedan vänta på nästa tangentnedtryckning, o.s.v.

Har för mig att det redan finns en tråd om det här. Sök!

-------------------------
http://pushingcows.se
Gula Nallen



TheOne 07:43 - 4:e Augusti 2006 | Post #7
Medlem
Inlägg: 5


Skicka PM
    Citat av Nissebosselasse:
Det är inget som finns inbyggt i språket, så du får själv ombesörja för den rutinen.

En variant kan vara att vänta på tangentnedtryckningar, spara undan tecknet i en variabel och istället skriva ut en asterisk (*), sedan vänta på nästa tangentnedtryckning, o.s.v.

Har för mig att det redan finns en tråd om det här. Sök!


Ok... hoppas det finns kod exempel i den tråden, för detta låter krångligt! ^^

-------------------------
Ingen signatur!



Nissebosselasse 18:11 - 4:e Augusti 2006 | Post #8
Medlem
Inlägg: 490


Skicka PM
Hade inget bättre för mig, så jag knåpade ihop den här snutten kod som fungerar ungefär som du vill.
Dock finns det lite grejor för dig att fixa:
  • Man kan inte ta bort ett tecken
  • Den accepterar siffror och bokstäver, men en PIN-kod består ju bara av siffror (alltså: en filterfunktion)

  1.  
  2. #include <iostream>
  3. #include <string>
  4. #include <conio.h>
  5.  
  6. using namespace std;
  7.  
  8. string getPassword ()
  9. {
  10. string temp = "";
  11.  
  12. while (1) {
  13. int c = getch ();
  14.  
  15. if (isalnum(c)) {
  16. temp += c;
  17. cout << "*";
  18. }
  19.  
  20. if (c == 13 || c == 10) {
  21. break;
  22. }
  23. }
  24.  
  25. cout << endl;
  26. return temp;
  27. }
  28.  
  29.  
  30. int main(int argc, char *argv)
  31. {
  32. cout << "Skriv in din PIN-kod här: ";
  33.  
  34. string pin = getPassword ();
  35.  
  36. cout << "Din PIN-kod är: " << pin << endl;
  37. return 0;
  38. }


-------------------------
http://pushingcows.se
Gula Nallen



Sidor: 1

Forum huvudsida -> Programmering -> Noob fråga
Atom feed

Du får inte posta i den här tråden | Till toppen