Inimesed * Loo klass Inimene protected väljadega eesnimi, perekonnanimi, synniaasta ning meetodid väärtuste väljastamiseks ja konstruktor andmete sisestamiseks. Koosta käsklus andmete küsimiseks, samuti allkirja küsimiseks kujul E. Perekonnanimi. Lisa automaattest olemasolevate käskude töö kontrolliks. * 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. Lisa käskudele automaattestid. * Loo klass kool väljadega aadress ja nimetus. Koosta 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. Koosta väike puu, kus oled kirjas ise, oma vanemad ning vanavanemad. * Koosta automaattestid kontrollimaks inimeste paigutamist sugupuusse ning nende andmete küsimist. * Loo rakendus sugupuu koostamiseks ning põlvkondade kaupa trepituna väljatrükiks faili. Loenda kokku puus leiduvad etteantud eesnimega inimesed. Koosta toimingutele automaattestid. Soojushulgad * Loo klass hoidmaks aine omadusi: erisoojust (J/(kg*K)), erikaalu (kg/kuupmeeter), nimetust. Klassile konstruktor andmete sisestuseks ning meetodid küsimiseks. Loo automaattestid klassi töö kontrollimiseks. * Loo klass esemete andmete (mass, temperatuur, viit ainele) hoidmiseks. Loo käsklus esemes leiduva kogu soojusenergia hulga küsimiseks (mass*erisoojus*absoluutne_temperatuur) Koosta automaattestid loodud käskudele. * Lisa klass esemete kogumi koostamiseks ja muutmiseks. Lisa klassile meetod küsimaks, milline on kogumi temperatuur pärast esemete temperatuuride ühtlustumist ilma soojuskadudeta. Testi tulemust automaattestiga. Maamõõdupunktid * Loo tasandil asukohta määrav klass Punkt, millel juures loendur koos suurendava käsklusega teatamaks, mitme muutuja kaudu on võimalik tema poole pöörduda. Loo klassile automaattestid. * 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. Kontrolli toimimist automaattestide abil. * Koosta nende klasside põhjal rakendus maatükkide piiride maha märkimiseks. Üldjuhul iga hiireklõps või asukoha andmestik märgib maatüki juures uue punkti. Kui aga klõps satub mõne olemasoleva punkti läheduses, siis kasutatakse seda punkti mõlema maatüki ühise piiripunktina ning loendur punkti juures näitab, mitme maatüki juurde ta kuulub. 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. Salat * Koosta klass toiduaine tarbeks (nimetus, valkude, rasvade ja süsivesikute protsent). Kontrolli automaattesti abil andmete liikumise korrektsust. Protsent kokku ei saa ületada 100. * Koosta klass toidukomponendi tarbeks (kogus, toiduaine). Koosta klass toidu jaoks (nimetus, toidukomponendid). Toidule käsklused küsimaks sisalduvate valkude, rasvade ja süsivesikute kogust. Koosta automaattestid arvutuste õigsuse kontrolliks. * Lisa moodus arvutamaks toidukomponentide koguseid etteantud massiga toidu saamiseks. Loo moodus andmete lugemiseks failist ning salvestamiseks faili. 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 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 kogum, 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 kogumisse mõlemat tüüpi objekte. Katseta toimimist automaattestide abil. * Loo liides Kirjutatav, mida realiseerival klassil peab leiduma käsklus kirjuta(). Pane Kiri seda liidest realiseerima. Muuda Kirjade kogum Kirjutatavate kogumiks. Muuda kogum ka ise Kirjutatavaks, mis kirjutab välja ka kõik sisemised elemendid. Katseta. 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"). Kirjuta klassile automaattestid. * 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. Katseta uut klassi samade testidega. Akordide arvutaja * Loo klass Kolmkõla mazoorkolmkõla nootide arvutamiseks. Konstruktoris antakse sisse täisarvuline põhitoon, eraldi käsuga 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 automaattestidega * 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)) Hulknurgad * Loo klass hulknurga andmete hoidmiseks (tipu kaugus keskkohast, tippude arv, keskkoha koordinaadid). Loo käsklus tippude koordinaatide küsimiseks massiivina. * Loo Hulknurgale alamklassid Kolmnurk ning Ruut. Nende konstruktoris antakse ette keskkoht ning külje pikkus, selle järgi arvutatakse sisemiseks hoidmiseks raadius automaatselt. Kontrolli klasside tööd automaattestide abil. * Lisa Hulknurgale käsklus keskkoha andmete küsimiseks ning muutmiseks. Loo kogum, kuhu saab hulknurki lisada, nende andmeid tervikuna välja trükkida ning kõiki kogumis leiduvaid hulknurki soovitud sammu jagu liigutada. Jõed * Loo klass jõe andmete hoidmiseks (nimetus, pikkus(km), vooluhulk (l/s) suudmes). Loo jõele muutujad jõe kohta kuhu ta suubub ning mitmendal kilomeetril. Otse merre suubuva jõe puhul on sihtjõe väärtuseks null. Ehita paarist jõest ahel ning trüki välja läbitavate jõgede nimetused, et etteantud kohast merre jõuda. * Lisa jõe külge kogum tema lisajõgedest. Jõgedele lisajõgede lisamisel kontrolli, et jõest väljuv vooluhulk ei oleks väiksem, kui temasse suubuvate jõgede vooluhulkade summa. Vastasel juhul heida erind. Anna käsuna välja jõe lisajõed peajõe suudmest mõõdetud kauguse järgi. * Võimalda jõe vooluhulka mõõta ja küsida kilomeetrite kaupa. Lisajõest ülesvoolu on jõe vooluhulk lisajõe andmete jagu väiksem kuni järgmise lisajõe või jõe lähteni. Ükskõik millise lisajõe vooluhulga kasvatamine või kahandamine mõjutab vastavat vooluhulka kuni mereni välja. Poomismäng * Loo klass, mille eksemplarile saab ette anda sõna ning kus käskudena küsida sõna kujul, kus tähed on asendatud allkriipsudena. Kontrolli klassi eksemplari tööd automaattestiga. * Objektile saab käsu kaudu pakkuda tähe. Funktsioon tagastab tõeväärtuse, kas sellist tähte leiti või mitte. Käsu abil saab välja küsida, mitu korda on sobimatut tähte pakutud. Sõna väljatrükki küsides on pakutud sobivad tähed paigutatud õigetesse kohtadesse alljoonte asemele. Kontrolli senist tööd automaattestidega. * Koosta klassi tööd kasutades sellele tegelik kasutajaliides. Kasutaja saab pakkuda tähti, talle näidatakse, kus need asuvad. Kuni 11 vale pakkumisega lõpetatud mäng loetakse võitnuks, muidu kaotanuks. Uute mänguobjektide loomiseks koosta eraldi vabrikuklass, mis teeb eksemplari koos uue sõnaga.