View Single Post
Old 21-04-2014, 10:06   #12
alexabis97
Junior Member
 
Iscritto dal: Apr 2014
Messaggi: 19
#include <iostream>
#include <ctime>
using namespace std;
struct date{
int g,m,a;
};

struct car{
string modello;
string targa;
date imm;
float pot;
};

void cerca(car concess[],int n);
void bubbleSort(car concess[],int n);
void stampa(car concess[],int n);
int main()
{
int n;
cout<<"Inserisci il numero di auto ";
cin>>n;
car concess[n];
for(int i=0;i<n;i++)
{
cout<<"Inserisci modello \n";
cin>>concess[i].modello;
cout<<"Targa \n";
cin>>concess[i].targa;
cout<<"Data immatricolazione \n";
cin>>concess[i].imm.g>>concess[i].imm.m>>concess[i].imm.a;
cout<<"Potenza \n";
cin>>concess[i].pot;
}
bubbleSort(concess,n);
stampa(concess,n);
cerca(concess,n);

cout<<"\n\nInserisci l'anno corrente: ";
int annoCor;
cin>>annoCor;
cout<<"Auto con meno di 5 anni\n";
for(int i=0;i<n;i++)
{
if(annoCor-concess[i].imm.a<5)
{
cout<<i+1<<") "<<concess[i].targa<<endl;
}
}
cout<<"\n\nInserisci il modello: ";
string modx;
cin>>modx;
for(int i=0;i<n;i++)
{
if(concess[i].modello==modx)
{
cout<<i+1<<") "<<concess[i].targa<<endl;
}
}


}
void cerca(car concess[],int n){
string targax;
cout<<"Inserisci targa da trovare: ";
cin>>targax;

int c, sx=0,dx=n-1;
bool trova=false;

do{
c=(sx+dx)/2;
if(concess[c].targa==targax)
trova=true;
else if(concess[c].targa<targax)
sx=c+1;
else
dx=c-1;
}
while(!trova&&sx<dx) ; //equivale a scrivere trova==false

if(trova)
{
cout<<"Dati dell'auto\n";
cout<<concess[c].modello<<endl;
cout<<concess[c].imm.g<<"/"<<concess[c].imm.m<<"/"<<concess[c].imm.a<<endl;;
cout<<concess[c].pot<<endl;
}
else
cout<<"L'auto non esiste\n";

}

void bubbleSort(car concess[],int n){

int k=n-1, sup;
bool continua=true;

while(continua)
{
continua=false;
sup=k;
for(int i=0;i<sup;i++)
if(concess[i].targa>concess[i+1].targa)
{
car tmp;
tmp=concess[i];
concess[i]=concess[i+1];
concess[i+1]=tmp;
k=i;
continua=true;
}
}

}
void stampa(car concess[],int n)
{
cout<<"\n\nElenco auto\n\n";
for(int i=0;i<n;i++)
{
cout<<"\n\nModello "<<concess[i].modello;
cout<<"\nTarga "<<concess[i].targa;
cout<<"\nData immatricolazione "<<concess[i].imm.g;
cout<<"/"<<concess[i].imm.m<<"/"<<concess[i].imm.a;
cout<<"\nPotenza "<<concess[i].pot<<endl;
}

cout<<"\n\n\n";
}


Questo è un esercizio risolto dalla prof..qualcosa non mi torna
alexabis97 è offline   Rispondi citando il messaggio o parte di esso