Forum: Miniräknare

Forum huvudsida -> Programmering -> Miniräknare

Sidor: 1

Till botten

zippo88 15:33 - 15:e Mars 2009 | Post #1
Medlem
Inlägg: 13


Skicka PM
Hej jag har gjort en miniräknare utav vad jag har lärt mej under tiden som jag har lärt mej programmering. En månad ungefär. Vill se vad ni tycker om mitt programmerings sätt. Finns det ett bättre sätt? Gör jag något fel?, Som ni ser så har jag ännu inte gjort val nummer 2. Gjorde denna ganska snabbt. Här är kod:
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. string tecken;
  10. double tal1;
  11. double tal2;
  12. double summa;
  13. int loop;
  14. loop = 1;
  15. string meny;
  16.  
  17. cout << " MENY" << endl << endl;
  18. cout << "#1 Miniraknare" << endl;
  19. cout << "#2 Slumpvalt nummer" << endl;
  20. cout << "Val: ";
  21. cin >> loop;
  22. meny == "n";
  23.  
  24. if (loop == 1)
  25. {
  26. system("cls");
  27. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_INTENSITY);
  28.  
  29. cout << " #########################" << endl;
  30. cout << " # MINIRAKNARE #" << endl;
  31. cout << " #########################" << endl;
  32. cout << endl << endl << endl;
  33. cout << "Skriv talen med mellanrum (Ex: 1 + 1):";
  34. while (loop = 1)
  35. {
  36. cout << endl << endl;
  37. cin >> tal1 >> tecken >> tal2;
  38. if (tecken == "+")
  39. {
  40. summa = tal1 + tal2;
  41. cout << endl << "Summa: " << summa;
  42. }
  43. if (tecken == "-")
  44. {
  45. summa = tal1 - tal2;
  46. cout << endl << "Summa: " << summa;
  47. }
  48. if (tecken == "*")
  49. {
  50. summa = tal1 * tal2;
  51. cout << endl << "Summa: " << summa;
  52. }
  53. if (tecken == "/")
  54. {
  55. summa = tal1 / tal2;
  56. cout << endl << "Summa: " << summa;
  57. }
  58. cout << endl << endl;
  59. cout << "Meny? (j eller n)" << endl;
  60. cout << "Svar: ";
  61. cin >> meny;
  62. if (meny == "j")
  63. {
  64. system("cls");
  65. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
  66. main();
  67. }
  68. }
  69. }
  70. if (loop == 2)
  71. {
  72. cout << "Kommer snart";
  73. }
  74. cin.get();
  75. cin.ignore();
  76. system("cls");
  77. main();
  78. }

Fixa source-taggar //herj


Senast redigerad 21:49 - 15:e Mars 2009


EvilToaster 16:16 - 15:e Mars 2009 | Post #2
Medlem
Inlägg: 5


Skicka PM
Finns inget rätt eller fel i programmering.

När du programmerat ett tag förstår du vad som är rätt och fel inom programmering.

vad som är rätt och fel för mig är följande.

Kan jag göra samma sak med mindre kod?
Kan jag göra den mer lätt läst?
osv osv

fungerar ditt program är det rätt programmerat men kanske inte bra eller smart programmerat men det fungerar och fyller sin funktion så det är "rätt" programmerat

vissa tycker säkert det ser hemskt ut och fel och vissa tycker det ser bra ut.

svåra frågorSmiley

men du var ju också inne lite på det med hur man borde programmera... jag kan fortfarande känna ibland att det jag gör är helt "fel" och vill hitta ett bättre sätt att göra saker och ting på men det är inte alltid så lättSmiley

Finns allt för många vägar att gå... tyvärr

// jag tittade inte på koden... kanske var meningslös post av mig men med tanke på att du var ny inom programmering eller c++




FrozenSnake 19:48 - 16:e Mars 2009 | Post #3
Medlem
Inlägg: 26


Skicka PM
Man kan faktiskt korta ner den, jag ändrade lite i den inget fel på din kod inte det jag försöker antyda!

Men du kan t.ex. skippa { } om du bara har 1 sats under if-satsen. Sedan om du har flera variabler av samma typ t.ex. int så kan du separera dem med ,. Läs källkoden jag redigerat så ser du.

Vill du kopiera den utan att få med alla radnummer så finns koden även här.
http://85.224.52.163/gpf/filer/c++/calc.cpp

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <windows.h>
  4. using namespace std;
  5. int main()
  6. {
  7. string tecken;
  8. double tal1 = 0, tal2 = 0, summa = 0;
  9. int loop = 1;
  10. string meny;
  11. cout << " MENY\n\n"
  12. << "#1 Miniraknare\n"
  13. << "#2 Slumpvalt nummer\n"
  14. << "Val: ";
  15.  
  16. cin >> loop;
  17.  
  18. meny == "n";
  19. if (loop != 0 && loop == 1)
  20. {
  21. system("cls");
  22. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED
  23. | FOREGROUND_INTENSITY);
  24. cout << " #########################\n"
  25. << " # MINIRAKNARE #\n"
  26. << " #########################\n\n\n\n"
  27. << "Skriv talen med mellanrum (Ex: 1 + 1):";
  28. while (loop = 1)
  29. {
  30. cout << "\n\n";
  31. cin >> tal1 >> tecken >> tal2;
  32. if (tecken == "+")
  33. cout << "\nSumma: " << tal1 + tal2;
  34. if (tecken == "-")
  35. cout << "\nSumma: " << tal1 - tal2;
  36. if (tecken == "*")
  37. cout << "\nSumma: " << tal1 * tal2;
  38. if (tecken == "/")
  39. cout << "\nSumma: " << tal1 / tal2;
  40.  
  41. cout << "\n\n"
  42. << "Meny? (j eller n)\n"
  43. << "Svar: ";
  44. cin >> meny;
  45. if (meny == "j")
  46. {
  47. system("cls");
  48. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
  49. FOREGROUND_INTENSITY);
  50. main();
  51. }
  52. else
  53. loop = 0;
  54. }
  55. }
  56. if (loop == 2)
  57. {
  58. cout << "Kommer snart";
  59. }
  60. if(loop == 0)
  61. exit(0);
  62. cin.get();
  63. cin.ignore();
  64. system("cls");
  65. main();
  66. }


Hoppas det inte gör något att jag redigerade din kod lite.


Senast redigerad 19:49 - 16:e Mars 2009


agge89 22:08 - 17:e Mars 2009 | Post #4
Medlem
Inlägg: 13


Skicka PM
Det där med rätt och fel beror lite på om andra
ska använda din källkod eller inte. Skriver man bara programmet åt sig själv är det ju självklart så att så länge man själv förstår den, så är det ok.

Men lyssna nu på mina tipps!
Följer du inte reglerna för objektorienterad programmering, när du programmerar i c++, så är risken stor att andra inte kommer förstå din kod i längden.
Man kan jämföra det med att jag skulle skriva ett brev utan att använda mellanslag eller nåt. Blir liksom ostrukturerat.
,,ven du själv kommer tacka dig om du följer reglerna för objektorienterad programmering. Din kod kommer liksom bli mer läsbar och du kommer lättare att hitta buggar (för buggar finns alltid, det är en del med programmeringen).




-------------------------
Augustismen



Sidor: 1

Forum huvudsida -> Programmering -> Miniräknare
Atom feed

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