Learning goal: file reading, exception handling
Create a console application that reads numbers from a file. In the file each number is own row, and there can be rows from one to about a thousand. Sort numbers from smallest to biggest and show them in a console each number in own line. Create and name a test textfile yourself, and place the file for example to c:\temp folder. The file name must be defined in the starting argument of the program. Use normal try-catch-finally -exception handling.
Learning goal: handle user inputs, file writing
Create a console application that reads positive numbers that an end user
gives as long as user want to stop giving numbers. If the end user gives a
number bigger than 0, put the number to an array. If user gives number zero we
will end the reading. If user gives a number below zero or if the number is not
valid number, the application will give a warning.
After the user has ended giving number, the application writes numbers to a file
named in the starting argument of the program , each number
to own row. Use normal try-catch-finally -exception handling, no other error handling
needed yet.
Learning goal: to create classes, to use classes
Create a class named Lotto, where two types (tyyppi) of lotto drawns can be made, types are Suomi and VikingLotto. Suomi is original Finnish Lotto where seven numbers from 39 will be drawned, VikingLotto is played around Nordic Countries and there is six numbers from 48 drawned. Create a method ArvoRivi for the class. When Tyyppi is set, change SuurinNro and NumeroLkm to the right values.
Create a console application that uses Lotto class.
Oppimistavoite: GUIn ja businesslogiikan sisältävän luokan kytkeminen
Tee Windows-sovellus, jolla loppukäyttäjä voi tehdä seuraavat
peruslaskutoimitukset:
Summa, Erotus, Tulo, Osamäärä ja Potenssiin korotus.
Sovelluksessa on kaksi tekstikenttä johon arvot voidaan syöttää, yksi
valintalista josta laskutoimitus valitaan ja yksi selite, jossa laskutoimituksen
tulos esitetään.
Toteuta tämän matikkaneron toiminnallisuus luokalla MatikkaNero, joka on oheisen
speksin mukainen.
Muista että nollalla ei saa jakaa!
Oppimistavoite: saada rutiinia tiedostojen käsittelyyn, tavallisimpien Windows-kontrollien käsittelyyn.
Lotto-rivejä on arvottu tiedostoon n kappaletta. Käytä aiemmin luomaasi sovellusta rivien arpomiseen ja tiedostoon tallentamiseen. Tiedoston formaatti on seuraava:
38/2005
1 19 20 21 37 38 39
12 14 16 20 22 25 39
...
Haluamme tarkistaa olemmeko voittaneet ja kuinka paljon. Luo Windows sovellus jolla voi tarkistaa arvotut rivit. Lomakkeelle käyttäjä syöttää viikon oikeat lottonumerot ja voittoluokkien voittosummat, käyttäjä voi kirjoitta tarkistettavan tiedoston nimen tai valita sen tiedostojen vakiovalintalomakkeella. Sovellus laskee sijoitetut eurot ja mahdolliset voitot ja ilmoittaa tuloksen käyttäjälle.
In English
We have numbers of drawns of Finnish Lotto in a file. Use your application
that you made earlier to create the file. The file format is above. We have to check have we win and how much. Create a
Windows application to check our drawns. In a form an user puts the right Lotto numbers of the week and how much you would win if
you had seven, six, five etc right. The application checks a file that an user
gives, use . In file selection the user can select a file with standard Open -windows.
The application counts how much you would win or lose.
You can find the right numbers of the Finnish Lotto for example from here:
www.veikkaus.fi and select Tulokset. A Lotto drawn costs 60 cents.
Oppimistavoite: käsitellä useampi lomakkeista sovellusta, tapahtumakäsittelijöiden käyttö
Tehtävänä on laatia Windows-sovellus Kello, joka hälyttää haluttuna
ajankohtana. Kun ohjelma käynnistetään, kello sijoituu automaattisesti
näytön vasempaan yläkulmaan ja näyttää kuluvaa kellonaikaa. Kellotaulun (joko
digitaalinen tai analoginen) päällä hiirellä napsautettaessa:
1) vasen hiiren painike: avaa About-lomakkeen
2) hiiren oikea: lopettaa ohjelman suorittamisen
3) hiiren vasen + Vaihto (Shift): avataan hälytysajan määritykseen tarkoitettu
lomake kellon päälle.
Kun hälytysaika asetetaan, ilmestyy se näkyville kellon otsikkoriville; jollei hälytysaikaa ole asetettu otsikkorivi on tyhjä. Kellon saavuttaessa asetetun hälytysajan avataan näytölle hälytys-lomake, joka suurentuu koko näytön kokoiseksi 10 sekunnin kuluessa jollei käyttäjä reagoi lomakkeeseen. Hälytys-lomakkeella oleva teksti on automaattisesti lomakkeen keskelle. Kun hälytys-lomaketta napsautetaan hiirellä, suljetaan se pois näytöltä. About-lomakkeella on lyhyet käyttöohjeet ja tekijätiedot. Käytä projektissa seuraavan nimisiä lomakkeita: frmKello, frmHalytysAika, frmHalytys ja frmAbout.
Bonustehtävä: Tasan minuutin kuluttua ohjelman käynnistämisestä ohjelma muuttuu pikkuruiseksi kuvakkeeksi Windowsin työkalurivin oikeaan reunaan.
Oppimistavoite: oppia käyttämään DataAdapter ja DataSet -olioita
Tehtävänä on laatia oheisen kuvan mukainen Windows-sovellus tiedon hakuun
Wines-tietokannasta.
Luo toiminnallisuus Get Data ja Save Data -komentopainikkeille. Katso apua
Holznerin kirjasta luvusta 9, sivut 343-358.
Oppimistavoite: kerrata DataReader-objektin käyttöä
Tee Windows-sovellus jolla voi katsoa asiakastietoja Customers.mdb kannan Company -taulusta. Lue kaikki tietueet ja kirjoita Name-kentän tiedot listboxiin. Kun käyttäjä klikkaa yrityksen nimeä listboxissa, näytä yrityksen kaikki tiedot textboxeissa. Suunnittele ja toteuta käyttöliittymä itse. Käytä Microsoft.Jet.4.0 provideria.
Oppimistavoite: oppia käyttämään valmista komponenttia, komponentin olioita ja niiden ominaisuuksia
Luo kuvasarjan kaltainen Windows-sovellus, jolla voi selata korttipakan kortteja läpi. Harjoituksessa tarvitset tämän DLL-kirjaston .
![]() |
![]() |
![]() |
Vinkkejä:
- pöydällä on kaksi CardCntl -kontrollia ja "näkymän" Deck-objekti eli
korttipakka
private HookWare.Gaming.Cards.CardCntl myDeck;
private HookWare.Gaming.Cards.Deck Pakka;
- lomakkeen latauksen yhteydessä pakkaan lisätään kortit
HookWare.Gaming.Cards.Card[] myCards = new Card[6] { new Card(Rank.Ace,
Suit.Clubs ) ...
- aseta kontrollien ominaisuudet ja luo vasemman puoleiselle kontrolille
tapahtumankäsittelijä Click
//tapahtumakäsittelijä
myDeck.Click += new System.EventHandler(Napsautus);
- tässä osa vasemman puoleisen kontrollin ominaisuuksia (opiskele loppu
VS:ssä)
//nostopakka
myDeck = new CardCntl();
myDeck.Back = HookWare.Gaming.Cards.CardBacks.LINES_ISLAND;
myDeck.Card = null;
myDeck.Location = new System.Drawing.Point(10, 9);
myDeck.Name = "cardDeck";
myDeck.Size = new System.Drawing.Size(85, 111);
...
- tarvitset Card -objektia pakan napsautuksen yhteydessä eli
//Draw a Card from the Deck
Card Nostettu = Pakka.Draw();
...
Oppimistavoite: opetella ja/tai kerrata kuinka tietoja voidaan kirjoittaa sovelluksesta eri tallennuspaikkoihin, enum
Tee aiemmin tehtyyn Windows-sovellukseen OudotOliot SMLiigassa
toiminnallisuus jolla käyttäjä voi tallentaa luomiensa olioitten tiedot.
Käyttäjä voi valita mihin tiedot tallennetaan:
- näytölle (ei siis varsinaisesti tallenna mihinkään sic)
- tekstitiedostoon (järjestyksessä sukunimi, etunimi, seura, siirtohinta -
tiedot erotetaan toisistaan puolipisteelllä)
- XML-tiedostoon (käytä DataSettiä!)
- tietokantaan (tallenna haluamaasi tietokantaan esim Access, SQL Server, mySQL;
tietokannan tiedot voi olla vakioina Tallennus-luokassa)
Tee tallennusta varten oheisten kuvien mukainen lomake frmTallennus sekä luokka Tallennus. Se sisältää tarvittavan toiminnallisen logiikan sekä oheisen esimerkin mukaisen arvotaulukon eli enum -määrittelyn. Käytä samaa arvotaulukkoa myös lomakkeella.
![]() |
![]() |
public enum Tallennuspaikka {Määrittelemätön, Näyttö, Serialisoi, Tekstitiedosto, XMLtiedosto, Tietokanta} |
Bonustehtävä 1: Luo mahdollisuus tallentaa olioitten tiedot myös serialisoimalla, katso serializing aiheeseen lisävinkkiä esim. Holznerin kirjasta s 212-215.
Bonustehtävä 2: olisihan se nyt kiva kun tiedot on jossain tallessa, niin myös lukea ne takaisin sovellukseen, joten tee toiminnallisuus lukea tiedot käyttäjän valitsemasta tietolähteestä.
Oppimistehtävä: harjoitella ADO.NETin käyttöä ja ulkoistaa osaamista uuteen sovellustarpeeseen
Luo tietokantapohjainen sovellus, jolla voidaan lukea, päivittää, luoda uutta
ja poistaa tietoa=tietueita tietokannasta ADO.NETin avulla. Voit valita
aihealueen mistä sovelluksen vapaasti vaikkapa jostain omaan harrastuksiisi
liittyen tms. Ainut vaatimus sisällön suhteen on että keksit yksilöllisen
sovelluksen. Luo tarvittava tietokanta ja sille tarvittavat taulut; tietokanta
voi olla Access, SQL Server tai muu relaatiokanta. Vaatimus toteutuksen suhteen
on että käytät käyttöliittymän ja tietokannan välissä erillistä BL-luokkaa kuten
oheisessa kuvassa.
Huom. Poikkeuksellisesti tämä etätehtävä palautetaan ennen
harjoituskoetta, sillä siitä saa bonuspisteitä ohjelmointikokeeseen. Palauta
työsi sähköpostilla zippaamalla projekti, liitä mukaan tekstimuotoinen esitys
jossa kerrot sovelluksen tarkoituksen, lyhyesti sen käytöstä (jollei ilmene
käyttöliittymästä), suunnitteluperusteista db vaatimuksista, luokkarakenteesta
jne.
Oppimistavoite: kontrollien luonti, tapahtumakäsittely ja field validator-kontrollien käyttö
Tee kaksi yksinkertaista Web-laskinta: tee ensin laskin pelkästään editorilla ja C# skriptaamalla, eli luo kontrollit ja toiminnallisuus kirjoittamalla kaikki itse. Tee toinen laskin Visual Studiolla WebFormsilla. Sivulla on kaksi tekstin syöttökenttää johon käyttäjä voi syöttää haluamansa luvut, lisäksi on viisi toimintopainiketta peruslaskutoimituksille : + - * / ^. Kun käyttäjä napsauttaa jotain em. painikkeista suoritetaan laskutoimitus ja esitetään tulos. WebForms versiossa käytä field validator -kontrolleja joilla tarkistat etukäteen että tekstikentissä on kelvolliset arvot.
Oppimistavoite: sivujen käsittely, session -olio
Luo yksinkertainen Webbi-sovellus jossa käyttäjä autentikoidaan ennen kuin hän voi käyttää varsinaisia suojattuja webbi-sivuja. Joten tee web-sovellus, jossa on kolme sivua:
tulossa datasidonnainen komponentti Webissä...
Oppimistehtävä: harjoitella autentikoinnin logiikkaa, oman luokan luomista ja ulkoistaa osaamista Windows- että Web-sovelluksiin.
Tee Windows-sovellus, jossa on toiminnallisuus jolla
käyttäjä autentikoidaan sovellukseen. Luo sovellukseen kaksi lomaketta
(Windows Form): autentikointi-lomake (frmLogin) ja päälomake (frmMain). Kun sovellus käynnistetään, ilmestyy näytölle ensin autentikointi-lomake; jos autentikointi onnistuu siirrytään sovelluksen päälomakkeelle ja näytetään autentikoituneen käyttäjän käyttäjätunnus, etunimi ja sukunimi päälomakkeella. Muita vaatimuksia: - Tee autentikoinnin suorittava toiminnallisuus luokkaan JAMK.IT.IIO10500.Autentikointi. Kaikki tietokannan määrittelyt ja toiminnallisuus luokkaan. Luokalla on oltava metodi boolean Autentikoi(string userid, string password). Jo autentikointi onnistuu etunimi ja sukunimi voidaan lukea vain luku tyyppisistä attribuuteista. - Käyttäjä voi koettaa kirjautua kolme kertaa ja jollei onnistu annetaan virheilmoitus ja suljetaan sovellus. - Autentikointi tapahtuu Pubs-kannasta authors –taulusta: käyttäjätunnus kenttä au_id salasana kenttä phone. Käytä joko tätä tiedostoa tai SQL Serverin pubs-tietokantaa.
|
![]() |
Lisätehtävä: Tee sama Web-sovelluksena. Käytä edellä luomaasi luokkaa ja tee kaksi WebForms-sivua: Main ja Login. |
Create a ASP.NET application where an enduser has to authenticate before he or she can continue. So there must be at least four webpages: