Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Name: *** Clube Esportivo Estrela do Sul ***
- Autor: Irlan, Savyo, Anderson
- Trabalho: Av1
- */
- #include <iostream>
- #include <stdlib.h>
- #include <string.h>
- #define TAM_NOM 20
- #define TAM_ALT 20
- #define TAM_INC 20 //Valores definidos no cabeçalho
- #define TAM_IDA 20 //para evitar ter que ficar alterando todo o código.
- #define TAM_CAR 20
- #define TAM_VET 20
- #define TEMP_SAIR 80
- using namespace std;
- struct club {
- char nome[TAM_NOM];
- char altura[TAM_ALT];
- char inscricao[TAM_INC];
- char idade[TAM_IDA];
- char caracteristica[TAM_CAR];
- struct club *proximo; //Aponta para a proxima struct.
- } *inicio, *ultimo, *novo; // Ponteiros apontando para o struct, zerados sem apontar para lugar nenhum.
- typedef club cadAtleta; // Apelido
- int cadastrado(char atletas[TAM_VET]); // Prototipo da função VERIFICAR.
- //Função Chama Digitar - INÍCIO
- void digitar(void){ //Função digitar(); criada para enxugar o código onde os são passado por referencia.
- cin.clear(); //Limpa sujeira digitada
- fflush(stdin); //Limpa sujeira digitada
- cout<< "Nome:\n"<<endl;
- cin.getline (novo->nome, TAM_NOM); // novo, ponteiro que adiciona num novo espaço alocado na função inserir.
- cin.clear();
- fflush(stdin);
- cout << "\nIdade:\n"<<endl;
- cin.getline (novo->idade, TAM_IDA);// cin.getline - Utilizada para poder aceitar espaço
- cin.clear();
- fflush(stdin);
- cout << "\nAltura:\n"<<endl;
- cin.getline (novo->altura, TAM_ALT); //Cadastra os dados dos Atletas
- cin.clear();
- fflush(stdin);
- cout << "\ninscricao:\n"<<endl;
- cin.getline (novo->inscricao, TAM_INC);
- cin.clear();
- fflush(stdin);
- cout << "\nCaracteristica:\n"<<endl;
- cin.getline (novo->caracteristica, TAM_CAR);
- }
- //Função chama Digitar - FIM
- //Função INSERIR Atletas - INÍCIO
- int inserir(){
- cadAtleta *p; //Cria um ponteiro para a struct cadAtleta, variavel local;
- novo = (cadAtleta*)malloc(sizeof(cadAtleta)); //Recebe como parâmetro o tamanho em bytes da região a ser alocada e retorna um ponteiro para a área alocada.
- //Se ocorrer um erro ao alocar memória, retorna um ponteiro para NULL.
- if(novo == NULL) { // Verifica se o ponteiro *novo está vazio
- system ("color 0C"); // Comandos de cor
- cout << " Erro ao tentar alocar memoria.\n"; //Verifica o que houve erro ao alocar na memória.
- return 0; // Retorno de informação positiva.
- }
- system("cls"); //Comando Limpar tela
- system("date /t"); //Comando Mostrar data
- system("time /t"); //Comando Mostrar hora
- cout << "=*=*=*=*=*=*=*=*=*=*=Clube Esportivo Estrela do Sul=*=*=*=*=*=*=*=*=*=*=*=*=*=";
- cout << "\n";
- cout << "\n\nCadastro:\n\n";
- cout << "\n------------------------\n\n";
- digitar(); // Função chamada para se digitar
- if(cadastrado(novo->nome) == 1){ //Verifica se o Atleta já está cadastrado. uso do Return.
- system ("color 0C"); //Comando para mudar a cor da tela
- cout << "\n\n Erro ao tentar cadastrar Atleta.";
- return 0; // Retorno de informação positiva.
- }
- novo->proximo = NULL;
- if(inicio == NULL)
- {
- inicio = novo;
- ultimo = novo;
- }
- else
- {
- ultimo->proximo = novo;
- novo->proximo = NULL;
- ultimo = novo;
- }
- return 1;
- }
- //Função INSERIR Atletas - FIM
- //Função LISTAR Atletas - INÍCIO
- int listar(){
- cadAtleta *p; //Cria um ponteiro para a struct cadAtleta
- p = inicio; //O ponteiro p agora aponta para o mesmo local que o *inicio está apontando.
- if(inicio == NULL){ //Verifica se o Atleta já está cadastrado
- system ("color 0C");
- cout << "\n *** Nao existem Atletas cadastrados!!! \n\n";
- }
- else
- {
- system("cls");
- system("date /t");
- system("time /t");
- cout << "_______________________*** Clube Esportivo Estrela do Sul ***__________________________";
- system("ver");
- cout << "\n";
- cout << "\nLista de Atletas:\n\n";
- cout << "\n------------------------\n\n";
- do {
- cout << "Atleta - Nome : "<< p->nome <<endl;
- cout << "Altura : "<< p->altura <<endl;
- cout << "N° de inscricao : "<< p->inscricao <<endl; //Exibe os dados dos Atletas
- cout << "Idade do Atleta : "<< p->idade <<endl;
- cout << "Caracteristicas : "<< p->caracteristica <<endl;
- cout << "\n------------------------\n";
- p = p->proximo;
- }
- while(p != NULL);
- }
- system("pause");
- }
- //Função LISTAR Atletas - FIM
- //Função BUSCAR Atletas - INÍCIO
- int buscar(char Atletas[TAM_VET]){
- cadAtleta *p;
- int v = 0; //Verificação, se for 1(Atleta foi encontrado), 0(Atleta nào foi encontrado)
- p = inicio;
- if(inicio == NULL){
- system ("color 0C");
- cout << "\n *** Nao existem Atletas cadastrados!!! \n\n";
- return 0;
- }
- else {
- do {
- if(!strcmp(p->nome,Atletas)){
- v++;
- break;
- }
- p = p->proximo;
- } while(p != NULL);
- }
- if(v > 0){
- cout << "\n------------------------\n\n";
- cout << "Atleta - Nome : "<< p->nome <<endl;
- cout << "Altura : "<< p->altura <<endl;
- cout << "N° de inscricao : "<< p->inscricao <<endl; //Exibe os dados do Atleta que foi encontrado
- cout << "Idade do Atleta : "<< p->idade <<endl;
- cout << "Caracteristcas : "<< p->caracteristica <<endl;
- cout << "\n------------------------\n";
- return 1;
- }
- else {
- system ("color 0C");
- cout << "\n\n Atleta nao encontrado.\n";
- return 0;
- }
- }
- //Função BUSCAR Atletas - FIM
- //Função VERIFICAR Atletas - INICIO
- int cadastrado(char Atletas[TAM_VET])
- {
- cadAtleta *p; // Ponteiro apontando para a struct vazia.
- int v = 0;
- p = inicio; // Aponta para o 1° endereço da struct.
- if(inicio != NULL) // Se inicio for diferente de vazia
- {
- do {
- if(!strcmp(p->nome,Atletas)) // Verifica se o nome já tem dentro da struct
- {
- v++; // So pra dizer o numero da posição da que foi cadastrado.
- break;
- }
- p = p->proximo; // Aponta para o proximo
- }
- while(p != NULL);
- }
- if(v > 0)
- {
- return 1; // Retorna se tiver alquem cadastrado com o mesmo nome.
- }
- else {
- return 0;
- }
- }
- //Função VERIFICAR Atletas - FIM
- //Função ALTERAR Atletas - INÍCIO
- int alterar(char Atletas[TAM_VET]){
- cadAtleta *p;
- int v = 0;
- p = inicio;
- if(inicio == NULL){
- system ("color 0C");
- cout << "\n *** Nao existem Atletas cadastrados!!! \n\n";
- return 0;
- }
- else {
- do {
- if(!strcmp(p->nome,Atletas)){
- v=1;
- break;
- }
- p = p->proximo;
- } while(p != NULL);
- }
- if(v > 0){ //Verificação, caso encontre irá exibir e alterar os dados do Atleta.
- cout << "\n------------------------\n\n";
- cout << "Atleta - Nome : "<< p->nome <<endl;
- cout << "Altura : "<< p->altura <<endl;
- cout << "N° de inscricao : "<< p->inscricao <<endl; //Exibe os dados dos Atletas
- cout << "Idade do Atleta : "<< p->idade <<endl;
- cout << "Caracteristicas : "<< p->caracteristica <<endl;
- cout << "\n------------------------\n";
- cout << "\n\nAlteracao do Atleta:\n\n";
- cout << "\n------------------------\n\n";
- digitar();
- return 1;
- }
- else {
- system ("color 0C");
- cout << "\n\n Atleta nao encontrado.\n";
- return 0;
- }
- }
- //Função ALTERAR Atletas - FIM
- //Função DELETAR Atletas - INÍCIO
- int deletar(char Atletas[TAM_VET]) {
- int r = 0;
- cadAtleta *antes, *atual, *ultimoo, *pass = NULL;
- antes = atual = inicio;
- if(inicio == NULL){
- system ("color 0C");
- cout << "\n *** Nao existem Atletas cadastrados!!! \n\n";
- return 0;
- }
- do {
- if(!strcmp(atual->nome,Atletas)) {
- if (atual == inicio && ultimo == NULL) {
- free(atual);
- inicio = NULL;
- r = 1;
- break;
- }
- else if(atual == inicio) {
- inicio = atual->proximo;
- free(atual);
- r = 1; //Verificação, 1 - foi excluído, 2 - não foi excluído.
- break;
- }
- else if (atual->altura == ultimo->altura) {
- ultimo->proximo = antes;
- antes->proximo = NULL;
- free(atual);
- r = 1;
- ultimo = antes;
- break;
- }
- else {
- pass = atual;
- pass = atual->proximo;
- antes->proximo = pass;
- r = 1;
- free(atual);
- break;
- }
- }
- else {
- antes = atual;
- atual = atual->proximo;
- }
- } while(antes != ultimo);
- if(r > 0){ return 1; } else { return 0;
- }
- }
- //Função DELETAR Atletas - FIM
- //Função SAIR - INÍCIO
- void sair(void){
- cout << "\n FECHANDO......\n\n";
- int i;
- for (i=0; i<TEMP_SAIR; i++){
- system ("color A");
- printf("%c", 219);
- }
- exit(1);
- }
- //Função SAIR - FIM
- //Função Chama CADASTRO - INÍCIO
- void cadastro(void){
- if(inserir() == 1) {
- system ("color F2");
- cout << "\n\n *** Atleta registrado com sucesso !!! \n\n\n";
- }
- else {
- system ("color 0C");
- cout << "\n\n *** Atleta ja existe no cadastro !!!\n\n\n";
- }
- system("pause");
- }
- //Função chama CADASTRO - FIM
- //Função Chama BUSCA - INÍCIO
- void buscapac(void){
- char Atletas[TAM_VET];
- cin.clear();
- fflush(stdin);
- system("cls");
- system("date /t");
- system("time /t");
- cout << "_______________________*** Clube Esportivo Estrela do Sul ***__________________________";
- system("ver");
- cout << "\n";
- cout << "\nBUSCA de Atletas:\n\n";
- cout << "\n------------------------\n\n";
- cout<< "Nome do Atleta para BUSCAR:\n"<<endl;
- cin.getline (Atletas, TAM_NOM);
- buscar(Atletas);
- system("pause");
- }
- //Função Chama BUSCA - FIM
- //Função Chama ALTERAR - INÍCIO
- void alterapac(void){
- char Atletas[TAM_VET];
- cin.clear();
- fflush(stdin);
- system("cls");
- system("date /t");
- system("time /t");
- cout << "_______________________*** Clube Esportivo Estrela do Sul ***__________________________";
- system("ver");
- cout << "\n";
- cout << "\n Alteracao de Atletas:\n\n";
- cout << "\n------------------------\n\n";
- cout<< "Nome do Atleta para alterar:\n"<<endl;
- cin.getline (Atletas, TAM_NOM);
- alterar(Atletas);
- system("pause");
- }
- //Função Chama ALTERAR - FIM
- //Função Chama DELETAR - INÍCIO
- void deletapac(void){
- char Atletas[TAM_VET];{
- cin.clear();
- fflush(stdin);
- system("cls");
- system("date /t");
- system("time /t");
- cout << "_______________________*** Clube Esportivo Estrela do Sul ***__________________________";
- system("ver");
- cout << "\n";
- cout << "\nExclusao de Atletas:\n\n";
- cout << "\n------------------------\n\n";
- cout<< "Nome do Atleta para EXCLUIR:\n"<<endl;
- cin.getline (Atletas, TAM_NOM);
- if(deletar(Atletas) == 1)
- {
- system ("color F2");
- cout << "\n\n *** Atleta excluido com sucesso. \n\n\n";
- }
- else
- {
- system ("color 0C");
- cout << "\n\n *** Nao foi possivel excluir Atleta. \n\n\n";
- }
- }
- system("pause");
- }
- //Função Chama DELETAR - FIM
- int main(void) {
- char Atletas[TAM_VET];
- char escolha;
- inicio = ultimo = novo = NULL;
- do {
- cin.clear(); //Limpa sujeira digitada
- fflush(stdin); //Limpa sujeira digitada
- system("title Club - Os Vingadores"); //Comando para Definir o título do programa
- system("cls"); //Comando Limpar tela
- system("date /t"); //Comando Mostrar data
- system("time /t"); //Comando Mostrar hora
- cout << "_______________________*** Clube Esportivo Estrela do Sul ***__________________________";
- system("ver"); //Comando Mostrar versão do S.O.
- cout << "\n";
- cout << " MENU - Seja Bem-Vindo!!!\n";
- cout << " Escolha uma Opcao: \n\n";
- cout << "[1] - Incluir \n";
- cout << "[2] - Listar \n";
- cout << "[3] - Buscar \n";
- cout << "[4] - Alterar \n";
- cout << "[5] - Deletar \n";
- cout << "[6] - SAIR\n\n";
- cout << "\n Opcao:\n\n";
- system ("color F9");
- cout << ">>> ";
- cin >> escolha;
- switch(escolha) {
- case '1':
- cadastro();
- break;
- case '2':
- listar();
- break;
- case '3':
- buscapac();
- break;
- case '4':
- alterapac();
- break;
- case '5':
- deletapac();
- break;
- case '6':
- sair();
- break;
- default:
- system ("color 0C");
- cout << "\nDigite uma opcao valida!\n\n";
- system("pause");
- break;
- }
- }
- while (escolha > 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement