Detyra 2.1

mail@pastecode.io avatar
unknown
plain_text
2 years ago
7.5 kB
3
Indexable
Never
using System;
using System.Windows.Forms;

namespace Detyra2
{
    public partial class Form1 : Form
    {
        //deklarojme nje variable te tipit array qe do te permbaj vlera decimale per pagatBruto me gjatesi maksimale te elementeve7
        decimal[] pagatBruto = new decimal[7];

        //deklarojme nje variable te tipit array qe do te permbaj vlera decimale per pagatNeto me gjatesi maksimale te elementeve 7
        decimal[] pagatNeto = new decimal[7];

        //deklarojme nje variable te tipit int qe do te permbaj numrin e pagave te shtuara
        int index = 0;

        public Form1()
        {
            InitializeComponent();
        }

        private void btnShto_Click(object sender, EventArgs e)
        {
            //shikojme nese numri i pagave te shtuara eshte me i vogel se 7
            if (index < 7)
            {
            //lexojme vleren e textboxit ku dhe e parsojme ne int si dhe e ruajme te variabla page te tipit int
                int paga = Int32.Parse(txbPaga.Text);

                //vleren e pages se shtuar e shtojme ne array te pagatBruto
                pagatBruto[index] = paga;

                //nga paga e shtuar kalkulojme pagen neto duke thirrur metoden PagaNeto, dhe e ruajme ne array te pagatNeto
                pagatNeto[index] = PagaNeto(paga);

                //fshijme vleren e textboxit te shtuar nga shfrytezuesi
                txbPaga.Text = "";

                //shikojme nese numri i pagave te shtuara eshte me i madh ose baraz me 1
                if (index >= 1)
                {

                    //deklarojme nje variable te tipit string
                    string vlerat = "";

                    //deklarojme variabel per te ruajtur totalin e pagave bruto me vlere fillestare 0, te tipit decimal per te qene me preciz
                    decimal totaliBruto = 0;

                    //deklarojme nje variabel per te ruajtur numrin e pagave te shtuara
                    decimal totalPaga = 0;

                    //lexojme gjatesin e pagatBruto (pasi eshte si array) dhe iterojme ne te
                    for (int i = 0; i < pagatBruto.Length; i++)
                    {
                        // shikojme nese pagaBruto me index specifik eshte me e madhe se 0
                        if (pagatBruto[i] > 0)
                        {
                            //mbushim variablen vlerat duke e formatuar ne forme te duhur per te shfaqur si cmim
                            vlerat += string.Format("{0:N2} eur\n", pagatBruto[i]);

                            //rritet vlera e totaliBruto duke u mbledhur me pagen aktuale
                            totaliBruto += pagatBruto[i];

                            //rritet numri i iterimeve qe kane vlere me te madhe se 0
                            totalPaga++;
                        }
                    }

                    //e ndryshojme tekstin e labeles per te i shfaqur vlerat e pagave bruto
                    lblLista.Text = vlerat;

                    //deklarojme nje variable te tipit string per te i rujtur pagat neto
                    string vleratNeto = "";

                    //deklarojme nje variable te tipit decimal per te i ruajtur totalin e pagave neto
                    decimal totaliNeto = 0;

                     //lexojme gjatesin e pagatNeto (pasi eshte si array) dhe iterojme ne te
                    for (int i = 0; i < pagatNeto.Length; i++)
                    {
                         // shikojme nese pagatNeto me index specifik eshte me e madhe se 0
                        if (pagatNeto[i] > 0)
                        {
                             //mbushim variablen vleratNeto duke e formatuar ne forme te duhur per te shfaqur si cmim
                            vleratNeto += string.Format("{0:N2} eur\n", pagatNeto[i]);

                             //rritet vlera e totaliNeto duke u mbledhur me pagen aktual
                            totaliNeto += pagatNeto[i];
                        }
                    }
                     //e ndryshojme tekstin e labeles per te i shfaqur vlerat e pagave neto
                    lblListaNeto.Text = vleratNeto;

                    //e ndryshojme tekstin e labeles per te shfaqur totalin e pagave bruto dhe e formatojme ne formen e duhur si cmim
                    lblTB.Text = string.Format("{0:N2} eur", totaliBruto);
                    
                    //e ndryshojme tekstin e labeles per te shfaqur totalin e pagave neto dhe e formatojme ne formen e duhur si cmim
                    lblTN.Text = string.Format("{0:N2} eur", totaliNeto);
                    
                    //e ndryshojme tekstin e labeles per te shfaqur mesataren e pagave bruto  dhe e formatojme ne formen e duhur si cmim
                    lblMB.Text = string.Format("{0:N2} eur", totaliBruto / totalPaga);
                    
                    //e ndryshojme tekstin e labeles per te shfaqur mesataren e pagave neto dhe e formatojme ne formen e duhur si cmim
                    lblMN.Text = string.Format("{0:N2} eur", totaliNeto / totalPaga);
                }

                //rrisim numrin e index qe paraqet numrin e vlerave te shtuara nga shfrytezuesi
                index++;

            }

            //shikojme nese numri i pagave te shtuara eshte me i madh se 7
            else {
            //shfaqim nje messagebox qe tregon se eshte arritur numri maksimal i pagave te shtuara
                MessageBox.Show("Eshte arritur numri maksimal i pagave");
            }
        }

        //deklarojme metoden per te llogaritur pagen neto nga paga bruto
        decimal PagaNeto(int paga)
        {
            //shikojme nese paga bruto eshte ndermjet 339 dhe 567
            if (paga > 339 && paga <= 567)
            {
                //vlera e 5% ruhet si decimal
                decimal perq = (decimal)5 / 100;

                //bejme llogaritjen e pages neto nga paga bruto
                return paga - paga * perq;
            }
             //shikojme nese paga bruto eshte ndermjet 567 dhe 1199
            else if (paga > 567 && paga <= 1199)
            {
                //vlera e 11% ruhet si decimal
                decimal perq = (decimal)11 / 100;

                 //bejme llogaritjen e pages neto nga paga bruto
                return paga - paga * perq;
            }
            //shikojme nese paga neto eshte me e madhe se 1199
            else if (paga > 1199)
            {
                 //vlera e 13.8% ruhet si decimal
                decimal perq = (decimal)13.8 / 100;
                //llogaritet paga pas perqindjes se pare
                decimal vlera13 = paga - paga * perq;

                 //vlera e 7% ruhet si decimal
                perq = (decimal) 7 / 100;
                //llogaritet paga nga vlera paraprake, vlera13, dhe ruhet ne variable te tipit decimal
                decimal vlera7 = vlera13 - vlera13 * perq;

                 //vlera e 4% ruhet si decimal
                perq = (decimal)4 / 100;
                //llogaritet paga nga vlera paraprake, vlera7, dhe ruhet ne variable te tipit decimal
                decimal vlera4 = vlera7 -vlera7 * perq;

                //kthehet vlera e llogaritur
                return vlera4;
            }

            //nese paga eshte me e vogel se 339 atehere paga neto dhe bruto eshte e njejte
            else {
                //kthehet paga bruto
                return paga
            };
        }
    }
}