Facebook
From sex, 1 Week ago, written in Ruby.
Embed
Download Paste or View Raw
Hits: 220
  1. using System.Text;
  2. using System.Windows;
  3. using System.Windows.Controls;
  4. using System.Windows.Data;
  5. using System.Windows.Documents;
  6. using System.Windows.Input;
  7. using System.Windows.Media;
  8. using System.Windows.Media.Converters;
  9. using System.Windows.Media.Imaging;
  10. using System.Windows.Navigation;
  11. using System.Windows.Shapes;
  12.  
  13. namespace kalkulator
  14. {
  15.     /// <summary>
  16.     /// Interaction logic for MainWindow.xaml
  17.     /// </summary>
  18.    
  19.     public enum SelecetedOperator
  20.     {
  21.         Addition,
  22.         Sustraciton,
  23.         Multipliaction,
  24.         Division
  25.     }
  26.  
  27.     public partial class MainWindow : Window
  28.     {
  29.         double lastNumber, result;
  30.         SelecetedOperator selecetedOperator;
  31.  
  32.         public MainWindow()
  33.         {
  34.             InitializeComponent();
  35.  
  36.             acButton.Click += AcButton_Click;
  37.             negativeButton.Click += NegativeButton_Click;
  38.             percentButton.Click += PercentButton_Click;
  39.             equalButton.Click += EqualButton_Click;
  40.         }
  41.  
  42.         private void EqualButton_Click(object sender, RoutedEventArgs e)
  43.         {
  44.             double newNumber;
  45.             if(double.TryParse(resultLabel.Content.ToString(), out newNumber))
  46.             {
  47.                 switch(selecetedOperator)
  48.                 {
  49.                     case SelecetedOperator.Addition:
  50.                         {
  51.                             result = MyMath.Add(lastNumber, newNumber);
  52.                             break;
  53.                         }
  54.                     case SelecetedOperator.Sustraciton:
  55.                         {
  56.                             result = MyMath.Subtract(lastNumber, newNumber);
  57.                             break;
  58.                         }
  59.                     case SelecetedOperator.Multipliaction:
  60.                         {
  61.                             result = MyMath.Multiply(lastNumber, newNumber);
  62.                             break;
  63.                         }
  64.                     case SelecetedOperator.Division:
  65.                         {
  66.                             result = MyMath.Divide(lastNumber, newNumber);
  67.                             break;
  68.                         }
  69.                 }
  70.                 resultLabel.Content = result.ToString();
  71.             }
  72.         }
  73.  
  74.         private void PercentButton_Click(object sender, RoutedEventArgs e)
  75.         {
  76.             double tempNumber;
  77.  
  78.             if(double.TryParse(resultLabel.Content.ToString(), out tempNumber))
  79.             {
  80.                 tempNumber = (tempNumber / 100);
  81.                 if(lastNumber != 0)
  82.                 {
  83.                     tempNumber += lastNumber;
  84.                 }
  85.                 resultLabel.Content = tempNumber.ToString();
  86.             }
  87.         }
  88.  
  89.         private void NegativeButton_Click(object sender, RoutedEventArgs e)
  90.         {
  91.             if(double.TryParse(resultLabel.Content.ToString(), out lastNumber))
  92.             {
  93.                 lastNumber = lastNumber * -1;
  94.                 resultLabel.Content = lastNumber.ToString();
  95.             }
  96.         }
  97.  
  98.         private void AcButton_Click(object sender, RoutedEventArgs e)
  99.         {
  100.             resultLabel.Content = "0";
  101.             result = 0;
  102.             lastNumber = 0;
  103.         }
  104.  
  105.         private void NumberButton_Click(object sender, RoutedEventArgs e)
  106.         {
  107.             int selectedValue = 0;
  108.  
  109.             selectedValue = int.Parse((sender as Button).Content.ToString());
  110.  
  111.             if(resultLabel.Content.ToString()== "0" || resultLabel.Content.ToString() == ".")
  112.             {
  113.                 resultLabel.Content = $"{selectedValue}";
  114.             }
  115.             else
  116.             {
  117.                 resultLabel.Content = $"{resultLabel.Content}{selectedValue}";
  118.             }
  119.         }
  120.  
  121.         private void OperationButton_Click(object sender, RoutedEventArgs e)
  122.         {
  123.             if (double.TryParse(resultLabel.Content.ToString(), out lastNumber))
  124.             {
  125.                 resultLabel.Content = "0";
  126.             }
  127.  
  128.             if (sender == divisionButton)
  129.             {
  130.                 selecetedOperator = SelecetedOperator.Division;
  131.             }
  132.  
  133.             if(sender == plusButton)
  134.             {
  135.                 selecetedOperator = SelecetedOperator.Addition;
  136.             }
  137.  
  138.             if(sender == minusButton)
  139.             {
  140.                 selecetedOperator = SelecetedOperator.Sustraciton;
  141.             }
  142.  
  143.             if(sender == multiplicationButton)
  144.             {
  145.                 selecetedOperator = SelecetedOperator.Multipliaction;
  146.             }
  147.         }
  148.  
  149.         private void pointButton_Click(object sender, RoutedEventArgs e)
  150.         {
  151.             if (resultLabel.Content.ToString().Contains("."))
  152.             {
  153.             }
  154.             else
  155.             {
  156.                 resultLabel.Content = $"{resultLabel.Content}.";
  157.             }
  158.         }
  159.     }
  160. }
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171. <Window x:Class="kalkulator.MainWindow"
  172.          
  173.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  174.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  175.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  176.         xmlns:local="clr-namespace:kalkulator"
  177.         mc:Ignorable="d"
  178.         Title="MainWindow" Height="525" Width="350">
  179.     <Grid Margin="10">
  180.  
  181.         <Grid.ColumnDefinitions>
  182.             <ColumnDefinition Width="*"/>
  183.             <ColumnDefinition Width="*"/>
  184.             <ColumnDefinition Width="*"/>
  185.             <ColumnDefinition Width="*"/>
  186.         </Grid.ColumnDefinitions>
  187.         <Grid.RowDefinitions>
  188.             <RowDefinition Height="2*"/>
  189.             <RowDefinition Height="*"/>
  190.             <RowDefinition Height="*"/>
  191.             <RowDefinition Height="*"/>
  192.             <RowDefinition Height="*"/>
  193.             <RowDefinition Height="*"/>
  194.         </Grid.RowDefinitions>
  195.         <Label x:Name="resultLabel"
  196.                 C
  197.                 Horiz
  198.                VerticalAlignment="Bottom"
  199.                 F Grid.ColumnSpan="4"/>
  200.  
  201.         <Button x:Name="acButton"
  202.                 Margin="5"
  203.                  C
  204.                 Grid.Row="1"/>
  205.  
  206.         <Button x:Name="negativeButton"
  207.         Margin="5"
  208.          C
  209.         Grid.Row="1"
  210.         Grid.Column="1"/>
  211.  
  212.         <Button x:Name="percentButton"
  213.             Margin="5"
  214.              C
  215.             Grid.Row="1"
  216.             Grid.Column="2"/>
  217.  
  218.         <Button x:Name="divisionButton"
  219.             Margin="5"
  220.              C
  221.             Grid.Row="1"
  222.             Grid.Column="3"
  223.             Click="OperationButton_Click"/>
  224.  
  225.         <Button x:Name="sevenButton"
  226.                   C
  227.                  Margin="5"
  228.                  Grid.Row="2"
  229.                  Grid.Column="0"
  230.                  Click="NumberButton_Click"/>
  231.  
  232.         <Button x:Name="eightButton"
  233.                   C
  234.                  Margin="5"
  235.                  Grid.Row="2"
  236.                  Grid.Column="1"
  237.                  Click="NumberButton_Click" />
  238.  
  239.         <Button x:Name="nineButton"
  240.                   C
  241.                  Margin="5"
  242.                  Grid.Row="2"
  243.                  Grid.Column="2"
  244.                  Click="NumberButton_Click"/>
  245.  
  246.         <Button x:Name="multiplicationButton"
  247.                 C
  248.                Margin="5"
  249.                Grid.Row="2"
  250.                Grid.Column="3"
  251.                Click="OperationButton_Click"/>
  252.  
  253.         <Button x:Name="fourButton"
  254.                 C
  255.                Margin="5"
  256.                Grid.Row="3"
  257.                Grid.Column="0"
  258.                 Click="NumberButton_Click"/>
  259.  
  260.         <Button x:Name="fiveButton"
  261.                 C
  262.                Margin="5"
  263.                Grid.Row="3"
  264.                Grid.Column="1"
  265.                Click="NumberButton_Click"/>
  266.  
  267.         <Button x:Name="sixButton"
  268.                   C
  269.                  Margin="5"
  270.                  Grid.Row="3"
  271.                  Grid.Column="2"
  272.                  Click="NumberButton_Click"/>
  273.  
  274.         <Button x:Name="minusButton"
  275.               C
  276.              Margin="5"
  277.              Grid.Row="3"
  278.              Grid.Column="3"
  279.              Click="OperationButton_Click"/>
  280.  
  281.         <Button x:Name="oneButton"
  282.               C
  283.              Margin="5"
  284.              Grid.Row="4"
  285.              Grid.Column="0"
  286.              Click="NumberButton_Click"/>
  287.  
  288.         <Button x:Name="twoButton"
  289.                C
  290.               Margin="5"
  291.               Grid.Row="4"
  292.               Grid.Column="1"
  293.               Click="NumberButton_Click"/>
  294.  
  295.         <Button x:Name="threeButton"
  296.              C
  297.             Margin="5"
  298.             Grid.Row="4"
  299.             Grid.Column="2"
  300.             Click="NumberButton_Click"/>
  301.  
  302.         <Button x:Name="plusButton"
  303.              C
  304.             Margin="5"
  305.             Grid.Row="4"
  306.             Grid.Column="3"
  307.             Click="OperationButton_Click"/>
  308.  
  309.         <Button x:Name="zeroButton"
  310.             C
  311.            Margin="5"
  312.            Grid.Row="5"
  313.            Grid.ColumnSpan="2"
  314.            Click="NumberButton_Click"/>
  315.  
  316.         <Button x:Name="pointButton"
  317.             C
  318.            Margin="5"
  319.            Grid.Row="5"
  320.            Grid.Column="2"
  321.            Click="pointButton_Click"/>
  322.  
  323.         <Button x:Name="equalButton"
  324.             C
  325.            Margin="5"
  326.            Grid.Row="5"
  327.            Grid.Column="3"/>
  328.     </Grid>
  329. </Window>
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340. using System;
  341. using System.Collections.Generic;
  342. using System.Linq;
  343. using System.Text;
  344. using System.Threading.Tasks;
  345. using System.Windows;
  346.  
  347. namespace kalkulator
  348. {
  349.     internal class MyMath
  350.     {
  351.         public static double Add(double a, double b)
  352.         {
  353.             return a + b;
  354.         }
  355.  
  356.         public static double Subtract(double a, double b)
  357.         {
  358.             return a - b;
  359.         }
  360.  
  361.         public static double Multiply(double a, double b)
  362.         {
  363.             return a * b;
  364.         }
  365.  
  366.         public static double Divide(double a, double b)
  367.         {
  368.             if(b == 0)
  369.             {
  370.                 MessageBox.Show("Nie można dzielić przez zero!!!", "Zła Operacja", MessageBoxButton.OK, MessageBoxImage.Error);
  371.                 return 0;
  372.             }
  373.             else
  374.             {
  375.                 return a / b;
  376.             }
  377.         }
  378.     }
  379. }
  380.  
  381.  
  382.