Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[kompilacja] switch/case

Ostatnio zmodyfikowano 2009-07-24 11:07
Autor Wiadomość
123mamut
Temat założony przez niniejszego użytkownika
[kompilacja] switch/case
» 2009-07-23 12:05:06
Witam pisze program z menu w switch i kiedy doszedłem do case 10 to program tego nie chce skomplikować z tego co wiem to nie chce ponieważ w 10 jest jeden a jeden jest już używane chodzi mi o to jaka zmienna jest potrzebna żeby szło dawać od 10 w zwysz
P-8727
DejaVu
» 2009-07-23 12:07:43
skompilować, a nie skomplikować :) Wklej nam tego switch'a.
P-8728
123mamut
Temat założony przez niniejszego użytkownika
» 2009-07-23 12:46:51
C/C++
switch( znak )
{
case '1':
    cout << "Podaj pierwsza liczbe\n";
    cin >> a;
    cout << "Podaj drugom liczbe\n";
    cin >> b;
    Dodawanie( a, b );
    break;
case '2':
    cout << "Podaj pierwsza liczbe\n";
    cin >> a;
    cout << "Podaj drugom liczbe\n";
    cin >> b;
    Odejmowanie( a, b );
    break;
case '3':
    cout << "Podaj pierwsza liczbe \n";
    cin >> a;
    cout << "Podaj drugom liczbe\n";
    cin >> b;
    Mnozenie( a, b );
    break;
   
case '4':
    cout << "Podaj pierwsza liczbe \n";
    cin >> a;
    cout << "Podaj drugom liczbe\n";
    cin >> b;
   
   
case '5':
   
    cout << "Podaj dlugosc boku kwadratu\n";
    cin >> a;
    Kwadrat( a );
    break;
case '6':
    cout << "Podaj dlugosc boku rombu\n";
    cin >> a;
    cout << "Podaj wysokość rombu\n";
    cin >> h;
    Romb( a, h );
    break;
case '7':
    cout << "Podaj bok a (krotszy bok)\n";
    cin >> a;
    cout << "Podaj bok b (dluszy bok)\n";
    cin >> b;
    Prostokad( a, b );
    break;
case '8':
    cout << "Podaj bok a\n";
    cin >> a;
    cout << "Podaj wysokosc\n";
    cin >> h;
    Rownoleglobok( a, h );
    break;
case '9':
    cout << "Podaj bok a (krotszy)\n";
    cin >> a;
    cout << "podaj bok b\n";
    cin >> b;
    cout << "Podaj wysokosc\n";
    cin >> h;
    Trapez( a, b, h );
    break;
case '10':
    cout << "Podaj dlugosc boku\n";
    cin >> a;
    cout << "Podaj wysokosc\n";
    cin >> h;
    Trojkat( a, h );
    break;
P-8729
DejaVu
» 2009-07-23 12:54:58
Znak ma 1 bajt. Ty napisałeś, że znak ma mieć 2 bajty na co kompilator się oburzył. Musisz napisać:
C/C++
int liczba;
cin >> liczba;
switch( liczba )
{
    //...
case 10:
    //...
    break;
}
Drugą opcją jest wczytywanie do string'a i konwertowanie go na liczbę.
P-8730
123mamut
Temat założony przez niniejszego użytkownika
» 2009-07-23 13:37:54
dodałem nad switch int liczba; cin >>liczba i przy switchu z znak zmieniłem na liczba tera mi niby działa ale jak z menu wybiorę 10 to program wskakuje na default i pisze że zrobiłem  coś złego(nie wiem czy chodziło ci o to zmianę w programie ponieważ jestem początkującym xD)
P-8731
GoldWolf
» 2009-07-23 13:56:13
Więc albo wkleisz cały kod byśmy zobaczyli co się dzieje.
Możesz również rzucić okiem na kurs XII. Warunek wielokrotnego wyboru switch ... case -> i użyć enumeratora. Tak trudno coś określić.
P-8732
123mamut
Temat założony przez niniejszego użytkownika
» 2009-07-23 14:03:17
C/C++
#include <iostream>
#include <conio.h>
#include <string>
#define PI 3.14   //to jest to samo co const float PI 3.14 czy tez const double PI 3.14

using namespace std;

void Dodawanie( double, double );
void Odejmowanie( double, double );

void Mnozenie( double, double );
void Dzielenie( double, double );
void Potengowanie( double, double );
void Kwadrat( double );
void Romb( double, double );
void Prostokad( double, double );
void Rownoleglobok( double, double );
void Trapez( double, double, double );
void Kolo( double );
void Trojkat( double, double );
void Kolo( double, double );


int main()
{
   
   
   
    bool TN = true;
   
   
    cout << "KALKULATOR\n";
    cout << " (1) DODAWANIE\n";
    cout << " (2) ODEJMOWANIE\n";
    cout << " (3) MNOZENIE\n";
    cout << " (4) DZIELENIE\n";
    cout << " POLA FIGUR\n";
    cout << " (5) POLE KWADRATU\n";
    cout << " (6) ROMB\n";
    cout << " (7) PROSTOKAD\n";
    cout << " (8) ROWNOLEGŁOBOK\n";
    cout << " (9) TRAPEZ\n";
    cout << " (10) TROJKAT\n";
   
   
   
    double a, b, h, r;
    char znak;
    cin >> znak;
   
   
   
   
   
   
    switch( znak )
    {
    case '1':
        cout << "Podaj pierwsza liczbe\n";
        cin >> a;
        cout << "Podaj drugom liczbe\n";
        cin >> b;
        Dodawanie( a, b );
        break;
    case '2':
        cout << "Podaj pierwsza liczbe\n";
        cin >> a;
        cout << "Podaj drugom liczbe\n";
        cin >> b;
        Odejmowanie( a, b );
        break;
    case '3':
        cout << "Podaj pierwsza liczbe \n";
        cin >> a;
        cout << "Podaj drugom liczbe\n";
        cin >> b;
        Mnozenie( a, b );
        break;
       
    case '4':
        cout << "Podaj pierwsza liczbe \n";
        cin >> a;
        cout << "Podaj drugom liczbe\n";
        cin >> b;
       
       
    case '5':
       
        cout << "Podaj dlugosc boku kwadratu\n";
        cin >> a;
        Kwadrat( a );
        break;
    case '6':
        cout << "Podaj dlugosc boku rombu\n";
        cin >> a;
        cout << "Podaj wysokość rombu\n";
        cin >> h;
        Romb( a, h );
        break;
    case '7':
        cout << "Podaj bok a (krotszy bok)\n";
        cin >> a;
        cout << "Podaj bok b (dluszy bok)\n";
        cin >> b;
        Prostokad( a, b );
        break;
    case '8':
        cout << "Podaj bok a\n";
        cin >> a;
        cout << "Podaj wysokosc\n";
        cin >> h;
        Rownoleglobok( a, h );
        break;
    case '9':
        cout << "Podaj bok a (krotszy)\n";
        cin >> a;
        cout << "podaj bok b\n";
        cin >> b;
        cout << "Podaj wysokosc\n";
        cin >> h;
        Trapez( a, b, h );
        break;
    case '10':
        cout << "Podaj dlugosc boku\n";
        cin >> a;
        cout << "Podaj wysokosc\n";
        cin >> h;
        Trojkat( a, h );
        break;
       
       
       
        Dzielenie( a, b );
        break;
        default:
        cout << "wpisales cos zlego";
       
    }
   
    cin.clear();
    znak >> znak;
    cout << "Czy chesz zakonczyć program (T/N)";
    cin >> znak;
    znak = toupper( znak );
   
    if( znak == 'T' );
   
    {
        TN = false;
    }
   
   
    return 0;
    getch();
   
}

void Dodawanie( double a, double b )
{
    cout << "Wynik to:" << a + b << "\n";;
}
void Odejmowanie( double a, double b )
{
    cout << "Wynik to:" << a - b << "\n";;
   
}
void Mnozenie( double a, double b )
{
    cout << "Wynik to:" << a * b << "\n";;
   
}

void Dzielenie( double a, double b )
{
    cout << "Wynik to:" << a / b << "\n";;
}

void Kwadrat( double a )
{
    cout << "Wynik to:" << a * a << "\n";;
}
void Romb( double a, double h )
{
   
    cout << "Wynik to :" << a * h << "\n";
}

void Prostokad( double a, double b )
{
    cout << "wynik to :" << a * b << "\n";
   
}
void Rownoleglobok( double a, double h )
{
    cout << "wynik to :" << a * h << "\n";
}

void Trapez( double a, double b, double h )
{
    cout << " Wynik  to :" <<( a + b ) * h / 2 << "\n";
}

void Trojkat( double a, double h )
{
    cout << "wynik to :" <<( 0.5 ) * a * h << "\n";
}
P-8734
GoldWolf
» 2009-07-23 14:15:37
Radzę ci przeczytać kurs VII. Ciągi znaków – łańcuchy - jest tam właśnie opisane jak rodzić sobie z strumieniem cin.
C/C++
double a, b, h, r;
char znak;
( cin >> znak ).get();
Dodatkowo musisz użyć pętli, by ci program nie wychodził gdy naciskasz literkę "n".
P-8735
« 1 » 2
  Strona 1 z 2 Następna strona