C#: перевод из м/с в км/ч



Задача

Написать программу на языке C#, которая переводит скорость из м/с (метры в секунду) в км/ч (километры в час). Особенности приложения:
  • возможность ввода в поле только целого положительного числа;
  • расчет осуществляется либо по нажатию на кнопку, либо по нажатию клавиши "Enter".
Исходники программы можно скачать здесь.




Код программы:
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 Km
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void pereschet() {
            try
            {
                double v = Convert.ToDouble(textBox1.Text);
                v = 3600 * v / 1000;
                label1.Text = v.ToString();
            }
            catch (FormatException fe) {
                MessageBox.Show("Только число введи, да.");
            };        
        }

        private void button1_Click(object sender, EventArgs e)
        {
            pereschet();          
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar <= 47 || e.KeyChar >= 59) && e.KeyChar != 8)
                e.Handled = true;
        }

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            pereschet();
        }

        private void linkLabel1_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("https://upread.ru?ref=km");
        }
    }
}
Пара комментариев по коду выше. Сам пересчет скорости осуществляется в методе pereschet. Он извлекает значение из текстбокса (textBox1.Text) и преобразует его в формат double. Необходима конструкция try - catch, так как может выпрыгнуть ошибка, что введенное число вовсе не является числом. Прсото отловим это исключение и покажем окно с сообщением, что требуется ввести только число. На самом деле это исключение сработает только одном случае - когда в текстбоксе пусто, так как метод textBox1_KeyPress проверяет вводимые символы (точнее, нажимаемые клавиши) и разрешает появляться в этом поле только цифрам 0-9.

Нажатие клавиши "Enter" обрабатывает метод textBox1_KeyDown, он также передает затем управление методу pereschet. В общем, и все, есть только еще метод, обрабатывающий нажатие на линклайбел (ссылку-метку) - тогда запускается браузер по умолчанию и происходит переход на наш сайт. Любые вопросы/предложения/задачи на си шарп - велком на почту up777up@yandex.ru.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, си шарп, задачи




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Урок 17. Наследование и полиморфизм в Java
Рецензия на книгу Дмитрий Савочкин Тростниковые волки
Пошаговое руководство по верстке на вордпресс. Глава пятая: обратная связь и адаптация гугл карт