Создать приложение, которое на основе введения исходных данных позволит произвести оценочную стоимость дачного дома.
Постановка задачи:
Для работы с приложением необходимо создать форму для ввода следующих исходных данных:
длина стены дома;
ширина стены дома;
количество этажей;
материал, из которого строится дом;
материал, используемый для крыши;
сведения о том, будет ли у дома мансарда.
Форма должна содержать:
текстовую информацию пояснительного характера;
текстовые поля для ввода длины, ширины дома и количества этажей;
флажок, используемый для указания, будет ли дом содержать мансарду;
список, позволяющий выбрать кровельный материал;
раскрывающийся список для выбора материала, из которого будут строиться стены;
кнопку Расчет стоимость, при нажатии на которую будут производиться расчеты стоимости дачного дома. Расчет стоимости дома произвести по следующему алгоритму:
Стоимость стен= 4* длина*ширина*цена_материала* количество этажей.
Стоимость крыши = длина*ширина*цена_кровельного_материала
Стоимость дома= Стоимость стен + Стоимость крыши, если нет мансарды;
Стоимость дома= Стоимость стен + Стоимость крыши + 200, если есть мансарда
поле, размещенное в нижней части формы с правой стороны от кнопки Расчет стоимости, предназначено для отображения вычислительной стоимости.
Кнопку Сброс, позволяющую обнулить все числовые данные формы.
Форма для работы с приложением должна выглядеть примерно следующим образом:
Необходимо предусмотреть невозможность ввода в текстовые поля отрицательных значений и символов.
Должна быть предусмотрена проверка того, что пользователем выбраны материалы для крыши и стен.
Методика выполнения задания
Создайте новый проект
Создайте форму.
Измените имя формы
Разместите на форме следующие элементы управления:
Заголовок «Размер домика» создайте с помощью кнопки Label;
Текстовые поля для ввода длины, ширины, кол-ва этажей создайте с помощью элемента TextBox;
Для указания, будет ли домик содержать мансарду, разместите на форме флажок с помощью кнопки CheckBox;
Для выбора кровельного материала используйте список (кнопка ListBox). Чтобы сформировать список материалов, используйте свойство Items (Collection)
Для выбора материала, из которого строятся стены используйте раскрывающийся список (кнопка ComboBox). Для ввода списка воспользуйтесь свойством Items (Collection).
Создайте кнопку для расчета стоимости (кнопка Button1)
Создайте кнопку Сброс для обнуления всех текстовых полей, а также сброса флажка (кнопка Button)
Напишите процедуры обработки события Click для каждой кнопки.
Наличие поставленного флага проверяется свойством CheckBox.Checked (=true или false)
Цена на каждый вид материала задается в процедуре обработки события Click_Button1.
Выбранный вид проверяется по значению свойства ListBox1.SelectedIndex. Причем индексация начинается с нуля.
Все переменные объявляются целыми.
Ниже представлен фрагмент программы расчета домика без расчета расходов на крышу.
Dim l, h, store, cena, stoim, mans As Integer
mans = 0
l = TextBox1.Text
h = TextBox2.Text
store = TextBox4.Text
If CheckBox1.Checked = True Then mans = 20
If ListBox1.SelectedIndex = 0 Then cena = 10
If ListBox1.SelectedIndex = 1 Then cena = 20
If ListBox1.SelectedIndex = 2 Then cena = 30
stoim = 4 * l * h * cena + mans
TextBox3.Text = stoim
Факт установления флажка соответствует тому, что значение CheckBox1.Checked равно True.
Для того чтобы осуществить проверку на ввод только числовых значений, целесообразно разместить поле надписи (объект Label3) Ниже показан код программы на событие – изменение значения в textbox1 (проверка):
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If IsNumeric(TextBox1.Text) = False Then
Label3.Text = "repeat input"
End If
End Sub
Для того чтобы проконтролировать, что пользователем выбран вид материала (выбрана строка в ListBox1), необходимо проверить условие: ListBox1.index<0. Если оно истинно, то сообщить, в некотором поле надписи, что мактериал не выбран.
Для проверки на положительность вводимых данных в тестовое поле, можно воспользоваться свойством текстового поля Keychar: