Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z wynikiem [ Tablica ]


Rekomendowane odpowiedzi

Opublikowano

Czesc 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 &;
void shortnotes(fstream &c);
 
int main() {
    int ID[4];
    int cena[3] = { 15,10,2 };
    int nrstolika;
    int godzinazamowienia;
    int liczba;
    string imie;
    int z;
    int a,b,c,d,e,f;
 
 
 	int tab[4];
    int glownacena[5];   // cena za danie glowne
    int desercena[5];
    int dodatkicena[5];
    int napojebezcena[5];
    int napojealkocena[5];
 
    char glowne[5][50] = { "Zupa Pomidorowa ", "Rosol ", "Ziemniaki + schabowy ", "Ryz + dewolaj ", "Dowolne mieso + ryz / ziemniaki + surowka " };             // Tablice na dania
    char desery[5][50] = { "lody ", " szarlotka ", " galaretka z lodami ", "gofer z owocami ", " puchar szefa kuchni + ciastko" };
    char dodatki[5][50] = { "chleb ", " majonez,ketchup,musztarda ", " smalec ", " surowka ", " frytki" };
    char napojebezalkoholowe[5][50] = { "woda ", " fanta ", " mirynda ", " pepsi", " sok pomaranczowy" };
    char napojealkoholowe[5][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;
            tab[0]=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" << 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 << tab[0] << endl;
    cout << tab[1] << endl;
    cout << tab[2] << endl;
    cout << tab[3] << endl;
    cout << tab[4] << endl;
	 //cout << f;
	 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();
}

Problem polega na tym że w tablicy

tab[ od 0 do 4 ] powinien być wynik 0 a w tablicy tab [4 ] mynam dziwny wynik

Jakies sugestie

Opublikowano

Tablice indeksujesz od zera, ale rozmiar ich podajesz normalny. Tablica tab[4] ma elementy od tab[0] do tab[3].


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

Dzięki pomgogło, mam jednak jeszcze pytanie

 

Aktualnie jeżeli wybierzemy case 1, i podamy jakies danie zapisuje sie ono w tab[0], jeżeli po jakimś czasie wrócimy do case 1, wybierając danie to się nam ono podmienia.

I to jest logiczne.

Moje pytanie - Co zrobic aby po powrocie do case 1 było wiadomo że predzej zamówiłem to, a teraz zamawiam to.

Próbowałem z jakims forem i dodać to do tablicy innej ale nie pykło.

 

KOD - http://wklej.org/id/3110633/

Opublikowano

Kod podaj w kodzie na stronie.

 

Trochę ciężko zrozumieć to pytanie, aczkolwiek spróbuję. Chodzi ci może o linijkę:

            tab[0]=glownacena[ID[0]];

Jeśli chcesz zachować zmienną tab[0], to może wcześniej przypisz ją do innej zmiennej, jakiejś pre:

//------gdzies w deklaracji zmiennych ----
int pre_tab;

//------ i w kodzie switcha ----

pre_tab = tab[0];
tab[0] = glownacena[ID[0]];


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...