insyspower
Power Member
Boas, Este é o meu trabalho de Programação que tenho de fazer:
Gestão do aluguer de uma frota de autocaravanas e caravanas
O objetivo principal do trabalho prático é a construção de um programa que permita auxiliar a tarefa de gerir a
os alugueres de veículos de recreio de uma empresa que se destina ao aluguer de autocaravanas e caravanas.
Para isso, deve utilizar a metodologia descrita a seguir.
Descrição sobre o funcionamento do programa:
Uma empresa de aluguer de autocaravanas e caravanas possui 6 escritórios espalhados pelo país, e uma frota
total de 20 veículos.
A empresa necessita de uma aplicação que ajude a gerir os veículos e os contratos de aluguer.
Cada veículo disponível para aluguer está associado a um único escritório, o qual pode ter vários veículos
disponíveis. Os escritórios encontram-se espalhados pelas diversas cidades do país.
Cada contrato de aluguer deve conter um código, e ter associado os dados do cliente e do veículo, identificando
sempre o escritório onde o veículo foi alugado e o escritório onde o veículo foi devolvido, bem como a data de
inicio e de fim do aluguer. Esta última informação não é conhecida no momento da assinatura do contrato,
sendo atualizada no momento da devolução. Para beneficiar os clientes, um veículo pode ser devolvido em
qualquer escritório. Após a devolução, não é obrigatório que o veículo seja enviado para o escritório de origem.
Da mesma forma, quando é efetuado um aluguer num determinado escritório, não é requisito obrigatório que o
veículo esteja nesse escritório. Assim, em qualquer escritório é possível alugar e devolver veículos desde que
estejam disponíveis.
Embora um cliente possa alugar mais do que um veículo, é sempre realizado um contrato em separado para
cado veículo alugado. Cada contrato é realizado por um único cliente, que pode ser particular ou empresa.
Cado veículo tem um código identificador, a matrícula, a marca, o modelo e a categoria. Para as autocaravanas
é necessário registar a quilometragem atual, a quantidade de combustível no depósito.
A empresa atualmente classifica os seus veículos em várias categorias conforme o tipo:
• Autocaravanas: Capucine (máximo de 7 lugares de dormida); Integrais (máximo de 4 lugares de
dormida); Perfiladas (máximo de 6 lugares de dormida); Furgões (máximo de 2 lugares de dormida
e não tem casa de banho contrariamente às restantes)
• Caravanas: Citadina (máximo de 2 lugares de dormida, não tem casa de banho); Utilitária (máximo
de 3 lugares de dormida); Familiar (máximo de 5 lugares de dormida).
Para cada cliente é atribuído um código único, além de manter informações sobre nome, endereço, e carta de
condução. Caso um cliente danifique ou abandone um veículo ou não pague o aluguer, o mesmo será registado
como cliente de risco e não poderá mais alugar veículos na empresa.
Os valores do aluguer são determinados pelo tipo do veículo, sendo que para as autocaravanas é cobrado o
valor por quilómetro andado e para o caso das caravanas é cobrado apenas o valor da diária.
A aplicação deverá efetuar as seguintes funcionalidades:
•Inserir/Alterar/Eliminar informação sobre clientes e veículos.
Incluir definição da localização do veículo. Nesta altura o local onde o veículo se encontra passa a
1 (um). Os valores possíveis são: 0=”local incerto” e 1=”local conhecido”. O local corresponde ao
escritório onde o veículo se encontra.
•Inserir/Alterar/Eliminar informação sobre alugueres.
◦Inserir aluguer corresponde a alugar veículo. Nesta altura o estado do veículo passa a “Alugado”. Os
estados possíveis são: “Disponível” e “Alugado”. O veículo também passa a estar em lugar incerto
pelo que a localização passa a 0 (zero). É calculado um valor a pagar que poderá ser revisto na
altura da devolução.
◦Devolver veículo. É gerada a fatura a entregar ao cliente, revisto o valor a pagar e a quilometragem
do veículo é atualizada para o caso das autocaravanas. Nesta altura o estado do veículo passa a
“Disponível”. O veículo também passa a estar em lugar conhecido pelo que a localização passa a 1
(zero).
•Listagens
◦Dos veículos alugados e dos não alugados
◦Dos veículos alugados ordenada por ordem de chegada
◦De clientes
◦De alugueres por mês
◦Da localização dos veículos. Esta funcionalidade deve mostrar no ecrã uma matriz salientando a
localização dos veículos que estão disponíveis para aluguer, num período especificado,
considerando os escritórios onde se encontram. Para esse período, deve excluir do resultado os
veículos que estão alugados.
•Pesquisas
◦De veículos
◦De clientes
◦Por datas
Exemplo de mapa ilustrando a localização dos veículos:
...................Escritório
Veiculo
............Lisboa Porto Coimbra
57 ..........0 .......1.......0
63 ..........0 .......0.......1
21 ..........0........0.......0
74 ..........1........0.......0
Legenda: o veículo 21 está alugado razão pela qual não é conhecida a sua localização, todos os valores no
mapa estão a 0 (zero). O veículo 57 está no escritório do Porto, o veículo 63 está no escritório de Coimbra e o
veículo 74 está no escritório de Lisboa, todos os valores nestas interseções têm o valor 1 (um).
•Validações a efetuar
O programa deverá prever as seguintes situações:
•Não permitir que determinado veículo esteja situado em mais do que um escritório ao mesmo tempo
•Validar datas:
◦o dia do mês deve estar dentro dos limites adequados ao mês escolhido
◦a data de fim do aluguer não pode ser inferior à data de início•O código da categoria deve variar entre 0 e 4
•Valores permitidos para o campo tipo de cliente: ‘0' e '1'
•Valores permitidos para o campo estado do veículo: ‘D' e 'A'
•Não permitir códigos repetidos nas mesmas estruturas
•Não permitir alugar um veículo que não existe ou está alugada
As estruturas apresentadas a seguir, devem ser usadas na implementação deste trabalho.
Tipo de estrutura Designação
typedef struct cliente {
short int cod_cl; Código do cliente (entre 1000 e 9999)
char nome[30]; Nome do cliente
char morada[40]; Morada do cliente
short int tipo; Tipo de cliente (0-cliente normal; 1-cliente de risco)
char carta_conducao[5]; Numero carta de condução
}cliente_tipo;
Tipo de estrutura Designação
typedef struct veiculo {
short int cod_vc; Código do veículo (entre 10 e 99)
char marca[10]; Marca do veículo
char modelo[10]; Marca do veículo
char matricula[8]; Matricula do veículo
short int cod_categoria; Categoria do veículo
float km; Quilometragem atual do veículo
float qt_comb; Quantidade de combustível no depósito
char estado; Estado do veículo: ‘D’-Disponível; ‘A’-Alugado
}veiculo_tipo;
Tipo de estrutura Designação
typedef struct contrato {
short int cod_vc; Código do veículo (entre 1000 e 9999)
short int cod_cl; Código do cliente (entre 1000 e 9999)
Float preco_dia; Valor da diária em unidades monetárias
float preco_km; Valor por Km andado em unidades monetárias
float qt_km; Quilómetros percorridos
data_tipo data_ini; Data inicio do aluguer
data_tipo data_fim; Data fim do aluguer
char escritório_ini; Escritório onde o veículo é alugado
char escritorio_fim; Escritório onde o veículo é devolvido
}contrato_tipo;
Tipo de estrutura Designação
typedef struct data {
short int dia; Dia
char mes[3]; Mês
short int ano; Ano
}data_tipo;
Declaração, em C, das categorias disponíveis para as veículos:
char categoria[][10]={ "capucine","integral","perfilada","furgão",
"citadina","utilitaria","familiar"}
E mais um relatório Ffnal sobre o trabalho
Se tiver alguma dificuldade digo neste tópico
algumas questões importantes:
1º- como devo dividir o trabalho por partes ? (sei que o relatório final deve ser no fim)
2º- por que parte devo começar primeiro ?
•Inserir/Alterar/Eliminar informação sobre clientes e veículos.
•Inserir/Alterar/Eliminar informação sobre alugueres.
•Listagens
•Pesquisas
•Validações a efetuar (O programa deverá prever as algumas situações:
caso de mostragem de erros tipo : valores fora do intervalo considerado , etc...)
e ainda não sei fazer os menus, como faço os menus ?
e para os informáticos, fazem primeiro o pseudocódigo ? (linguagem escrita) ou passam logo ao código em C propriamente dito ?.
Obrigado desde já pela disponibilidade
Gestão do aluguer de uma frota de autocaravanas e caravanas
O objetivo principal do trabalho prático é a construção de um programa que permita auxiliar a tarefa de gerir a
os alugueres de veículos de recreio de uma empresa que se destina ao aluguer de autocaravanas e caravanas.
Para isso, deve utilizar a metodologia descrita a seguir.
Descrição sobre o funcionamento do programa:
Uma empresa de aluguer de autocaravanas e caravanas possui 6 escritórios espalhados pelo país, e uma frota
total de 20 veículos.
A empresa necessita de uma aplicação que ajude a gerir os veículos e os contratos de aluguer.
Cada veículo disponível para aluguer está associado a um único escritório, o qual pode ter vários veículos
disponíveis. Os escritórios encontram-se espalhados pelas diversas cidades do país.
Cada contrato de aluguer deve conter um código, e ter associado os dados do cliente e do veículo, identificando
sempre o escritório onde o veículo foi alugado e o escritório onde o veículo foi devolvido, bem como a data de
inicio e de fim do aluguer. Esta última informação não é conhecida no momento da assinatura do contrato,
sendo atualizada no momento da devolução. Para beneficiar os clientes, um veículo pode ser devolvido em
qualquer escritório. Após a devolução, não é obrigatório que o veículo seja enviado para o escritório de origem.
Da mesma forma, quando é efetuado um aluguer num determinado escritório, não é requisito obrigatório que o
veículo esteja nesse escritório. Assim, em qualquer escritório é possível alugar e devolver veículos desde que
estejam disponíveis.
Embora um cliente possa alugar mais do que um veículo, é sempre realizado um contrato em separado para
cado veículo alugado. Cada contrato é realizado por um único cliente, que pode ser particular ou empresa.
Cado veículo tem um código identificador, a matrícula, a marca, o modelo e a categoria. Para as autocaravanas
é necessário registar a quilometragem atual, a quantidade de combustível no depósito.
A empresa atualmente classifica os seus veículos em várias categorias conforme o tipo:
• Autocaravanas: Capucine (máximo de 7 lugares de dormida); Integrais (máximo de 4 lugares de
dormida); Perfiladas (máximo de 6 lugares de dormida); Furgões (máximo de 2 lugares de dormida
e não tem casa de banho contrariamente às restantes)
• Caravanas: Citadina (máximo de 2 lugares de dormida, não tem casa de banho); Utilitária (máximo
de 3 lugares de dormida); Familiar (máximo de 5 lugares de dormida).
Para cada cliente é atribuído um código único, além de manter informações sobre nome, endereço, e carta de
condução. Caso um cliente danifique ou abandone um veículo ou não pague o aluguer, o mesmo será registado
como cliente de risco e não poderá mais alugar veículos na empresa.
Os valores do aluguer são determinados pelo tipo do veículo, sendo que para as autocaravanas é cobrado o
valor por quilómetro andado e para o caso das caravanas é cobrado apenas o valor da diária.
A aplicação deverá efetuar as seguintes funcionalidades:
•Inserir/Alterar/Eliminar informação sobre clientes e veículos.
Incluir definição da localização do veículo. Nesta altura o local onde o veículo se encontra passa a
1 (um). Os valores possíveis são: 0=”local incerto” e 1=”local conhecido”. O local corresponde ao
escritório onde o veículo se encontra.
•Inserir/Alterar/Eliminar informação sobre alugueres.
◦Inserir aluguer corresponde a alugar veículo. Nesta altura o estado do veículo passa a “Alugado”. Os
estados possíveis são: “Disponível” e “Alugado”. O veículo também passa a estar em lugar incerto
pelo que a localização passa a 0 (zero). É calculado um valor a pagar que poderá ser revisto na
altura da devolução.
◦Devolver veículo. É gerada a fatura a entregar ao cliente, revisto o valor a pagar e a quilometragem
do veículo é atualizada para o caso das autocaravanas. Nesta altura o estado do veículo passa a
“Disponível”. O veículo também passa a estar em lugar conhecido pelo que a localização passa a 1
(zero).
•Listagens
◦Dos veículos alugados e dos não alugados
◦Dos veículos alugados ordenada por ordem de chegada
◦De clientes
◦De alugueres por mês
◦Da localização dos veículos. Esta funcionalidade deve mostrar no ecrã uma matriz salientando a
localização dos veículos que estão disponíveis para aluguer, num período especificado,
considerando os escritórios onde se encontram. Para esse período, deve excluir do resultado os
veículos que estão alugados.
•Pesquisas
◦De veículos
◦De clientes
◦Por datas
Exemplo de mapa ilustrando a localização dos veículos:
...................Escritório
Veiculo
............Lisboa Porto Coimbra
57 ..........0 .......1.......0
63 ..........0 .......0.......1
21 ..........0........0.......0
74 ..........1........0.......0
Legenda: o veículo 21 está alugado razão pela qual não é conhecida a sua localização, todos os valores no
mapa estão a 0 (zero). O veículo 57 está no escritório do Porto, o veículo 63 está no escritório de Coimbra e o
veículo 74 está no escritório de Lisboa, todos os valores nestas interseções têm o valor 1 (um).
•Validações a efetuar
O programa deverá prever as seguintes situações:
•Não permitir que determinado veículo esteja situado em mais do que um escritório ao mesmo tempo
•Validar datas:
◦o dia do mês deve estar dentro dos limites adequados ao mês escolhido
◦a data de fim do aluguer não pode ser inferior à data de início•O código da categoria deve variar entre 0 e 4
•Valores permitidos para o campo tipo de cliente: ‘0' e '1'
•Valores permitidos para o campo estado do veículo: ‘D' e 'A'
•Não permitir códigos repetidos nas mesmas estruturas
•Não permitir alugar um veículo que não existe ou está alugada
As estruturas apresentadas a seguir, devem ser usadas na implementação deste trabalho.
Tipo de estrutura Designação
typedef struct cliente {
short int cod_cl; Código do cliente (entre 1000 e 9999)
char nome[30]; Nome do cliente
char morada[40]; Morada do cliente
short int tipo; Tipo de cliente (0-cliente normal; 1-cliente de risco)
char carta_conducao[5]; Numero carta de condução
}cliente_tipo;
Tipo de estrutura Designação
typedef struct veiculo {
short int cod_vc; Código do veículo (entre 10 e 99)
char marca[10]; Marca do veículo
char modelo[10]; Marca do veículo
char matricula[8]; Matricula do veículo
short int cod_categoria; Categoria do veículo
float km; Quilometragem atual do veículo
float qt_comb; Quantidade de combustível no depósito
char estado; Estado do veículo: ‘D’-Disponível; ‘A’-Alugado
}veiculo_tipo;
Tipo de estrutura Designação
typedef struct contrato {
short int cod_vc; Código do veículo (entre 1000 e 9999)
short int cod_cl; Código do cliente (entre 1000 e 9999)
Float preco_dia; Valor da diária em unidades monetárias
float preco_km; Valor por Km andado em unidades monetárias
float qt_km; Quilómetros percorridos
data_tipo data_ini; Data inicio do aluguer
data_tipo data_fim; Data fim do aluguer
char escritório_ini; Escritório onde o veículo é alugado
char escritorio_fim; Escritório onde o veículo é devolvido
}contrato_tipo;
Tipo de estrutura Designação
typedef struct data {
short int dia; Dia
char mes[3]; Mês
short int ano; Ano
}data_tipo;
Declaração, em C, das categorias disponíveis para as veículos:
char categoria[][10]={ "capucine","integral","perfilada","furgão",
"citadina","utilitaria","familiar"}
E mais um relatório Ffnal sobre o trabalho
Se tiver alguma dificuldade digo neste tópico
algumas questões importantes:
1º- como devo dividir o trabalho por partes ? (sei que o relatório final deve ser no fim)
2º- por que parte devo começar primeiro ?
•Inserir/Alterar/Eliminar informação sobre clientes e veículos.
•Inserir/Alterar/Eliminar informação sobre alugueres.
•Listagens
•Pesquisas
•Validações a efetuar (O programa deverá prever as algumas situações:
caso de mostragem de erros tipo : valores fora do intervalo considerado , etc...)
e ainda não sei fazer os menus, como faço os menus ?
e para os informáticos, fazem primeiro o pseudocódigo ? (linguagem escrita) ou passam logo ao código em C propriamente dito ?.
Obrigado desde já pela disponibilidade
Última edição: