Mallid * Koosta programm kahe muutujaga lineaarvõrrandisüsteemi lahendamiseks. * Sea kood tööle mallide abil, nii et andmetüübiks sobiks ka Kellaaeg. * Loo sarnane programm mallide abil kolme muutuja ja kolme võrrandiga lineaarvõrrandisüsteemi lahendamiseks. 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. * Maamõõtmisel kasutatavad kujundid koosnevad määratud punktidest ning nende vahel paiknevatest sirgjoontest. Mälus hoitavad kujundid koosnevad viitadest olemasolevatele punktidele. Kujundite sisestamisel kirjutatakse sisse nurkade koordinaadid. Kui koordinaat satub lähemale kui 0,1 ühiku kaugusele olemasolevast punktist, siis loetakse see määratud punktiks, muul juhul luuakse ja salvestatakse uus punkt. * Igal maatükil on nimi. Maatükilt saab küsida ümbermõõtu. Samuti temaga piirnevate maatükkide loetelu ühise piiri pikkuse järjekorras. 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. * Koosta mallfunktsioon leidmaks kahe väärtuse keskmist. Testi toimimist nii arvude, Kuupaeva kui Kellaaja korral. Foorum Iga kiri foorumis võib olla kas uue lõime algataja või vastus mõnele eelmisele kirjale. Faili igal real on unikaalne kirja number, number, millisele kirjale vastatakse (või 0, kui tegemist on uue lõimega) ning kirja pealkiri. * Loo klass Kiri. Loo talle konstruktor andmete lugemiseks failist saabuval kujul. Väljastatakse uut lõime alustavate kirjade pealkirjad * Kirjad talletatakse hoidlasse. Leitakse kirjad, millele pole veel vastatud. Kiri seotakse oma vastustega viitade abil kahepoolselt. * Loo kirjale käsklus andmete väljatrükiks etteantud taandes. Väljastatakse andmepuu, kus esimesel tasemel on lõime alustavad kirjad, edasi iga vastuseks oleva kirja pealkiri on ühe tühiku võrra enam taandes. Karpide paigutamine Tekstifailis on kirjas igal real ühe karbi pikkus ja laius. Loo klass Karp ning faili põhjal tema eksemplarid. * Lisa Karbile käsklus kontrollimaks, kas ta mahub etteantud Karbi sisse. Katseta. * Vormista see kontroll eraldi operaatorina. Väljasta selle abil uude faili iga karbi kohta teade, kas ta mahub esimese karbi sisse. Sisse mahtumiseks peavad väiksemad olema nii pikkus kui laius. * Koosta Hoidla, kuhu saab lisada vaid karbi, mis mahub seal viimati oleva karbi sisse. Hakka hoidlasse karpe juhuslikult panema nin püüa leida nõnda võimalikult pikk üksteise sisse mahtuvate karpide ahel. Selle andmed trüki uude 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 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. 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 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. 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 käsklus esemes oleva soojushulga leidmiseks (mass * erisoojus * absoluutne_temperatuur). * 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.