• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ - MENU - ułatwienia, powrót do głównego itp

VPS Starter Arubacloud
+1 głos
310 wizyt
pytanie zadane 8 kwietnia 2021 w C i C++ przez LapSuSu Nowicjusz (130 p.)
#include <iostream>
#include <cstdlib>
#include <locale.h>
#include <conio.h>
#include <math.h>

using namespace std;
float a,b,c;
float euro0=0.22, euro1=4.59, usd0=0.26, usd1=3.84;
char wybor,wybor1,wybor2,wybor3,wybor4,wybor5,wybor6,wybor7,wybor8,wybor9,wybor10,wybor11,wybor12,wybor13,wybor14,wybor15,wybor16,wybor17,wybor18,wybor19,wybor20,wybor21,wybor22,wybor23,wybor24,wybor25,wybor26,wybor27,wybor28;

int main()
{
 setlocale(LC_CTYPE, "Polish");
 cout<<"  **********MINI POMOCNIK**********"<<endl<<endl;
 cout<<endl<<"1. Kalkulator";
 cout<<endl<<"2. Zamiana walut";
 cout<<endl<<"3. Sprawdź czy podany rok jest przystępny";
 cout<<endl<<"4. Ile dni ma wybrany miesiąc w danym roku";
 cout<<endl<<"5. Zamiana jednostek czasu";
 wybor=getch();
 system("cls");
 
 switch(wybor)
 {
 	case '1':
 	cout<<"  **********MENU KALKULATORA**********"<<endl<<endl;
 	cout<<"1. Dodawanie"<<endl;
 	cout<<"2. Odejmowanie"<<endl;
 	cout<<"3. Dzielenie"<<endl;
 	cout<<"4. Mnożenie"<<endl;
 	cout<<"5. Pierwiastkowanie"<<endl;
 	cout<<"6. Potęgowanie"<<endl;
 	cout<<"7. Powrót"<<endl;
 	
 	wybor1=getch();
 	system("cls");
 	
 	switch (wybor1)
     {
	  case '1':
      cout<<"  **********Dodawanie**********"<<endl<<endl;
      cout<<"Podaj pierwszą liczbę (składnik): ";
      cin>>a;
      cout<<"Podaj drugą liczbę (składnik): ";
      cin>>b;
      cout<<endl<<"Wynikiem dodawania "<<a<<" + "<<b<<" jest suma = "<<a+b;
      break;
    
      case '2':
      cout<<"  **********Odejmowanie**********"<<endl<<endl;
      cout<<"Podaj pierwszą liczbę (odjemna): ";
      cin>>a;
      cout<<"Podaj drugą liczbę (odjemnik): ";
      cin>>b;
      cout<<endl<<"Wynikiem odejmowania "<<a<<" - "<<b<<" jest różnica = "<<a-b;
      break;
    
      case '3':
      cout<<"  **********Dzielenie**********"<<endl<<endl;
      cout<<"Podaj pierwszą liczbę (dzielna): ";
      cin>>a;
      cout<<"Podaj drugą liczbę (dzielnik): ";
      cin>>b;
      if (b==0)
      cout<<endl<<"Nie dzielimy przez zero!";
      else 
      cout<<endl<<"Wynikiem dzielenia "<<a<<" / "<<b<<" jest iloraz = "<<a/b;
      break;
    
      case '4':
      cout<<"  **********Mnożenie**********"<<endl<<endl;
      cout<<"Podaj pierwszą liczbę (czynnik): ";
      cin>>a;
      cout<<"Podaj drugą liczbę (czynnik): ";
      cin>>b;
      cout<<endl<<"Wynikiem mnożenia "<<a<<" * "<<b<<" jest iloczyn = "<<a*b;
      break;
    
      case '5':
      cout<<"  **********Pierwiastkowanie**********"<<endl<<endl;
      cout<<"Wprowadź liczbę do pierwiastkowania: ";
      cin>>a;
      cout<<"Wprowadź stopień pierwiastka: ";
      cin>>b;
      cout<<endl<<"Pierwiastek "<<b<<" stopnia z liczby "<<a<<" = "<<pow(a, 1/b);
      break;
    
      case '6':
      cout<<"  **********Potęgowanie**********"<<endl<<endl;
      cout<<"Wprowadź podstawę: ";
      cin>>a;
      cout<<"Wprowadź wykładnik: ";
      cin>>b;
      cout<<endl<<"Liczba o podstawie "<<a<<" i wykładniku "<<a<<" = "<<pow(a, b);
      break;
     
      case '7':
      exit(0);
     }

    case '2':
	cout<<"  **********ZAMIANA WALUT**********"<<endl<<endl;
 	cout<<"1. Euro (EUR)"<<endl;
 	cout<<"2. Dolar Amerykański (USD)"<<endl;
 	cout<<"3. Frank Szwajcarski (CHF)"<<endl;
 	cout<<"4. Funt Brytyjski  (GBP)"<<endl;
 	cout<<"5. Jen (JPY)"<<endl;
 	cout<<"6. Korona Czeska (CZK) "<<endl;
 	cout<<"7. Lira Turecka (TRY) "<<endl;
 	cout<<"8. Rubel Rosyjski (RUB) "<<endl;
 	cout<<"9. Powrót"<<endl;
 	wybor2=getch();
 	system ("cls");
 	
 	switch (wybor2)
     {
 	  case '1':
 	  cout<<"  **********Euro**********"<<endl<<endl;
	  cout<<"1. PLN na EUR"<<endl;
	  cout<<"2. EUR na PLN"<<endl; 	
	  wybor3=getch();
	  system ("cls");
	  
	  switch (wybor3)
	   {
	  	case '1':
	  	cout<<"  **********PLN -> EURO**********"<<endl<<endl;
	  	cout<<"Wprowadź dowolną kwotę PLN do przekonwertowania na EURO: ";
	  	cin>>a;
	  	cout<<endl<<"Wprowadzona kwota PLN wynosi "<<euro0*a<<" EURO";
	  	break;
	  	
	  	case '2':
	  	cout<<"  **********EUR -> PLN**********"<<endl<<endl;
	  	cout<<"Wprowadź dowolną kwotę EURO do przekonwertowania na PLN: ";
	  	cin>>a;
	  	cout<<endl<<"Wprowadzona kwota EURO wynosi "<<euro1*a<<" PLN";
	  	break;
	    }
 	  	case '2':
 	  	cout<<"  **********Dolar amerykański**********"<<endl<<endl;
	    cout<<"1. PLN na USD"<<endl;
	    cout<<"2. USD na PLN"<<endl; 	
	    wybor4=getch();
	    system ("cls");
	    
	    switch (wybor4)
	   {
	    case '1':
		cout<<"  **********PLN -> USD**********"<<endl<<endl;
	  	cout<<"Wprowadź dowolną kwotę PLN do przekonwertowania na USD: ";
	  	cin>>a;
	  	cout<<endl<<"Wprowadzona kwota PLN wynosi "<<usd0*a<<" USD";
	  	break;
	  	
	  	case '2':
	  	cout<<"  **********USD -> PLN**********"<<endl<<endl;
	  	cout<<"Wprowadź dowolną kwotę USD do przekonwertowania na PLN: ";
	  	cin>>a;
	  	cout<<endl<<"Wprowadzona kwota USD wynosi "<<usd1*a<<" PLN";
	  	break;
	    }
    }
 }

 
 return 0;
}

Witam. Program jest niekompletny. Chodzi mi o to, że próbując włączyć program i przechodząc np do dodawania wyswietla mi sie nastepny switch... chciałbym aby po ukazniu wyniku pojawiła się opcja powrotu do menu głownego... Jest jakiś wgl pomysł aby móc powrócić np gdy wybrałem kalkulator powrót np klawiszem 5 do którego jest przypisany "powrót" do wczesniejszej strony bo mnie wyrzuca i konczy program. Oczekuje jakiś sugestii co do programu... ułatwien/porad jak by mozna prosić

komentarz 8 kwietnia 2021 przez VBService Ekspert (251,250 p.)
edycja 9 kwietnia 2021 przez VBService

Obliczanie ceny walut według Mnie tylko ma sens jak do Twojego programu wprowadzisz pobieranie kursu walut np.: ze strony pobieranie kursów walut oraz cen złota NBP Web API

2 odpowiedzi

+1 głos
odpowiedź 8 kwietnia 2021 przez fsfxvcxv Obywatel (1,160 p.)
Wedlug mnie powinienes te wszystkie switche zapisac w oddzielnych funkcjach ,aby w przyszłości było łatwiej nimi operowac i gdy to jest potrzebne korzystac z if ow
0 głosów
odpowiedź 9 kwietnia 2021 przez VBService Ekspert (251,250 p.)
edycja 9 kwietnia 2021 przez VBService

Propozycja  wink (na jeden "moduł", chyba sobie poradzisz jak dodać kolejne - lub kod naprowadzi Ciebie na inne rozwiązanie)

online

#include <iostream>
#include <locale.h>
#include <vector>
#include <math.h>

using namespace std;

void calculator();

int main()
{
    setlocale(LC_CTYPE, "Polish");
    char menu_choice;
    
    while (true)
    {
        cout << "***********MINI POMOCNIK**********\n\n"
             << "1. Kalkulator\n"
             << "2. Zamiana walut\n"
             << "3. Sprawdź czy podany rok jest przystępny\n"
             << "4. Ile dni ma wybrany miesiąc w danym roku\n"
             << "5. Zamiana jednostek czasu\n"
             
             << "\n0 - koniec programu\n"; 
         cin >> menu_choice;
        
        system("cls"); // system("clear") - no windows
        if (menu_choice == '0') break;

        switch (menu_choice)
        {
            case '1': calculator(); break;
        }
    }

    return EXIT_SUCCESS;
}

void calculator()
{
    vector<string> menu_title = { "", "Dodawanie", "Odejmowanie", "Dzielenie",
                                  "Mnożenie", "Pierwiastkowanie", "Potęgowanie" };
    int menu_choice;
    float a, b, result=0;
    
    while (true)
    {
        cout << "***********MENU KALKULATOR**********\n\n";
        for (int i=1; i<7; ++i) cout << i << ". " << menu_title[i] << "\n";
       
        cout << "\n0 - powrót do menu głównego\n"; 
         cin >> menu_choice;
        
        system("cls");
        if (menu_choice == 0) break;
        
        cout << "**********" << menu_title[menu_choice] << "**********\n\n";
        
        if (menu_choice >= 1 && menu_choice <=4)
        {
            cout << "Podaj pierwszą liczbę: "; cin >> a;
            cout << "   Podaj drugą liczbę: "; cin >> b;
            
            switch (menu_choice)
            {
                case 1: result = a + b; break;
                case 2: result = a - b; break;
                case 3: 
                    if (b == 0) cout << "Nie dzielimy przez zero!\n"; 
                     else result = a / b;
                    break;
                case 4: result = a * b; break;
            }
            
            cout << "Wynik: " << result;
        }
        else if (menu_choice == 5)
        {
            cout << "Wprowadź liczbę do pierwiastkowania: "; cin >> a;
            cout << "       Wprowadź stopień pierwiastka: "; cin >> b;
            cout << "Pierwiastek " << b << " stopnia z liczby " << a << " = " << pow(a, 1/b);
        }
        else if (menu_choice == 6)
        {
            cout << " Wprowadź podstawę: "; cin >> a;
            cout << "Wprowadź wykładnik: "; cin >> b;
            cout << "Liczba o podstawie " << a << " i wykładniku " << b << " = " << pow(a, b);
        }
        
        cout << "\n\n0 - powrót do menu\n";
         cin >> menu_choice;
        system("cls");
    }
}

Podobne pytania

0 głosów
1 odpowiedź 263 wizyt
0 głosów
2 odpowiedzi 135 wizyt
pytanie zadane 10 lutego 2018 w Inne języki przez Salaa1 Początkujący (460 p.)
0 głosów
1 odpowiedź 443 wizyt

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...