/* kerhomain.cpp */ /****************************************************************************/ /* ** K E R H O M A I N . C P P ** ** Kerho-ohjelman p„„ohjelma ** ** Tekij„t: Vesa Lappalainen ** Ohjelmointikurssit 1991-1996 ** Tehty: 20.12.1991 ** Muutettu 19.12.1993/vl ** Mit„ muutettu: avustus (tosin se on taas pois t„st„ C++ -versiosta) ** Muutettu 06.12.1995/vl ** Mit„ muutettu: + tehty C++ versio ** Muutettu 07.12.1995/vl ** Mit„ muutettu: + tehty document/view C++ versio ** Muutettu 09.12.1995/vl ** Mit„ muutettu: + jaettu osiin ** Muutettu 07.01.1996/vl ** Mit„ muutettu: + Oikeellisuustarkistukset ja USE_CONSOLE ** Muutettu 11.01.1996/vl ** Mit„ muutettu: + argv-k„sittely jotta voidaan k„ynnist„„: ** kerho kelmit ** onnistuu lue_tiedosto(argv[1]), koska standardi ** takaa ett„ argv[1] == NULL tai osoitin merkkijonoon ** Muutettu 14.01.1996/vl ** Mit„ muutettu: + help-toiminto ** ** ** Projektiin mukaan: ** ** kerhomain.cpp - t„m„ tiedosto ** jasen.cpp - yksitt„isen j„senen k„sittely ** kerho.cpp - j„senist”n k„sittely ** naytto.cpp - n„ytt””n liittyv„ kerhon k„sittely ** kentta.cpp - tietueen yksi kentt„ ** muunnos.c - jasenen vaatimat muunnokset merkkijonoksi ja takaisin ** C\ALI\ioali.c - yleisk„ytt”iset k„ytt”j„rjestelm„-riippuvat io-rut. ** C\ALI\mjonot.c - yleik„ytt”isi„ aliohjelmia merkkijonojen ** k„sittelyyn ** C\ALI\string.cpp - c++ -merkkijonoluokka (korvike std-versiolle) ** (jollei ole jo mukana systeemiss„) ** C\ALI\mjonotpp.cpp - mjonot++ string-luokan k„sittelyyn ** C\ALI\pvm.c - hoitaa mm. sotup„iv„m„„r„n tarkistamisen ** C\ALI\help.c - avustus ** ** Jos halutaan k„„nt„„ versio, jossa on editointimahdollisuus ** niin pit„„ k„„nn”kseen m„„ritell„ vakio USE_CONSOLE ja lis„t„ ** viel„ projektiin seuraavat: ** ** C\ALI\editlue.c - hoitaa lue_jono:n muuttamisen editoivaksi ** C\ALI\console.c - laiteriippuva n„yt”nk„sittely ** C\ALI\lyhenne.c - hoitaa pikalyhenteitten k„sittelyn ** C\ALI\wout.cpp - jos cout halutaan muuttaa wout, esim. curses ** tarvitsee t„m„n ** ** ** Lis„ksi tarvitaan tietysti otsikkotiedostot: ** ** jasen.h ** kerho.h ** naytto.h ** kentta.h ** muunnos.h ** C\ALI\ioali.h ** C\ALI\mjonot.h ** C\ALI\string - jollei ole virallista string-luokkaa ** C\ALI\mjonotpp.h ** C\ALI\pvm.h ** C\ALI\editlue.h ** C\ALI\wout.h ** C\ALI\console.h - jos k„ytet„„n USE_CONSOLE-m„„rityst„ ** C\ALI\lyhenne.h - jos k„ytet„„n USE_CONSOLE-m„„rityst„ ** ** Luokkahierarkia: ** ================ ** ** string - yleinen merkkijonoluokka ** cKentta - tietueen yksi kentt„, t„st„ on useita perillisi„, ks. ** kentta.h ** cJasen - j„senen ominaisuudet (ks. jasen.cpp ja jasen.h) ** cKerho - j„senet kokoava tietorakenne (ks. kerho.cpp ja kerho.h) ** cNaytto - k„ytt”liittym„„ yll„pit„v„ luokka (sis„lt„„ osoittimen ** kerhoon, ks. naytto.cpp ja naytto.h) ** ** Jos t„m„ ohjelma halutaan kirjoittaa muulle kuin standardip„„tteelle, ** esim. johonkin graafiseen k„ytt”j„rjestelm„„n, pit„„ kirjoittaa uusiksi ** ** naytto-luokka - joutuu t„ydelliseen remonttiin, voi jopa ** tulla lis„„ toimintoja, kuten "Avaa uusi n„kym„" ** kerhomai.c - t„m„ p„„ohjelma ** ioali.? - korvautuu todenn„k”isesti k„ytt”liittym„n vast. ** rutiineilla ** editlue.c - - " - ** console.c - - " - ** wout.cpp - - " - ** help.c - - " - t„ytyy tehd„ kl. vastaavat muutokset */ #include "naytto.h" int main(int , char *argv[]) { cKerho kerho; cNaytto naytto(&kerho,argv[0]); naytto.ohjeet(); if ( naytto.lue_tiedosto(argv[1]) != 0 ) return 1; naytto.paavalinta(); if ( naytto.talleta() != 0 ) return 2; naytto.kiitokset(); return 0; }