fork download
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  6.  
  7.  
  8. typedef struct Cliente{
  9.  
  10. int id, idade;
  11. char nome[50];
  12. float salario;
  13.  
  14. struct Cliente* prox;
  15.  
  16.  
  17. }Cliente;
  18.  
  19. Cliente* inicio = NULL;
  20.  
  21.  
  22.  
  23. Cliente* criarCliente(int id, char nome[], int idade, float salario)
  24. {
  25. Cliente* novo = (Cliente*) malloc(sizeof(Cliente));
  26. novo->id = id;
  27. strcpy(novo->nome, nome);
  28. novo->idade = idade;
  29. novo->salario = salario;
  30.  
  31. novo->prox = NULL;
  32. return novo;
  33.  
  34.  
  35. }
  36.  
  37. void adicionarCliente()
  38. {
  39. int id, idade;
  40. float salario;
  41. char nome[50];
  42.  
  43. printf("Novo ID para o cliente: ");
  44. scanf("%d", &id);
  45. printf("Nome: ");
  46. scanf("%s", &nome);
  47. printf("Idade: ");
  48. scanf ("%d", &idade);
  49. printf("Salario: ");
  50. scanf("%f", &salario);
  51.  
  52. Cliente* novo = criarCliente(id, nome,idade, salario);
  53.  
  54. if (inicio = NULL)
  55. {
  56. inicio = novo;
  57.  
  58. }
  59. else
  60. {
  61. Cliente* temp = inicio;
  62.  
  63. while(temp->prox != NULL)
  64. {
  65. temp = temp->prox;
  66. }
  67.  
  68. temp->prox = novo;
  69.  
  70. }
  71. }
  72.  
  73. void listarClientes()
  74.  
  75. {
  76. Cliente* temp = inicio;
  77.  
  78. if(temp == NULL)
  79. {
  80. printf("Lista Vazia !! Nenhum Cliente Cadastrado.");
  81. }
  82.  
  83. printf("\n ---------- Lista Carta dos Clientes: ------------ \n");
  84.  
  85. printf(" ID: %d || Nome: %s || Idade: %d || Salario: %f \n", temp->id, temp->nome, temp->idade, temp->salario);
  86.  
  87. temp = temp->prox;
  88.  
  89. }
  90.  
  91. void atualizarCliente()
  92.  
  93. {
  94.  
  95. int id;
  96. printf("Qual o ID do cliente a ser atualizado ? ");
  97. scanf("%d", &id);
  98.  
  99. Cliente* temp = inicio;
  100.  
  101. while (temp != NULL)
  102. {
  103. if(temp->id == id)
  104. {
  105. printf("Novo nome: ");
  106. scanf("%s", &temp->nome);
  107. printf("Nova Idade: ");
  108. scanf ("%d", &temp->idade);
  109. printf("Novo Salario: ");
  110. scanf("%f", &temp->salario);
  111. printf("Cliente atualizado com sucesso! \n");
  112.  
  113. return;
  114. }
  115. temp = temp->prox;
  116.  
  117. }
  118.  
  119. printf("Cliente com ID %d não encontrada \n", id);
  120. return;
  121. }
  122.  
  123. void removerCliente()
  124.  
  125. {
  126. int id;
  127. Cliente* temp = inicio;
  128. Cliente* anterior = NULL;
  129.  
  130. printf("Qual o ID do Cliente a ser excluido ?");
  131. scanf("%d", &id);
  132.  
  133. while(temp != NULL && temp->id != id)
  134. {
  135. anterior = temp;
  136. temp = temp->prox;
  137.  
  138. }
  139. if(temp == NULL)
  140. {
  141. printf("Pessoa não encontrada");
  142. return;
  143.  
  144. }
  145. else
  146. {
  147. anterior->prox = temp->prox;
  148. }
  149.  
  150. free(temp);
  151. printf("Pessoa removida com sucesso! \n");
  152.  
  153.  
  154. }
  155.  
  156. void liberarLista ()
  157. {
  158.  
  159. Cliente* temp;
  160.  
  161. while (inicio != NULL)
  162. {
  163. temp = inicio;
  164. inicio = inicio->prox;
  165. free(temp);
  166. }
  167.  
  168. }
  169.  
  170.  
  171.  
  172. int main(int argc, char** argv)
  173.  
  174. {
  175.  
  176. int opcao;
  177. do
  178. {
  179.  
  180. printf("------ Sistema de Cadastro -------- \n");
  181. printf("Escolha uma opcao: \n");
  182. printf("1. Adicionar Cliente\n");
  183. printf("2. Listar Clientes\n");
  184. printf("3. Atualziar Cliente\n");
  185. printf ("4. Remover Cliente\n");
  186. printf ("0. Sair");
  187.  
  188. switch (opcao)
  189. {
  190.  
  191. case 1: adicionarCliente();
  192. break;
  193. case 2: listarClientes();
  194. break;
  195. case 3: atualizarCliente();
  196. break;
  197. case 4: removerCliente();
  198. break;
  199. case 0: liberarLista();
  200. printf("Saindo...");
  201. break;
  202. default: printf("Opcao invalida");
  203.  
  204.  
  205. }
  206. }while(opcao != 0);
  207.  
  208.  
  209. return 0;
  210. }
  211.  
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
------ Sistema de Cadastro -------- 
Escolha uma opcao: 
1. Adicionar Cliente
2. Listar Clientes
3. Atualziar Cliente
4. Remover Cliente
0. SairSaindo...