Essays.club - TCC, Modelos de monografias, Trabalhos de universidades, Ensaios, Bibliografias
Pesquisar

Exercício Estrutura de dados - Estacionamento

Por:   •  2/2/2018  •  12.139 Palavras (49 Páginas)  •  430 Visualizações

Página 1 de 49

...

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) == 1) {

82. printf("\n Não há carros no estacionamento.");

83. system("pause>NULL"); }

84.

85. /* Tem carros em EST. Procura pelo carro certo, */

86. else {

87. /* pegando a placa, */

88. printf("\n Digite a placa (ex.: 9999): ");

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

90.

91. e = 0;

92. /* e comparando com a placa retirada de EST */

93. do {

94. ind = pop(&est); /* retira o indicador da pilha */

95. temp = pop(&est); /* retira a placa */

96. /* e compara a placa com a digitada */

97. if (placa == temp) { /* se igual: encontrado o carro */

98. printf("\n O carro de placa %d saiu do estacionamento.", placa);

99. printf("\n Este carro foi manobrado %d vezes.", ind);

100. /* Uma perfumaria: é possível usar o indicador de manobras para

101. alguma coisa concreta, como, por exemplo, oferecer desconto

102. para cada manobra que teve que ser feita durante a permanência */

103. printf("\n Valor a ser pago: R$%2.2f", ( (float) 10 - (ind * 0.2 ) ) );

104. cont--; /* este contador guarda o total de carros no estacionamento */

105. printf("\n Vagas: %d", (TAM/2) - cont);

106. system("pause > NULL");

107. e = 1; /* para encerrar o loop de busca */

108. }

109. else { /* não encontrou, coloca o carro na RUA */

110. push(&rua, temp);

111. push(&rua, ind);

112. /* Se a pilha EST estiver vazia neste momento, o carro não

113. foi encontrado */

114. if (pilhaVazia(&est) == 1) {

115. printf("\n Carro não encontrado.");

116. system("pause>NULL");

117. e = 1; } /* Sair do loop de busca */

118. }

119. } while ( e == 0);

120.

121. /* Depois da busca, guardar novamente os carros no EST */

122. while (pilhaVazia(&rua) == 0) {

123. ind = pop(&rua); /* retira o indicador da RUA */

124. temp = pop(&rua); /* retira a placa da RUA */

125. push(&est, temp); /* guarda a placa no EST*/

126. push(&est, ind +1); /* incrementa e guarda o indicador no EST */

127. } }

...

Baixar como  txt (34.5 Kb)   pdf (87.4 Kb)   docx (34.6 Kb)  
Continuar por mais 48 páginas »
Disponível apenas no Essays.club