0 / 0 / 0
Регистрация: 26.01.2017
Сообщений: 5
1

Неправильно выполняются операции калькулятора

24.02.2017, 18:57. Показов 836. Ответов 5

Сделано в точности по книге Файна, но при операциях число суммирует/отнимает само себя или делится/умножается само на себя. Понимаю, почему оно работает неправильно, но не знаю, как исправить. Код из рабочего класса (графический прописан отдельно и просто вызывает данные команды):

Java
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
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class Dwizhok implements ActionListener {
 
    Main parent;
 
char selectedAction =' ';
double currentResult = 0;
 
Dwizhok(Main parent){
 
    this.parent = parent;
}
 
public void actionPerformed(ActionEvent e) {
 
    JButton clickButton = (JButton) e.getSource();
    String dispFieldText = parent.okno.getText();
    double displayValue = 0;
 
    if (!"".equals(dispFieldText)) {
 
        displayValue = Double.parseDouble(dispFieldText);
    }
 
    Object src = e.getSource();
 
    if (src == parent.butPlus) {
 
        selectedAction = '+';
        currentResult = displayValue;
        parent.okno.setText("");
 
    } else if (src == parent.butMinus) {
 
        selectedAction = '-';
        currentResult = displayValue;
        parent.okno.setText("");
 
    } else if (src == parent.butUmnozh) {
 
        selectedAction = '*';
        currentResult = displayValue;
        parent.okno.setText("");
 
    } else if (src == parent.butPodel) {
 
        selectedAction = '/';
        currentResult = displayValue;
        parent.okno.setText("");
 
    } else if (src == parent.butRawno);
 
    if (selectedAction == '+') {
 
        currentResult += displayValue;
        parent.okno.setText("" + currentResult);
 
    } else if (selectedAction == '-') {
        currentResult -= displayValue;
        parent.okno.setText("" + currentResult);
 
    } else if (selectedAction == '*') {
 
        currentResult *= displayValue;
        parent.okno.setText("" + currentResult);
 
    } else if (selectedAction == '/') {
 
        currentResult /= displayValue;
        parent.okno.setText("" + currentResult);
 
    } else {
        String clickedButtonLabel = clickButton.getText();
        parent.okno.setText(dispFieldText + clickedButtonLabel);
    }
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2017, 18:57
Ответы с готовыми решениями:

Математические операции. Что неправильно?
Что не так, Eclipse ругается :-| . Math.log(Math.sqrt(Math.abs(xn - a)),3);

Неправильно работает кнопка результата при операции разности
работают все операции но при вычитании нажимая на кнопку равно не происходит действия вычитания а...

Неправильно выполняются мат операции
Всем привет! Сделал такую небольшую программку: #include <iostream> using namespace std; void...

не выполняются операции с файлами из скрипта
Доброго времени суток! стоит Windows Server 2008, на нем IIS7+php5.2.17+mysql5.5.19 проблема в...

5
16 / 16 / 3
Регистрация: 06.02.2013
Сообщений: 57
25.02.2017, 22:23 2
В строках 33, 39, 45, 51 ты делаешь
Java
1
 currentResult = displayValue;
А в 58, 62, 67, 72
Java
1
currentResult (действие)= displayValue
;

т.е у тебя получается displayValue (действие)= displayValue.
0
0 / 0 / 0
Регистрация: 26.01.2017
Сообщений: 5
27.02.2017, 21:34  [ТС] 3
Я прекрасно знаю, где ошибка. Это пример из книги вообще. Но как сделать, чтоб операции выполнялись нормально?
0
Эксперт Java
3634 / 2967 / 917
Регистрация: 05.07.2013
Сообщений: 14,220
27.02.2017, 22:20 4
Цитата Сообщение от Nikolaswong Посмотреть сообщение
Но как сделать, чтоб операции выполнялись нормально?
ты книгу для чего читаешь? Разберись, что делает код, и исправь. Заодно хороший шанс поупражняться с дебаггером, например.
0
0 / 0 / 0
Регистрация: 26.01.2017
Сообщений: 5
01.03.2017, 02:48  [ТС] 5
xoraxax, лол. Советчик от бога
0
Usaga
01.03.2017, 06:03     Неправильно выполняются операции калькулятора
  #6

Не по теме:

Цитата Сообщение от Nikolaswong Посмотреть сообщение
Советчик от бога
Ну так-то совет правильный.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2017, 06:03

Арифметические операции выполняются с ошибкой в вычислениях
.model small .186 .stack 100h .data a db 254 b db 254 c db 254 d db 254 f dd ? .code

Какие три операции выполняются при while(*str++)?
#include <stdio.h> using namespace std; int strLength(const char* str){ int size=1; while...

В каком порядке выполняются операции в выражениях множественного типа?
В каком порядке выполняются операции в выражениях множественного типа?

Операции с булевыми массивами в классе выполняются, но возвращают неправильные результаты
class set {private: int max; int n; bool *a; public: set(int ms) { n=ms; max=ms;


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru