Crie uma estrutura com o nome Cliente contendo: CPF, nome (até 50 caracteres), endereço (até 80 caracteres), telefone (13 caracteres), lista de compras (ponteiro para uma estrutura do tipo vetor de ponteiros). Crie um vetor de ponteiros contendo no máximo 100 elementos que podem vir a apontar para a estrutura criada. Então implemente:
#ifndef CLIENTE_H_INCLUDED
#define CLIENTE_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
// estruturas
typedef struct ListaCompras{
int topo_lista;
char itens[100][50];
}ListaCompras;
typedef struct Cliente{
char nome[50];
char cpf[13];
char endereco[80];
char telefone[13];
ListaCompras lista_compras;
}Cliente;
// variaveis globais
Cliente lista_clientes[100];
int topo_lista_cliente = 0;
// funcoes
void LeItem(char* entrada){
// exibe na tela a mensagem
printf("Digite o nome do item a ser inserido: ");
// adiciona na variavel passada por parâmetro.
fgets(entrada, 50, stdin);
}
void CadastraCliente(Cliente c){
// adiciono o elemento no topo da lista de clientes.
memcpy(&lista_clientes[topo_lista_cliente], &c, sizeof(Cliente));
// seto o contador de itens comprados pelo cliente para zero.
lista_clientes[topo_lista_cliente].lista_compras.topo_lista = 0;
// incremento o topo para ele ser uma posicao vaga.
topo_lista_cliente++;
}
Cliente* BuscaCliente(char* cpf){
int cliente_atual = 0;
// procuro o cliente com o cpf até o final da lista.
while(cliente_atual <= topo_lista_cliente){
// se eu achar, eu retorno o endereço de memória dele.
if(strcmp(cpf, lista_clientes[cliente_atual].cpf) == true){
return &lista_clientes[cliente_atual];
}
// senao eu vou para o próximo.
else{
cliente_atual++;
}
}
// se eu não encontrar nada.
return NULL;
}
void AdicionaItem(Cliente* c, char* item){
// adiciono o elemento no topo da lista de compras.
strcpy(c->lista_compras.itens[c->lista_compras.topo_lista], item);
// incremento o topo para ele ser uma posicao vaga.
c->lista_compras.topo_lista++;
}
void DeletaCliente(char* cpf){
Cliente* aux = BuscaCliente(cpf);
aux = NULL;
}
#endif // CLIENTE_H_INCLUDED
Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Algoritmos e Estrutura de Dados.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
struct Cliente
{
char nome [50][50];
char endereco [50][80];
int cpf[50];
int tel [50];
char *lista [50]
};
void Cadastro(){
printf("Cadastro de Clientes ");
printf("Digite o nome do Cliente: ");
gets(Cliente[cont].nome);
printf("Digite o endereço: ");
gets(Cliente[cont].endereco);
fflush(stdin);
printf("Digite o numero do CPF: ");
scanf("%d", &Cliente[cont].CPF);
fflush(stdin);
printf("Digite o numero do telefone: ");
scanf("%d", &Cliente[cont].tel);
fflush(stdin);
cont++;
}
void Busca(){
int C;
printf("Digite o numero do CPF: ");
scanf("%d", &C);
for(int j=0;j<cont;j++){
if(cliente[i].cpf==C){
printf("Cadastro do Cliente ");
printf("%c", Cliente[j].nome);
printf("%c", Cliente[j].endereco);
printf("%d", Cliente[j].CPF);
printf("%d", &Cliente[cont].tel );
}
else{
printf("Cliente não encontrado! ");
}
}
}
void Excluir(){
int D;
printf("Digite o numero do CPF: ");
scanf("%d", &C);
for(int j=0;j<cont;j++){
if(cliente[i].cpf==C){
printf("Excluir Cliente ");
Cliente[j].nome = NULL;
Cliente[j].endereco = NULL;
Cliente[j].CPF = NULL;
Cliente[cont].tel = NULL;
}
else{
printf("Cliente não encontrado! ");
}
}
}
int main(){
int a=0, cont = 0;
while(a==0){
printf(“Escolha as seguintes opções: ”);
printf(“1_ Cadastro de clientes.”);
printf(“2_ Buscar cliente.”);
printf(“3_ Excluir clientes.”);
printf(“0_ Sair.”);
gets(“%d”,a);
if(a==1){
Cadastro();
}
else if(a==2){
Busca();
}
else if(a==3){
excluir();
}
else if(a==0){
break;
}
else{
printf(“Não existe esta opção, tente novamente.”);
}
}
return 0;
}
Portanto, o algoritmo apresentado realiza o cadastro de pessoas, faz busca pelos dados utilizando o CPF e também exclui o cadastro do cliente também buscando pelo CPF. A escolha das operações que se deseja realizar é feita por meio de um menu, conforme solicitado pelo enunciado da questão.
Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Algoritmos e Estrutura de Dados.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
struct Cliente
{
char nome [50][50];
char endereco [50][80];
int cpf[50];
int tel [50];
char *lista [50]
};
void Cadastro(){
printf("Cadastro de Clientes\n");
printf("Digite o nome do Cliente: ");
gets(Cliente[cont].nome);
printf("Digite o endereço: ");
gets(Cliente[cont].endereco);
fflush(stdin);
printf("Digite o numero do CPF: ");
scanf("%d", &Cliente[cont].CPF);
fflush(stdin);
printf("Digite o numero do telefone: ");
scanf("%d", &Cliente[cont].tel);
fflush(stdin);
cont++;
}
void Busca(){
int C;
printf("Digite o numero do CPF: ");
scanf("%d", &C);
for(int j=0;j<cont;j++){
if(cliente[i].cpf==C){
printf("Cadastro do Cliente\n");
printf("%c", Cliente[j].nome);
printf("%c", Cliente[j].endereco);
printf("%d", Cliente[j].CPF);
printf("%d", &Cliente[cont].tel );
}
else{
printf("Cliente não encontrado!\n");
}
}
}
void Excluir(){
int D;
printf("Digite o numero do CPF: ");
scanf("%d", &C);
for(int j=0;j<cont;j++){
if(cliente[i].cpf==C){
printf("Excluir Cliente\n");
Cliente[j].nome = NULL;
Cliente[j].endereco = NULL;
Cliente[j].CPF = NULL;
Cliente[cont].tel = NULL;
}
else{
printf("Cliente não encontrado!\n");
}
}
}
int main(){
int a=0, cont = 0;
while(a==0){
printf(“Escolha as seguintes opções: ”);
printf(“1_ Cadastro de clientes.”);
printf(“2_ Buscar cliente.”);
printf(“3_ Excluir clientes.”);
printf(“0_ Sair.”);
gets(“%d”,a);
if(a==1){
Cadastro();
}
else if(a==2){
Busca();
}
else if(a==3){
excluir();
}
else if(a==0){
break;
}
else{
printf(“Não existe esta opção, tente novamente.”);
}
}
return 0;
}
Portanto, o algoritmo apresentado realiza o cadastro de pessoas, faz busca pelos dados utilizando o CPF e também exclui o cadastro do cliente também buscando pelo CPF. A escolha das operações que se deseja realizar é feita por meio de um menu, conforme solicitado pelo enunciado da questão.
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar