If jest pomijane w pętli for.
Ostatnio zmodyfikowano 2014-02-25 18:06
Tym3k Temat założony przez niniejszego użytkownika |
If jest pomijane w pętli for. » 2014-02-25 14:35:22 #include <iostream> #include <string> #include <cstdlib> #include <conio.h>
using namespace std;
int ile;
struct Bar { int id_n; string nazwa; string rodzaj; float cena; } napoj[ 10 ];
int menu(); void wprowadz_napoje(); int informacje_o_napojach(); void wyswietl_napoje_na_litere(); int sredni_przedzial_cenowy(); void wyjscie();
int main() { wprowadz_napoje(); switch( menu() ) { system( "CLS" ); case 1: { break; } case 2: { switch( informacje_o_napojach() ) { system( "CLS" ); case 4: { wyswietl_napoje_na_litere(); break; } case 5: { sredni_przedzial_cenowy(); break; } } case 3: { wyjscie(); break; } } } getchar(); }
int menu() { int opcja; do { cout << "---Menu programu bar---" << endl; cout << "1. Wprowadz napoje" << endl; cout << "2. Wyswietl informacje o napojach" << endl; cout << "3. Wyjscie" << endl; cout << "wybierz 1,2 lub 3" << endl; cin >> opcja; system( "CLS" ); } while( opcja < 1 || opcja > 3 ); return opcja; }
void wprowadz_napoje() { cout << "ile napojow chcesz dodac do menu" << endl; cin >> ile; for( int i = 0; i < ile; i++ ) { cin.clear(); cin.sync(); napoj[ i ].id_n = i + 1; cout << "Wprowadz " << i + 1 << "napoj\n"; cout << "Podaj nazwe: "; cin >> napoj[ i ].nazwa; cout << "Podaj rodzaj: "; cin >> napoj[ i ].rodzaj; cout << "Podaj cene: "; cin >> napoj[ i ].cena; } } int informacje_o_napojach() { int opcja; do { cout << "4. Na jaka litere chcesz zobaczyc napoje" << endl; cout << "5. wyliczanie napoi ze sredniego przedzialu cenowego" << endl; cin >> opcja; cout << " wybierz opcje 4 lub 5" << endl; } while( opcja < 4 || opcja > 5 ); return opcja; }
void wyswietl_napoje_na_litere() { char litera; cout << "Wyswietlic wszystkie napoje zaczynajace sie od jakiej litery?" << endl; cin >> litera; for( int i = 0; i < ile; i++ ) { if( napoj[ i ].nazwa[ 0 ] == litera ) cout << napoj[ i ].nazwa << endl; } } int sredni_przedzial_cenowy() { int srednia, suma; for( int i = 0; i < ile; i++ ) { suma = suma + napoj[ i ].cena; } srednia = suma / ile; cout << "srednia cena napojow wynosi" << srednia << endl;; for( int i = 0; i < ile; i++ ) { if( napoj[ i ].cena < srednia + 10 || napoj[ i ].cena > srednia - 10 ) cout << i + 1 << "."; cout << napoj[ i ].nazwa << " kosztuje " << napoj[ i ].cena << endl; } }
void wyjscie() { char wyjscie; cout << "Aby wyjsc z programu, wcisnij Esc " << endl; wyjscie = getch(); if( wyjscie == 27 ) cout << "Dziekuje za skorzystanie z programu " << endl; }
Jak wybieram aby pokazał zaczynające się od danej litery napoje to potem oblicza też średnią, ktoś widzi dlaczego? |
|
Wasilek |
» 2014-02-25 15:09:47 Polecam stosowanie {} :) |
|
Tym3k Temat założony przez niniejszego użytkownika |
» 2014-02-25 15:11:27 case 2: { switch( informacje_o_napojach() ) system( "CLS" ); case 4: { wyswietl_napoje_na_litere(); break; } case 5: { sredni_przedzial_cenowy(); break; } break; }
Ale chyba jest dobrze zamknięte? |
|
leon_w |
» 2014-02-25 15:13:53 No chyba nie. case 2 |
|
Tym3k Temat założony przez niniejszego użytkownika |
» 2014-02-25 15:16:21 int sredni_przedzial_cenowy() { int srednia, suma; for( int i = 0; i < ile; i++ ) { suma = suma + napoj[ i ].cena; } srednia = suma / ile; cout << "srednia cena napojow wynosi" << srednia << endl;; for( int i = 0; i < ile; i++ ) { if( napoj[ i ].cena < srednia + 10 || napoj[ i ].cena > srednia - 10 ) cout << i + 1 << "."; cout << napoj[ i ].nazwa << " kosztuje " << napoj[ i ].cena << endl; } }
Powie mi ktoś dlaczego For omija warunek IF? i dla np. 1. 50 zł 2. 75 zł 3. 100 zł pokaże mi wszystkie a nie tylko 75 ? bo ma wtedy pokazać z przedziału (65-85) |
|
SeaMonster131 |
» 2014-02-25 18:06:57 Zeruj zmienne przy deklaracji oraz pomyliłeś || z &&. |
|
« 1 » |