Etusivu

C/C++ teoria
Ohjelmointitesti
C-kielen alkeet
C++-alkeet
C++-taulukkoja
Koodausohjeita
C++ tehtävät
C++ perusteet
C++ vaikeat
C++ syventävät
Kertaustehtäviä
Win32-teoria
Ohjelmointitesti
Ohjelmointimalli
Ikkunaluokat
Lyhyt pohja
Laajennettu pohja
Win32-tehtävät
Win32 perusteet
Win32 vaikeat
Win32 syventävät
MFC-teoria
Kontrolliluokat
MFC-luokat
Lyhyt pohja
Laajennettu pohja
MFC-tehtävät
MFC perusteet
MFC vaikeat
MFC syventävät
Java-teoria
Javan alkeet
Java pohja
Java-tehtävät
Java konsoli
Java perusteet
Java vaikeat
Java syventävät
 
Win32 syventävät
Tehtävä 1
Kirjoita ohjelma, jossa käyttäjä voi valita lottonumerot. Ohjelmassa on luetteloruutu, kymmenen staattista tekstiruutua numeroille ja kaksi kuvassa olevalle tekstille ja nappi. Luetteloruudusta voi tuplanaputtamalla valita oikeat numerot ja ne tulevat oikeassa järjestyksessä, alusta alkaen omiin lokeroihinsa. 'Reset'-nappi käynnistää ohjelman uudestaan. Se siis kirjoittaa luetteloruudun numerot uudelleen ja tyhjentää numerolaatikot.

Ratkaisu

Tehtävä 2
Kirjoita ohjelma, jossa on editbox ja listbox. Edittiin kirjoitettu teksti voidaan lisätä listboxiin 'Lisää listaan'-napilla. Listasta voidaan poistaa rivi tuplanapauttamalla tai 'Poista rivi'-napilla. Listan voi tyhjentää 'Tyhjennä lista'-napilla. Tilarivillä seurataan kokoajan tapahtumia siten, että kun käyttäjä tekee jotain sinne tulee ilmoitus tapauksesta kuten 'lisäsit rivin listaan', 'tyhjensit listan' jne. Oikeanpuoleisessa pikkulokerossa seurataan listboxin rivien lukumäärää. Ohjelman täytyy pystyä myös muuttamaan kontrollien kokoa kun lomakkeen kokoa muutetaan. Huomaa myös oikea fontti.

Ratkaisu

Tehtävä 3
Kirjoita kello. Piirrä kellotaulu ja viisarit LineTo()-funktiolla. Varaa kerran sekunnissa toimiva Timer-kontrolli ja kutsu sieltä WM_PAINT sanomaa, jolloin Windows itse pyyhkii vanhat viisarit pois. Ohjelman täytyy osata skaalata viisarit oikean kokoisiksi riippumatta ikkunan koosta. Kellotaulun ympyrämuodon kaava voidaan laskea sin()- ja cos()-funktioilla. Kun origo on vasemmassa yläkulmassa, kaavan koordinaatit ovat muotoa,
- Keskipiste: ikkunan_leveys/2-ikkunan_korkeus/2

- X-koordinaatti: ikkunan_leveys/2+sin(x)*haluttu_etäisyys_keskipisteestä
- Y-koordinaatti:
ikkunan_korkeus/2-cos(x)*haluttu_etäisyys_keskipisteestä
jossa x on haluttu kulma radiaaneissa (00:00 on nolla ja 12:00 on 2*PII radiaania).

kello.gif (2950 bytes)

Ratkaisu

Tehtävä 4
Kirjoita ohjelma, joka osaa muuntaa valuuttoja kuvan esittämällä tavalla. '-->'-nappi siirtää Valuutta 1:n edit-kontrolliin kirjoitetun valuuttamäärän Valuutta 2:n edit-kontrolliin valittuun valuuttamuotoon ja päinvastoin. Jos muunnos ei ole mahdollinen palautetaan pelkästään 0.

valuutta.gif (5232 bytes)

Ratkaisu

Tehtävä 5
Kirjoita ohjelma, jossa on valikko ja sitä kautta mahdollisuus avata modaalinen dialogi 'Tietoja ohjelmasta'. Tee valikko ja dialogi kääntäjän resurssieditorilla.

dialogi.gif (3646 bytes)

Ratkaisu

 
Sivutilan tarjoaa Tietokonepalvelu Mikrolahti.