Загрузка данных


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);
            }
        }
    }
}