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

Табличный калькулятор - C++

Восстановить пароль Регистрация
 
Docto who
Сообщений: n/a
02.06.2013, 01:47     Табличный калькулятор #1
Люди помогите пишу табличный калькулятор ( как сказать калькулятор там всего 2 функции).
Так вот не знаю как сделать так чтобы там где нужно вводить цифры , нельзя было вводить буквы. Так как когда вводишь буквы он создаёт бесконечный цикл и ужас что там .
Вот код:
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
        #include "stdafx.h"
    #include "iostream"
    #include <windows.h>
    #include <cmath>
    #include <cstdlib>
    #include <conio.h>
    #include <fstream>
 
    using namespace std;
 
    int main(int choice , int choice2)
    {   
    double result=0 , rezult1=0;
    while (choice)
    {
    cout << "\nchoose y = A*Sin(Bx)+C (1)" << endl;
    cout << "or y = cos(x)+sin^2(z)+c (2) " << endl;
    cin >> choice; 
    switch(choice)
    {           
                        m1:case 1:
    {
    cout << "Dla to4ki (1)" << endl;
    cout << "Intrval (2)" << endl;
    cin>> choice ;
    if(choice==1)
    {
        cout << "you chosen! y = A*Sin(Bx)+C" << endl;
        double x,y,b,c;
        cout << "insert A: " << endl;
        cin >> y;
        cout << "insert B:" << endl;
        cin >> b;
        cout << "insert x:" << endl;
        cin >> x;
        cout << "insert C:" << endl;
        cin >> c;
        result = y*sin(b*x)+c;
        cout<< result << endl;
    }
    if(choice==2)
    {
        cout << "you chosen!!! y = A*Sin(Bx)+C" << endl;
        double x,y,b,c,d,a,i,h,result;
        cout << "insert A: " << endl;
        cin >> y;
        cout << "insert B:" << endl;
        cin >> b;
        cout << "insert C:" << endl;
        cin >> c;
        cout << "Na4alnoe zna4enie i:" << endl;
        cin>> i;
        cout << "Kone4noe znazenie x:" << endl;
        cin >> x;
        cout << "Hag h:" << endl;
        cin>> h;
        for(double i=0;i<x;i=i+h)
        { 
        cout<<"i="<<+i<<"\t"<<"result= "<<y*sin(b*i)+c<<endl;
        }
        } 
    else
    {
        goto m1;
    }
        break;
            }
        m2:case 2:
        {
        cout << "Dla to4ki (1)" << endl;
        cout << "Intrval (2)" << endl;
        cin>>choice2;
        if(choice2==1)
        {
            cout << "you chosen! y = cos(x)+sin^2(z)+c" << endl;
            double a,s,d,result1 ;
            cout << "insert x: " << endl;
            cin >> a;
            cout << "insert z: " << endl;
            cin >> s;
            cout << "insert c: " << endl;
            cin >> d;
            result1 = cos(a)+sin(s)*sin(s)+d;
            cout << result1 << endl;
        }
 
        if(choice2==2)
        {
            cout << "you chosen!!!! y = cos(x)+sin^2(z)+c" << endl;
            double a,s,d,i,h,x,result1 ;
            cout << "insert z: " << endl;
            cin >> s;
            cout << "insert c: " << endl;
            cin >> d;
            cout << "Na4alnoe zna4enie i:" << endl;
            cin>> i;
            cout << "Kone4noe znazenie x:" << endl;
            cin >> x;
            cout << "Hag h:" << endl;
            cin>> h;
            for(double i=0;i<x;i=i+h)
            {    
            cout<<"i"<< +i <<"\t"<<"result1= "<<cos(i)+sin(s)*sin(s)+d<<endl; 
            }
        }
        else
        {
            goto m2;
        }   
                }
    
    // cout<<"Coxranit v fail (2)"<<endl;
    //    cin>> choice3;
 
    //switch(choice3)
    //{
    // 
    // case 1:
    //  {
    //  }
    // case 2:
    //  { 
    //    void zapis(); // записываем в .txt файл
    // {    
    //    ofstream fout;
    //     fout.open("otvety.txt");
    //       if(fout.is_open())
    //           {
    //          
    //            if(result==0)
    //   {
    //               fout << rezult1 << endl; 
    //   }
    //   else
    //   {
    //    fout<<result<<endl;
    //   }
    //             
    //             }
    //     fout.close();
    //     }
    }
    if (choice!=1 || choice!=2)
    cout<<"Vvedite zanovo "; 
    }  
        printf ("press enter to close window", getchar());
        getchar();
                    }
Там где закоментированный код это я пробовал сохранить ответ в текстовый фаил.
P,S Заранее спасибо))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2013, 01:47     Табличный калькулятор
Посмотрите здесь:

Калькулятор на С++ C++
C++ Калькулятор на С
C++ Калькулятор
Калькулятор C++
калькулятор C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.06.2013, 02:17     Табличный калькулятор #2
Так будет обработка ошибки, если первая не цифра или не знаки + - с цифрой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while (true)
{
        cin >> a;
        if (!cin)
        {
            cin.clear();
            while (cin.get() != '\n');
            cout << "Error!" << endl;
        }
        else
        {
            if (cin.peek() != '\n') 
            {
                while (cin.get() != '\n');
                break;
            }
            break;
        }
}
Docto who
Сообщений: n/a
02.06.2013, 02:18     Табличный калькулятор #3
Оооооо дааааа оно работает О.О МАГИЯ! Чууваааак я бы тебя расцеловал был бы ты девчвёнкойDDDD
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.06.2013, 02:46     Табличный калькулятор #4
Рациональнее так:
C++
1
2
3
4
5
6
while (!(cin >> a) || (cin.peek() != '\n'))
{
        cin.clear();
        while (cin.get() != '\n');
        cout << "Error!" << endl;
}
Можно сделать отдельной функцией и передавать в неё переменные для ввода по ссылке.

Добавлено через 1 минуту

Не по теме:

Я плюсы коллекционирую.

Yandex
Объявления
02.06.2013, 02:46     Табличный калькулятор
Ответ Создать тему
Опции темы

Текущее время: 17:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru