Загрузка данных
using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
namespace CurrencyExchangeApp
{
public partial class Form1 : Form
{
// Элементы управления (объявляем их здесь, чтобы использовать в коде)
private Label lblCommissionPercent;
private TextBox txtCommissionPercent;
private Label lblYourRubles;
private TextBox txtYourRubles;
private Button btnCalculate;
private DataGridView dataGridView1;
public Form1()
{
InitializeComponent();
SetupUI();
LoadInitialData();
}
private void InitializeComponent()
{
this.SuspendLayout();
// Настройка самой формы
this.Text = "Обмен валют";
this.Size = new Size(850, 450);
this.ResumeLayout(false);
}
private void SetupUI()
{
// --- ЛЕВАЯ ПАНЕЛЬ (Ввод данных) ---
// Label: Комиссия %
lblCommissionPercent = new Label();
lblCommissionPercent.Text = "Комиссия % =>";
lblCommissionPercent.Location = new Point(20, 30);
lblCommissionPercent.AutoSize = true;
this.Controls.Add(lblCommissionPercent);
// TextBox: 12
txtCommissionPercent = new TextBox();
txtCommissionPercent.Text = "12";
txtCommissionPercent.Location = new Point(120, 30);
txtCommissionPercent.Size = new Size(100, 20);
this.Controls.Add(txtCommissionPercent);
// Label: Ваши руб.
lblYourRubles = new Label();
lblYourRubles.Text = "Ваши руб. =>";
lblYourRubles.Location = new Point(20, 70);
lblYourRubles.AutoSize = true;
this.Controls.Add(lblYourRubles);
// TextBox: 2000
txtYourRubles = new TextBox();
txtYourRubles.Text = "2000";
txtYourRubles.Location = new Point(120, 70);
txtYourRubles.Size = new Size(100, 20);
this.Controls.Add(txtYourRubles);
// Button: Рассчитать
btnCalculate = new Button();
btnCalculate.Text = "Рассчитать";
btnCalculate.Location = new Point(120, 110);
btnCalculate.Size = new Size(100, 30);
btnCalculate.Click += BtnCalculate_Click; // Привязываем событие
this.Controls.Add(btnCalculate);
// --- ПРАВАЯ ПАНЕЛЬ (Таблица) ---
dataGridView1 = new DataGridView();
dataGridView1.Location = new Point(250, 20);
dataGridView1.Size = new Size(550, 350);
dataGridView1.ReadOnly = true; // Запрещаем ручное редактирование таблицы
dataGridView1.AllowUserToAddRows = false;
dataGridView1.BackgroundColor = Color.White;
// Настраиваем колонки таблицы
dataGridView1.ColumnCount = 5;
dataGridView1.Columns[0].Name = "Валюта";
dataGridView1.Columns[1].Name = "Курс руб.";
dataGridView1.Columns[2].Name = "Принято руб.";
dataGridView1.Columns[3].Name = "Комиссия руб.";
dataGridView1.Columns[4].Name = "Ваша валюта";
// Растягиваем колонки по ширине
dataGridView1.Columns[0].Width = 130;
dataGridView1.Columns[1].Width = 80;
dataGridView1.Columns[2].Width = 90;
dataGridView1.Columns[3].Width = 100;
dataGridView1.Columns[4].Width = 110;
this.Controls.Add(dataGridView1);
}
private void LoadInitialData()
{
// Добавляем исходные данные (только название и курс)
// Данные для расчета подтянутся при нажатии кнопки
// 1. Японская иена
dataGridView1.Rows.Add("Японская иена", "1.98");
// 2. Канадский доллар
dataGridView1.Rows.Add("Канадский доллар", "56.77");
// 3. Турецкая лира
dataGridView1.Rows.Add("Турецкая лира", "0.57");
// 4. Казахстанский тенге (ДОБАВЛЕНО ПО ЗАПРОСУ)
// Курс примерно 0.17 рублей за 1 тенге (можно изменить под актуальный)
dataGridView1.Rows.Add("Казахстанский тенге", "0.17");
}
private void BtnCalculate_Click(object sender, EventArgs e)
{
try
{
// 1. Считываем входные данные
double totalRubles = double.Parse(txtYourRubles.Text);
double commissionPercent = double.Parse(txtCommissionPercent.Text);
// 2. Считаем комиссию в рублях
double commissionRubles = totalRubles * (commissionPercent / 100);
// 3. Считаем сумму, которая пойдет в обмен (за вычетом комиссии)
double amountToExchange = totalRubles - commissionRubles;
// 4. Проходим по всем строкам таблицы и считаем результат
foreach (DataGridViewRow row in dataGridView1.Rows)
{
// Получаем курс из 2-й колонки (индекс 1)
double rate = double.Parse(row.Cells[1].Value.ToString());
// Заполняем столбец "Принято руб." (индекс 2)
row.Cells[2].Value = totalRubles;
// Заполняем столбец "Комиссия руб." (индекс 3)
row.Cells[3].Value = commissionRubles;
// Считаем итоговую валюту: (Сумма к обмену) / Курс
double resultCurrency = amountToExchange / rate;
// Заполняем столбец "Ваша валюта" (индекс 4), округляем до 2 знаков
row.Cells[4].Value = Math.Round(resultCurrency, 2);
}
}
catch (Exception ex)
{
MessageBox.Show("Ошибка ввода данных: " + ex.Message);
}
}
}
}