TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Exercício Estrutura de dados - Estacionamento

Por:   •  8/5/2016  •  Trabalho acadêmico  •  12.131 Palavras (49 Páginas)  •  723 Visualizações

Página 1 de 49

Exercicio do Estacinamento

1. #include <stdio.h>

2. #include <stdlib.h>

3. #include <string.h>

4. #include <ctype.h>

5. #include <locale.h>

6. #define TAM 20

7.

8. /* Struc para criação das pilhas */

9. struct stack {

10. int topo;

11. int item[TAM];

12. };

13.

14. /* Protótipos das funções de pilha */

15. void iniciaPilha(struct stack *ps);

16. int pilhaVazia(struct stack *ps);

17. int pilhaCheia(struct stack *ps);

18. int push(struct stack *ps, int x);

19. int pop(struct stack *ps);

20.

21. /* Função principal */

22. int main() {

23.

24. struct stack est, rua;

25. int placa;

26. int op, ind = 0;

27. int cont = 0, temp, e;

28.

29. iniciaPilha(&est); /* Cria a pilha ESTACIONAMENTO */

30. iniciaPilha(&rua); /* Cria a pilha RUA */

31.

32. setlocale(LC_ALL, "portuguese");

33.

34. do {

35. /* Um menu de entrada, para simular o 'E' de entrada e 'S' de saída,

36. seguido da placa do carro. */

37. system("CLS");

38. printf("\n Estacionamento do Luciano. FILA ÚNICA. Preço único: R$ 10,00\n");

39. printf("\n Descontos de 2%% por manobra efetuada.\n\n\n");

40. printf("\n [1] Entrada");

41. printf("\n [2] Saída");

42. printf("\n [3] Mostrar carros estacionados");

43. printf("\n [4] Sair do programa");

44. printf("\n\n Escolha sua opção: ");

45. scanf("%d", &op);

46. switch (op)

47. {

48. /*O menu processa a entrada da seguinte forma:

49. a) Se tiver vaga, aceita o carro, senão informa que o estacionamento está cheio.

50. b) Ao entrar um carro, guarda a placa na pilha, seguido de um valor '0', o qual

51. servirá para acumular as 'manobras' de saída e reentrada. */

52. case 1: {

53. system("CLS");

54. if ( pilhaCheia(&est) == 1) {

55. printf("\n Cara, o estacionamento está cheio. Volte outra hora.");}

56. else {

57. printf("\n Vagas: %d", (TAM/2) - cont); /* Mostra as vagas restantes */

58. printf("\n Digite a placa (número): ");

59. scanf("%d",&placa);

60. push(&est, placa); /* guarda a placa */

61. push(&est, 0); /* guarda o valor '0', que será usado para contar manobras */

62. cont++;

63. printf("\n Carro de placa %d estacionado com sucesso.", placa); }

64. system("pause>NULL");

65. break;}

66.

67. /*O menu processa a saída da seguinte forma:

68. a) Se a pilha EST estiver vazia, não há carros para retirar.

69. b) Se tiver carros no estacionamento, faz um loop do..while, retirando o indicador e

70. a placa que estiverem no topo.

71. c) Compara a placa com o carro a ser retirado. Se for o carro procurado, informa

72. a saída

73. d) Se não, guarda a placa e o indicador na pilha RUA

74. e) Repete o ciclo, pegando o próximo indicador e carro do EST, até encontrar, ou

75. chegar ao fim da pilha.

76. f) Quando o loop acaba, retorna os carros e indicadores da pilha RUA, e recoloca na

77. pilha EST, acrencentando 1 a cada indicador de manobra. */

78. case 2: {

79. system("CLS");

80. /* Caso de não haver carros no estacionamento (pilha EST vazia) */

81. if (pilhaVazia(&est)

...

Baixar como (para membros premium)  txt (34.4 Kb)   pdf (204.2 Kb)   docx (33.1 Kb)  
Continuar por mais 48 páginas »
Disponível apenas no TrabalhosGratuitos.com