Distance tasks

# 1 / Viikko 3 Reading data from a file

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.

Reading data from console and writing to a file

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.

# 2/ Viikko 3 KonsoliLotto++

Tavoite: yhdistää aiemmin opittua&tehtyä yhdeksi toimivaksi sovellukseksi

Jatketaan KonsoliLottoa (kts yllä, pohjan löydätte L:\hen\iio10500 hakemistosta),
tehkää siihen seuraavat lisäykset:
- jos sovellus käynnistetään ilman parametrejä (siis "KonsoliLotto") arvotut rivit näytetään näytöllä
- jos parametriksi annetaan pelkkä tiedostonimi (esim "Konsolilotto rivit.txt") arvotut rivit tallennetaan tiedostoon joka luodaan samaan hakemistoon missä itse ohjelma on
- jos parametriksi annetaan absoluuttinen tiedostonimi (esim "Konsolilotto c:\temp\rivit.txt") arvotut rivit tallennetaan annettuun polkuun tiedostoon
- lisää sopiva virhekäsittely siltä varalta että käyttäjä antaa "vahingossa" epäkelpoja tiedostonimiä etc

#3 / Viikko 4 Aspirine metering system

Goal: learn to build simple Windows UI and  some basic algorhitms e.g. select case

Task: Create a Windows application, where a nurse can calculate number of aspirine medicin for a patient. A nurse gives the birth day of a patient and the application counts the age of a patient, gives  anotice and how many pillers a patient can take. Scale is following:
- age is under one year --> notice: baby dosage: not allowed, contact to a doctor
- age from 1 to 15 --> notice: child dosage: 1 tablet
- age from 15 to 64 --> notice: adult dosage: 2 tablets
- age over 64 --> notice: longtimer dosage: one portion of Hota-pulver

Add also checking that given birth year is valid. Check that it is numerical and it has four digit. And cannot be bigger than current year, and if it is less than 1900 ask confirmation from end user.


 

#4 / Viikko 4

Matikkanero

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!

# 5 / Viikko 5

WinLotto

Oppimistavoite: business-luokan luonti ja käyttö Windows-sovelluksessa

Luo Lotto-niminen luokka allaolevan kuvan määrittelyn mukaisesti. Tyyppi voi olla Suomi tai VikingLotto. "Suomi" on alkuperäinen lotto, jossa arvotaan 7 numero 39:sta, Viking Lotossa arvotaan 6 numero 48:sta.

Testaa huolellisesti toteuttamasi luokka, että se varmasti toimii oikein. Käännä sen jälkeen luokkasi DLL:ksi jota käytät. Tee  kaksi käyttöliittymää, joilla voi käyttää Lotto-luokka. Tee sovelluksiin viittaus (reference) luomaasi DLL:ään:

# 6 / Viikko 6

Oudot oliot SM-liigassa

Oppimistavoite: luokkien luonti ja käyttö, hankkia rutiinia C# olio-ohjelmoinnista, ArrayList

Tehtävä: Tee toiminnallisuus oheisen kuvan mukaiselle ohjelmalle.  Tee ensimmäiseksi luokka Pelaaja, jolla on ominaisuudet Etunimi, Sukunimi, Koko nimi (sukunimi + etunimi siis esim: "Helminen Raimo"), Seura, Siirtohinta. Tee luokalle tarvittavat metodit.
Ohjelmalla on seuraavat toiminnot:
- käynnistyksen yhteydessä Seura -combobox täytetään 14 SM-Liigan seuralla
- Tee pelaaja: tarkistetaan että kaikissa kentissä on arvo ja tarkistetaan ettei saman nimistä pelaaja ole jo Pelaajat -listalla ja luodaan olio luokasta Pelaaja ja kirjoitetaan Pelaajat -listalle pelaajan kokonimi (sukunimi + etunimi) ja seura
- jos pelaajan nimeä napsautetaan listboxissa niin pelaajan kaikki tiedot kirjoitetaan tekstikenttiin tietojen muokkausta varten
- Talleta pelaaja: ei luoda uutta oliota vaan muutetaan olemassa olevan olion tietoja ja kirjoitetaan tiedot listboxiin
- Poista pelaaja: poistetaan listasta valittu pelaaja
- Kirjoita tiedostoon: kirjoitetaan listassa olevien kaikkien olioitten tiedot käyttäjän Save-dialogissa valitsemaan tiedostoon
- Lopeta: lopettaa ohjelman
- dialogin alareunassa on tilarivi (statuBar) jossa näytetään aina tapahtuneet toiminnot

Extratehtävä: Mihin tallennat pelaajien tiedot siksi ajaksi kun ohjelma ei ole käynnissä? Tee tätä varten tarvittava toiminnallisuus.

#7 / Viikko 7

EventLog demo

Luo sovellus joka kirjoittaa Windowsin tapahtumalokiin käyttäjän antamia lokitietoja: Entrytext ja EntryID. Sovelluksen käynnistyessä kirjoitetaan automaattisesti: ID=100 ja teksti "Sovellus käynnistetty siis esim 7.3.2008 8:00". Sovellusta suljettaessa kirjoitetaan: ID=101 "Sovellus suljettu 7.3.2007 8:25".; missä päivämäärä ja kellonaika reaaliaikaisesti.

#8 / Viikko 10

Pieni Viinikellari

Oppimistavoite: oppia käyttämään DataAdapter ja DataSet&DataTable -olioita

Tehtävänä on laatia oheisen kuvan mukainen Windows-sovellus tiedon hakuun Wines-tietokannasta, hae DataGridView:hen tiedot Wine-taulusta.
Luo toiminnallisuus Get Data ja Save Data -komentopainikkeille, eli käyttäjän on voitava lisätä, poistaa ja muokata viinejä.

#9 / Viikko 11

SM-liigan outojen olioitten tallentaminen

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. Seuraavat tiedot tallennetaan: sukunimi, etunimi, seura, siirtohinta.

Käyttäjä voi valita mihin tiedot tallennetaan:
- näytölle (ei siis varsinaisesti tallenna mihinkään sic)
- tekstitiedostoon tiedot erotetaan toisistaan puolipisteelllä)
- XML-tiedostoon (käytä DataSettiä!)
- tietokantaan (tallenna paikalliseen Access-tietokantaan, tallenna ConnectionString App.Config-tiedostoon)

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}

Olisihan se nyt kiva kun tiedot on jossain tallessa, niin myös lukea ne takaisin sovellukseen, joten tee toiminnallisuus jolla
1) ohjelmaa käynnistäessä ohjelma automaattisesti lukee tiedot käyttäjän viimeksi käyttämästä tallennuspaikasta
2) käyttäjä voi valita tietolähteen (kuten ylläolevassa kuvassa, paitsi ei tietänkään näytöltä)

#10 / Viikko 12

SM-liigan outojen olioitten seikkailut Webissä

Oppimistavoite: opetella ja/tai kerrata kuinka eri tietovarastoissa olevia tietoja voidaan esittää (ml suodatus, ryhmittely) webbi-sivulla. Käytä tietokannan SMLiiga08.mdb taulua Pelaajat.

Tehtävä: Tee websivu, jossa käyttäjä voi:

1) listata kaikki pelaajat aakkosjärjestyksessä

2) listata kaikki valitun joukkueen pelaajat aakkosjärjestyksessä tai tehopisteitten mukaan järjestettynä

3) listata kaikki tietyn pelipaikan pelaajat aakkosjärjestyksessä tai tehopisteitten mukaan järjestettynä

 

 

Back