Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 3
1

Проект Калькулятор: сделать так, чтобы вводимые цифры оставались на дисплее

05.07.2016, 18:09. Показов 1335. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток всем!
Помогите дописать код. Надо что б вводимые цыфры оставались на дисплее.... Вот код ( рабочий )....Всем спасибо!!!

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Public Class Calculator3
 
    Dim clearDisplay As Boolean
    Dim value1 As Double
    Dim value2 As Double
    Dim znak As String
 
 
    Private Sub DIGIT_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles Button1.Click, _
        Button2.Click, Button3.Click, Button4.Click, _
        Button5.Click, Button6.Click, Button7.Click, _
        Button8.Click, Button9.Click, Button10.Click
 
 
 
        If clearDisplay Then
            lblDisplay.Text = ""
            clearDisplay = False
        End If
 
        lblDisplay.Text = lblDisplay.Text + sender.Text
 
 
    End Sub
 
 
 
    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
 
        Dim result As Double
 
        value2 = Val(lblDisplay.Text)
        Select Case znak
            Case "+"
                result = value1 + value2
            Case "-"
                result = value1 - value2
            Case "*"
                result = value1 * value2
            Case "/"
                If value2 <> "0" Then result = value1 / value2
        End Select
 
        lblDisplay.Text = result
 
        clearDisplay = True
 
 
    End Sub
 
    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
 
        lblDisplay.Text = ""
 
    End Sub
 
    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
        End
    End Sub
 
    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
        value1 = Val(lblDisplay.Text)
        znak = "+"
        lblDisplay.Text = ""
 
    End Sub
 
    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
        value1 = Val(lblDisplay.Text)
        znak = "-"
        lblDisplay.Text = ""
    End Sub
 
    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
        value1 = Val(lblDisplay.Text)
        znak = "*"
        lblDisplay.Text = ""
    End Sub
 
    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
        value1 = Val(lblDisplay.Text)
        znak = "/"
        lblDisplay.Text = ""
    End Sub
End Class
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2016, 18:09
Ответы с готовыми решениями:

Как сделать так, чтобы вводимые данные сохранялись?
Задание: Составить текст программы, позволяющей: – вводить с клавиатуры данные о товаре,...

Как сделать так, чтобы вводимые мной числа в данном коде отображались в проекте
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,...

Файл: как сделать так, чтобы вводимые данные (которые считывались с клавиатуры) сразу записывались в файл?
Подскажите, пожалуйста, как сделать так, чтобы вводимые данные (которые считывались с клавиатуры)...

Как сделать так, чтобы даты формата 12/2/1232 не воспринимались как даты а оставались как текст?
Доброго всем времени суток, подскажите, как сделать так что-бы даты формата 12/2/1232 не...

5
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
05.07.2016, 18:48 2
наверно все дело в этих строках кода...
VB.NET
1
lblDisplay.Text = ""
1
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 3
12.07.2016, 18:34  [ТС] 3
спасибо, но не работает....
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
13.07.2016, 00:26 4
Насколько понял, вы хотите, чтобы сохранялся протокол операции, т.е. lblDisplay.Text имел, например вид 12+10=22.
В процедуры обработки знака вместо lblDisplay.Text = "" поставьте lblDisplay.Text &= znak. Процедуру обработки "=" измените, как показано ниже
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim result As Double
Dim ss As String = lblDisplay.Text
value2 = Val(lblDisplay.Text.Substring(value1.ToString.Length + 1))
Select Case znak
    Case "+"
        result = value1 + value2
    Case "-"
        result = value1 - value2
    Case "*"
        result = value1 * value2
    Case "/"
        If value2 <> "0" Then result = value1 / value2
End Select
lblDisplay.Text &= "=" & result
clearDisplay = True
Нужно конечно понимать, что этот код достаточно примитивный и никакие нештатные ситуации здесь не обрабатываются. Пользователь должен строго придерживаться правила: "value1" + "знак" + "value2" + "=".
0
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 3
13.07.2016, 07:12  [ТС] 5
Спасибо большое!!! Почти работает, но дает ошибку

VB.NET
1
value2 = Val(lblDisplay.Text.Substring(value1.ToString.Length + 1))
---------" startIndex cannot be larger than length of string. Parameter name: startIndex"
Добавлено через 1 минуту
Забыл, выдает только при сложении....
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
13.07.2016, 13:43 6
Вообще-то проблем быть не должно тем более только с одной операцией "+" (все операции обрабатываются однотипно). Проверьте еще раз свой код, все ли вы исправили, как предлагалось. Как я уже писал, данный код предназначен строго для вычисления выражений типа <value1> + <знак> + <value2> + <=> и малейший отход от этого может приводить к ошибке. Например, если я введу <знак> + <value> + <=>, то получу ошибку того вида что вы описываете.
Если вы хотите получить калькулятор типа MS calc.exe, то это уже другая песня.
0
13.07.2016, 13:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2016, 13:43
Помогаю со студенческими работами здесь

Калькулятор - как сделать так, чтобы он подсчитывал квадратный корень?
он не хочет брать квадратный корень и ругается на sqrt, подскажите пожалуйста как сделать так,...

Как сделать чтобы данные оставались на форме
Снова я со своим &quot;голдфишем&quot;) В форме регистрация рыбаков данные таблицы клиенты остаются после...

Как сделать, чтобы в калькулятор можно было ввести только цифры и запятую?
Вот код: (на последнюю часть, не обращайте внимание) Я хочу сделать так, чтобы в калькулятор (в...

Судоку: Сделать так, чтобы цифры не повторялись
Пишу игру судоку. Не могу сделать так, чтобы цифры не повторялись. Вот код заполнения поля: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru