Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Visual C++

Spirit [26.09.2003 11:08:38]

#

Elikkäs. Mihin Visual C++ soveltuu, mitä sillä on kätevintä tehdä ja kannattaako sillä tehdä pelejä ?
-Spirith

cloudi [26.09.2003 11:44:13]

#

No esim. mulla ois hiukka kysyttävää kans, just Visual c++:lla pitis saada loppupäivämäärä aikaseksi.
eli kun antaa alkupäivämäärän vaik 26 9 2003 ja sit päivien lukumäärän vaik 1000, niin sen pitis laskee/lisätä/mitä et tulee loppupvm tulokseksi.
-siin on käytettävis taulukko kuukausia varten
-ja sit pitis huomioida karkausvuosi onks helmikuus 29 päivää siinä välillä.
-eli voisko joku jelppiä ? please!

cloudi [29.09.2003 17:11:34]

#

JA NYT SITTE TÄYVELLINE TYPOTUS TÄÄLTÄ TULEEPI:
(tää päivämäärä-jutska nimittäin heittää!!!mutta alottelija oon mieki, soriiii) -eli annetaa alkupvm, se on okei, annetaan päivien lukumäärä, kait se on okei, mjutta sitte pitis tulla loppupäivämäärä (en o ku viidesti testaillu.. käsittääkseni heitt yhden pv:n mutta enpäs tiiä mitä kaikkea muutaki!!)

#include <iostream.h>
#include <iomanip.h>
#include <conio.h>

struct paivamaara
	{ int vuosi;
	  int kuukausi;
	  int paiva;
	};

int main(void)
{ 	paivamaara alkupaiva,loppupaiva,apupaiva;
	int pvkksa[12] ={31,28,31,30,31,30,31,31,30,31,30,31};

int i=0;

	bool vaarapaivays;
  	long maara = 0;


	//ALKUPÄIVÄMÄÄRÄN KYSYMINEN
   do
  	{	cout << "\n\nAnna alkupäivä muodossa pv kk vvvv  ";
  		cin >> alkupaiva.paiva >> alkupaiva.kuukausi >> alkupaiva.vuosi;
  		if (alkupaiva.vuosi % 4 == 0 && alkupaiva.vuosi % 100 != 0 ||
          alkupaiva.vuosi % 400 == 0) pvkksa[1] = 29;
	      						      else pvkksa[1] = 28;
      vaarapaivays = alkupaiva.kuukausi < 1 ||
      					alkupaiva.kuukausi > 12 ||
      					alkupaiva.paiva < 1 ||
                     alkupaiva.paiva > pvkksa[alkupaiva.kuukausi-1];
     if(vaarapaivays) cout << "Virheellinen päiväys";
   }while(vaarapaivays);


	//PÄIVIEN LUKUMÄÄRÄN KYSYMINEN

   cout<<"\nAnna paivien lukumaara: ";
   cin>>maara;

   loppupaiva.paiva=alkupaiva.paiva;
   loppupaiva.kuukausi=alkupaiva.kuukausi;
   loppupaiva.vuosi=alkupaiva.vuosi;
   apupaiva=loppupaiva;
   while(i<=maara)  //niin kauan maara pienemp tai yhtäsuur ku taul
   {
	    apupaiva.paiva++;  //niin kasvattas alkupaivasta eteeenpäin loppupaivaa

        //jos loppupäivä isomp ku taulukos sallitaan
	    if (apupaiva.paiva > pvkksa[apupaiva.kuukausi-1]) 	  	{
			apupaiva.paiva = 1; //päivä on --?---

		apupaiva.kuukausi++;//kasvatetaan kuukausia

		}


   	    if (apupaiva.kuukausi > 12)//jos isompi ku 12
	  	{
			apupaiva.kuukausi = 1;//kuukausi on --?---

			//jos vuosi neljällä jaoll.mutta ei sadalla tai 400:lla on jaoll =>kark.vuosi
		  if (apupaiva.vuosi % 4 == 0 && apupaiva.vuosi % 100 != 0 ||
  	          apupaiva.vuosi %400 == 0) pvkksa[1] = 29; //huomioi silloin helmikuu 29pv
	      						       else pvkksa[1] = 28;
	      apupaiva.vuosi++;//kasvatetaan vuotta

  	}

i++;

}
   //ULOSTUS
  cout << "\n\nAlkupäivämäära " << setw(3) << alkupaiva.paiva << setw(3);
  cout << alkupaiva.kuukausi << setw(5) << alkupaiva.vuosi;

  cout << " \n\nLoppupäivämäära " << setw(3) << apupaiva.paiva << setw(3) ;
  cout << apupaiva.kuukausi << setw(5) << apupaiva.vuosi;
  cout <<" välillä on " << maara << " päivää" << endl;
  getch();
  return 0;
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta