Struct e stampa

di il
2 risposte

Struct e stampa

Ciao a tutti, sono una ragazza di 3 superiore e ho qualche problema con un esercizio con c++:
#include <iostream>
#include <string>
#include <stdlib.h>
#include <cstdlib>
#include <ctime>

using namespace std;

/*
Dichiarare una struct che rappresenta una moto con i seguenti dati

propietario: stringa
targa: stringa
gomme: stringa
olio: stringa
carrozzeria: stringa
carburante: stringa

Creare il sottoprogramma “inizializza” che assegna i seguenti valori

Propietario: “”
Targa: “”
Gomme: “SGONFIE”
Olio: “LIVELLO BASSO”
Carrozzeria: ”DA PULIRE”
Carburante: “IN RISERVA”


Creare il sottoprogramma “stampa” che mostra a video la struct


Creare i seguenti sottoprogrammi che prendono come parametro la struct più altri
eventuali dati. Passare i parametri per copia o indirizzo a seconda delle necessità della
singola procedura.

acquista(struct, nome): imposta il nome del proprietario
immatricola(struct, targa): imposta la targa
gommista(struct): aggiorna valore gomme (“GONFIE”)
meccanico(struct): aggiorna valore olio (“CAMBIATO”)
lavaggio(struct): aggiorna valore carrozzeria (“PULITA E LUCIDATA”)
distributore(struct): aggiorna valore carburante (“PIENO”)




Dal main dichiarare una s_moto di nome moto1 e richiamare i sottoprogrammi in
sequenza:

inizializza
stampa
acquista
(stampa)
immatricola
(stampa)
gommista
(stampa)
meccanico
(stampa)
lavaggio
(stampa)
distributore
stampa

*/


//Definiamo lo struct "s_moto"

struct s_moto
{
	
	string proprietario; 
    string targa; 
    string gomme; 
    string olio; 
    string carrozzeria; 
    string carburante; 

};



//Funzione 1: Il programma inizializza i vari componenti della moto
void inizializza(s_moto a)
{
	a.proprietario=" ";
	a.targa=" ";
	a.gomme="SGONFIE";
	a.olio="LIVELLO BASSO";
	a.carrozzeria="DA PULIRE";
	a.carburante="IN RISERVA";
}



//Funzione 2: Stampiamo le componenti (per ora "nulle)
void stampa(s_moto a)
{
	
	cout<<a.proprietario<<endl;
	cout<<a.targa<<endl;
	cout<<a.gomme<<endl;
	cout<<a.olio<<endl;
	cout<<a.carrozzeria<<endl;
	cout<<a.carburante<<endl<<endl;
}



//Funzione 3: Aggiungiamo il nome del proprietario alla moto
void acquista(s_moto a, string nomem)
{
	a.proprietario=nomem;
	
}



//Funzione 4: Aggiungiamo la targa alla moto
void immatricola(s_moto a, string targam)
{	
	a.targa=targam;
}



//Funzione 5: Gonfiamo le gomme della moto
void gommista(s_moto a)
{
	a.gomme="GONFIE";
}



//Funzione 6: Cambiamo l'olio alla moto
void meccanico(s_moto a)
{
	a.olio="CAMBIATO";
}



//Funzione 7: Laviamo la carrozzeria della moto
void lavaggio(s_moto a)
{
	a.carrozzeria="PULITA E LUCIDATA";
}



//Funzione 8: Mettiamo il carburante nella moto
void distributore(s_moto a)
{
	a.carburante="PIENO";
}

int main(){
	
	//Definizione dello struct "m1"
	s_moto m1;
	
	
	//Nome
	string nomem;
	
	//Targa
	string targam;
	
	
	
	//Inserimento nome
	cout<<"Inserisci il tuo nome"<<endl;
	cin>>nomem;
	
	//Inserimento targa
	cout<<"Inserisci la targa"<<endl;
	cin>>targam;
	
	
	
	
	
	//Richiamo delle funzioni
	
	cout<<endl<<endl<<endl<<"Moto senza manutenzione"<<endl;
	inizializza(m1);
	
	stampa(m1);
	
	
	cout<<"Moto acquistata"<<endl;
	acquista(m1, nomem);
	
	stampa(m1);
	
	
	cout<<"Targa inserita"<<endl;
	immatricola(m1, targam);
	
	stampa(m1);
	
	
	cout<<"Gomme gonfiate"<<endl;
	gommista(m1);
	
	
	stampa(m1);
	
	cout<<"Olio cambiato"<<endl;
	meccanico(m1);
	
	stampa(m1);
	
	
	cout<<"Lavaggio carrozzeria"<<endl;
	lavaggio(m1);
	
	stampa(m1);
	
	
	cout<<"Carburante inserito"<<endl;
	distributore(m1);
	
	stampa(m1);
	
	
	system("PAUSE");
	return 0;
}


Il problema è questo, quando cerco di stampare gli struct tramite le funzioni, a schermo non appare nulla.
Non so se sia un problema del sottoprogramma stampa o altro, quindi vi chiedo il vostro aiuto, grazie in anticipo

2 Risposte

  • Re: Struct e stampa

    Guarda bene l'intestazione delle funzioni, gli stai passando una copia di m1, non l'originale.

    PS: per favore, quando posti codice sul forum, selezionalo tutto e premi il pulsante </> in alto, per visualizzarlo
    così
  • Re: Struct e stampa

    Alexv ha scritto:


    Guarda bene l'intestazione delle funzioni, gli stai passando una copia di m1, non l'originale.

    PS: per favore, quando posti codice sul forum, selezionalo tutto e premi il pulsante </> in alto, per visualizzarlo
    così
    Grazie mille
Devi accedere o registrarti per scrivere nel forum
2 risposte