#include <iostream>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
typedef struct Cliente{
int id, idade;
char nome[50];
float salario;
struct Cliente* prox;
}Cliente;
Cliente* inicio = NULL;
Cliente* criarCliente(int id, char nome[], int idade, float salario)
{
Cliente* novo = (Cliente*) malloc(sizeof(Cliente));
novo->id = id;
strcpy(novo->nome, nome);
novo->idade = idade;
novo->salario = salario;
novo->prox = NULL;
return novo;
}
void adicionarCliente()
{
int id, idade;
float salario;
char nome[50];
printf("Novo ID para o cliente: ");
scanf("%d", &id);
printf("Nome: ");
scanf("%s", &nome);
printf("Idade: ");
scanf ("%d", &idade);
printf("Salario: ");
scanf("%f", &salario);
Cliente* novo = criarCliente(id, nome,idade, salario);
if (inicio = NULL)
{
inicio = novo;
}
else
{
Cliente* temp = inicio;
while(temp->prox != NULL)
{
temp = temp->prox;
}
temp->prox = novo;
}
}
void listarClientes()
{
Cliente* temp = inicio;
if(temp == NULL)
{
printf("Lista Vazia !! Nenhum Cliente Cadastrado.");
}
printf("\n ---------- Lista Carta dos Clientes: ------------ \n");
printf(" ID: %d || Nome: %s || Idade: %d || Salario: %f \n", temp->id, temp->nome, temp->idade, temp->salario);
temp = temp->prox;
}
void atualizarCliente()
{
int id;
printf("Qual o ID do cliente a ser atualizado ? ");
scanf("%d", &id);
Cliente* temp = inicio;
while (temp != NULL)
{
if(temp->id == id)
{
printf("Novo nome: ");
scanf("%s", &temp->nome);
printf("Nova Idade: ");
scanf ("%d", &temp->idade);
printf("Novo Salario: ");
scanf("%f", &temp->salario);
printf("Cliente atualizado com sucesso! \n");
return;
}
temp = temp->prox;
}
printf("Cliente com ID %d não encontrada \n", id);
return;
}
void removerCliente()
{
int id;
Cliente* temp = inicio;
Cliente* anterior = NULL;
printf("Qual o ID do Cliente a ser excluido ?");
scanf("%d", &id);
while(temp != NULL && temp->id != id)
{
anterior = temp;
temp = temp->prox;
}
if(temp == NULL)
{
printf("Pessoa não encontrada");
return;
}
else
{
anterior->prox = temp->prox;
}
free(temp);
printf("Pessoa removida com sucesso! \n");
}
void liberarLista ()
{
Cliente* temp;
while (inicio != NULL)
{
temp = inicio;
inicio = inicio->prox;
free(temp);
}
}
int main(int argc, char** argv)
{
int opcao;
do
{
printf("------ Sistema de Cadastro -------- \n");
printf("Escolha uma opcao: \n");
printf("1. Adicionar Cliente\n");
printf("2. Listar Clientes\n");
printf("3. Atualziar Cliente\n");
printf ("4. Remover Cliente\n");
printf ("0. Sair");
switch (opcao)
{
case 1: adicionarCliente();
break;
case 2: listarClientes();
break;
case 3: atualizarCliente();
break;
case 4: removerCliente();
break;
case 0: liberarLista();
printf("Saindo...");
break;
default: printf("Opcao invalida");
}
}while(opcao != 0);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCi8qIHJ1biB0aGlzIHByb2dyYW0gdXNpbmcgdGhlIGNvbnNvbGUgcGF1c2VyIG9yIGFkZCB5b3VyIG93biBnZXRjaCwgc3lzdGVtKCJwYXVzZSIpIG9yIGlucHV0IGxvb3AgKi8KCgp0eXBlZGVmIHN0cnVjdCBDbGllbnRlewoJCglpbnQgaWQsIGlkYWRlOwoJY2hhciBub21lWzUwXTsKCWZsb2F0IHNhbGFyaW87CgkKCXN0cnVjdCBDbGllbnRlKiBwcm94OwoJCgkKfUNsaWVudGU7CgpDbGllbnRlKiBpbmljaW8gPSBOVUxMOwoKCgpDbGllbnRlKiBjcmlhckNsaWVudGUoaW50IGlkLCBjaGFyIG5vbWVbXSwgaW50IGlkYWRlLCBmbG9hdCBzYWxhcmlvKQp7CglDbGllbnRlKiBub3ZvID0gKENsaWVudGUqKSBtYWxsb2Moc2l6ZW9mKENsaWVudGUpKTsKCW5vdm8tPmlkID0gaWQ7CglzdHJjcHkobm92by0+bm9tZSwgbm9tZSk7Cglub3ZvLT5pZGFkZSA9IGlkYWRlOwoJbm92by0+c2FsYXJpbyA9IHNhbGFyaW87CgkKCW5vdm8tPnByb3ggPSBOVUxMOwoJcmV0dXJuIG5vdm87CQoJCgkKfQoKdm9pZCBhZGljaW9uYXJDbGllbnRlKCkKewoJaW50IGlkLCBpZGFkZTsKCWZsb2F0IHNhbGFyaW87CgljaGFyIG5vbWVbNTBdOwoJCglwcmludGYoIk5vdm8gSUQgcGFyYSBvIGNsaWVudGU6ICIpOwoJc2NhbmYoIiVkIiwgJmlkKTsKCXByaW50ZigiTm9tZTogIik7CglzY2FuZigiJXMiLCAmbm9tZSk7CglwcmludGYoIklkYWRlOiAiKTsKCXNjYW5mICgiJWQiLCAmaWRhZGUpOwoJcHJpbnRmKCJTYWxhcmlvOiAiKTsKCXNjYW5mKCIlZiIsICZzYWxhcmlvKTsKCQoJCUNsaWVudGUqIG5vdm8gPSBjcmlhckNsaWVudGUoaWQsIG5vbWUsaWRhZGUsIHNhbGFyaW8pOwoJCQoJaWYgKGluaWNpbyA9IE5VTEwpCgl7CgkJaW5pY2lvID0gbm92bzsKCQkKCX0KCWVsc2UKCXsKCQlDbGllbnRlKiB0ZW1wID0gaW5pY2lvOwoJCQoJCXdoaWxlKHRlbXAtPnByb3ggIT0gTlVMTCkKCQl7CgkJdGVtcCA9IHRlbXAtPnByb3g7CgkJfQoJCQoJCXRlbXAtPnByb3ggPSBub3ZvOwoJCgl9Cn0KCQoJdm9pZCBsaXN0YXJDbGllbnRlcygpCgkKCXsKCQlDbGllbnRlKiB0ZW1wID0gaW5pY2lvOwoJCQoJCWlmKHRlbXAgPT0gTlVMTCkKCQl7CgkJCXByaW50ZigiTGlzdGEgVmF6aWEgISEgTmVuaHVtIENsaWVudGUgQ2FkYXN0cmFkby4iKTsKCQl9CgkJCgkJcHJpbnRmKCJcbiAtLS0tLS0tLS0tIExpc3RhIENhcnRhIGRvcyBDbGllbnRlczogLS0tLS0tLS0tLS0tIFxuIik7CgkJCgkJCXByaW50ZigiIElEOiAlZCB8fCBOb21lOiAlcyB8fCBJZGFkZTogJWQgfHwgU2FsYXJpbzogJWYgXG4iLCB0ZW1wLT5pZCwgdGVtcC0+bm9tZSwgdGVtcC0+aWRhZGUsIHRlbXAtPnNhbGFyaW8pOwoJCQkKCQkJCXRlbXAgPSB0ZW1wLT5wcm94OwoJCQoJfQoJCgl2b2lkIGF0dWFsaXphckNsaWVudGUoKQoJCgl7CgkJCgkJaW50IGlkOwoJCXByaW50ZigiUXVhbCBvIElEIGRvIGNsaWVudGUgYSBzZXIgYXR1YWxpemFkbyA/ICIpOwoJCXNjYW5mKCIlZCIsICZpZCk7CgkKCQlDbGllbnRlKiB0ZW1wID0gaW5pY2lvOwoJCQoJCQl3aGlsZSAodGVtcCAhPSBOVUxMKQoJCQl7CgkJCQlpZih0ZW1wLT5pZCA9PSBpZCkKCQkJCXsKCQkJCQlwcmludGYoIk5vdm8gbm9tZTogIik7CgkJCQkJc2NhbmYoIiVzIiwgJnRlbXAtPm5vbWUpOwoJCQkJCXByaW50ZigiTm92YSBJZGFkZTogIik7CgkJCQkJc2NhbmYgKCIlZCIsICZ0ZW1wLT5pZGFkZSk7CgkJCQkJcHJpbnRmKCJOb3ZvIFNhbGFyaW86ICIpOwoJCQkJCXNjYW5mKCIlZiIsICZ0ZW1wLT5zYWxhcmlvKTsKCQkJCQlwcmludGYoIkNsaWVudGUgYXR1YWxpemFkbyBjb20gc3VjZXNzbyEgXG4iKTsKCQkJCgkJCQkJcmV0dXJuOwoJCQkJfQoJCQkJdGVtcCA9IHRlbXAtPnByb3g7CgkJCQkJCgkJCX0KCQkJCQoJCQkJcHJpbnRmKCJDbGllbnRlIGNvbSBJRCAlZCBuw6NvIGVuY29udHJhZGEgXG4iLCBpZCk7CgkJCQlyZXR1cm47Cgl9CgkKCXZvaWQgcmVtb3ZlckNsaWVudGUoKQoJCgl7CgkJaW50IGlkOwoJCUNsaWVudGUqIHRlbXAgPSBpbmljaW87CgkJQ2xpZW50ZSogYW50ZXJpb3IgPSBOVUxMOwoJCQoJCXByaW50ZigiUXVhbCBvIElEIGRvIENsaWVudGUgYSBzZXIgZXhjbHVpZG8gPyIpOwoJCXNjYW5mKCIlZCIsICZpZCk7CgkJCgkJd2hpbGUodGVtcCAhPSBOVUxMICYmIHRlbXAtPmlkICE9IGlkKQoJCQl7CgkJCQlhbnRlcmlvciA9IHRlbXA7CgkJCQl0ZW1wID0gdGVtcC0+cHJveDsKCQkJCQoJCQl9CgkJCWlmKHRlbXAgPT0gTlVMTCkKCQkJewoJCQkJcHJpbnRmKCJQZXNzb2EgbsOjbyBlbmNvbnRyYWRhIik7CgkJCQlyZXR1cm47CgoJCQl9CgkJCWVsc2UKCQkJewoJCQkJYW50ZXJpb3ItPnByb3ggPSB0ZW1wLT5wcm94OwoJCQl9CgkJCQkJCgkJCWZyZWUodGVtcCk7CgkJCXByaW50ZigiUGVzc29hIHJlbW92aWRhIGNvbSBzdWNlc3NvISBcbiIpOwoJCQkKCQkKCX0KCQoJdm9pZCBsaWJlcmFyTGlzdGEgKCkKCXsKCQkKCQkJQ2xpZW50ZSogdGVtcDsKCQkJCgkJCXdoaWxlIChpbmljaW8gIT0gTlVMTCkKCQkJewoJCQkJdGVtcCA9IGluaWNpbzsKCQkJCWluaWNpbyA9IGluaWNpby0+cHJveDsKCQkJCWZyZWUodGVtcCk7CgkJCX0JCQoJCQoJfQoJCQoKCmludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgCgp7CgkKCWludCBvcGNhbzsKCWRvCgl7CgkJCgkJcHJpbnRmKCItLS0tLS0gU2lzdGVtYSBkZSBDYWRhc3RybyAtLS0tLS0tLSBcbiIpOwoJCXByaW50ZigiRXNjb2xoYSB1bWEgb3BjYW86IFxuIik7CgkJcHJpbnRmKCIxLiBBZGljaW9uYXIgQ2xpZW50ZVxuIik7CgkJcHJpbnRmKCIyLiBMaXN0YXIgQ2xpZW50ZXNcbiIpOwoJCXByaW50ZigiMy4gQXR1YWx6aWFyIENsaWVudGVcbiIpOwoJCXByaW50ZiAoIjQuIFJlbW92ZXIgQ2xpZW50ZVxuIik7CgkJcHJpbnRmICgiMC4gU2FpciIpOwoJCQoJCXN3aXRjaCAob3BjYW8pCgl7CgkJCgkJY2FzZSAxOiBhZGljaW9uYXJDbGllbnRlKCk7CgkJCWJyZWFrOwoJCWNhc2UgMjogbGlzdGFyQ2xpZW50ZXMoKTsKCQkJYnJlYWs7CgkJY2FzZSAzOiBhdHVhbGl6YXJDbGllbnRlKCk7CgkJCWJyZWFrOwoJCWNhc2UgNDogcmVtb3ZlckNsaWVudGUoKTsKCQkJYnJlYWs7CgkJY2FzZSAwOiBsaWJlcmFyTGlzdGEoKTsKCQkJCXByaW50ZigiU2FpbmRvLi4uIik7CgkJCQlicmVhazsKCQkJCWRlZmF1bHQ6IHByaW50ZigiT3BjYW8gaW52YWxpZGEiKTsKCQkJCgkJCgl9Cgl9d2hpbGUob3BjYW8gIT0gMCk7CgkKCQoJcmV0dXJuIDA7Cgl9CQo=