Descrição do Trabalho

Algoritmos e programação - 2010.1
Prof. Críston Souza

Faça um programa para controlar os assentos disponíveis nos ônibus de uma empresa de transporte rodoviário de passageiros. Cada linha tem um conjunto de horários diários de partida de ônibus. Cada ônibus suporta até 20 passageiros: assentos de 1 até 20, onde os ímpares são nas janelas.

Os dados de cada linha são: Cada linha tem ônibus partindo todos os dias. Portanto, as informações de cada ônibus são: O sistema deve permitir: Observações:

Caso de teste:

# ./trabalho

MENU
1- Inserir linha
2- Remover linha
3- Alterar linha
4- Consultar horarios
5- Consultar assento disponivel
6- Relatorios
7- Ler reservas de arquivo texto
8- Sair
OPCAO: 1

cidade: salvador
horario de partida: 8:00
valor da passagem: 100.00

MENU...
OPCAO: 1

cidade: salvador
horario de partida: 12:00
valor da passagem: 70.00

MENU...
OPCAO: 4

cidade: salvador
08:00   100.00
12:00    70.00

MENU...
OPCAO: 3

cidade: salvador
horario de partida: 12:00
novo valor da passagem (atual vale 70.00): 80.00
linha alterada com sucesso!

MENU...
OPCAO: 4

cidade: salvador
08:00   100.00
12:00    80.00

MENU...
OPCAO: 3

cidade: salvador
horario de partida: 12:00
linha removida com sucesso!

MENU...
OPCAO: 4

cidade: salvador
08:00   100.00

MENU...
OPCAO: 5

cidade: salvador
horario: 8:00
data: 20/06/2010
01 02     04 03
05 06     08 07
09 10     12 11
13 14     16 15
17 18     20 19
assento para reservar (0 para cancelar): 9
reserva realizada com sucesso!

MENU...
OPCAO: 5

cidade: salvador
horario: 8:00
data: 20/06/2010
01 02     04 03
05 06     08 07
 X 10     12 11
13 14     16 15
17 18     20 19
assento para reservar (0 para cancelar): 9
assento ocupado!

MENU...
OPCAO: 8

# ./trabalho

MENU...
OPCAO: 7

arquivo: reservas.txt
arquivo processado sucesso! relatorio gravado em log.txt.

MENU...
OPCAO: 5

cidade: salvador
horario: 8:00
data: 20/06/2010
01 02     04 03
05 06     08  X
 X 10     12  X
13 14     16  X
17 18     20 19
assento para reservar (0 para cancelar): 0
reserva cancelada!

MENU...
OPCAO: 6

1- Total arrecadado (tela)
2- Total arrecadado (arquivo)
3- Ocupacao percentual media (tela)
4- Ocupacao percentual media (arquivo)
OPCAO: 1

salvador, 8:00: 400.00

MENU...
OPCAO: 6

1- Total arrecadado (tela)
2- Total arrecadado (arquivo)
3- Ocupacao percentual media (tela)
4- Ocupacao percentual media (arquivo)
OPCAO: 3

salvador, 8:00:
dom   seg   ter   qua   qui   sex   sab
3/80  0/80  0/80  0/80  0/80  0/80  0/80

reserva.txt

salvador, 8:00, 20/06/2010, 7
salvador, 8:00, 20/06/2010, 11
salvador, 8:00, 20/06/2010, 9
salvador, 8:00, 20/06/2010, 15
salvador, 8:00, 20/06/2009, 2

log.txt

em "salvador, 8:00, 20/06/2010, 9": assento ocupado
em "salvador, 8:00, 20/06/2009, 2": onibus ja partiu

Podemos gerar este caso de teste passando pela entrada padrão um arquivo contendo (lembre de apagar o arquivo binário contendo os dados do programa):

1
salvador
8:00
100.00
1
12:00
70.00
4
3
salvador
12:00
80.00
4
3
salvador
12:00
4
5
salvador
8:00
20/06/2010
9
5
salvador
8:00
20/06/2010
9
7
reservas.txt
5
salvador
8:00
20/06/2010
0
6
1
6
3