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

Problem z wartoscia w tablicy

Object Storage Arubacloud
0 głosów
166 wizyt
pytanie zadane 14 maja 2017 w C i C++ przez kawainka Początkujący (380 p.)
edycja 14 maja 2017 przez kawainka

Cześć mam taki oto kod

 

#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
#include <cstdio>
 
using namespace std;
 
void notes(fstream &a); // FUNKCJA ZAPISUJĄCA DO PLIKU NOTATKI
void wypisz(fstream &b);
void shortnotes(fstream &c);
 
int main() {
    int ID[5] = {0,0,0,0,0};
    int cena[3] = { 15,10,2 };
    int nrstolika;
    int godzinazamowienia;
    int liczba;
    string imie;
    int z;
    int f;
    int g;


    int tab[5] = {0,0,0,0,0};
    int tabg[5] = {0,0,0,0,0};
    int glownacena[5];   // cena za danie glowne
    int desercena[5];
    int dodatkicena[5];
    int napojebezcena[5];
    int napojealkocena[5];
 
    char glowne[6][50] = { "", "Zupa Pomidorowa ", "Rosol ", "Ziemniaki + schabowy ", "Ryz + dewolaj ", "Dowolne mieso + ryz / ziemniaki + surowka " };             // Tablice na dania
    char desery[6][50] = { "", "lody ", " szarlotka ", " galaretka z lodami ", "gofer z owocami ", " puchar szefa kuchni + ciastko" };
    char dodatki[6][50] = { "","""chleb ", " majonez,ketchup,musztarda ", " smalec ", " surowka ", " frytki" };
    char napojebezalkoholowe[6][50] = {"", "woda ", " fanta ", " mirynda ", " pepsi", " sok pomaranczowy" };
    char napojealkoholowe[6][50] = { "", "wino biale ", " wino ciemne", " piwo ", " wodka", " Whisky" };
 
 
 
    for (int i = 0; i<5; i++) {
        glownacena[i] = cena[1] + 5 * 0.5 * i;
        // cout << " Cena za danie : "<< glowne[i] << " wynosi  "<< glownacena[i] << endl;
    }
    for (int i = 0; i<5; i++) {
        desercena[i] = cena[2] + 5 * 0.5 * i;
        //cout << " Cena za deser : "<< desery[i] << " wynosi  "<< desercena[i] << endl;
    }
 
    for (int i = 0; i<5; i++) {
        dodatkicena[i] = cena[3] + 5 * 0.5 * i;
        //cout << " Cena za dodatek : "<< dodatki[i] << " wynosi  "<< dodatkicena[i] << endl;
    }
    for (int i = 0; i<5; i++) {
        napojebezcena[i] = cena[2] + 5 * 0.5 * i;
        //cout << " Cena za napoj : "<< napojebezalkoholowe[i] << " wynosi  "<< napojebezcena[i] << endl;
    }
    for (int i = 0; i<5; i++) {
        napojealkocena[i] = cena[3] + 5 * 0.5 * i;
        //cout << " Cena za alkohol : "<< napojealkoholowe[i] << " wynosi  "<< napojealkocena[i] << endl;
    }
 
 
    //  cout << "Program dla kelnera 05-09-2017" << endl;
    //  cout << "Daniel Pawlak" << endl;
 
    //  cout << "Podaj nr stolika : ";
    //  cin  >> nrstolika;
    //  cout << "Podaj godzine przyjecia zamowienia ( GGMM ) : "<< endl;
    //  cin  >> godzinazamowienia;
 
    cout << "Menu wersja testowa 0.1" << endl << endl;
    cout << "1.  Dania Glowne" << endl;
    cout << "2.  Desery" << endl;
    cout << "3.  Dodatki" << endl;
    cout << "4.  Napoje Bezalkoholowe" << endl;
    cout << "5.  Napoje Alkoholowe" << endl;
    cout << "6.  Uwagi " << endl;
    cout << "7.  Koniec zamowienia" << endl << endl;
 
    fstream zapis;
 
    do {
    z:
        cout << "Podaj liczbe: ";
        if (!(cin >> liczba)) {
            cout << "Wlasnie straciles klienta";
            return 0;
        }
        cout << "" << endl << endl;
 
 
        switch (liczba) {
        case 1:
 
 
            cout << "Dania Glowne" << endl;
            cout << "Podaj ID zamowienia : ";
            cin >> ID[0];
 
 
            cout << "Zamowiono " << glowne[ID[0]] << "  -   Cena To : " << glownacena[ID[0]] << endl << endl;
            tabg[1]=glownacena[ID[0]];
            if (tabg[1] > 0)
            {
            	tabg[2] = glownacena[ID[0]];
			}
            break;
        case 2:
 
            cout << "Desery" << endl;
            cout << "Podaj ID zamowienia : ";
            cin >> ID[1];
            cout << "Zamowiono " << desery[ID[1]] << "  -   Cena To : " << desercena[ID[1]] << endl << endl;
            tab[1] = desercena[ID[1]];
            break;
        case 3:
            cout << "Dodatki" << endl;
            cout << "Podaj ID zamowienia : ";
            cin >> ID[2];
            cout << "Zamowiono " << dodatki[ID[2]] << "  -   Cena To : " << dodatkicena[ID[2]] << endl << endl;
            tab[2] = dodatkicena[ID[2]];
            break;
        case 4:
            cout << "Napoje Bezalkoholowe" << endl;
            cout << "Podaj ID zamowienia : ";
            cin >> ID[3];
            cout << "Zamowiono " << napojebezalkoholowe[ID[3]] << "  -   Cena To : " << napojebezcena[ID[3]] << endl << endl;
           tab[3]=  napojebezcena[ID[3]];
            break;
        case 5:
            cout << "Napoje Alkoholowe" << endl;
            cout << "Podaj ID zamowienia : ";
            cin >> ID[4];
            cout << "Zamowiono " << napojealkoholowe[ID[4]] << "  -   Cena To : " << napojealkocena[ID[4]] << endl << endl;
            tab[4] = napojealkocena[ID[4]];
            break;
        case 6:
            cout << "Uwagi" << endl;
            notes(zapis); // WYWOŁANIE FUNKCJI
            break;
        case 7:
            cout << "Koniec zamowienia (dodatkowe uwagi) : " << endl;
            break;
        default:
            cout << "Chyba cos poszlo nie tak ?" << endl;
            goto z;
        }
    } while (liczba != 7);
 	
 	shortnotes(zapis);
    wypisz(zapis);
    f = tab[0] + tab[1] + tab[2] + tab[3] + tab[4];
  
  	 
  		cout << tabg[1];
  		cout << tabg[2];
	// cout << f << " Zloty";
	 cout << "zamo" <<  glowne[ID[0]] << desery[ID[1]] << dodatki[ID[2]] << napojebezalkoholowe[ID[3]] <<  napojealkoholowe[ID[4]];
	 remove("zapis.txt");
 
    return 0;
}
 
void notes(fstream & zapis) {
    zapis.open("zapis.txt", ios::app);
    string test;
    cout << "Podaj Uwagi do produktow " << endl;
    cin.get();
    getline(cin, test);
 
    zapis << test << endl;
    zapis.close();
}
void wypisz(fstream & zapis) {
    string linia;
 
    zapis.open("zapis.txt", ios::in);
    if (zapis.good() == true) {
        while (!zapis.eof()) {
            getline(zapis, linia);
            cout << linia << endl; //wyświetlenie linii
        }
    }
    zapis.close();
}



void shortnotes(fstream & zapis) {
    zapis.open("zapis.txt", ios::app);
    string test;
    zapis << "Zamowienie kosztuje ";
    zapis.close();
}


 

Chodzi mi tokładnie o te fragmenty

 

int ID[5] = {0,0,0,0,0};
.
.
.
int tabg[5] = {0,0,0,0,0};
.
.
. case 1:
 
 
            cout << "Dania Glowne" << endl;
            cout << "Podaj ID zamowienia : ";
            cin >> ID[0];
 
 
            cout << "Zamowiono " << glowne[ID[0]] << "  -   Cena To : " << glownacena[ID[0]] << endl << endl;
            tabg[1]=glownacena[ID[0]];
            if (tabg[1] > 0)
            {
            	tabg[2] = glownacena[ID[0]];
			}
            break;

.
.
.
.
cout << tabg[1];
  		cout << tabg[2];


Ktoś mi powie czemu tabg[1] = tabg[2]

I jak zrobić aby wartości były inne

 

@@

Doszedłem do tego czemu to jest równe temu, ale pytanie jak zrobić aby tabg[1] = cenie podanej w 1 odwiedzinach case 1

a tabg[2] = cenie podanej w 2 odwiedzinach case 1

 

@@

Przerobiłem na coś takiego

 

case 1:
 
 
            cout << "Dania Glowne" << endl;
            cout << "Podaj ID zamowienia : ";
            if (tabg[1] > 0)
            {
            	tabg[2] = glownacena[ID[0]];
            
			}
            cin >> ID[0];
 
 
            cout << "Zamowiono " << glowne[ID[0]] << "  -   Cena To : " << glownacena[ID[0]] << endl << endl;
            tabg[1]=glownacena[ID[0]];
            cout <<" to jest wartosc tabg 1 " << tabg[1] << endl;
             cout <<" to jest wartosc tabg 2 " << tabg[2] << endl;
            
            break;

 

Jednak w 2 turze wartosc tabg1 jest inna jak w pierwszej

1 odpowiedź

0 głosów
odpowiedź 14 maja 2017 przez Wiciorny Ekspert (270,150 p.)
 tabg[1] = tabg[2]  

Jest przypisaniem?  operator "=" przypisuje do obiektu tabg[1] - element z tabg[2]. 

Nie wiem czy chodziło Ci o porównanie, czy o co dokładnie?  Rozwiń swoją myśl. 

tabg[1]=glownacena[ID[0]]; // przypisujesz cene z pola w tablicy ID[0]

            if (tabg[1] > 0)
            {
                tabg[2] = glownacena[ID[0]]; // taka sama cena co dla tabg[1] ? 
            }
            break;

Warunek IF zawsze jest prawdziwy, bo cena jest większa od 0 Może dlatego wartości są te same? 

komentarz 14 maja 2017 przez kawainka Początkujący (380 p.)
 case 1:
 
 
            cout << "Dania Glowne" << endl;
            cout << "Podaj ID zamowienia : ";
            if (tabg[1] > 0)
            {
            	tabg[2] = glownacena[ID[0]];
            
			}
            cin >> ID[0];
 
 
            cout << "Zamowiono " << glowne[ID[0]] << "  -   Cena To : " << glownacena[ID[0]] << endl << endl;
            tabg[1]=glownacena[ID[0]];
            cout <<" to jest wartosc tabg 1 " << tabg[1] << endl;
             cout <<" to jest wartosc tabg 2 " << tabg[2] << endl;
            
            break;

 

Mam coś takiego i to działa tak jak chce

Jednak nie mogę teraz dodać ceny 3 obiektu

Próbuje, ale przypisuje mi inna cene np z tab 1 albo tab2

 

Chodzi mi to  że wchodz w case 1 wybieram 1 potrawe

i wrzucam cene to tagb[1] i tak robie 3x i potem mam jakis wynik dla tabg[1-3]

 

Podobne pytania

0 głosów
2 odpowiedzi 686 wizyt
–1 głos
1 odpowiedź 180 wizyt
pytanie zadane 28 czerwca 2017 w JavaScript przez Bartlomiej Bywalec (2,480 p.)
+1 głos
3 odpowiedzi 196 wizyt
pytanie zadane 21 października 2016 w C i C++ przez thekibi27 Bywalec (2,110 p.)

92,573 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...