Форум программистов, компьютерный форум CyberForum.ru

косяк при выборе операции через switch в калькуляторе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая удаляет из введенной с клавиатуры строки первые 2 слова если это цифры http://www.cyberforum.ru/cpp-beginners/thread1211307.html
Ребят, помогите пожалуйста с заданием. Поясните комментариями. очень нужно. Заранее спасибо! вот нашел код еще, но непонятно что к чему... #include <windows.h> #include<iostream> #include <string> using namespace std; int main()
C++ Создать класс, переписывающий в третий файл коэффициенты того полинома, который имеет максимальное значение Коэффициенты полиномов записаны в два файла. Переписать в третий файл коэффициенты того полинома, который имеет максимальное значение. Создать класс для обработки полиномов: расчет значения полинома, вычитание полиномов. Переписать коэффициенты полинома в список и подсчитать количество нулевых коэффициентов в полиноме. Добавлено через 45 минут Устроит даже часть кода этой задачи. http://www.cyberforum.ru/cpp-beginners/thread1211302.html
C++ Создать класс, переписывающий в другой файл коэффициенты полинома, являющегося производной от исходного
Коэффициенты полигона записаны в файл. Переписать в другой файл коэффициенты полинома, являющегося производной от исходного полинома. Создать класс для обработки полиномов: вычитание нахождение производной от полинома, сложение полиномов. Переписать коэффициенты полинома в список и подсчитать количество коэффициентов в полиноме, больших заданого. Вопрос экзамена, очень нужна помощь, заранее...
C++ Исключительные ситуации
Надо сделать так, чтоб при вводе чарового символа в итовый вектор выводило сообщение об ошибке, но программа не закрывалась, а просто игнорировала этот символ. Проблема в том что после такого ввода программа зацикливается. Вот мой фрагмент кода: cout<<"Enter size "; int a1; cin>>a1; VECTOR V1(a1); cout<<"Enter vector:\n"; st: try {
C++ Умножение матриц, считывание размерностей из файла http://www.cyberforum.ru/cpp-beginners/thread1211247.html
Вот такое задание. Из файла file1.txt считывается двумерная вещественная матрица А, из файла file2.txt считывается двумерная вещественная матрица B(размеры матриц задаются в файлах). Файлы file1.txt и file2.txt предварительно создаются программистом. 1. Реализовать функцию, вычисляющую выражение А*B. 2. Реализовать функцию, меняющую местами первый столбец с последним. я написала программу. ...
C++ Использование функции eof Не могу понять, как правильно использовать функцию eof. Программа вообще не распознает эту функцию и выдает ошибку. Библиотека stdio.h подключена подробнее

Показать сообщение отдельно
bittraid
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 21
18.06.2014, 13:45     косяк при выборе операции через switch в калькуляторе
всем доброго времени суток. пишу тут курсач и столкнулся со следующей проблемой: в консоли само по себе вписывается значение 0 и программа завершается. думаю что кося где-то в функции vich();
заранее благодарен;

C++
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#pragma once
 
#include <iomanip> //Подключение манипуляторов ввода-вывода
#include <stdio.h>//Подключение библиотеки стандартного ввода-вывода; 
#include <conio.h>//Подключение библиотеки консольного ввода-вывода; 
#include <iostream>//Подключение библиотеки потокового ввода-вывода; 
#include <math.h>
 
using namespace std;
 
char c;//вспомогательные переменные выбора действия программы
 
class calc//класс калькулятора
{
private:
    int ch2_1[10];//первое число в двоичной системе
    int ch2_2[10];//второе число в двоичной системе
    int ch10_1;//первое число в десятичной
    int ch10_2;//второе число в десятичной
    long otvet2;//ответ в двоичной
    int otvet10;//ответ в десятичной
public:
    void init();//функция ввода чисел в двоичной системе счисления
    void f_2_to_10();//функция перевода из двоичной в десятичную систему счисления
    void f_10_to_2();//функция перевода из десятичной в двоичную систему
    void vich();//функция проведения операций
    void print();//функция вывода
 
};
 
void calc::init()//функция ввода чисел в двоичном виде
{
    int i;
    cout << "Введите первое число: ";
    for ( i = 0; i<10; i++)
        cin >> ch2_1[i];//вводим первое число;
    cout<<endl;
 
    cout << "Введите второе число: ";
    for ( i = 0; i<10; i++)
        cin >> ch2_2[i];//вводим второе число;
    cout<<endl;
}
 
void calc::f_2_to_10()//функция превода из двоичной в десятичную систему счисления
{
    int i;
    /*переводим первое число в двоичную систему*/
    ch10_1 = 0;
    for ( i = 9; i >= 0; i-- )
    {
        if ( ch2_1[i] == 1)
            ch10_1 += pow( 2.0, (9-i));
    }
 
 
    /*переводим второе число в двоичную систему*/
    ch10_2 = 0;
    for ( i = 9; i >= 0; i-- )
    {
        if ( ch2_2[i] == 1)
            ch10_2 += pow( 2.0, (9-i));
    }
}
 
void calc::f_10_to_2()//функция перевода из десятичной в двоичную систему счисления
{
    int i, mod;
    otvet2 = 0;
 
    /*цикл перевода*/
    for ( i = 0; otvet10 > 0; i++)
    {
        mod = otvet10 % 2;
        otvet10 = (otvet10 - mod) / 2;
        otvet2 += mod * pow(10.0, i);
    }
}
 
void calc::vich()//функция проведения операций
{
    //блок выбора операции
 
    cout << "Выберитe операцию:\n";
    cout << "'+' - сложение\n";
    cout << "'-' - вычитание\n";
    cout << "'*' - умножение\n";
    cout << "'/' - деление\n";
    cout << "Ваш выбор: ";
    
    //блок вычисления операции
    c = getchar();
    switch(c)
    {
    case '+':
        otvet10 = ch10_1 + ch10_2;
        break;
    case '-':
        otvet10 = ch10_1 - ch10_2;
        break;
    case '*':
        otvet10 = ch10_1 * ch10_2;
        break;
    case '/':
        otvet10 = ch10_1 / ch10_2;
        break;
    
    }
 
}
 
void calc::print()//функция вывода результата
{
    cout << '=' << otvet2 << endl;
}
 
void main()
{
    calc a1;
    setlocale(LC_ALL, "Russian");//подключение русского языка в консоли;
 
    /*последовательный вызов функций, необходимых для выполнения операций*/
    a1.init();
    a1.f_2_to_10();
    a1.vich();
    a1.f_10_to_2();
    a1.print();
 
    
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru