Implementacion De Una Ciudad De Parquing
Enviado por albert.vilaplana • 26 de Noviembre de 2013 • 8.573 Palabras (35 Páginas) • 417 Visitas
#include<iostream>
#include<string>
#include<time.h>
using namespace std;
const int N=100;
struct tplaca{
bool valid, occupat, occupacio;//ocupat esta per saber si la placa esta ocupada per algu
string tipo;//blau, verd , lliure, carregadescarrega//occupacio es per determinar si la casella de a taula placa esta ocupada
};
struct tcostat {
int quantitat;//numero de places en el costat desitjat
tplaca placa[N];
};
struct tcarrer{
tcostat costat_esquerra ;//per determinar quiantes placese hi ha en cada costat
tcostat costat_dret ;
string nom;
int costats, places;
bool valid, occupacio;//occupacio s'utlitza per saber quines caselles de la taula carrer estan lliures
};
struct tciutat {
tcarrer carrer[N];
string ciutat;
};
void dret(tcarrer carrer[], int n, int& d);
void esquerra(tcarrer carrer[], int n, int& e);
void costat (tcarrer carrer[],int n);
void costats (tcarrer carrer[], int n);
void buscar_carrer(tcarrer carrer[], string nom ,int& i, bool& trobat); /*indica si hi ha places lliures al carrer i un llistat amb els seus numeros*///3.1.a
void buscar_casella(tcarrer carrer[], int& n);
void buscar_casella_placad (tcarrer carrer[] , int i, int& n);
void buscar_casella_placae (tcarrer carrer[] , int i, int& n);
void menu (tcarrer carrer[], int& z);
void gestio_de_carrers(tcarrer carrer[]);//1
void gestio_de_places(tcarrer carrer[]);//2
void aparcar (tcarrer carrer[]);//3
void estadistiques(tcarrer carrer[]);//4
void sortir(int& z);//5
void afegir_carrer(tcarrer carrer[]);//1.1
void invalidar_carrer(tcarrer carrer[]);//1.2
void validar_carrer(tcarrer carrer[]);//1.3
void afegir_placa(tcarrer carrer[]);//2.1
void eliminar_placa(tcarrer carrer[]);//2.2
void invalidar_placa(tcarrer carrer[]);//2.3
void validar_placa(tcarrer carrer[]);//2.4
void llista_carrers(tcarrer carrer[]);//3.1.b
void estat_carrer();//4.1
void estat_ciutat();//4.2
void ingressos();//4.3
void comprobacio(tcarrer carrer[]);
int main(){
tcarrer carrer[N];
int z;
while (z!=5)menu(carrer,z);
cout<<"Gracies per utilitzar el nostre programa, adeu."<<endl;
system ("pause");
}
void dret(tcarrer carrer[], int n, int& d){
int numb=0, numv=0 , numll=0, numcd=0;
cout<<"Costat dret max "<<d<<" places."<<endl;
cout<<endl;
//tengo que hacer algo para que cuando supere el numero de placas salte directo al final del void
cout<<"cuantes places son blaves: ";
cin>>numb;
cout<<endl;
while (numb>d){
cout<<"Has intruduit un numero mol gran, hi han "<<d<<" places sense definir."<<endl;
cout<<"Torna a introduir un numero de places blaves."<<endl;
cin>>numb;
}
for (int i=0; i<numb ;i++){
carrer[n].costat_dret.placa[i].tipo="blau";
carrer[n].costat_dret.placa[i].occupacio=true;
}
cout<<"Et queden "<<d-numb<<" places per definir."<<endl;
cout<<"cuantes places son verdes: ";
cin>>numv;
cout<<endl;
while (numb+numv>d){
cout<<"Has intruduit un numero mol gran, hi han "<<d-numb<<" places sense definir."<<endl;
cout<<"Torna a introduir un numero de places verdes."<<endl;
cin>>numv;
}
for (int i=numb; i<numb+numv ;i++){
carrer[n].costat_dret.placa[i].tipo="vert";
carrer[n].costat_dret.placa[i].occupacio=true;
}
cout<<"Et queden "<<d-(numb+numv)<<" places per definir."<<endl;
cout<<"cuantes places son de lliure occupacio: ";
cin>>numll;
cout<<endl;
while (numb+numv+numll>d){
cout<<"Has intruduit un numero mol gran, hi han "<<d-(numb+numv)<<" places sense definir."<<endl;
cout<<"Torna a introduir un numero de places de lliure occupacio."<<endl;
cin>>numll;
}
for (int i=numb+numv; i<numb+numv+numll ;i++){
carrer[n].costat_dret.placa[i].tipo="lliure";
carrer[n].costat_dret.placa[i].occupacio=true;
}
cout<<"Et queden "<<d-(numb+numv+numll)<<" places per definir."<<endl;
cout<<"cuantes places son de carrega i descarrega: ";
cin>>numcd;
cout<<endl;
while (numb+numv+numll+numcd>d){
cout<<"Has intruduit un numero mol gran, hi han "<<d-(numb+numv+numll)<<" places sense definir."<<endl;
cout<<"Torna a introduir un numero de places de carrega i descarrega."<<endl;
cin>>numcd;
}
for (int i=numb+numv+numll; i<numb+numv+numll+numcd ;i++){
carrer[n].costat_dret.placa[i].tipo="carregadescarrega";
carrer[n].costat_dret.placa[i].occupacio=true;
}
};
void esquerra(tcarrer carrer[], int n, int& e){
int numb=0, numv=0 , numll=0, numcd=0;
cout<<"Costat esquerra max "<<e<<"
...