TL5302 Olio-ohjelmointi Koe 2.3.2006
Ratkaisut
1. Tee ohjelma, joka kysyy opiskelijan nimen ja Olio-ohjelmointikurssin arvosanan.
Ohjelma tulostaa arvosanan tekstimuodosssa siten, että 5 = Kiitettävä, 3 ja 4 = Hyvä, 1 ja 2 = Tyydyttävä ja 0 = Hylätty. (6 p)
Harjoitus 2, Tehtävä 1:
http://www.oamk.fi/~jjauhiai/opetus/olio/h2t1.cpp
2. Oheinen C++-ohjelma vaihtaa kahden muuttujan sisällöt keskenään. Vaihto on tarkoitus toteuttaa funktiossa vaihda, joka käyttää viittausparametria. (6 p)
a. Lisää ohjelmaan vaihda-funktion prototyyppi. (1 p) b. Lisää vaihda-aliohjelmaan tarvittavat ohjelmarivit. (2 p)
c. Tee pääohjelmaan tarvittavat lisäykset, joiden avulla voit testata, toimiiko aliohjelma oikein. (3 p)
Harjoitus 2, Tehtävä 7:
http://www.oamk.fi/~jjauhiai/opetus/olio/h2t57.cpp
3. Alla olevassa ohjelmassa on esitetty päivämääräluokka Date. (6 p)
d. Lisää luokkaan oletusmuodostin, joka alustaa olion päivämäärällä 1.1.1970. (1 p)
e. Lisää luokkaan parametrillinen muodostin, jonka avulla olio voidaan alustaa luonnin yhteydessä haluttuun päivämäärään, esimerkiksi
Date tomorrow(20,4,2005); (1 p)
f. Lisää luokkaan set-ja get-metodit. Set-metodin avulla päivämäärä kysytään käyttäjältä ja get-metodi tulostaa päivämäärän cout:ia käyttäen.
(2 p)
g. Lisää pääohjelmaan tarvittava ohjelmakoodi, jonka avulla voit testata edellisten kohtien a) – c) asioita. (2 p)
#include <iostream>
using namespace std;
class Date { private:
int day;
int month;
int year;
public:
Date();//Oletusmuodostin
Date(int, int, int); //Parametrillinen muodostin
//Esimerkkiratkaisu set- ja get-metodeista.
//Muitakin on.
void setDate();
void getDate() const;
};
int main() {
Date today;
Date toinenpaiva(20,4,2006);
today.setDate();
toinenpaiva.getDate();
return 0;
}
Date::Date() {
day=1;
month=1;
year=1970;
}
Date::Date(int d, int m, int y) {
day=d;
month=m;
year=y;
}
void Date::setDate() {
cout << “Päivä ? “ << endl;
cin >> day;
cout << “Kuukausi ? “ << endl;
cin >> month;
cout << “Vuosi ? “ << endl;
cin >> year;
}
void Date::getDate() const {
cout << day << “/” << month << “/” << year << endl;
}
4. Ohessa on esitetty kompleksilukuluokan complex toteutus. Lisää ohjelmaan ylikuormatut metodit, joiden avulla voit:
a) Vähentää kaksi kompleksilukua toisistaan (1 p) b) Kertoa kaksi kompleksilukua keskenään (1 p)
c) Vertailla, kumpi kompleksiluvuista on itseisarvoltaan suurempi (2 p) Tee myös tarvittavat lisäykset pääohjelmaan (2 p):
Olio-ohjelmoinnin koe 19.4.2005, tehtävä 4:
http://www.oamk.fi/~jjauhiai/opetus/kokeita/olio-190405-ratkaisut.pdf