[c++] tworzenie menu do funkcji

mam 3 programy w c++ i chciałbym to połączyć poprzez utworzenie menu np: wćiśnij 1 a otworzy się 1 program oto programy:

#include 

#include 


float a;

float b;

main()

{

cout <<"======================================================\n";

cout <<"====== Funkcja liniowa ========\n";

cout <<"====== y=ax +b ========\n";

cout <<"======================================================\n";

cout <<"wprowadz a = \n";

cin >>a;

cout <<"wprowadz b = \n";

cin >>b;

cout <<"-------------------------------------------------------\n";

if (a!=0 && b!=0)

{

cout <<" Miejsca zerowe dla funkcji y="<
cout <<"-----------------------------------------------------\n";

cout <<"-miejsce przeciecia osi x -> x="<<-b/a<<"; y=0" <
cout <<"-miejsce przeciecia osi y -> x=0 ; y="<
}

if (a==0 && b!=0)

{

cout <<"Wykres dlafunkcji y="<
cout <<"-------------------------------------------------\n";

cout <<"to linia prosta, rownolegla do osi x i przecina os y w miejscu"<
}

if (a==0 && b==0)

{

cout <<"Dla funkcji w postaci y="<
cout <<"---------------------------------------------------------\n";

cout <<"zawsze przyjmowana jest wartosc = 0 "<
cout <<"i jest to prosta pokrywajaca sie z osia x "<
}

if (a!=0 && b==0)

{

cout <<" Funkcja w postaci y="<
cout <<"----------------------------------------------------------\n";

cout <<"Prosta przechodzi przez poczatek ukladu wspolrzednych \n";

cout <<"czyli miejsce przeciecia osi to x=0; y="<
}

getch();

}


[/code]

[code]#include #include #include float a; float b; float c; float delta; main() { cout<<“OBLICZANIE PIERWIASTKOW KWADRATOWYCH”< cout<<"\n"; cout<<“wprowadz a= \n”; cin >>a; cout<<“wprowadz b= \n”; cin >>b; cout<<“wprowadz c= \n”; cin >>c; delta=pow(b,2)-4*a*c; if (delta>0) { cout<<“Delta=”< cout<<“x1=”<<(-b-sqrt(delta))/2*a< cout<<“x2=”<<(-b+sqrt(delta))/2*a< } if (delta==0) { cout<<“Delta=”< cout<<“x1=x2=”<<-b/2*a< } if(delta<0) { cout<<“Delta=”< } getch(); }

#include 

#include 

#include 

float alfa;

float skok;

float zakres;

const float PI=3.14;

main()

{

cout<<"program oblicza wartosci funkcji trygonometrycznych\n";

cout<<"sinus alfa, cosinus alfa, tangens alfa\n";

cout<<"w zadanym zakresie ( 0 - 360 ) w dowolnych odstepach katowych:\n";

cout<<"podaj co ile stopni ma byc wyliczana wartosc funkcji\n";

cin>>skok;

cout<<"podaj zakres obliczen ( od 0 do 360 stopni ):\n";

cin>>zakres;

for (alfa = 0; alfa <= zakres; alfa +=skok)

{

cout<<"alfa="<" <<"sinus alfa ="<
cout<<"alfa="<" <<"cosinus alfa ="<
cout<<"alfa="<" <<"tangens alfa ="<
}

getch();

}
  1. Staraj się nie nadużywać zmiennych globalnych, w tych programach ich użycie jest absolutnie nie uzasadnione.

  2. Temat menu już był TU

  3. Nie mieszaj synchronicznego wprowadzenia (getch) z asynchronicznym (cin), zamiast getch(); użyj: cin.sync(); cin.get(); przy tym wyeliminujesz conio.h - jest nieprzenośne.

  4. W C++ warto używać endl zamiast “\n” aby nie stracić kompatybilności.

  5. Po wprowadzeniu liczb warto sprawdzić czy użytkownik nie wpisał przypadkiem literek zamiast liczby

    if(cin>>skok)

    {

    cout<<"Poprawnie wprowadzono liczbe: "<
    

    }

    else

    {

    cin.clear();
    
    cin.sync();
    
    cout<<"blond wprowadzenie"<
    

    }

Proponuję użycie switch … case

a mógłby ktoś pokać przykład tego menu?

Podałem ci linka, tam jest przykład.

rozumiem że chodziło ci o ten fragmęt

int x;

scanf("%d", &x);

switch(x)

{

  case 1:

    printf("jeden");

    break;

  case 2:

    printf("dwa");

    break;

  default:

    printf("coś innego");

    break;

}

bo pozostałe to czarna magia jak dla mnie :slight_smile: ale niestety niemieliśmy jeszcze funkcji printf (w szkole) chodzi mi o proste menu z wykorzystaniem case PROSZĘ O POMOC – Dodane 01.03.2011 (Wt) 18:29

printf - funkcja wyświetlania ciągu znaków w postaci sformatowanej. dlaczego tak:“scanf(”%d", &x); - bowiem scanf pobiera zmienną gdzie %d to typ zmiennej, którą pobierasz (integer, czy tam dec).

Co do twojego pytania, zmień programy na funkcje i zrób coś w stylu poprzednika. Tyle że używasz strumieni.

int x;cout"co chcesz zrobic";cin x;x)

czyli w których miejscach powinienem umieścić kody programów za np: jeden(kod 1porgramU); ???

jeden(); itd to wywołanie funkcji :stuck_out_tongue:

jak już koniecznie chcesz to zamień to na kod programu, btw w moim poprzednim kodzie nie ma klamry na końcu switcha a ma być :roll: