Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

20.1.2 kysy_tiedot (naytto.cpp)

Varsinainen tietojen kysyminen on jätetty aliohjelmalle kysy_tiedot. Yksinkertaisimmillaan tämä olisi:

	int cNaytto::kysy_tiedot(cJasen &jasen)
	{
	  cJasen apujasen(jasen);
	  string jono; 
	
	  cout << "Jäsenen nimi  >"; getline(cin,jono,);
	  if ( jono == "" ) return 1;
	  apujasen.setNimi(jono);
	  cout << "Hetu          >"; getline(cin,jono);
	  apujasen.setHetu(jono);
	...
	  cout << "Jäsenmaksu mk >"; getline(cin,jono);
	  apujasen.setJmaksu(jono_doubleksi(jono,"%lf"));
	...
	  jasen = apujasen;
	  return 0;
	}

Tässä on vielä vähän vikoja. Pahimpana tietysti valtava määrä saantimetodeja. Lisäksi syötöstä ei voi poistua minkä tahansa kentän antamisen jälkeen. Tämä voidaan korjata esimerkiksi lisäämällä merkin "q" käsittely jokaisen lukemisen jälkeen:

	  cout << "Jäsenen nimi  >"; getline(cin,jono);
	  if ( jono == "" ) return 1;
	  if ( jono == "q" ) return 1;
	  apujasen.setNimi(jono);
	  cout << "Hetu          >"; getline(cin,jono);
	  if ( jono == "q" ) return 1;
	...
	  cout << "Jäsenmaksu mk >"; getline(cin,jono);
	  if ( jono == "q" ) return 1;
	  apujasen.setJmaksu(jono_doubleksi(jono,"%lf"));
	...

Vieläkään ei ole ehdotettu oletusarvoa kentälle syöttöä varten. Lisäyksessähän tämä ei niin haittaa, mutta jos samaa aliohjelmaa haluttaisiin käyttää korjailussa, olisi oletusarvot toivottavia.

Toimiakseen se, että näyttö voi viitata suoraan jäseneen vaatii näytön jäsenen ystäväksi. No tämähän ei ollut kovin toivottava ominaisuus. Lisäksi olisi toivottavaa muutenkin, ettei näyttö tietäisi näin paljoa jäsenestä. Nyt nimittäin jos jäseneen lisätään yksikin kenttä, pitää muutoksia tehdä monessa paikassa (jo turhan monessa ilman näytönkin muuttamista).


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys