agli informatici del forum...

finx

Puuullluuupp!!!!!
c'è qualcuno che sa programmare in c++?
ho un po di noie con un programma per un esame e non riesco a venirne fuori.
 
ciao!! x caso fai l'università bicocca?? io non riesco a dimenticare quella carogna del mio prof che si divertiva a mettere degli esami sempre + difficili... c'è gente nella mia uni a cui manca solo l'esame d'informatica x laurearsi...
sarà difficile che riesca ad aiutarti ma se vuoi dimmi il testo..
 
non faccio informatica ma fisica.
il programma l'ho scritto praticamente tutto solo che vorrei usare un vector creato nel main in una classe (o meglio ho bisogno di utilizzare size e count nella classe) e non ho idea di come fare a passarglielo.
si può passare direttamente o devo passargli una reference? e in quel caso posso lo stesso usare size e count?
lo so che è una menata ma voglio tenere la dichiarazione del vector nel main, non mi piace dover mettere mano ancora alle classi che ho scritto se voglio aggiungere qualche pezzo al programma.
al limite se non ne vengo fuori creo un altra classe che gestisce il vector e che mi restituisce tutto quello che voglio sapere.
 
ciao!! x caso fai l'università bicocca?? io non riesco a dimenticare quella carogna del mio prof che si divertiva a mettere degli esami sempre + difficili... c'è gente nella mia uni a cui manca solo l'esame d'informatica x laurearsi...
.

ma alla facoltà d'economia per caso? Anche un mio amico è stato più di un anno con solo quell'esame sul groppone, certo quando ho letto il testo però mi son messo a ridere... altro che difficile, noi (ragioneria) quei programmini li facevamo alle superiori!
 

.

non faccio informatica ma fisica.
il programma l'ho scritto praticamente tutto solo che vorrei usare un vector creato nel main in una classe (o meglio ho bisogno di utilizzare size e count nella classe) e non ho idea di come fare a passarglielo.
si può passare direttamente o devo passargli una reference? e in quel caso posso lo stesso usare size e count?
.

posta il codice......
 
Codice:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

class Automobile {
	public:
		Automobile() {};
		virtual ~Automobile() {};
		virtual int numposti();
		virtual int numporte();
		virtual string nome();
		virtual string color();
		virtual bool accendisigari();
		virtual bool radio();
};

class Panda : public Automobile {
	public:
		Panda (int numposti=4, int numporte=3, string nome="panda", string color="grigia", bool accendisigari=true, bool radio=false) {
			_numposti=numposti;
			_numporte=numporte;
			_nome=nome;
			_color=color;
			_accendisigari=accendisigari;
			_radio=radio;
			}
		~Panda() {};
		void changecolor(string c) {_color=c;}
		virtual int numposti() {return _numposti;}
		virtual int numporte() {return _numporte;}
		virtual string nome() {return _nome;}
		virtual string color() {return _color;}
		virtual bool accendisigari() {return _accendisigari;}
		virtual bool radio() {return _radio;}

	private:
		int _numposti;
		int _numporte;
		string _nome;
		string _color;
		bool _accendisigari;
		bool _radio;
};

class Uno : public Automobile {
	public:
		Uno (int numposti=4, int numporte=5, string nome="uno", string color="grigia", bool accendisigari=true, bool radio=true) {
			_numposti=numposti;
			_numporte=numporte;
			_nome=nome;
			_color=color;
			_accendisigari=accendisigari;
			_radio=radio;
			}
		~Uno() {};
		void changecolor(string c) {_color=c;}
		virtual int numposti() {return _numposti;}
		virtual int numporte() {return _numporte;}
		virtual string nome() {return _nome;}
		virtual string color() {return _color;}
		virtual bool accendisigari() {return _accendisigari;}
		virtual bool radio() {return _radio;}

	private:
		int _numposti;
		int _numporte;
		string _nome;
		string _color;
		bool _accendisigari;
		bool _radio;
};


class Concessionario {
	public:
		Concessionario(string colore="grigia", int numcartot=0, int numcarcolor=0, //qui passare vauto) {
			_vauto=vauto;
			_colore=colore;
			_numcartot=numcartot;
			_numcarcolor=numcarcolor;
			;}
		~Concessionario() {};
		int numcartot() {
			_numcartot=_vauto.size();
			return _numcartot;
		}
		int numcarcolor(string c) {
			_colore=c;
			_numcarcolor=count(_vauto.begin(), _vauto.end(), _vauto.color(_colore));
			return _numcarcolor;
		}
		
	private:
		vector <Automobile> _vauto; //????
		int _numcartot;
		int _numcarcolor;
		string _colore;
};
				
int main() {
	int a,b,i;
	string c,f;
	vector<Automobile> vauto;
	cout<<"quante auto creo? "<<endl;
	cin>>a;
	Panda p1;
	Uno u1;
	Concessionario z(v);

	for (i=0; i<a; i++) {
		cout<<"scegliere tipo di auto:"<<endl<<"1-->panda base"<<endl<<"2-->panda color"<<endl<<"3-->uno base"<<endl<<"4-->uno color"<<endl;
		cin>>b;
		if (b>0, b<=4) {
			if (b=1) {vauto.push_back(p1);}
			if (b=3) {vauto.push_back(u1);}
			if (b=2) {
				cout<<"che colore vuoi? "<<endl;
				cin>>c;
				p1.changecolor(c);
				vauto.push_back(p1);
			}
			if (b=4) {
				cout<<"che colore vuoi? "<<endl;
				cin>>c;
				u1.changecolor(c);
				vauto.push_back(u1);
			}
		}
		else {
			cout<<"errore, numeri validi tra 1 e 4"<<endl;
			exit;
		}
	}
	cout<<"totale auto-->"<<z.numcartot()<<endl;
	cout<<"che colore vuoi cercare? "<<endl;
	cin>>f;
	cout<<"totale auto "<<f<<"-->"<<z.numcarcolor(f)<<endl;
  
return 0;
}
il programma dovrebbe permettermi di creare almeno 2 diversi modelli di automobile (panda e uno) con numero posti, numero porte colore e accessori diversi e poi restituirmi il numero di auto totali e il numero di auto di un determinato colore.
quello che stavo cercando di fare era usare count nel vector di auto per cercare tutte le auto di un determinato colore.
a parte che non sono sicuro che si possa fare (ma al limite associo alla stringa colore un numero cosi lo posso fare) come faccio a passare alla classe "concessionario" il vect "vauto" che ho creato nel main?

scusate se il codice non è commentato, gran brutta abitudine, dopo lo commento è che ora sono alle prese con l'altro programma per l'esame che è un po più semplice.
sicuramente avrò fatto un casino della malora :( :( :(
 
ma alla facoltà d'economia per caso? Anche un mio amico è stato più di un anno con solo quell'esame sul groppone, certo quando ho letto il testo però mi son messo a ridere... altro che difficile, noi (ragioneria) quei programmini li facevamo alle superiori!

facoltà: economia.. corso di studi: economia delle banche.. se a te piace informatica e sei appassionato in questo campo o magari ci lavori posso capire che sia una banalità, anche io avendo fatto bene informatica alle superiori non ho avuto problemi, anche se x me il livello dell'esame dell'uni era molto superiore rispetto a ragioneria (forse io avevo un prof diverso dal tuo amico).
il discorso è che nel mio corso un esame del genere è inutile xkè so già che in futuro non mi servirà e mi incazzo quando sento amici in altre uni che hanno al massimo in esame l'uso del pacchetto office
 
chi?
io no di sicuro dato che nemmeno ce l'ho un libro di C.
tutta farina del mio sacco (e infatti si vede che è un casino :lol:)
 
si vediamo un po' io so programmare decentemente in c++.. ma vedo di cavarmela grazie alla sapienza che ho in java

se ti sente un c++ programmer ti riga gli sci...

comunque finx avendo dichiarato come private il vector del concessionario ti dovresti creare un metodo nella classe per gestire il vector, quindi usare quello quando fai il push senza appoggiarti al vauto creato nel main.
 
ok è più o meno quello che mi era venuto in mente di fare adesso anche se preferivo fare in un altro modo.
finche faccio programmi più fisici o matematici non ho problemi ma con queste stupidate mi perdo subito.
grazie mille zoidberg! :D

comunque kapa le parti che sembrano "copiate male" sono proprio quelle che mi danno problemi dato che non avendo mai fatto una cosa del genere prima di ieri vado a tentativi, è pseudocodice non codice serio va be che è colpa mia che non l'ho commentato ma credevo che fosse chiaro...
 
Questa consente una modifica minima

class Concessionario {
public:
Concessionario(vector<Automobile>& vauto, string colore="grigia", int numcartot=0, int numcarcolor=0) {
_vauto=vauto;
_colore=colore;
_numcartot=numcartot;
_numcarcolor=numcarcolor;
;}
...

// nel main dichiarare Concessionario z(vauto);

In un programma reale è un approccio da non usare. L' istanza della classe Concessionario conterrà una copia del vettore vauto del main, cosa generalmente non molto efficiente...
 
Top