DinnerParty.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Dinnerp
{
class DinnerParty
{
const int CostOfFoodPerPerson = 25;
private int NumberOfPeople;//人數
public decimal CostOfBeveraagesPerPerson;//酒水的花費
public decimal CostOfDecorations = 0;//裝修的花費
public void SetPartyOptions(int people,bool fancy)
{
NumberOfPeople = people;
CalculateCostOfDecorations(fancy);
}
public int GetNumberOfPeople()
{
return NumberOfPeople;
}
/// <summary>
/// 計算酒水價格
/// </summary>
/// <param name="healthyOption"></param>
public void SetHealthyOption(bool healthyOption)
{
if (healthyOption)
{
CostOfBeveraagesPerPerson = 5.00m;
}
else
{
CostOfBeveraagesPerPerson = 20.00m;
}
}
/// <summary>
/// 計算裝修花費
/// </summary>
/// <param name="fancy"></param>
public void CalculateCostOfDecorations(bool fancy)
{
if (fancy)
{
CostOfDecorations = (this.GetNumberOfPeople() * 15m) + 50m;
}
else
{
CostOfDecorations = (this.GetNumberOfPeople() * 7.50M) + 30m;
}
}
public decimal CalculateCost(bool healthyOption)
{
decimal totalCost = CostOfDecorations +
((CostOfBeveraagesPerPerson + CostOfFoodPerPerson) * NumberOfPeople);
if (healthyOption)
{
return totalCost * .95m;
}
else
return totalCost;
}
}
}
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Dinnerp
{
public partial class Form1 : Form
{
DinnerParty dinnerParty;
public Form1()
{
InitializeComponent();
dinnerParty = new DinnerParty() {};
dinnerParty.SetHealthyOption(false);
dinnerParty.CalculateCostOfDecorations(true);
dinnerParty.SetPartyOptions(5,true);
DisplayDinnerPartuCost();
}
private void DisplayDinnerPartuCost()
{
decimal cost = dinnerParty.CalculateCost(checkBox2.Checked);
costLable.Text = cost.ToString("c");
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
dinnerParty.SetPartyOptions((int)peopleNumUD.Value, checkBox1.Checked);
DisplayDinnerPartuCost();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
dinnerParty.CalculateCostOfDecorations(checkBox1.Checked);
DisplayDinnerPartuCost();
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
dinnerParty.SetHealthyOption(checkBox2.Checked);
DisplayDinnerPartuCost();
}
}
}