Escolar Documentos
Profissional Documentos
Cultura Documentos
h>
#include <stdlib.h>
#include <string.h>
/*
*/
// Enumerador
// Estruturas
} Estrada;
} Categoria;
} Tabela;
} Portico;
// Procedimento
// Funes
// Declarao de variaveis
Portico porticos[1000];
Viatura viaturas[1000];
Estrada estradas[50];
Passagem passagens[1000];
Categoria categorias[20];
int numViaturas = 0, numPorticos = 0;
int numEstradas = 0, numCategorias = 0, numPassagens = 0;
// Preparar ecr
puts("=============== ESTRADAS CARSSIMAS ==============");
puts("");
puts("");
// Limpar ecra
system("cls");
} while(opcao =! 0);
// Pausa
getchar();
// Sair
return 0;
/*
Este procedimento tem a funo de mostrar as opoes que o utilizador tem para
inserir e direciona-lo para outro procedimento, consuante a opo escolhida
(repetindo cada opo dependendo da "quantidade" que o utilizador inseriu)
*/
// Limpar ecra
system(cls);
/*
Este procedimento tem a funo de guardar todos os detalhes referentes a uma
estrada
*/
/*
Este procedimento tem a funo de guardar todos os detalhes referentes a uma
categoria
*/
/*
Este procedimento tem a funo de guardar todos os detalhes referentes a um
portico
*/
printf("Estrada: ");
gets(estrada)
// Recolher categoria
puts("\t\t ->");
gets(categoria);
puts("");
/*
Este procedimento tem a funo de guardar todos os detalhes referentes a uma
viatura
*/
/*
Este procedimento tem a funo de guardar todos os detalhes referentes a uma
passagem
*/
}
}
}
// Sair
return;
/*
Este procedimento tem a funo de mostrar ao utilizador os itens possiveis
para modificar e redirecionar para um outro procedimento, consuante o item
escolhido
*/
// Limpar ecra
system(cls);
/*
Este procedimento tem a funo de alterar dados relativos a um portico.
Depois de recolher o portico, mostra as opes relativas a esse mesmo portico,
a seguir o utilizador modifica o(s) dado(s) consuante a opo escolhida.
*/
}
}
// Pausa
getchar();
return;
}
// Pausa
getchar();
break;
}
// Pausa
getchar();
break;
}
case 2:
// Recolher "novo quilometro", guarda-lo e sair
printf("Atualizar Quilometro ->");
gets(porticos[n].quilometro);
break;
case 3:
puts("Atualizar Tabela de Precos");
// Recolher categoria
puts("\t\t ->");
gets(categoria);
puts("");
// pausa
getchar();
i--;
break;
}
// Recolher preo
printf("Preco : ");
scanf("%f", &porticos[n].valorCobrar[i].preco);
puts("");
case 4:
puts("Aumentar a Tabela de Precos");
// Recolher categoria
puts("\t\t ->");
gets(categoria);
puts("");
// Pausa
getchar();
break;
}
// Recolher preo
printf("Preco : ");
scanf("%f", &porticos[n].valorCobrar[i].preco);
puts("");
}
// Limpar ecra
system("cls");
}while(opcao != 0);
/*
Este procedimento tem a funo de alterar a matricula de uma certa viatura.
(Assumindo que no se pode alterar a Categoria)
*/
if (existe)
{
// Percorrer todas as viaturas
for (i = 0; i < numViaturas; i++)
{
// Se escontrar a viatura com a matricula em questo ento, pedir
a "nova"
if (stricmp(viaturas[i].matricula, matricula) == 0)
{
// Recolher matricula "nova", guarda-la e sair
puts("Matricula atualizada -> ");
gets(viaturas[i].matricula);
return;
}
}
}
// Pausa
getchar();
// Sair
return;
/*
Este procedimento tem a funo de alterar o nome de uma estrada, verificando
previamente se a estrada em questo no esta a ser utilizado para caraterizar algum
portico
*/
{
// Se algum portico estiver caraterizado com a estrada em questo
ento, dize-lo e sair
if (stricmp (porticos[i].estrada, nomeEstrada) == 0)
puts("A estrada em questo, consta no registo de pelo menos
um portico, logo no pode ser alterada.");
getchar();
return;
}
// Pausa
getchar();
return;
}
}
// Pausa
getchar();
/*
Este procedimento tem a funo de mostrar ao utilizador itens possiveis a
eliminar e redirecionar o utilizador para outro procedimento consuante opo
escolhida
*/
// Limpar ecra
system ("cls");
/*
Este procedimento tem a funo de eliminar um portico escolhido pelo
utilizador.
*/
// Variaveis locais
int opcao, i;
bool existe;
// Pausa
getchar();
return;
}
}
}
// Pausa
getchar();
// Sair
return;
/*
Este procedimento tem a funo de eliminar uma viatura escolhida pelo
utilizador
*/
// Pausa
getchar();
return;
}
}
// Pausa
getchar();
// Sair
return;
}
/*
Este procedimento tem a funo de eliminar uma estrada inserida pelo
utilizador
*/
// Pausa
getchar();
return;
}
}
// Pausa
getchar();
// Sair
return;
}
}
}
//Pausa
getchar();
// Sair
return;
}
/*
Este procedimento tem a funo de eliminar uma estrada inserida pelo
utilizador.
*/
// Pausa
getchar();
// Sair
return;
}
}
// Pausa
getchar();
return;
}
}
}
// Pausa
getchar();
// Sair
return;
/*
Este procedimento tem a funo de fazer um relatrio com os porticos (e
tabela de preos) existentes numa determinada estrada.
*/
//Recolher estrada
puts("Estrada: ");
gets(estrada);
// Percorrer todas as estradas
for (i = 0; i < numEstradas; i++)
{
// Se estrada em questo existir e estiver em funcionamento, entrar
if ((stricmp(estradas[i].nome, estrada) == 0) && estradas[i].ativa =
true)
{
// Percorrer todos os porticos
for (j = 0; j < numPorticos; i++)
{
// Se estrada em questo constar em algum portico e esse
portico estiver em funcionamento, entrar
if ((stricmp(porticos[j].estrada, estrada) == 0) &&
porticos[j].ativo = true)
{
// Escrever codigo do portico no relatorio
sprintf(relatorio,"-> %-d ;\n",porticos[j].codigo );
}
}
}
// Pausa
getchar();
// Sair
return;
}
}
/*
Este procedimento tem a funo de calcular o valor cobrado a uma determinada
viatura numa determinada data.
*/
// Variaveis locais
char data[8], matricula[8];
int valorCobrado = 0;
// Recolher data
puts("Data:");
gets(data);
// Recolher matricula
puts("Matricula da viatura:")
gets(matricula);
decisaoMatricula =
// Percorrer todas as passagens
for (i = 0; i < numPassagens; i++)
{
// Encontrar passagem feita na data em questo
if (strcmp(passagens[i].data, data) == 0)
{
// Se passagem em questo tiver sido feita pela matricula
inserida, entrar
if (strcmp(passagens[i].matriculaViatura, matricula) == 0)
{
// Somar preo cobrado viatura
valorCobrado += passagens[i].valorCobrar;
}
}
}
/*
Este procedimento tem a funo de fazer e apresentar o histrico (data, hora,
portico e valor cobrado) de uma determinada viatura.
*/
// Preparar ecr
puts("| Data | Hora | Portico | Valor cobrado |\n");
}
// Pausa
getchar();
// Sair
return;
}
/*
Este procedimento tem a funo de fazer e apresentar o histrico (data, hora,
viatura e valor cobrado) de um determinado portico.
*/
// Preparar ecr
puts("| Data | Hora | Viatura | Valor cobrado |\n");
}
// Pausa
getchar();
// Sair
return;
/*
Este procedimento tem a funo de verificar se um determinado codigo existe
*/
bool VerificarCodigo (int codigo, Portico *porticos, int *numPorticos)
{
// Variaveis locais
int i;
bool existe = false;
/*
Este procedimento tem a funo de verificar se uma determinado estrada existe
*/
/*
Este procedimento tem a funo de verificar se uma determinado categoria
existe
*/
/*
Este procedimento tem a funo de verificar se uma determinado matricula
existe
*/