Multidesk.be » Forums » C en C++ » datum (gesloten)

Helpinformatie
Dit onderwerp bevindt zich in het archief.
Het is bijgevolg niet mogelijk er nog op te reageren.
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door een gast op dinsdag 15 mei 2007 om 02:15:23.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
wie kan me helpen met een programma dat een datum inleest in de vorm van drie positieve gehele getallen ( dag, maand, jaar) bijvoorbeeld: 31 12 1999.

het programma moet de dagnummer van die datum berekenen, geteld vanaf 1 januarie van dat jaar. in het voorbeeld is dagnummer dus 365.

rekening mee houdend dat er ook een schrikkeljaar gegeven kan worden. dat is namelijk zo als het jaartal deelbaar is door 4 maar niet door 100, of als het dellbaar is door 400.....mike
^ Reactie #1 geschreven door thekid op dinsdag 15 mei 2007 om 10:40:44.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
en wat heb je al tot nog toe?

Het gebeurt nogal vaak dat we hier gigantische schoolprojectjes moeten maken ;) We helpen je graag verder, toon eens wat je tot nog toe hebt?

*EDIT*
Voila, dit zou al moeten helpen (alhoewel ik niet echt getest heb op de werking van de schrikkeljaren :D)

CODE
  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. class dagJaar
  8. {
  9.       private:
  10.               int jaar, maand, dag;
  11.      
  12.       public:
  13.              dagJaar(int jaar, int maand, int dag)
  14.              {
  15.                 this->jaar = jaar;
  16.                 this->maand = maand;
  17.                 this->dag = dag;
  18.              }
  19.              
  20.              int AantalDagen()
  21.              {
  22.                  int months[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  23.                  int result = 0;
  24.                  for (int x = 0; x < maand - 1; x++)
  25.                  {
  26.                      if (x == 1 && ((jaar % 4 == 0 && jaar % 100 != 0) || (jaar % 400 == 0)))
  27.                         result++; // schrikkeldag toevoegen
  28.                      result += months[x];
  29.                  }
  30.                  result+=dag;
  31.                  return result;
  32.              }
  33. };
  34.  
  35. int main(int argc, char *argv[])
  36. {
  37.     dagJaar testKlasse(1999, 12, 31);
  38.     printf("Het huidige dagnummer voor datum 31-12-1999 is %d\n", testKlasse.AantalDagen());
  39.     system("PAUSE");
  40.     return EXIT_SUCCESS;
  41. }
  42.  
Deze tekst werd het laatst bewerkt voor 3.22 % door thekid op dinsdag 15 mei 2007 om 11:28:41.
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #2 geschreven door een gast op dinsdag 15 mei 2007 om 16:51:34.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
hoi ja ,die code werkt, maar eigenlijk moet je de datum zelf opgeven, hoe doe je dat?......
^ Reactie #3 geschreven door thekid op dinsdag 15 mei 2007 om 17:48:49.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Anders gezegd, we moeten het volledig schrijven, en dan ben je content?
Kan je eens tonen wat je zelf al hebt, wat je verwacht als invoer (alles apart inlezen, of 1 string met een bepaald formaat?)

gok ik correct als ik zeg dat het een schoolproject is?
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #4 geschreven door arne op dinsdag 15 mei 2007 om 17:52:32.
arne's avatar
Multiviteit: 621
Upgrade Your Life!
Intel Inside!
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
dit is zeker een huistaak van school, ik heb die zelf ook ooit eens gekregen (maar zelf opgelost, die is toch niet moeilijk?), in het derde middelbaar denkik, kzal eens zoeken in mijn cursus (als ik die nog heb;))
Deze tekst werd het laatst bewerkt voor 13 % door arne op dinsdag 15 mei 2007 om 17:53:31.
Q6600 @ 3,2GHz, ASUS P5Q Premium, Corsair DHX 8GB DDR2, HD5770 CrossFire, 2x OCZ Vertex2 60GB RAID0, Nexus 1000W, Scythe Orochi
^ Reactie #5 geschreven door een gast op dinsdag 15 mei 2007 om 17:59:30.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
ja je hebt gelijk,maar zonder behoorlijke voorkennis van c++ krijgen we als zulke moeilijke opdrachten. ik heb pas 3 keer c++ colegges van 1 uur gevolgd, en krijgen we deze opdracht al. de datum moet in een keer worden opgegeven vb
15-05-2007
^ Reactie #6 geschreven door arne op dinsdag 15 mei 2007 om 18:03:25.
arne's avatar
Multiviteit: 621
Upgrade Your Life!
Intel Inside!
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
misschien staat mijn bestand nog op mijn pc, maar ik ben er niet zeker van, ik zal eens kijken

EDIT;

Sorry ik kan je niet helpen, het bestand kan niet op mijn pc staan, want ik had em toen nog niet, als ik die lessen kreeg.
Deze tekst werd het laatst bewerkt voor 40.92 % door arne op dinsdag 15 mei 2007 om 18:06:36.
Q6600 @ 3,2GHz, ASUS P5Q Premium, Corsair DHX 8GB DDR2, HD5770 CrossFire, 2x OCZ Vertex2 60GB RAID0, Nexus 1000W, Scythe Orochi
^ Reactie #7 geschreven door thekid op dinsdag 15 mei 2007 om 18:19:08.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
CODE
  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. class dagJaar
  8. {
  9.       private:
  10.               int jaar, maand, dag;
  11.      
  12.       public:
  13.              dagJaar(string datum)
  14.              {
  15.                 jaar = maand = dag = 0;
  16.                 int cSep = 0;
  17.                 for (int x = 0; x < datum.length(); x++)
  18.                 {
  19.                     char teken = datum[x];
  20.                    
  21.                     if (teken >= 48 && teken <= 57)
  22.                     {
  23.                         switch (cSep)
  24.                         {
  25.                            case 0:
  26.                                 dag = (dag * 10) + (teken - 48);
  27.                                 break;
  28.                            case 1:
  29.                                 maand = (maand * 10) + (teken - 48);
  30.                                 break;
  31.                            case 2:
  32.                                 jaar = (jaar * 10) + (teken - 48);
  33.                                 break;
  34.                         }
  35.                     }
  36.                     else
  37.                         cSep++;
  38.                 }
  39.              }
  40.              
  41.              dagJaar(int jaar, int maand, int dag)
  42.              {
  43.                 this->jaar = jaar;
  44.                 this->maand = maand;
  45.                 this->dag = dag;
  46.              }
  47.              
  48.              int AantalDagen()
  49.              {
  50.                  int months[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  51.                  int result = 0;
  52.                  for (int x = 0; x < maand - 1; x++)
  53.                  {
  54.                      if (x == 1 && ((jaar % 4 == 0 && jaar % 100 != 0) || (jaar % 400 == 0)))
  55.                         result++; // schrikkeldag toevoegen
  56.                      result += months[x];
  57.                  }
  58.                  result+=dag;
  59.                  return result;
  60.              }
  61.              
  62.              void outputToScreen()
  63.              {
  64.                   printf("Het dagnr van volgende datum %d-%d-%d is %d\n\n", dag, maand, jaar, AantalDagen());
  65.              }
  66. };
  67.  
  68. int main(int argc, char *argv[])
  69. {
  70.     string datum = "";
  71.     while (datum.length() < 10)
  72.     {
  73.         cout << "Geef een geldige datum op (formaat: dag-maand-jaar): ";
  74.         cin >> datum;
  75.     }
  76.    
  77.     dagJaar testKlasse(datum);
  78.     testKlasse.outputToScreen();
  79.     system("PAUSE");
  80.     return EXIT_SUCCESS;
  81. }
  82.  


het lijkt mij trouwens sterk dat je maar zo weinig lessen erover hebt en absoluut geen boek om zoiets gemakkelijker te maken. Stoute docenten daar?
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #8 geschreven door een gast op dinsdag 15 mei 2007 om 18:43:38.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
heren thnx u heeft me echt geholpen,ben u dankbaar voor!!!!
de goeten vn mike...........
^ Reactie #9 geschreven door thekid op dinsdag 15 mei 2007 om 19:16:18.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid

Dixit

Dixit Gast op 15/05/2007 18:43:38:

heren thnx u heeft me echt geholpen,ben u dankbaar voor!!!!
de goeten vn mike...........


Niet geholpen, we hebben het opgelost ;) 'k hoop dat uw examen ervan makkelijker zal gaan ;)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten