PRETOVRNIK ANGLOSAKSONSKIH DOLŽINSKIH MER - GUI

PRETOVRNIK ANGLOSAKSONSKIH DOLŽINSKIH MER - GUI

Avtor: Petra Velikanje

BESEDILO NALOGE

Napiši program, ki omogoča hkratno pretvorbo ned dolžinskimi enotami palec, čevelj, jard.

OPIS PROBLEMA IN IDEJA REŠITVE

Naloga od nas zahteva da napišemo program, ki nam bo omogočal pretvorbo med enotami palec, čevelj in jard.

Najprej poiščemo koliko palcev je en čevelj in nato koliko čavljev je eden jard. Ko to ugotovimo, pa se lahko lotimo pretvarjanja.

  • V primeru, da pretvarjamo z večje enote v manjšo bomo uporabili operacijo množenja.
  • V primeru, da pretvarjamo iz manjše enote v večjo pa bomo uporabili operacijo deljenja.

RAZLAGA ALGORITMA

Najprej poiščemo pretvorbe med enotami palec, čevelj in jard. To damo v tabelo.

private double vnesenoStevilo;
//pretvobe iz ene valute v drugo.
private double[] AngloMere = { 12.000006096, 3.000009144028 };

Nato preverimo ali imamo vsa polja zapolnjena s podatki.

//preverimo ali imamo vse podatke
            if ((vnosStevila.Text != "") && (izberiMero.Text != ""))

V primeru, da imamo vse podatke vstavljene pogledamo ali je vstavljen podatek število, ki ga moram pretvoriti.

//preverimo ali imamo število.
                if (double.TryParse(vnosStevila.Text, out vnesenoStevilo))

Nato pa pretvorimo število v ostali dve enoti. V primeru, da enota ni palec, čevelj ali jard, pa nam pretvornik javi napako.

double enota1, enota2;
                    //V primeru da izberemo mero PALEC izračunamo ČEVELJ in JARD
                    if (izberiMero.Text == "PALEC")
                    {
                        izpisMera1.Text = izberiMero.Text + " => ČEVELJ:";
                        izpisMera2.Text = izberiMero.Text + " => JARD:";
                        enota1 = vnesenoStevilo / AngloMere[0];
                        enota2 = enota1 / AngloMere[1];
                        izpisEnota1.Text = enota1.ToString();
                        izpisEnota2.Text = enota2.ToString();
                    }
                    //V primeru da izberemo mero ČEVELJ izračunamo PALEC in JARD
                    if (izberiMero.Text == "ČEVELJ")
                    {
                        izpisMera1.Text = izberiMero.Text + " => PALEC:";
                        izpisMera2.Text = izberiMero.Text + " => JARD:";
                        enota1 = vnesenoStevilo * AngloMere[0];
                        enota2 = vnesenoStevilo / AngloMere[1];
                        izpisEnota1.Text = enota1.ToString();
                        izpisEnota2.Text = enota2.ToString();
                    }
                    //V primeru da izberemo mero JARD izračunamo ČEVELJ in PALEC
                    if (izberiMero.Text == "JARD")
                    {
                        izpisMera1.Text = izberiMero.Text + " => PALEC:";
                        izpisMera2.Text = izberiMero.Text + " => ČEVELJ:";
                        enota1 = vnesenoStevilo * AngloMere[0];
                        enota2 = enota1 * AngloMere[1];
                        izpisEnota1.Text = enota2.ToString();
                        izpisEnota2.Text = enota1.ToString();
                    }
                    //V vseh ostalih primerih javimo napako
                    if((izberiMero.Text!="JARD")&&(izberiMero.Text!="ČEVELJ")&&(izberiMero.Text!="PALEC"))
                    {
                        NapakaNiMera nova = new NapakaNiMera();
                        if (nova.ShowDialog() == DialogResult.OK)
                        {//zbrišemo napačen vnos
                            izberiMero.Text = "";
                        }
                    }
                }

Če pa nismo vnesli števila v pretvornik pa nam javi napako.

                else
                {//Javimo napako če ne vnesemo števila.
                    NapakaNiStevilo nov = new NapakaNiStevilo();
                    if (nov.ShowDialog() == DialogResult.OK)
                    {//zbrišemo napačen vnos
                        vnosStevila.Text = "";
                    }

V primeru da nimamo vstavljenih vseh poodatkov pa nam pretvornik pove, da nismo vstavili vseh podatkov.

else
            {//Javimo napako, v primeru, da nimamo vnesenih vseh podatkov
                NapakaNiPodatkov nova = new NapakaNiPodatkov();
                nova.ShowDialog();
            }
        }

Ob zagonu pretvornika pa izbrišemo besedila z nekaterih oken.

private void Form1_Load(object sender, EventArgs e)
        {//kjer izpišemo rezultate nastavimo tekst, tako da nič ne piše.
            izpisEnota1.Text = "";
            izpisEnota2.Text = "";
            izpisMera1.Text = "";
            izpisMera2.Text = "";
        }

Dodamo pa še gumb s katerim izbrišemo vnesene podatke. oken.

private void poenostavi_Click(object sender, EventArgs e)
        {
            //vse vrednosti nastavimo na prazno-
            vnosStevila.Text = "";
            izberiMero.Text = "";
            izpisEnota1.Text = "";
            izpisEnota2.Text = "";
            izpisMera1.Text = "";
            izpisMera2.Text = "";
        }

TESTNI PRIMERI

Da bomo pretvornik testirali pa smo izbrali naslednje primere.

  1. Primer, kjer imamo vse podatke
  2. Primer, kjet manjka vnešeno število
  3. Primer, kjer manjka mera
  4. Primer, kjer mera ni palec, čevelj ali jard
  5. Primer, kjer vnešen podatek ni število.

FILMČEK

0%
0%