Advertisement
Guest User

Pizza Time

a guest
Mar 24th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 17.00 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace Smart_Piza
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         //Pizza priser constants
  16.         const double REJER_MED_TUN_ALM_PRIS = 64.0, PEPPERONI_ALM_PRIS = 59.0, FAMILIE_MULTIPLIER = 1.5;
  17.         //Ekstras priser
  18.         const double LOEG = 5.0, REJER = 10.0, TUN = 7.0, PEPPERONI = 8.0, CHAMPIGNON = 11.0, OST = 6.0;
  19.         //KCal i pizza
  20.         const double REJER_MED_TUN_KCAL = 231.0, PEPPERONI_KCAL = 253.0;
  21.         //Andet
  22.         const double LEVERINGSPRIS = 30.0, LEVERINGSTID = 30.0; const int BESTILLINGSNUMMER = 000;
  23.  
  24.        
  25.         public Form1()
  26.         {
  27.             InitializeComponent();
  28.         }
  29.  
  30.         private void bestilButton_Click(object sender, EventArgs e)
  31.         {
  32.             string kvittering = "Du har bestilt: \n";
  33.             if(pepperoniAlmindeligCheckBox.Checked && Convert.ToInt32(pepperoniAlmindeligAntalInput.Text) > 0)
  34.             {
  35.                 kvittering += "Alm pepperoni: " + pepperoniAlmindeligAntalInput.Text + " à 59,0 kr stk.\n";
  36.                 if(ekstraPepperoniCheckBox.Checked || ekstraChampignonCheckBox.Checked || ekstraOstCheckBox.Checked)
  37.                 {
  38.                     kvittering += "Ektras: \n";
  39.                     if (ekstraPepperoniCheckBox.Checked)
  40.                         kvittering += "\tPepperoni: 8,0 kr.\n";
  41.                     if (ekstraChampignonCheckBox.Checked)
  42.                         kvittering += "\tChampigning: 11,0 kr. \n";
  43.                     if (ekstraOstCheckBox.Checked)
  44.                         kvittering += "\tOst: 6,0 kr. \n";
  45.                 }
  46.             }
  47.             if(pepperoniFamilieCheckBox.Checked && Convert.ToInt32(pepperoniFamilieAntalInput.Text) > 0)
  48.             {
  49.                 kvittering += "Fam pepperoni: " + pepperoniFamilieAntalInput.Text + " à 88,5 kr stk.\n";
  50.             }
  51.            
  52.             MessageBox.Show(kvittering);
  53.         }
  54.  
  55.  
  56.  
  57.         //Metode der eksekveres når man trykker på 'Beregn' knap i GUI, indeholder metodekald til BeregnKalorier & BeregnPris.
  58.         private void beregnButton_Click(object sender, EventArgs e)
  59.         {
  60.  
  61.             if(!leveringButton.Checked && !afhentningButton.Checked)
  62.             {
  63.                 MessageBox.Show("Du skal vælge om pizza(erne) skal afhentes eller leveres!");
  64.             }
  65.  
  66.             /*Da en int divideret op i en double giver infinity istedet for en DividedByZero exception, bliver jeg nødt til at checke for at brugeren ikke inputter 0 inden metoden bliver kaldt.
  67.               En try catch for en FormatException sørger for at brugeren ikke inputter bogstaver eller specialtegn.*/
  68.             try
  69.             {
  70.                 if (((rejerAlmindeligCheckBox.Checked || rejerFamilieCheckBox.Checked) && (Convert.ToInt32(rejerSkiveInput.Text) == 0))
  71.                     || ((pepperoniAlmindeligCheckBox.Checked || pepperoniFamilieCheckBox.Checked) && (Convert.ToInt32(pepperoniSkiveInput.Text) == 0)))
  72.                 {
  73.                     MessageBox.Show("Du må ikke dele pizzaen op i 0 skiver!");
  74.                     if (((rejerAlmindeligCheckBox.Checked || rejerFamilieCheckBox.Checked) && (Convert.ToInt32(rejerSkiveInput.Text) == 0)))
  75.                     {
  76.                         rejerSkiveInput.BackColor = System.Drawing.Color.Red;
  77.                     }
  78.                     if (((pepperoniAlmindeligCheckBox.Checked || pepperoniFamilieCheckBox.Checked) && (Convert.ToInt32(pepperoniSkiveInput.Text) == 0)))
  79.                     {
  80.                         pepperoniSkiveInput.BackColor = System.Drawing.Color.Red;
  81.                     }
  82.                 }
  83.                 else
  84.                 {
  85.                     BeregnKalorier(); //Kalder metoden til at beregne kalorierne per skive.
  86.  
  87.                     if ((rejerAlmindeligCheckBox.Checked || rejerFamilieCheckBox.Checked) && (Convert.ToInt32(rejerSkiveInput.Text) != 0))
  88.                     {
  89.                         rejerSkiveInput.BackColor = System.Drawing.Color.White;
  90.                     }
  91.                     if ((pepperoniAlmindeligCheckBox.Checked || pepperoniFamilieCheckBox.Checked) && (Convert.ToInt32(pepperoniSkiveInput.Text) != 0))
  92.                     {
  93.                         pepperoniSkiveInput.BackColor = System.Drawing.Color.White;
  94.                     }
  95.                 }
  96.                 totalOutput.Text = BeregnPris();
  97.                 faerdigOutput.Text = beregnLeveringstid();
  98.             }
  99.             catch(FormatException)
  100.             {
  101.                 MessageBox.Show("Felter må ikke være tomme,\nog der må kun indtastes hele tal.");
  102.             }
  103.            
  104.  
  105.            
  106.            
  107.  
  108.         }
  109.  
  110.  
  111.         //Beregn hvor lang tid før pizza er færdig.
  112.         private string beregnLeveringstid()
  113.         {
  114.             double minutter; int antalPizza = 0;
  115.            
  116.                 if (rejerAlmindeligCheckBox.Checked)
  117.                     antalPizza += Convert.ToInt32(rejerAlmindeligAntalInput.Text);
  118.                 if (rejerFamilieCheckBox.Checked)
  119.                     antalPizza += Convert.ToInt32(rejerFamilieAntalInput.Text);
  120.                 if (pepperoniAlmindeligCheckBox.Checked)
  121.                     antalPizza += Convert.ToInt32(pepperoniAlmindeligAntalInput.Text);
  122.                 if (pepperoniFamilieCheckBox.Checked)
  123.                     antalPizza += Convert.ToInt32(pepperoniFamilieAntalInput.Text);
  124.  
  125.                 minutter = (double)antalPizza * 4;
  126.                 if (leveringButton.Checked)
  127.                     {
  128.                        minutter += LEVERINGSTID;
  129.                     }
  130.  
  131.                 //faerdigOutput.Text = DateTime.Now.AddMinutes(minutter).ToString("HH:mm:ss");
  132.                 return DateTime.Now.AddMinutes(minutter).ToString("HH:mm:ss");
  133.  
  134.         }
  135.  
  136.         //Metode til at beregne antallet af kalorier per stykke pizza.
  137.         private void BeregnKalorier()
  138.         {
  139.  
  140.             if(rejerAlmindeligCheckBox.Checked || rejerFamilieCheckBox.Checked)
  141.             {
  142.  
  143.                 double almRejerKCal, famRejerKCal, totalRejerKCal = 0, rejerKCalPerSkive;
  144.                 int rejerSkiver;
  145.  
  146.                     rejerSkiver = Convert.ToInt32(rejerSkiveInput.Text);
  147.                     if (rejerAlmindeligCheckBox.Checked)
  148.                     {
  149.                         almRejerKCal = (Convert.ToDouble(rejerAlmindeligAntalInput.Text) * REJER_MED_TUN_KCAL);
  150.                         totalRejerKCal += almRejerKCal;
  151.                     }
  152.                     if (rejerFamilieCheckBox.Checked)
  153.                     {
  154.                         famRejerKCal = (Convert.ToDouble(rejerFamilieAntalInput.Text) * REJER_MED_TUN_KCAL * FAMILIE_MULTIPLIER);
  155.                         totalRejerKCal += famRejerKCal;
  156.                     }
  157.  
  158.                     rejerKCalPerSkive = totalRejerKCal / rejerSkiver;
  159.                     rejerKalorieOutput.Text = Convert.ToString(rejerKCalPerSkive);
  160.  
  161.             }
  162.  
  163.             if (pepperoniAlmindeligCheckBox.Checked || pepperoniFamilieCheckBox.Checked)
  164.             {
  165.                 double almPepperoniKCal, famPepperoniKCal, totalPepperoniKCal = 0, pepperoniKCalPerSkive;
  166.                 int pepperoniSkiver;
  167.  
  168.                     pepperoniSkiver = Convert.ToInt32(pepperoniSkiveInput.Text);
  169.                     if (pepperoniAlmindeligCheckBox.Checked)
  170.                     {
  171.                         almPepperoniKCal = (Convert.ToDouble(pepperoniAlmindeligAntalInput.Text) * PEPPERONI_KCAL);
  172.                         totalPepperoniKCal += almPepperoniKCal;
  173.                     }
  174.                     if (pepperoniFamilieCheckBox.Checked)
  175.                     {
  176.                         famPepperoniKCal = (Convert.ToDouble(pepperoniFamilieAntalInput.Text) * PEPPERONI_KCAL * FAMILIE_MULTIPLIER);
  177.                         totalPepperoniKCal += famPepperoniKCal;
  178.                     }
  179.  
  180.                     pepperoniKCalPerSkive = totalPepperoniKCal / pepperoniSkiver;
  181.                     pepperoniKalorieOutput.Text = Convert.ToString(pepperoniKCalPerSkive);
  182.             }
  183.  
  184.  
  185.         }
  186.  
  187.  
  188.         //Metode til at beregne prisen på pizzaerne.
  189.         private string BeregnPris()
  190.         {
  191.             double total = 0;
  192.             if(rejerAlmindeligCheckBox.Checked || rejerFamilieCheckBox.Checked)
  193.             {
  194.                 double rejerSubtotal = 0;
  195.                 if (rejerAlmindeligCheckBox.Checked && Convert.ToInt32(rejerAlmindeligAntalInput.Text) > 0)
  196.                 {
  197.                     double rejerAlmPizzaAntal = Convert.ToDouble(rejerAlmindeligAntalInput.Text);
  198.                     rejerSubtotal += rejerAlmPizzaAntal * REJER_MED_TUN_ALM_PRIS;
  199.                     if (ekstraLoegCheckBox.Checked)
  200.                     {
  201.                         rejerSubtotal += LOEG * rejerAlmPizzaAntal;
  202.                     }
  203.                     if (ekstraRejerCheckBox.Checked)
  204.                     {
  205.                         rejerSubtotal += REJER * rejerAlmPizzaAntal;
  206.                     }
  207.                     if (ekstraTunCheckBox.Checked)
  208.                     {
  209.                         rejerSubtotal += TUN * rejerAlmPizzaAntal;
  210.                     }
  211.                 }
  212.                 if (rejerFamilieCheckBox.Checked && Convert.ToInt32(rejerFamilieAntalInput.Text)>0)
  213.                 {
  214.                     double rejerFamPizzaAntal = Convert.ToDouble(rejerFamilieAntalInput.Text);
  215.                     rejerSubtotal += rejerFamPizzaAntal * REJER_MED_TUN_ALM_PRIS * FAMILIE_MULTIPLIER;
  216.                     if (ekstraLoegCheckBox.Checked)
  217.                     {
  218.                         rejerSubtotal += LOEG * rejerFamPizzaAntal * FAMILIE_MULTIPLIER;
  219.                     }
  220.                     if (ekstraRejerCheckBox.Checked)
  221.                     {
  222.                         rejerSubtotal += REJER * rejerFamPizzaAntal * FAMILIE_MULTIPLIER;
  223.                     }
  224.                     if (ekstraTunCheckBox.Checked)
  225.                     {
  226.                         rejerSubtotal += TUN * rejerFamPizzaAntal * FAMILIE_MULTIPLIER;
  227.                     }
  228.                 }
  229.                 total += rejerSubtotal;
  230.                 Convert.ToDecimal(rejerSubtotal);                
  231.                 rejerSubtotalOutput.Text = String.Format("{0:C}", rejerSubtotal);
  232.             }
  233.  
  234.             if(pepperoniAlmindeligCheckBox.Checked || pepperoniFamilieCheckBox.Checked)
  235.             {
  236.                 double pepperoniSubtotal = 0;
  237.                 if(pepperoniAlmindeligCheckBox.Checked && Convert.ToInt32(pepperoniAlmindeligAntalInput.Text) > 0)
  238.                 {
  239.                     double pepperoniAlmPizzaAntal = Convert.ToDouble(pepperoniAlmindeligAntalInput.Text);
  240.                     pepperoniSubtotal += pepperoniAlmPizzaAntal * PEPPERONI_ALM_PRIS;
  241.  
  242.                     if (ekstraPepperoniCheckBox.Checked)
  243.                     {
  244.                         pepperoniSubtotal += PEPPERONI * pepperoniAlmPizzaAntal;
  245.                     }
  246.                     if (ekstraChampignonCheckBox.Checked)
  247.                     {
  248.                         pepperoniSubtotal += CHAMPIGNON * pepperoniAlmPizzaAntal;
  249.                     }
  250.                     if (ekstraOstCheckBox.Checked)
  251.                     {
  252.                         pepperoniSubtotal += OST * pepperoniAlmPizzaAntal;
  253.                     }
  254.                 }
  255.                 if(pepperoniFamilieCheckBox.Checked && Convert.ToInt32(pepperoniFamilieAntalInput.Text) > 0)
  256.                 {
  257.                     double pepperoniFamPizzaAntal = Convert.ToDouble(pepperoniFamilieAntalInput.Text);
  258.                     pepperoniSubtotal += pepperoniFamPizzaAntal * PEPPERONI_ALM_PRIS * FAMILIE_MULTIPLIER;
  259.                     if (ekstraPepperoniCheckBox.Checked)
  260.                     {
  261.                         pepperoniSubtotal += PEPPERONI * FAMILIE_MULTIPLIER * pepperoniFamPizzaAntal;
  262.                     }
  263.                     if (ekstraChampignonCheckBox.Checked)
  264.                     {
  265.                         pepperoniSubtotal += CHAMPIGNON * FAMILIE_MULTIPLIER * pepperoniFamPizzaAntal;
  266.                     }
  267.                     if (ekstraOstCheckBox.Checked)
  268.                     {
  269.                         pepperoniSubtotal += OST * FAMILIE_MULTIPLIER * pepperoniFamPizzaAntal;
  270.                     }
  271.                 }
  272.                 total += pepperoniSubtotal;
  273.                 Convert.ToDecimal(pepperoniSubtotal);
  274.                 pepperoniSubtotalOutput.Text = String.Format("{0:C}", pepperoniSubtotal);
  275.             }
  276.             if(leveringButton.Checked)
  277.             {
  278.                 total += LEVERINGSPRIS;
  279.             }
  280.             Convert.ToDecimal(total);
  281.             //totalOutput.Text = String.Format("{0:C}", total);
  282.             return String.Format("{0:C}", total);
  283.         }
  284.  
  285.  
  286.         //Kontrol af hvilke check- og tekstboxe der er enabled.
  287.         private void leveringButton_CheckedChanged(object sender, EventArgs e)
  288.         {
  289.             if(leveringButton.Checked)
  290.             {
  291.                 faerdigLabel.Text = "Forventet leveret:";
  292.             }
  293.             else
  294.             {
  295.                 faerdigLabel.Text = "Forventet færdig:";
  296.             }
  297.         }
  298.  
  299.         private void rejerAlmindeligCheckBox_CheckedChanged(object sender, EventArgs e)
  300.         {
  301.  
  302.             //Aktiver/deaktiver tekstbox hvis checkbox er checked/unchecked
  303.             if (rejerAlmindeligCheckBox.Checked)
  304.             {
  305.                 rejerAlmindeligAntalInput.Enabled = true;
  306.             }
  307.             else
  308.             {
  309.                 rejerAlmindeligAntalInput.Enabled = false;
  310.             }
  311.  
  312.             //Aktiver checkboxes for ekstra toppings hvis mindst en af almindelig og familie pizza er valgt.
  313.             if (rejerAlmindeligCheckBox.Checked || rejerFamilieCheckBox.Checked)
  314.             {
  315.                 ekstraLoegCheckBox.Enabled = true;
  316.                 ekstraRejerCheckBox.Enabled = true;
  317.                 ekstraTunCheckBox.Enabled = true;
  318.                 rejerSkiveInput.Enabled = true;
  319.             }
  320.             else
  321.             {
  322.                 ekstraLoegCheckBox.Enabled = false;
  323.                 ekstraRejerCheckBox.Enabled = false;
  324.                 ekstraTunCheckBox.Enabled = false;
  325.                 rejerSkiveInput.Enabled = false;
  326.             }
  327.         }
  328.  
  329.         private void rejerFamilieCheckBox_CheckedChanged(object sender, EventArgs e)
  330.         {
  331.             //Aktiver/deaktiver tekstbox hvis checkbox er checked/unchecked
  332.             if (rejerFamilieCheckBox.Checked)
  333.             {
  334.                 rejerFamilieAntalInput.Enabled = true;
  335.             }
  336.             else
  337.             {
  338.                 rejerFamilieAntalInput.Enabled = false;
  339.             }
  340.  
  341.             //Aktiver checkboxes for ekstra toppings hvis mindst en af almindelig og familie pizza er valgt.
  342.             if (rejerAlmindeligCheckBox.Checked || rejerFamilieCheckBox.Checked)
  343.             {
  344.                 rejerEkstraBox.Enabled = true;
  345.                 rejerKalorieBox.Enabled = true;
  346.             }
  347.             else
  348.             {
  349.                 rejerEkstraBox.Enabled = false;
  350.                 rejerKalorieBox.Enabled = false;
  351.             }
  352.  
  353.         }
  354.  
  355.         private void pepperoniAlmindeligCheckBox_CheckedChanged(object sender, EventArgs e)
  356.         {
  357.  
  358.             //Aktiver/deaktiver tekstbox hvis checkbox er checked/unchecked
  359.             if (pepperoniAlmindeligCheckBox.Checked)
  360.             {
  361.                 pepperoniAlmindeligAntalInput.Enabled = true;
  362.             }
  363.             else
  364.             {
  365.                 pepperoniAlmindeligAntalInput.Enabled = false;
  366.             }
  367.  
  368.  
  369.             //Aktiver groupBoxes for ekstra toppings hvis mindst en af almindelig og familie pizza er valgt.
  370.             if (pepperoniAlmindeligCheckBox.Checked || pepperoniFamilieCheckBox.Checked)
  371.             {
  372.                 pepperoniEkstraBox.Enabled = true;
  373.                 pepperoniKalorieBox.Enabled = true;
  374.             }
  375.             else
  376.             {
  377.                 pepperoniEkstraBox.Enabled = false;
  378.                 pepperoniKalorieBox.Enabled = false;
  379.             }
  380.         }
  381.  
  382.         private void pepperoniFamilieCheckBox_CheckedChanged(object sender, EventArgs e)
  383.         {
  384.             //Aktiver/deaktiver tekstbox hvis checkbox er checked/unchecked
  385.             if (pepperoniFamilieCheckBox.Checked)
  386.             {
  387.                 pepperoniFamilieAntalInput.Enabled = true;
  388.             }
  389.             else
  390.             {
  391.                 pepperoniFamilieAntalInput.Enabled = false;
  392.             }
  393.  
  394.             //Aktiver groupBoxes for ekstra toppings & antal skiver, hvis mindst en af almindelig og familie pizza er valgt.
  395.             if (pepperoniAlmindeligCheckBox.Checked || pepperoniFamilieCheckBox.Checked)
  396.             {
  397.                 pepperoniEkstraBox.Enabled = true;
  398.                 pepperoniKalorieBox.Enabled = true;
  399.             }
  400.             else
  401.             {
  402.                 pepperoniEkstraBox.Enabled = false;
  403.                 pepperoniKalorieBox.Enabled = false;
  404.             }
  405.         }
  406.     }
  407. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement