- •Введение
- •Список вопросов, рассматриваемых в модуле 1.
- •Продемонстрированные в приложении особенности
- •Пример Mod1Ex4 (Инкапсуляция, обработка ошибок, наследование) Постановка задачи
- •Продемонстрированные в приложении особенности
- •Пример Mod1Ex5 (Полиморфизм)
- •Продемонстрированные в приложении особенности
- •Список вопросов, рассматриваемых в модуле 2.
- •Описание модельных примеров модуля 2. Пример Mod2Ex1 Постановка
- •Листинги примеров Пример Mod1Ex1
- •Пример Mod1Ex2
- •Пример Mod1Ex3
- •Пример Mod1Ex4
- •Пример Mod2Ex1
- •Пример Mod2Ex2
- •Пример Mod2Ex3
Пример Mod2Ex1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private string[] Europe = new string[] { "Италия", "Франция", "Греция"};
private string[] America = new string[] { "Мексика", "Канада", "США" };
private string[] Asia = new string[] { "Индия", "Япония", "Китай"};
public Form1()
{
InitializeComponent();
lstCountry.SelectedItem = lstCountry.Items[0];
}
private string CalculateCost()
{
decimal cost = 0.0M;
decimal dayCost = 600M - nudPlaces.Value*100;
decimal serviceCost =
(chbBreakfast.Checked ? Convert.ToDecimal(chbBreakfast.Tag) : 0)+
(chbConditioner.Checked ? Convert.ToDecimal(chbConditioner.Tag) : 0) +
(chbWiFi.Checked ? Convert.ToDecimal(chbWiFi.Tag) : 0);
decimal countryCoeff=1M;
if (Europe.Contains<String>(lstCountry.SelectedItem.ToString()))
countryCoeff=0.7M;
else if (Asia.Contains<String>(lstCountry.SelectedItem.ToString()))
countryCoeff=0.8M;
decimal seasonCoeff=1M;
if (rbtAutumn.Checked) seasonCoeff=0.7M;
else if (rbtSpring.Checked) seasonCoeff=0.8M;
cost=(dayCost*Convert.ToDecimal(nudDuration.Value)+serviceCost)*seasonCoeff*countryCoeff;
return cost.ToString();
}
private void nudPlaces_ValueChanged(object sender, EventArgs e)
{
lblCost.Text = CalculateCost();
}
private void nudDuration_ValueChanged(object sender, EventArgs e)
{
lblCost.Text = CalculateCost();
}
private void lstCountry_SelectedIndexChanged(object sender, EventArgs e)
{
if (lstCountry.SelectedItem != null)
lblCost.Text = CalculateCost();
else
throw new Exception("Не выбрана страна!");
}
private void rbtWinter_CheckedChanged(object sender, EventArgs e)
{
lblCost.Text = CalculateCost();
}
private void rbtSpring_CheckedChanged(object sender, EventArgs e)
{
lblCost.Text = CalculateCost();
}
private void rbtSummer_CheckedChanged(object sender, EventArgs e)
{
lblCost.Text = CalculateCost();
}
private void rbtAutumn_CheckedChanged(object sender, EventArgs e)
{
lblCost.Text = CalculateCost();
}
private void chbBreakfast_CheckedChanged(object sender, EventArgs e)
{
lblCost.Text = CalculateCost();
}
private void chbWiFi_CheckedChanged(object sender, EventArgs e)
{
lblCost.Text = CalculateCost();
}
private void chbConditioner_CheckedChanged(object sender, EventArgs e)
{
lblCost.Text = CalculateCost();
}
}
}
