Inimesed * Loo klass Inimene protected väljadega eesnimi, perekonnanimi, sünniaasta ning meetodid väärtuste väljastamiseks ja konstruktor andmete sisestamiseks. Testi klassi. * Kontrolli isendi loomisel, et parameetrid oleksid mõistlike väärtustega, muul juhul heida erind. Koosta loendurid hoidmaks meeles, mitu inimest on loodud ning iga inimese puhul, mitu korda on ta eesnime küsitud. * Loo klass kool väljadega aadress ja nimetus ning inimese alamklass Opilane, kus lisaks muudele inimese andmetele juures viit koolile. Iga kooli juures peetakse meeles selle ID-numbrit, mis igal järgmisel koolil on ühe võrra suurem. Loo rakendus isikute ja koolide lisamiseks, andmete küsimiseks, igas koolis leiduvate õpilaste arvu küsimiseks, andmete talletamiseks tekstifaili ning sealt lugemiseks. Sugupuu * Loo klass Inimene väljadega eesnimi, perekonnanimi, sünniaasta ning viitadega inimestele isa ja ema. Testi klassi. * Loo rakendus sugupuu koostamiseks ning põlvkondade kaupa trepituna väljatrükiks faili. Loenda kokku puus leiduvad etteantud eesnimega inimesed. * Koosta (tekstiekraani)rakendus, kus võimalik puud tervikuna või osade kaupa vaadata ja muuta. Statistikana väljastatakse kõik erinevad eesnimed alates märgitud isikust ning nende esinemise kordade arv. Lisa võimalus rakenduse hetkeseisu salvestamiseks faili ning andmete sealt taas puusse lugemiseks. Soojushulgad * Loo klass hoidmaks aine omadusi: erisoojust (J/(kg*K)), erikaalu (kg/kuupmeeter), nimetust. Klassile konstruktor andmete sisestuseks ning meetodid küsimiseks. Loo rakendus andmete sisestamiseks ja vaatamiseks. * Loo klass esemete andmete (mass, temperatuur, viit ainele) hoidmiseks. Lisa rakendusele võimalus esemete sisestamiseks, muutmiseks ja kustutamiseks. Võimalda küsida etteantud ainega esemete kogumassi. * Lisa rakendusele klass esemete kogumi koostamiseks ja muutmiseks. Lisa klassile meetod küsimaks, milline on kogumi temperatuur pärast esemete temperatuuride ühtlustumist ilma soojuskadudeta. Testi tulemust. Maamõõdupunktid * Loo tasandil asukohta määrav klass Punkt, millel juures loendur teatamaks, mitme muutuja kaudu on võimalik tema poole pöörduda. Testi toimimist. * Klass Maatükk hoiab maatüki juurde kuuluvate punktide andmeid ning määrab, millised punktid on selle maatüki juures omavahel ühendatud. Maatüki andmete sisestamisel kontrollitakse, kas vastav piiriposti paik on juba Punktina kirjas. Kui jah, siis pannakse maatüki juurde osuti samale punktile, kui mitte, siis luuakse uus Punkt. Maatükilt saab küsida teda moodustavate punktide andmed. * Maatükilt saab küsida tema piiri pikkuse. Iga maatüki juurde kuulub omanik. Maatükilt saab küsida kõikide naabermaatükkide omanike nimed reastatuna nendega ühise piiri pikkuse järgi. Mutrid ja poldid * Loo klass Kinnitusvahend väljadega mass (grammides) ning diameeter (millimeetrites, täisarv). Loo kinnitusvahendite alamklassid Polt ning Mutter. Poldil on lisaks väli pikkus (millimeetrites). Katseta mõlemat tüüpi objekti toimimist. * Lisa kinnitusvahendile virtuaalne käsklus kysiTyyp(), mis vastavalt objekti tüübile teatab kas "polt" või "mutter". Loo kinnitusvahendite hoidla Karp, kuhu saab lisada polte ja mutreid. Karbist saab küsida, kas leidub soovitud poldile mutrit või mutrile polti. Samuti hoitavate kinnitusvahendite kogumassi, soovitud diameetriga poltide või mutrite koguarvu. * Loo rakendus, kus karpi saab lisada kasutaja määratud kogustena soovitud parameetritega polte ja mutreid. Samuti küsida vahendeid etteantud pikkustega ühenduste kokku kruvimiseks. Pikkusvaru peab olema vähemalt 2 cm, st., et 6cm ühenduse kokku kruvimiseks peab olema vähemalt 8-sentimeetrine vastava läbimõõduga polt. Kruvimiseks kulunud kinnitusvahendid eemaldatakse karbist. Mutrid ja võtmed * Loo klass mutri (mass, suurus) ning klass mutrivõtme (hind, suurus) jaoks. Katseta obektide loomist ning väärtuste hoidist/küsimist. * Igal mutril on viit mutrivõtmele. Mutri lisamisel suurendatakse vastava võtme juures olevat loendurit, eemaldamisel vähendatakse. Saab lisada vaid mutreid, millele vastav võti on olemas. Kui võtmele ei vasta enam ühtegi mutrit, antakse sellest teada. * Loo klass Kinnitusvahend, mille alamklassiks on mutter ja polt. Mõlemal neist on viit sobiva suurusega mutrivõtmele. Mutrivõtme juures on viitade kogum näitamaks kinnitusvahenditele, mida vastava võtmega keerata saab. Mutrivõtme käest saab küsida selle võtmega keeratavate mutrite ja poltide masside loetelu. Kui mutrivõtmele ei vasta enam ühtegi polti, siis vabastatakse ka vastava võtme juurde kuuluvate mutrite mälu. Kirjade loetelu * Loo klass Kiri väljadega pealkiri ja sisu. Koosta vektor, kuhu saab kirju lisada. Katseta loodut. * Loo kirjale alamklass Veebiuudis, millel on lisaks väli URL. Mõlema klassi puhul on sisu välja trükkimiseks meetod "kirjuta". Lisa vektorisse mõlemat tüüpi objekte. Võimalda neid lugeda failist, lisada ja vaadata ekraanilt ning väljastada faili. * Igal kirjal saab olla viidete loetelu teistele temaga seotud kirjadele. Näidatakse, kuidas kirjad gruppidesse koonduvad ning kui palju leidub teineteisega sidumata gruppe/kirju. Operaatoritega kuupäev * Loo klass päeva, kuu ja aasta hoidmiseks. Loo operaator klassi eksemplari ja arvu liitmiseks. Väljastatakse lisatud arvu päevadega eksemplar, kus üleläinud päevad ja kuud on paika arvutatud. * Lisa operaatorid kahe objekti omavaheliseks liitmiseks/lahutamiseks, arvuga korrutamiseks, jagamiseks. Leia kuude pikkuste ja liigaastate tarbeks iga tehte puhul sarnaselt töötav lahendus. * Loo klass inimeste sünnipäevade andmete hoidmiseks. Lisa klassile käsud noorima ja vanima inimese leidmiseks, tänase sünnipäevalapse kindlakstegemiseks, arvutamiseks, kellel on järgmisena sünnipäev ning mitu päeva sinna on. Liides ja ruutvõrrand * Loo liides käsuga ruutvõrrandi lahendamiseks. Parameetritena sisse a, b ja c, väljundiks x1 ja x2, lahendi puudumisel tühiväärtus null. * Koosta liidest realiseeriv klass, kus vastavad arvutused tehakse. Loo peaprogramm klassist loodud objekti töö testimiseks, kusjuures klassi eksemplari poole pöördu liidesetüüpi muutuja kaudu. Katseta läbi kõik erijuhud (tavaline x1 ja x2, x1=x2 ning "lahendid puuduvad"). * Koosta teine klass, mis saab hakkama mitmesuguste funktsioonide nullkohtade leidmisega. Arvutades leiab ta funktsiooni väärtused väikeste vahemaade tagant. Kui kaks järjestikust väärtust on teine teisel pool x-telge, siis nende keskkoht loetakse nullkohaks. Pane see uus klass ka ruutvõrrandi lahendamise liidest realiseerima ning katseta selle tööd peaprogrammis. Akordide arvutaja * Loo klass Kolmkõla mazoorkolmkõla nootide arvutamiseks. Konstruktoris antakse sisse täisarvuline põhitoon, käsuga TrükiKolmkõla väljastatakse põhitoon, suur terts (+4) ja kvint (+7). Ehk siis kui põhitooniks on 60 (C), siis väljastatakse arvud 60 64 67. Testi klassi. * Loo klassile alamklassid CKolmkõla (põhitoon 60), FKolmkõla(65), GKolmkõla(67). Katseta. * Kolmkõla klassil on lisaks käsklus arvuliste MIDI-noodinumbrite tähtnimetusteks muutmiseks. Alates 60st: C C# D Eb E F F# G G# A B H C Lisa Kolmkõlale ka konstruktor, kus antakse ette akordi tähtnimetus ning selle järgi leitakse akordi põhitoon arvuna. Samuti on võimalik akordi noodid trükkida tähtnimedega. Koosta klass Lugu, kuhu iga takti jaoks saab lisada kolmkõla eksemplari. Käskluse Mängi peale hakatakse akordide andmeid trükkima, igas sekundis üks takt (vahele aeglustuseks Thread.Sleep(1000))