Rozwiązanie ćwiczenia dotyczącego tworzenia struktur

0

Zaprojektuj strukturę car zawierającą następujące informacje o samochodzie: markę jako tablicę znakową lub obiekt string, rok budowy jako liczbę całkowitą. Napisz program który spyta użytkownika o liczbę katalogowanych aut. Następnie za pomocą operatora new stwórz dynamiczną tablice struktur car, poproś użytkownika o podanie marki (może mieć więcej niż jedno słowo) oraz o rok. Należy zachować tu ostrożność, gdyż na zmianę odczytujemy łańcuchy znakowe i liczby. Na koniec wyświetl zawartości wszystkich struktur. Oto przykładowy przebieg sesji z programem:

Ile samochodów chcesz skatalogować? 2
Samochód #1:
Proszę podać markę: Hudson Hornet
Rok produkcji: 1952
Samochód #2:
Proszę podać markę: Kaiser
Rok produkcji: 1951
1952 Hudson Hornet
1951 Kaiser

Liczę na szybką odpowiedź.

0

Rozwiązania "ćwiczenia" raczej nie dostaniesz.
Powiedz lepiej z czym konkretnie masz problem, albo pokaż swój kod to podam Ci wskazówki (o ile temat nie poleci wcześniej do kosza).

0
#include <iostream>

struct car
{
	char nazwa[40];
	double rok;

};

int main()
{
	
	using namespace std;
	cout << "Ile samochodow chcesz skatalogowac? ";
	int size;
	cin >> size;
	car * ps;
    
	for (int a = 1; a <= size; a++)
	{
		
		cout << "Samochod #" << a << ": \n";
		cout << "Prosze podac marke: ";
		cin >> ps->nazwa;
		cout << "Rok produkcji: ";
		cin >> ps->rok;
	}
	
	cout << ps->rok << " " << ps->nazwa;
} 

Program nie wyświetla wszystkich struktur tylko ostatnią.

0

Nie alokujesz pamięci na samochody

zamień

car * ps;

na

car* ps = new car[size];

oraz:

for (int a = 1; a <= size; a++)

na

for (int a = 0; a < size; a++)

oraz po tej linii:

cout << ps->rok << " " << ps->nazwa;

dodaj:

delete [] ps;
return 0;

Poza tym w Twoim kodzie nigdzie nie wypisujesz informacji o żadnym samochodzie

0
 
#include <string.h>
#include <iostream>
#include <conio.h>

using namespace std;

struct car
{
string marka;
int rok;
}

int main()
{
int a;
car* hcar;
cout << "Ile chcesz skatalogowac: ";
cin >> a;
hcar = new car[a];
for(int i=0;i<a;i++)
{
cout << "Samochod #" << i << endl
<< "Podaj marke: ";
cin >> car[i].marka;
cout << "Podaj rok: ";
cin >> car[i].rok;
}
for(int i=0;i<a;i++)
{
cout << car[i].rok << " " << car[i].marka << endl;
}
delete hcar;
getchar();
return 0;
}

EDIT: zapomnialem o kwestii spacji ale to juz sobie sam napraw xd

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