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