This exam in English / englanniksi
Koe päättyy 25.6.2001 kello 16:00. Siihen mennessä tulee vastauksesi olla luennoijan hallussa.
Kirjoita vastauksesi koneella. Kirjoita yhteen tiedostoon vastaus vain yhteen tehtävään.
Lähetä vastauksesi sähköpostitse osoitteeseen gaia+vk@iki.fi. Laita viestin otsikkoon nimesi ja henkilötunnuksesi. Liitä vastauksesi viestiin liitetiedostoina. Voit lähettää vastauksesi useammassa viestissä, ja voit lähettää vastauksesi useampaan kertaan - vain uusin vastaus otetaan huomioon. Vastaanotettuun viestiin lähetetään automaattisesti kuittausviesti.
Kokeeseen kuuluu pakollinen suullinen, henkilökohtainen palautustilaisuus, joka pidetään kokeen tarkastamisen jälkeen. Asiasta tiedotetaan tarkemmin myöhemmin.
Saat käyttää apunasi kaikkia olemassa olevia lähteitä. Saat tehdä yhteistyötä ja kysyä neuvoja. Vastausten tulee kuitenkin olla kokonaan itse laatimiasi. Yhteistyötä voit tehdä esimerkiksi tiedonhaussa ja ratkaisun idean selvittämisessä.
Ohjelmointitehtävissä on käytettävä C++-kieltä. Kaikkia
ISO/ANSI-standardin mukaisia keinoja saa käyttää. Muita kuin
ISO/ANSI-standardin mukaisia keinoja ei saa käyttää. (Jos et
ole varma, onko jokin keino standardin mukainen, mainitse siitä
vastauksessasi.) Käytä aina kuin mahdollista C++:n keinoa C:n
keinon sijasta (esimerkiksi new eikä
malloc, cout eikä printf,
string eikä char [] tai char
* jne.).
Essee on kirjoitelma. Kuten kaikkien muidenkin kirjoitelmien, sen tulee olla hyvin jäsennelty selkeä esitys aiheesta (ei aiheen vierestä). Sillä on alku ja loppu, ja niiden välissä teksti etenee jouhevasti asiasta toiseen. Esseetehtävissä olennaisempaa kuin yksityiskohtaisten faktojen esille tuominen on asioiden yhteyksien, syiden ja seurausten selvittäminen. Oman ajattelun esille tuominen on tärkeämpää kuin lähteiden siteeraaminen. Myös esimerkit ja piirrokset ovat hyödyllisiä.
Mainitse kaikissa vastauksissasi lyhyesti, mitä lähteitä ja keiden neuvoja olet käyttänyt ja miten.
Muista, että puutteellisestakin vastauksesta voi saada pisteitä. Muista myös, ettei kannata innostua tekemään liian laajaa vastausta - täysien pisteiden jälkeen ei ole enää tarjolla lisäpisteitä.
Tee kaikki tehtävät.
a) Kirjoita lyhyt essee, jossa vertailet STL:n säiliöluokkia. (8 p.)
b) Kirjoita lyhyt ohjelma, joka selvittää komentorivillä nimetyssä tiedostossa olevien sanojen esiintymismäärät. Voit itse määritellä, mitä sanalla tarkkaan ottaen tarkoitetaan. (4 p.)
Tehtävänäsi on tehdä pankkitililuokka. Luokan tulee kyetä pitämään kirjaa tilin saldosta. Tilille tehdään panoja ja ottoja sekä markka- että euromääräisinä. Tilin tulee kyetä kertomaan saldonsa sekä markkoina että euroina. Tiliin tulee myös kuulua tilisiirtotoiminnallisuus. Tiliin ei kuulu luottoa, joten saldo ei saa koskaan päätyä miinukselle.
Huomaa, että luokka ei saa tulostaa eikä lukea käyttäjältä mitään, vaan se kommunikoi ulkomaailman kanssa vain metodiensa parametrien ja paluuarvojen kautta! Huomaa myös, että tarkoitus ei ole tehdä kokonaista ohjelmaa, vaan vain luokka.
a) Suunnittele luokka eli mieti, mitä attribuutteja, muodostimia ja metodeita se tarvitsee. Tarvitseeko se avustajaluokkia? Jos tarvitsee, suunnittele nekin. Älä kuitenkaan innostu liikaa. Piirrä suunnitelmastasi tietorakennekuva ja joko CRC-kortit tai UML-luokkakaavio. (4 p.)
b) Mitä poikkeustilanteita voi esiintyä? Kuinka ne hoidetaan? (1 p.)
c) Kirjoita yksinkertainen testipääohjelma (1 p.)
d) Toteuta tekemäsi suunnitelma. (6 p.)