Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. ATIVIDADE PROPOSTA Convido você a pensar, sobre uma proposta em que deverá ser implementado um algoritmo usando fundamentos de uma pilha com estruturas de dados do tipo LIFO (last-in first-out). Pode ser aplicado algo parecido com uma agenda, em que o código implementado será uma lista que irá guardar contatos, os quais devem possuir alguns dados, como: nome, telefone e e-mail do contato em uma matriz. Ao final disponibilize seu trabalho no fórum da seção 2. RESOLUÇÃO DA ATIVIDADE PROPOSTA Cadastro de Clientes 1. #include <stdio.h> 2. #include <string.h> 3. #include <stdlib.h> 4. 5. typedef struct C { 6. char *cliente; 7. char *telefone; 8. char *email; 9. } Contato; 10. 11. Contato createContact(char *cliente, char *telefone, char *email); 12. char exibeMenu(); 13. 14. Contato createContact(char *cliente, char *telefone, char *email) { 15. 16. Contato *contato = malloc(sizeof(Contato)); 17. 18. contato->cliente = strdup(cliente); 19. contato->telefone = strdup(telefone); 20. contato->email = strdup(email); 21. return *contato; 22. } 23. 24. char exibeMenu() { 25. 2 26. char opcao_selecionada; 27. 28. printf("=========================================\n"); 29. printf("\t **** Cadastro_Clientes ****\n"); 30. printf("=========================================\n\n"); 31. printf("Selecione uma das opcoes abaixo:\n\n"); 32. printf(" (a) para adicionar cliente\n"); 33. printf(" (r) para remover cliente\n"); 34. printf(" (l) para listar todos os clientes\n"); 35. printf(" (x) para sair do programa\n"); 36. 37. scanf("\n%c", &opcao_selecionada); 38. return opcao_selecionada; 39. 40. } 41. 42. int main() 43. { 44. 45. Contato contatos[10]; 46. // Cadastro_Clientes[10]; 47. int indice_ultimo_contato = -1; 48. 49. while(1) { 50. 51. char opcao_selecionada = exibeMenu(); 52. 53. if(opcao_selecionada == 'x') { 54. printf("Programa encerrado\n"); 55. break; 56. } 57. else if(opcao_selecionada == 'a') { 58. char *cliente_novo_contato, *telefone_novo_contato, *email_novo_contato; 59. cliente_novo_contato = malloc(sizeof(char*) * 20); 60. telefone_novo_contato = malloc(sizeof(char*) * 10); 61. email_novo_contato = malloc(sizeof(char*) * 30); 62. 3 63. printf("\ncliente: "); 64. scanf("%s", cliente_novo_contato); 65. printf("Telefone: "); 66. scanf("%s", telefone_novo_contato); 67. printf("Email: "); 68. scanf("%s", email_novo_contato); 69. printf("\n\n"); 70. 71. contatos[++indice_ultimo_contato] = createContact(cliente_novo_contato, telefone_novo_contato, email_novo_contato); 72. 73. printf("\n Cliente %s adicionado com sucesso!! \n\n", cliente_novo_contato); 74. 75. } else if(opcao_selecionada == 'r') { 76. char *cliente_contato_removido = contatos[indice_ultimo_contato].cliente; 77. indice_ultimo_contato--; 78. printf("\n Cliente %s removido com sucesso!! \n\n", cliente_contato_removido); 79. 80. } else if(opcao_selecionada == 'l') { 81. int i; 82. printf("\nContatos: \n"); 83. printf(" %s \t --|-- %s \t --|-- %s \n", "cliente", "TELEFONE", "EMAIL"); 84. printf("---------------------------------------\n"); 85. 86. for(i = 0; i <= indice_ultimo_contato; i++) { 87. printf(" %s \t --|-- %s \t --|-- %s \n", contatos[i].cliente, contatos[i].telefone, contatos[i].email); 88. } 89. 90. printf("\n\n"); 91. } 92. 93. } 94. return 0; 95. } Algoritmo testado no Dev-C++ 4
Compartilhar