Oki. Sam się z tego nie wyplączę chyba.
#include<iostream>
#include<conio.h>
using namespace std;
class samochod{
private:
string marka,model;
int rocznik,pojemnosc,;
samochod *pierwszy;
samochod *nastepny;
public:
void dodaj_samochod(string marka, string model, int rocznik, int pojemnosc);
void wyswietl_calosc();
void zwolnij_pamiec();
samochod();
~samochod();
};
samochod::samochod(){
pierwszy=0;
nastepny=0;
}
samochod::~samochod(){
cout<<"\nzwolniono pamiec\n";
delete [] pierwszy;
delete [] nastepny;
}
void samochod::dodaj_samochod(string marka, string model, int rocznik, int pojemnosc){
samochod *nowy=new samochod;
nowy->marka=marka;
nowy->model=model;
nowy->pojemnosc=pojemnosc;
nowy->rocznik=rocznik;
if(pierwszy==0){
pierwszy=nowy;
}
else{
samochod *tmp=pierwszy;
while(tmp->nastepny!=0){
tmp=tmp->nastepny;
}
tmp->nastepny=nowy;
nowy->nastepny=0;
}
}
void samochod::wyswietl_calosc(){
if(pierwszy==0){
cout<<pierwszy->marka<<" "<<pierwszy->model<<" rocznik:"<<pierwszy->rocznik<<" pojemnosc:"<<pierwszy->pojemnosc<<endl;
}
else{
samochod *tmp=pierwszy;
while(tmp->nastepny!=0){
cout<<nastepny->marka<<" "<<nastepny->model<<" rocznik:"<<nastepny->rocznik<<" pojemnosc:"<<nastepny->pojemnosc<<endl;
tmp=tmp->nastepny;
}
}
}
int co_wykonac(){
int i;
cout<<"1 - dodaj samochod, 2 - wyswietl wszystko, 3 - zakoncz\n";
cin>>i;
return i;
}
void podaj_dane(string &marka, string &model, int &rocznik, int &pojemnosc){
cout<<"Podaj marke samochodu: ";
cin>>marka;
cout<<"Podaj model samochodu: ";
cin>>model;
cout<<"Podaj rocznik: ";
cin>>rocznik;
cout<<"Podaj pojemnosc: ";
cin>>pojemnosc;
}
int main(){
samochod car;
string marka, model;
int rocznik, pojemnosc;
enum dzialanie{dodaj=1, wyswietl, zakoncz};
dzialanie Czynnosc;
do{
Czynnosc=static_cast<dzialanie>(co_wykonac());
switch(Czynnosc){
case dodaj:
podaj_dane(marka,model,rocznik, pojemnosc);
car.dodaj_samochod(marka,model,rocznik, pojemnosc);
case wyswietl:
car.wyswietl_calosc();
break;
case zakoncz:
cout<<"\nKoniec programu\n";
break;
}
}
while(Czynnosc!=zakoncz);
getch();
return 0;
}
Co do listy starałem się brać przykład ze strony http://www.p-programowanie.pl/cpp/lista-jednokierunkowa-c/, aczkolwiek to co tam jest w strukturach, to ja przeniosłem do klasy, i stworzyłem metodę do wyświetlania zawartości obiektów, chociaż nie którzy mówią, że klasy nie służą do interakcji z użytkownikiem, ale nie wiem czy to jakiś błąd.