Buscar

4 3 Pratique e Compartilhe - Enviado - Documentos Google

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

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

Continue navegando