public dynamic Vali(string Töötaja) { switch (Töötaja) { case "1": var Klass = new Andmetöötleja(); return(Klass); case "2": var Klass1 = new Koristaja(); return(Klass1); case "3": var Klass2 = new NooremArendaja(); return(Klass2); case "4": var Klass3 = new SpetsiaalKoristaja(); return(Klass3); case "5": var Klass4 = new VanemArendaja(); return(Klass4); case "6": var Klass5 = new Ülemus(); return(Klass5); default: return("Tere"); } }
static void Main(string[] args) { // ====================================== // ENSIMMAINEN OSA ====================== // ====================================== //Luo funktio, joka koristelee sille parametrina annetun // merkkijonon.Koristerivi - funktio koristelee merkkijonon // lisäämällä sen alkuun ja loppuun tähtiä 8 kappaletta. // Koristerivi("TURO"); //Parantele Koristerivi-funktiota siten, että se huomioi nimen // pituuden.Voidaan olettaa, että merkkijonon kokonaispituus // kun mukaan luetaan tähdet ja nimi, on enintään 30 merkkiä. // Tehtävässä ei tarvitse huomioida parittomia lukuja, joten // jos nimessä on pariton määrä kirjaimia, voi tuloste olla 29 // tai 31 merkkiä. // Koristerivi("TURO"); //Koristerivi("SALMINEN"); //Koristerivi("AB"); //Parantele Koristerivi -funktiota siten, että voit määrittää //nimen lisäksi rivin pituuden. //Koristerivi("TURO", 30); //Parantele Koristerivi-funktiota siten, että voit määrittää //edellisten parametrien lisäksi tulostettavan merkin. // Koristerivi("TURO", 30, "="); // ====================================== // TOINEN OSA =========================== // ====================================== // Luo funktio, joka tulostaa nimen päälle ja alle 3 riviä // tähtiä.Voit hyödyntää edellisessä tehtävässä syntynyttä // funktiota kun tulostat nimeä.Huomaa, että tähtien määrä //riveillä pitää olla sama kuin edellisessä tehtävässä eli // 30 merkkiä. // Tehtävässä ei tarvitse huomioida tilannetta, jossa nimessä // on pariton määrä merkkejä. Voidaan olettaa, että tulostetuissa // riveissä on aina 30 merkkiä nimen tulosteesta huolimatta. // KoristeNelio("TURO"); // Paranna edellistä funktiota siten, että voit nimen lisäksi // määrittää tulostettavien rivien ja rivin pituuden määrän. // KoristeNelio("TURO", 3, 20); // Paranna edellistä funktiota siten, että voit antaa parametrina // tulostettavan merkin.Tarvittaessa voit hyödyntää harjoituksessa // luotuja funktioita. Muuta tällöin funktioiden toteutuksia sellaiseksi, // että ne vastaavat uutta toimeksiantoa. // KoristeNelio("TÄHTI NELIÖ", 4, 40, "="); // ====================================== // KOLMAS OSA =========================== // ====================================== //Olet tähän mennessä tehnyt funktion tulostamaan Koristerivin ja // koriste neliön. Nyt sovella osaamistasti ja toteuta samalla tapaa // KoristeKolmio.Funktio tulostaa kyljellään olevan kolmion.Voidaan //olettaa, että kolmion kärjen pituus on 10 merkkiä sen pohjasta. //Harjoituksessa riittää, että tulostat vain kolmion.Käyttäjän pitää // pystyä määrittämään tulostettava merkki funktioon annettavana // parametrinä.Nimeä ei tässä harjoituksessa ole pakko tulostaa. //Esimerkkituloste(kolmion kärki - tekstiä ei tarvitse tulostaa, //se on vain huomio): // * // ** // *** // **** // ***** // ****** // ******* // ********(Kolmion kärki) // ******* // ****** // ***** // **** // *** // ** // * //KoristeKolmio("="); //Parantele KoristeKolmio-funktiota siten, että voit antaa tulostettavien // merkkien lisäksi pituuden kolmion kärkeä varten. Kolmion kärjellä tässä // tarkoitetaan kolmion riviä, jossa on kokonaisuudessaan annettu määrä // merkkejä. //KoristeKolmio("=", 20); // ================================= // NELJÄS OSA ====================== // ================================= // Paranna aikaisemmin toteuttamaasi KoristeRivi-funktiota siten, // että toteutat sen olio-ohjelmoinnin tapaan. Tämä tarkoittaa sitä, // että luot luokan nimeltä Koristaja, jolla on TulostaRivi-metodi. // // Olion luominen ja metodin kutsuminen tapahtuu seuraavalla tavalla: // //Koristaja koristaja = new Koristaja(); //koristaja.TulostaRivi("TURO", 30, "="); // Paranna Korista-luokkaa siten, että siirrät myös KoristeNelio-funktion // toiminnallisuuden luokan metodiksi. Metodin nimi Koristaja-luokassa // on TulostaNelio. // // Olion luominen ja metodin kutsuminen tapahtuu seuraavalla tavalla: // //Koristaja koristaja = new Koristaja(); //koristaja.TulostaNelio("SALMINEN", 2, 25, "="); // ================================= // VIIDES OSA ====================== // ================================= // Tähän mennessä alkuperäiset funktiot on siirretty Koristaja-luokan // metodeiksi. Varsinaisesti tässä ei vielä luokan ominaisuuksia hyödynnetä. // Seuraavaksi tehtävänä on huomioida samankaltaiset piirteet luokan // metodeista ja siirtää ne luokan ominaisuuksiksi. // // Luodaan seuraavaksi luokalle ominaisuudet: tulostettavaMerkkijono, // rivienMaara, sarakkeidenMaara ja tulostettavaMerkki. // // Luokan ominaisuudet voivat olla julkisia (public) tässä harjoituksessa, // jotta voit käsitellä tietoja. Lopputuloksena oliota käsitellään seuraavalla // tavalla. // // (HUOM: jos et sijoita ominaisuuksiin arvoja, ohjelma saattaa tässä vaiheessa // vielä aiheuttaa virheen.) //Koristaja koristaja = new Koristaja(); //koristaja.tulostettavaMerkkijono = "TURO"; //koristaja.tulostettavaMerkki = "#"; //koristaja.rivienMaara = 3; //koristaja.sarakkeidenMaara = 25; // Nyt luokalla on ominaisuuksia mutta ne eivät vielä vaikuta ohjelmaan. // Seuraavaksi parannetaan TulostaRivi-metodia siten, että voit määrittää // sen käyttämät parametrit luokan ominaisuuksia käyttäen. Tämä vaatii // muutoksia TulostaRivi-metodin kutsumiseen. // // Olion luominen ja metodin kutsuminen tapahtuu seuraavalla tavalla: //Koristaja koristaja = new Koristaja(); //koristaja.tulostettavaMerkkijono = "TURO"; //koristaja.tulostettavaMerkki = "#"; //koristaja.rivienMaara = 3; //koristaja.sarakkeidenMaara = 25; //koristaja.TulostaRivi(); // ================================= // KUUDES OSA ====================== // ================================= // // Edellisessä harjoituksessa loit luokalle ominaisuudet ja parantelit // olemassaolevaa metodia. Nyt tee samoin mutta luokan toiselle metodille, // eli TulostaNelio-metodille. // // Olion luominen ja metodin kutsuminen tapahtuu seuraavalla tavalla: // // (HUOM. kun olet toteuttanut tämän osan, sinulla on kaksi metodia luokassa. // On hyvien tapojen mukaista katsoa mitä samaa metodit tekevät ja mikäli // et ole siistinyt ohjelmakoodia, tässä on hyvä paikka. Siistimisellä // tässä tarkoitetaan, että voit luoda luokkaan yksityisiä (private) metodeja // joita käytetään vain luokan sisällä. Eli metodeja ei voi kutsua kuten // TulostaRivi() ja TulostaNelio() -metodeja.) Koristaja koristaja = new Koristaja(); koristaja.tulostettavaMerkkijono = "TURO"; koristaja.tulostettavaMerkki = "#"; koristaja.rivienMaara = 2; koristaja.sarakkeidenMaara = 15; koristaja.TulostaNelio(); }