Here is XAML
<Window x:Class="Assignment12.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Assignment12"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Label x:Name="label" Content="Enter the base Amount" HorizontalAlignment="Left" Margin="49,0,0,0" VerticalAlignment="Top" Height="27" Width="194"/>
<TextBox x:Name="txtAmount" HorizontalAlignment="Left" Height="23" Margin="210,0,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="134"/>
<RadioButton x:Name="rdbTenPercent" Content="Ten Percent" HorizontalAlignment="Left" Margin="63,45,0,0" VerticalAlignment="Top"/>
<RadioButton x:Name="rdbFifteenPercent" Content="fifteen Percent" HorizontalAlignment="Left" Margin="63,65,0,0" VerticalAlignment="Top"/>
<RadioButton x:Name="rdbTwentyPercent" Content="Twenty Percent" HorizontalAlignment="Left" Margin="63,85,0,0" VerticalAlignment="Top"/>
<RadioButton x:Name="rdbOther" Content="Other" HorizontalAlignment="Left" Margin="63,105,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="txtOther" HorizontalAlignment="Left" Height="23" Margin="210,103,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
<Button x:Name="btnCalculate" Content="Calculate" HorizontalAlignment="Left" Margin="63,141,0,0" VerticalAlignment="Top" Width="75" Click="btnCalculate_Click"/>
<Label x:Name="lblResult" Content="Label" HorizontalAlignment="Left" Margin="210,126,0,0" VerticalAlignment="Top" Height="97" Width="154"/>
<Button x:Name="btnClear" Content="Clear" HorizontalAlignment="Left" Margin="63,175,0,0" VerticalAlignment="Top" Width="75" Click="btnClear_Click"/>
<Button x:Name="btnExit" Content="Exit" HorizontalAlignment="Left" Margin="63,208,0,0" VerticalAlignment="Top" Width="75" Click="btnExit_Click"/>
</Grid>
</Window>
Here is the Tip Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Assignment12
{
class Tip
{
public double Amount { get; set; }
public double TipPercent { get; set; }
private const double TAX = .092;
public double CalculateTip()
{
return Amount * TipPercent;
}
public double CalculateTax()
{
return Amount * TAX;
}
public double CalculateTotal()
{
return Amount + (Amount * TipPercent)
+ (Amount * TAX);
}
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Amount: " + Amount.ToString("$#,###.00"));
sb.AppendLine("Tip: " + CalculateTip().ToString("$#,###.00"));
sb.AppendLine("Tax: " + CalculateTax().ToString("$#,###.00"));
sb.AppendLine("Total: " + CalculateTotal().ToString("$#,###.00"));
return sb.ToString();
}
}
}
Here is the code behind the Form
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Assignment12
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btnCalculate_Click(object sender, RoutedEventArgs e)
{
Calculate();
}
private void Calculate()
{
Tip t = new Tip();
double amount;
bool goodAmount = double.TryParse(txtAmount.Text, out amount);
if (goodAmount)
{
t.Amount = amount;
}
else
{
MessageBox.Show("Enter a valid Amount");
txtAmount.Clear();
txtAmount.Focus();
return;
}
t.TipPercent = GetTipPercent();
lblResult.Content = t.ToString();
}
private double GetTipPercent()
{
double tipPercent = 0;
if (rdbTenPercent.IsChecked == true)
tipPercent = .1;
if (rdbFifteenPercent.IsChecked == true)
tipPercent = .15;
if (rdbTwentyPercent.IsChecked == true)
tipPercent = .2;
if (rdbOther.IsChecked == true)
{
bool goodPercent = double.TryParse(txtOther.Text, out tipPercent);
if (tipPercent > 1)
tipPercent /= 100;
}
return tipPercent;
}
private void btnClear_Click(object sender, RoutedEventArgs e)
{
Clear();
}
private void Clear()
{
txtAmount.Clear();
txtOther.Clear();
rdbTenPercent.IsChecked = false;
rdbFifteenPercent.IsChecked = false;
rdbTwentyPercent.IsChecked = false;
rdbOther.IsChecked = false;
lblResult.Content = "";
}
private void btnExit_Click(object sender, RoutedEventArgs e)
{
//this.Close();
Application.Current.Shutdown();
}
}
}
No comments:
Post a Comment