Buscar

Cadastro de clientes usando fila com classes - POO

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

// AjudaBerg.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Estrutura do cliente
typedef struct Cliente {
	int id;
	char nome[70];
	float saldo;
	struct Cliente * prx;
	struct Cliente * ant;
} cliente;
//Variavel global com tamanho da lista
int len = 0;
//Referencia sempre o primeiro item da lista
cliente * priCliente = NULL;
cliente * ultCliente = NULL;
//Cria um novo cliente
cliente * criaCliente(int id, char nome[70], float saldo)
{
	cliente * newCliente = (cliente *)malloc(sizeof(cliente));
	if (newCliente == NULL)
	{
		printf_s("\n Falha na criacao de nodo \n");
		return NULL;
	}
	newCliente->id = id;
	strcpy_s(newCliente->nome, nome);
	newCliente->saldo = saldo;
	newCliente->prx = NULL;
	newCliente->ant = ultCliente;
	return newCliente;
}
//Insere no final
cliente * insere(cliente * newCliente) {
	if (!len) {
		//printf_s("Adicionado no primeiro");
		priCliente = newCliente;
		ultCliente = newCliente;
	}
	else {
		//printf_s("Adicionado no ultimo");
		ultCliente->prx = newCliente;
		ultCliente->ant = ultCliente->ant;
		ultCliente = newCliente;
	}
	len++;
	return newCliente;
}
//Deleta registro por id
//void remove(int id) {
//	cliente * auxCliente = priCliente;
//
//	while (auxCliente != NULL) {
//		if (auxCliente->id == id) {
//			auxCliente->ant->prx = auxCliente->prx;
//			free(auxCliente);
//		}
//	}
//
//
//}
//Deleta registro por nome
void removeNome(char nome[70]) {
	cliente * auxCliente = priCliente;
	while (auxCliente != NULL) {
		if (!strcmp(auxCliente->nome, nome)) {
			auxCliente->ant = auxCliente->prx;
			//free(auxCliente);
			return;
		}
		auxCliente = auxCliente->prx;
	}
}
void mostra() {
	cliente * auxCliente = priCliente;
	while (auxCliente != NULL) {
		printf_s("id: %d \n", auxCliente->id);
		printf_s("Nome: %s \n", auxCliente->nome);
		printf_s("Saldo: %.2f \n", auxCliente->saldo);
		printf_s("anterior: %s \n", auxCliente->ant->nome);
		printf_s("proximo: %s \n", auxCliente->prx->nome);
		printf_s("------------------------------------------\n");
		auxCliente = auxCliente->prx;
	}
}
int main()
{
	insere(criaCliente(1, "Wesley", -10));
	insere(criaCliente(2, "Cayo", 100));
	mostra();
	system("cls");
	insere(criaCliente(3, "Berg", 200));
	insere(criaCliente(4, "Fernando", 300));
	mostra();
	removeNome("Cayo");
	system("pause");
	system("cls");
	mostra();
	//remove(3);
	//mostra();
	system("pause");
	return 0;
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando

Outros materiais