Obsługa dodawania nieskończonej ilości struktur do tablicy. Jak to zrobić?

0

Mam zrobić program-sklep z funkcjami: podaj ile masz gotówki itd... (reszta w kodzie)
Mam problem z obsługą dodawania produktów. Nie wiem jak mam zrobić aby produkty dodawały się w nieskończoność. (tzn wpisuje: mleko 3.25, banan 1.00, ryba 10.50 itd. co sobie tylko wymyślę)
Dodatkowo mam problem z obsługą wyświetlania tego co dodane.
Myślę że w obu przypadkach będzie potrzebna jakaś tablica+ pętle for, ale nie wiem za bardzo jak to zrobić.
Oto kod programu:

#include <iostream>
#include <string>
#include <locale.h>
#include <windows.h>
using namespace std;

struct item
{
    string name;
    double price;

};

int additem()
{
	item przedmiot;
	cout<<"Podaj nazwę produktu:"<<endl;
	cin>>przedmiot.name;
	cout<<"Podaj cenę produktu:"<<endl;
	cin>>przedmiot.price;
}

void showitem(item przedmiot)
{
	cout<<"Obecnie w koszyku znajdują się: "<<endl;
	cout<<przedmiot.name<<"*****"<<przedmiot.price<<endl;
}


int main(int argc, char** argv) 
{
	setlocale( LC_ALL, ""); 
	int wybor=0; //wybór w menu
	double cash=0; //stan konta. gotówka
	while(wybor<6)
	{	
		cout<<"Biedronka: Codziennie niskie ceny. :) "<<endl;
		cout<<""<<endl;
		cout<<"1. Podaj saldo konta."<<endl; //użytkownik podaje ile pieniędzy posiada -gotowe
		cout<<"2. Dodaj produkt do koszyka."<<endl;  //użytkownik podaje nazwę i cenę produktu- nieskończenie wiele(lub np. 1000)
		cout<<"3. Wyświetl koszyk."<<endl; //wyświetlają się wszystkie dodane produkty
		cout<<"4. Wyświetl stan konta."<<endl; //wyświetlenie stanu konta gotowe -gotowe
		cout<<"5. Kup."<<endl;
		cout<<""<<endl;
		cin>>wybor;
		switch(wybor)
		{
		case 1:
			system("cls");
			cout<<"Podaj ilość pieniędzy jaką posiadasz: "<<endl;
			cin>>cash;
		   	break;
		case 2:
			additem();
		    break;
		case 3:
			showitem();
		    break;
		case 4:
			system("cls");
			cout<<"Aktualnie posiadasz: "<<cash<<" zł"<<endl;
		    break;
		default:
		    break;
		}
	}
	
	return 0;
}
1

Tablica miałaby stały rozmiar więc nie jest to dobre rozwiązanie bo nie wiadomo ile tych elementów będzie. W takim wypadku najlepiej użyć do tego std::vector.

2

Wykorzystaj dynamiczną tablicę std::vector.

Mam zrobić program-sklep z funkcjami: podaj ile masz gotówki itd... (reszta w kodzie)

Tobie nie chce się tłumaczyć problemu, dlaczego my mamy tracić czas na analizę kodu?

0

Nie wiem jak się za to zabrać, na wtorek mam do oddania 2 projekty, utknąłem, nie wiem co robić dalej :/.
Doceniam Waszą pomoc, ale nie wiem jak ją wykorzystać. Co do vectora to potrafię jedynie wrzucić coś cinem, wyciągnąć coutem i to jeszcze jak znam indeks. Tutaj sprawa jest bardziej złożona, muszę w rzucać konkretne dane do vectora, nie znając dokładnych indeksów, co za tym idzie nie potrafię wyciągnąć tych danych. Wiem że może się wydawać to irytujące, ale po prostu nie umiem i już. Pewnie w przyszłości się tego nauczę, ale na razie dno... :/

1

Ale co z tym faktem mamy zrobić?
std::vector to najprostsza opcja, w linku który podałem masz i dodawanie danych do std::vector i iteracje przez wszystkie elementy. Na tej samej stronie znajdziesz też grupę funkcji "Element access" która opisuje co dana metoda robi a jak w nią klikniesz to masz przykład użycia.

0

Z opisu wynika, że potrzebny vector<item>.
@atmal dał link do przejrzenia.
Do szukania konkretnych danych musisz zdefiniować operator==, lub ręcznie porównywać dane w kontenerze z szukanymi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1