Advertisement
kalo93

Untitled

Feb 4th, 2015
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.07 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <conio.h>
  5. #define MAX 200
  6.  
  7. typedef struct cel
  8. {
  9. int cod;
  10. char nome[MAX];
  11. char cc[MAX];
  12. char date[MAX];
  13. struct cel *prox;
  14. }celula;
  15.  
  16. //celula* é o tipo do retorno da função
  17. //cria_celula, e eu ia colocar void nos parenteses da função para que a função não recebesse dados
  18. //coloca as variáveis a nulo
  19. celula* cria_celula()
  20. {
  21. celula *nova;
  22. nova = (celula*)malloc( sizeof(celula) );
  23. if(nova != NULL)
  24. {
  25. nova->prox = NULL;
  26. nova->nome[0] = '\0';
  27. nova->cc[0] = '\0';
  28. nova->date[0] = '\0';
  29. nova->cod = -1;
  30. }
  31. return nova;
  32. }
  33.  
  34.  
  35. //função que só serve para ir buscar aos apontadores os dados dos utentes
  36. void mostra(celula *x)
  37. {
  38. printf("\nCódigo: %d ", x->cod);
  39. printf("\nNome: %s",x->nome);
  40. printf("\nCartão de Cidadão: %s",x->cc);
  41. printf("\nData: %s",x->date);
  42. printf("\n");
  43. printf("\n");
  44. }
  45.  
  46. //lista
  47. void listar(celula *lista)
  48. {
  49. celula *p;
  50. if (lista == NULL)
  51. {
  52. printf("\nnão tem nada.\n");
  53. getchar();
  54. return;
  55. }
  56.  
  57. printf("\nlista: ");
  58. for (p = lista; p != NULL; p = p->prox)
  59. //chama a função anterior que mostra os dados
  60. {
  61. mostra(p);
  62. }
  63. getch();
  64. }
  65.  
  66. //pesquisa... não sei
  67. celula *busca(celula *lista)
  68. {
  69. int num = 0;
  70. celula *p;
  71. printf("numero para procurar: ");
  72. scanf("%d",&num);
  73. getch();
  74.  
  75. p = lista;
  76. while( (p != NULL) && (p->cod != num) )
  77. p = p->prox;
  78.  
  79. return p;
  80. }
  81.  
  82. void insere(celula **lista)
  83. {
  84. celula *nova = cria_celula();
  85. if(nova == NULL)
  86. {
  87. printf("Nao foi possivel criar uma nova celula!");
  88. getchar();
  89. return;
  90. }
  91.  
  92. printf("Numero: ");
  93. scanf("%d",&nova->cod);
  94.  
  95. printf("Nome: ");
  96. scanf(" %s",nova->nome);
  97. printf("Cartão de Cidadão: ");
  98. scanf(" %s",nova->cc);
  99. printf("Data: ");
  100. scanf(" %s",nova->date);
  101. nova->prox = *lista;
  102. *lista = nova;
  103. printf("Numero %d inserido.\n", nova->cod);
  104. getch();
  105. system("cls");
  106. }
  107.  
  108.  
  109. void remove_cel(celula **lista)
  110. {
  111. if (*lista == NULL)
  112. {
  113. printf("\nLista vazia. Sem itens para remover.\n");
  114. getchar();
  115. return;
  116. }
  117. else
  118. {
  119. celula *remover = *lista;
  120. *lista = remover->prox;
  121. printf("\nItem %d removido.\n",remover->cod);
  122. free(remover);
  123. getchar();
  124. }
  125. }
  126.  
  127. void alterar(celula *lista)
  128. {
  129. celula *cel;
  130.  
  131. cel = busca(lista);
  132.  
  133. if(cel == NULL)
  134. {
  135. printf("Numero nao encontrado!");
  136. getchar();
  137. return;
  138. }
  139.  
  140. printf("\nElemento encontrado:\n");
  141. mostra(cel);
  142.  
  143. printf("Informe os novos valores:\n");
  144. printf("=========================\n");
  145. printf("Numero: ");
  146. scanf("%d",&cel->cod);
  147.  
  148. printf("Nome: ");
  149. scanf(" %s",cel->nome);
  150. printf("Cartão de Cidadão: ");
  151. scanf(" %s",cel->cc);
  152. printf("Data: ");
  153. scanf(" %s",cel->date);
  154. }
  155.  
  156. char menu(void)
  157. {
  158. system("cls");
  159. char opcao;
  160.  
  161. printf(" Menu ");
  162. printf("\n*********************************");
  163. printf("\n* 1-Inserir *");
  164. printf("\n* 2-Listar *");
  165. printf("\n* 3-Buscar *");
  166. printf("\n* 4-Remove *");
  167. printf("\n* 5-Alterar *");
  168. printf("\n* 6-Inserir no fim *");
  169. printf("\n* 0-sair *");
  170. printf("\n*********************************\n");
  171. printf("Entre com a opcao desejada: ");
  172. scanf(" %c",&opcao);
  173. getchar();
  174.  
  175. return opcao;
  176. }
  177.  
  178. int main(void)
  179. {
  180. setlocale(LC_ALL, "Portuguese");
  181.  
  182. celula *lista = NULL;
  183. char op;
  184. celula *p;
  185.  
  186. do
  187. {
  188. op = menu();
  189.  
  190. switch(op)
  191. {
  192. case '0':
  193. printf("\n\nEncerrando...\n");
  194. break;
  195. case '1':
  196. insere(&lista);
  197. break;
  198. case '2':
  199. listar(lista);
  200. break;
  201. case '3':
  202. p = busca(lista);
  203. if(p == NULL)
  204. {
  205. printf("Numero nao encontrado...");
  206. getchar();
  207. }
  208. else
  209. {
  210. printf("\nElemento encontrado!");
  211. printf("\n==========================");
  212. mostra(p);
  213. getchar();
  214. }
  215. break;
  216. case '4':
  217. remove_cel(&lista);
  218. break;
  219. case '5':
  220. alterar(lista);
  221. break;
  222. default:
  223. printf("Opcao invalida!");
  224. printf("Pressione enter para continuar...");
  225. getchar();
  226. }
  227.  
  228. } while (op != '0');
  229.  
  230. return 0;
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement