Tehdään WPF-sovellus - 8 - Viimeistely

- 2 mins

Ongelma: Laskettu tulos ei näytä oikealta

Tarkastelemalla tulosta tarkemmin voimme havaita, että vain pilkku on väärässä paikassa. Saimme tulokseksi 0,0020902, kun oikea tulos olisi ollut 20,9. Katsotaanpa kaavaa vielä uudelleen:

Painoindeksi = paino(kg) / pituus(m) / pituus(m)

A-haa! Pituus on annettu kaavassa metreinä, joten periaatteessa mitään ongelmaa ei ollut. Kyse oli vain käyttäjän tietämättömyydestä, että arvot pitäisi antaa metreinä senttimetrien sijaan. Ihmisen pituudesta puhuttaessa käytetään useammin senttimetrejä kuin metrejä, joten muunnetaan sovellus käyttämään tätä yleisempää yksikköä.

Lisätään ensin tekstilaatikoihin yksiköt esille, jotta jatkossa ei jäisi epäselväksi, että missä muodossa arvot pitäisi syöttää.

-<TextBlock Text="Weight" />
+<TextBlock Text="Weight (kg)" />
-<TextBlock Text="Height" />
+<TextBlock Text="Height (cm)" />
MainWindow.xaml

Seuraavaksi meidän tulee korjata yksikkömuunnos taustakoodin puolelta muuntamalla metrit senttimetreiksi. Tehdään muunnos juuri ennen indeksin laskentaa:

+    height = height / 100;
    var bodyMassIndex = weight / Math.Pow(height, 2);
MainWindow.xaml.cs

Nyt ohjelma antaa tulokseksi lähes hyväksyttävän lukeman 2,0902385.... Meidän ei kuitenkaan tarvitse tietää lukemaa aivan näin tarkasti, joten tiputetaan vielä muutama desimaali pois:

            var bodyMassIndex = weight / Math.Pow(height, 2);
-            var resultMessage = $"BMI: {bodyMassIndex}";
+            var resultMessage = $"BMI: {bodyMassIndex:N1}";
            MessageBox.Show(resultMessage);

Valmis sovellus

Valmis sovellus

Valmista tuli!

Voit vihdoinkin taputtaa itseäsi olalle ja todeta: “Hieno homma, onnistuin!”

Sovellus tekee nyt kaiken mitä olimme alussa määritelleet, eli:

Olet nyt oppinut minkälaista työpöytäsovelluksen kehittäminen WPF:llä voi olla yksinkertaisimmillaan.

Jatkokehitys

Tekemisen ei tarvitse päättyä vielä tähän, sillä nyt meillä on käsissämme vasta juuri ja juuri toimiva sovellus.

Tässäpä pari kysymystä, joiden pohjalta voimme lähteä suunnittelemaan jatkokehitystä:

Kysymyksiä on suhteellisen paljon, vaikka kyse onkin vain yhden toiminnallisuuden sovelluksesta. Huhhuh! Tässäpä riittää työmaata vielä seuraavillekin kerroille.

Anssi Kettunen

Anssi Kettunen

Ohjelmistokehittäjä suorittamassa tehtävää 🦊

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora