Jump to content

heddyman

Members
  • Content count

    6
  • Joined

  • Last visited

Community Reputation

0 Comum

About heddyman

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. heddyman

    Simulador em C++

    boa tarde colegas... estou desenvolvendo um trabalho para a faculdade e estou com problemas no meu código. Na hora hora que eu seleciono a opção de pesquisa ele trava. Podem me ajudar por favor.... #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> /*Faça um algoritmo em linguagem C que emule as características de um player de músicas sendo executado em modo texto, via prompt de comando. 1. Deve-se criar uma playlist das músicas utilizando uma lista encadeada. A lista encadeada poderá ser simples ou dupla, circular ou não circular. Fica a critério do aluno decidir. 2. Deve-se armazenar o nome de cada música, do artista/banda e a duração da faixa. Para o armazenamento utilize uma estrutura heterogênea de dados. 3. Para inserção dos dados, você pode criar uma leitura dos dados através de um menu na tela ou já deixá-los armazenados em um arquivo texto no seu computador e só carregar este arquivo ao executar o programa. Ou ambas soluções. Decida também como você irá implementar a inserção (no início, no fim ou no meio da lista encadeada); 4. Deve existir um menu na tela. Este menu deve permitir a inserção de novas músicas (caso optado pela inserção manual de dados), deve ter a opção de listar todas as músicas da playlist (listagem de uma lista encadeada) na tela e encerrar o*/ struct Lista { char musica[40], cantor[40]; float duracao; Lista *prox; }; Lista *inicio, *fim, *aux; void inserirMusica() { int c; Lista *novo = (struct Lista *)malloc(sizeof(struct Lista)); printf("\nQual eh a musica? "); fgets(novo->musica, 39, stdin); printf("De quem eh a musica? "); fgets(novo->cantor, 39, stdin); printf("qual a duracao da musica? "); scanf("%f", &novo->duracao); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer do teclado novo->prox = NULL; if (inicio == NULL) //A Fila esta vazia e iremos inserir o primeiro elemento { inicio = fim = novo; } else { fim->prox = novo; fim = novo; } } void esvaziarLista() { char ch; if (inicio == NULL) { printf("\nA fila esta vazia!\n\n"); } else { printf("\nTem certeza que deseja esvaziar toda a lista?(s/n): "); ch = getchar(); if (ch == 's' || ch == 'S') { while (inicio != NULL) { aux = inicio; inicio = inicio->prox; free(aux); // Libera o espaco na memoria } printf("\nA lista foi esvaziada com sucesso!!\n\n"); } else { printf("\nA lista nao foi esvaziada!!\n\n"); } } } void mostrarLista() { aux = inicio; if (inicio == NULL) { printf("\nA lista esta vazia!"); } else { while (aux != NULL) { printf("musica: %s", aux->musica); printf("cantor: %s", aux->cantor); printf("duracao: %f\n\n", aux->duracao); aux = aux->prox; } } printf("\n\n"); } void localizarMusica() { aux = inicio; if (inicio == NULL) { printf("\nA lista estah vazia!"); } else { char musica[40]; printf("Digite a musica que procura: "); scanf("%s", &aux); while (aux != NULL) { if (musica == aux->musica) { printf("\nMusica %s localizada!\n\n", aux->musica); printf("musica %s", aux->musica); printf("cantor: %s\n\n", aux->cantor); return; } else { aux = aux->prox; } } if (aux == NULL) { printf("\nMusica %s nao localizada!\n", musica); } } printf("\n\n"); } int main() { setlocale(LC_ALL, ""); system("color 0E"); int opt, c; do { printf("*==================================*\n"); printf("| Simulador de Player de Musica |\n"); printf("*==================================*\n\n\n\n"); printf("*===========================*\n"); printf("| 1. Inserir Música |\n"); printf("| 2. Pesquisar Músicas |\n"); printf("| 3. listar Músicas |\n"); printf("| 4. Limpar Lista do Player |\n"); printf("| 5. Sair |\n"); printf("*===========================*\n"); printf("Digite sua escolha: "); scanf("%d", &opt); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer switch (opt) { case 1: inserirMusica(); printf("\nMusica inserida com sucesso!!\n\n"); system("pause"); break; case 2: localizarMusica(); system("pause"); break; case 3: mostrarLista(); system("pause"); break; case 4: esvaziarLista(); system("pause"); break; case 5: printf("\nO programa foi encerrado com sucesso!!\n\n"); system("pause"); break; default: printf("\nEscolha Invalida!!\n\n"); system("pause"); break; } system("cls"); } while (opt != 5); return 0; }
  2. heddyman

    Uso do comando fopen

    pessoal bom dia, tenho esse algoritmo pra terminar e não consigo implementar o comando fopen (o nome do arquivo que criei é dados.txt)no meu código para não precisar ficar digitando as informações toda vez que precisar executar a função de pesquisa.. se houver mais algum problema no código ficarei grato se me orientarem.. podem me ajudar ??? #include<stdio.h> #include<stdlib.h> #include<string.h> #define SIZE 200 // declaracao das funcoes void cadastro(); //cadastro void pesquisa();// pesquisa void liberarmem();// liberar a memória usada // variaveis globais int op; int c; typedef struct aluno { int ru; char nome[45]; char email[60]; struct aluno * proximo; // declaracao da estrutura da lista } t_cad; t_cad *ini_cad = NULL; // variavel global que ira armazenar o inicio da lista encadeada int main(int argc, char *argv[]) { printf(" ALGORITIMO DE LISTA ENCADEADA SIMPLES - Hedson Ferreira R.U. 2411288\n\n Analise e Desenvolvimento de Sistemas - Uninter 2019\n\n"); do { printf("*========================*\n"); printf("| Escolha uma opcao |\n"); printf("| 1. Cadastrar Aluno |\n"); printf("| 2. Pesquisar Aluno |\n"); printf("| 3. Sair |\n"); printf("*========================*\n"); scanf_s("%d", &op); switch (op) { case 1: cadastro(); break; case 2: pesquisa(); break; case 3: system("exit"); break; default: printf("Opcao Invalida..."); break; } } while (op != 3); void liberarmem(); return 0; } void cadastro() { int cont; int c; t_cad* prox_cad; if (ini_cad == NULL) { ini_cad = (t_cad*)malloc(sizeof(t_cad)); ini_cad->proximo = NULL; if (ini_cad == NULL) exit(1); } prox_cad = ini_cad; while (1) { printf("Digite o RU:"); scanf_s("%d", &prox_cad->ru); while ((c = getchar()) != '\n' && c != EOF); printf("Digite o Nome:"); gets_s(prox_cad->nome); while ((c = getchar()) != '\n' && c != EOF); printf("Digite o email:"); gets_s(prox_cad->email); while ((c = getchar()) != '\n' && c != EOF); printf("Deseja continuar??? (1)SIM e (0)NAO"); scanf_s("\n %d", &cont); while ((c = getchar()) != '\n' && c != EOF); if (cont == 0) break; prox_cad->proximo = (t_cad *)malloc(sizeof(t_cad)); prox_cad = prox_cad->proximo; prox_cad->proximo = NULL; } printf("\n"); } void pesquisa() { int ru_aux; char nome_aux[60]; t_cad* prox_cad; do { printf("\n Ecolha o parametro da pesquisa: \n1 RU \n2 Nome :\n0 para sair\n"); scanf_s("%d", &op); if (op == 0) break; prox_cad = ini_cad; switch (op) { case 1: printf("\n Digite o RU do Aluno:"); scanf_s("%d", &ru_aux); while ((c = getchar()) != '\n' && c != EOF); while (prox_cad != NULL) { if (prox_cad->ru == ru_aux) { printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); break; } prox_cad = prox_cad->proximo; } break; case 2: printf("\n Digite o nome do Aluno:"); gets_s(nome_aux); while ((c = getchar()) != '\n' && c != EOF); while (prox_cad != NULL) { if (strcmp(prox_cad->nome, nome_aux) == 0) { printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); break; } prox_cad = prox_cad->proximo; } break; default: printf("\n****opcao invalida*****"); break; } } while (1); } void liberarmem() { t_cad *prox_cad; while (ini_cad != NULL) { prox_cad = ini_cad; ini_cad = prox_cad->proximo; free(prox_cad); } }
  3. heddyman

    Lista encadeada

    pessoal estou precisando muito de uma ajuda com esse algoritimo de lista encadeada... #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct aluno { int ru; char nome[45]; char email[60]; struct aluno * proximo; } t_cad; int main(int argc, char *argv[]) { t_cad * ini_cad; t_cad * prox_cad; int cont; int c; ini_cad = (t_cad*)malloc(sizeof(t_cad)); if (ini_cad == NULL) exit(1); prox_cad = ini_cad; while (1) { printf("Digite o RU:"); scanf_s("%d", &prox_cad->ru); printf("Digite o Nome:"); scanf_s("%s",&prox_cad->nome); printf("Digite o email:"); scanf_s("%s", &prox_cad->email); printf("Deseja continuar??? (1)SIM e (0)NAO"); scanf_s("\n %d", &cont); if (cont == 1) { prox_cad->proximo = (t_cad *)malloc(sizeof(t_cad)); prox_cad = prox_cad->proximo; } else break; } printf("\n"); prox_cad->proximo = NULL; prox_cad = ini_cad; while (prox_cad != NULL) { printf("ru: %d\n nome:\n email:", prox_cad->ru, prox_cad->nome, prox_cad->email); prox_cad = prox_cad->proximo; } return 0; } não consigo descobrir o que tem de errado mas na hora de trabalhar ele trava
  4. heddyman

    Ajuda com algoritimo

    tenho só mais uma dúvida... no enunciado do exercício está dizendo: "Não é necessário fazer a leitura dos dados dos dados dos alunos manualmente. Você já pode deixar pré-cadastrado os dados no seu código. Cadastre pelo menos uns 10 contatos de alunos na sua estrutura de dados. Um dos contatos deverá ser o seu próprio nome e o seu RU".... como faço pra pré cadastrar essas informações???
  5. heddyman

    Ajuda com algoritimo

    Gente obrigado pela ajuda, mas segui o conselho do amigo e refiz meu código, sem franksteins, e agora parece funcionar.... o que acharam???? melhor e mais limpo??? #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #define SIZE 60 int op; struct cadastro_de_alunos { int ru[SIZE]; char nome[SIZE][10]; char email[SIZE][10]; }; struct cadastro_de_alunos aluno; void cadastro(); void pesquisa(); int main(void) { do { system("cls"); printf("*========================*\n"); printf("| Escolha uma opcao |\n"); printf("| 1. Cadastrar Aluno |\n"); printf("| 2. Pesquisar Aluno |\n"); printf("| 3. Sair |\n"); printf("*========================*\n"); scanf_s("%d", &op); switch (op) { case 1: cadastro(); break; case 2: pesquisa(); break; case 3: system("exit"); break; default: printf("Opcao Invalida..."); break; } } while (op != 3); } void cadastro() { static int linha; do { printf("\n Digite o nome do RU:"); scanf_s("%d", &aluno.ru[linha]); printf("\n Digite o nome do Aluno:"); scanf_s("%s", &aluno.nome[linha]); printf("\n Digite o nome do Email:"); scanf_s("%s", &aluno.email[linha]); printf("\n Digite 1 para continuar ou 0 para sair:"); scanf_s("%d", &op); linha++; } while (op == 1); } void pesquisa() { int ru_aux; char nome_aux[50]; int i; do { printf("\n Digite parametro da pesquisa: \n1 RU \n2 Nome :\n"); scanf_s("%d", &op); switch (op) { case 1: printf("\n Digite o RU do Aluno:"); scanf_s("%d", &ru_aux); for (i = 0; i < SIZE; i++) { if (aluno.ru[i] == ru_aux) { printf("\n RU: %d\n Nome: %d\n Email: %s\n", aluno.ru[i], aluno.nome[i], aluno.email[i]); } } break; case 2: printf("\n Digite o nome do Aluno:"); scanf_s("%s", &aluno.nome); for (i = 0; i < SIZE; i++) { if (strcmp(aluno.nome[i], nome_aux) == 0) { printf("\n RU: %d\n Nome: %d\n Email: %s\n", aluno.ru[i], aluno.nome[i], aluno.email[i]); } } break; default: printf("\n****opcao invalida*****"); break; } printf("\ndigite 1 para nova pesquisa e 0 para sair\n"); scanf_s("%d", &op); } while (op == 1); }
  6. heddyman

    Ajuda com algoritimo

    bom dia nobres colegas, Sou estudante e estou tendo uma dificuldade com um algorítimo... vocês poderiam me ajudar??? Ele não está compilando e tá difícil pra mim identificar... eu agradeço a boa vontade .... #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> struct cadastro_de_aluno { char RU[200]; char nome[200]; char email[200]; int vazio,cod; }; struct cadastro_de_aluno alunoCad; //AQUI DECLARO AS FUNÇÕES A SEREM USADAS int verifica_pos(void); int verifica_cod( int cod ); int opt; void list(); void consultaCod (void); void excluirAluno (void); int main(void){ //INICIO DO MAIN int i,Opcao,OpcaoAluno,posicao,retorno; int codaux; do { printf("1 - Cadastrar Novo Aluno\n"); printf("2 - Aluno\n"); printf("3 - Alterar Aluno\n"); printf("4 - Excluir Aluno\n"); printf("5 - Sair\n"); printf(" Selecione uma opcao por favor: "); scanf("%d", &Opcao); getchar(); if (Opcao == 1) { printf("Voce selecionou a opcao 1 - Cadastrar Novo Aluno\n"); posicao=verifica_pos(); if ( posicao != -1 ) { printf("\nEntre com um codigo de 1 a 10 para seu cadastro: \n"); scanf("%d",&codaux);fflush(stdin); retorno = verifica_cod( codaux );} else printf("\nNao e possivel realizar mais cadastros!\n"); break; } else if (Opcao == 2) { system("cls"); do{ printf("Voce selecionou a opcao 2 - Alunos\n\n"); printf("1 - Pesquisar aluno por codigo\n"); printf("2 - Listar todos os alunos\n"); printf("3 - Voltar ao menu principal\n"); printf("Selecione uma opcao por favor: "); scanf("%d", &OpcaoAluno); getchar(); if(OpcaoAluno == 1){ consultaCod(); } else if(OpcaoAluno == 2){ list(); } else if(OpcaoAluno == 3){ printf("Voce selecionou voltar ao menu principal, pressione ENTER para continuar"); getchar(); system("cls"); } else printf("Opcao Invalida\n\n"); }while(OpcaoAluno =!3 || OpcaoAluno > 3 || OpcaoAluno < 0 || OpcaoAluno == 0); } else if (Opcao == 3) { printf("Voce selecionou a opcao 3 - Alterar Aluno\n"); } else if (Opcao == 4) { printf("Voce selecionou a opcao 4 - Excluir Aluno\n"); excluirAluno(); } else if (Opcao == 5) { { printf("Voce selecionou a opção 5 - Sair\n"); } } else{ printf("Opcao invalida, favor pressione enter para voltar ao menu principal"); getchar(); system("cls"); } } while (Opcao != 5 || Opcao < 5); } // FIM DO MAIN void list(){ // Lista os usuarios cadastrados. int i,j; for(i=0;i<200;i++){ if(log[i].cod!=NULL){ printf("\nCodigo: %d \nNome: %s\nRU: %s\n email: \n\n", log[i].cod,log[i].nome,log[i].RU,log[i]. email,log[i]); } } printf("Pressione enter para volta ao menu principal"); getchar(); system("cls"); } //FIM DO LIST void cadastroP(int cod, int pos){ //Cadastro das pessoas int i; do{ pos = verifica_pos(); log[pos].cod = cod; printf("\nDigite o RU: "); gets(log[pos].RU); printf("\nDigite o nome: "); gets(log[pos].nome); printf("\nDigite o email: "); gets(log[pos]. email); log[pos].vazio = 1; //printf("\nDigite enter para efetuar novo cadastro ou qualquer outra tecla para voltar ao menu principal"); //scanf("%d", &opt); opt ==1; getchar(); }while(opt==1); system("cls"); main(); } // FIM DO CADASTRO DE PESSOAS int verifica_pos( void ) //VERIFICADOR DA POSIÇÃO { int cont = 0; while ( cont <= 10 ) { if ( log[cont].vazio == 0 ) return(cont); cont++; } return(-1); } // FIM DO VERIFICADOR int verifica_cod( int cod ) // VERIFICADOR DE CÓDIGO { int cont = 0; while ( cont <= 10 ) { if ( log[cont].cod == cod ) return(0); cont++; } return(1); } cont++; if ( cont > 10 ){ printf("\nCodigo nao encontrado, pressione enter para volar ao menu principal\n"); getchar(); system("cls"); } } // FIM DA FUNÇÃO CONSULTAR void excluirAluno(void) // EXCLUI ALUNO { int cod, cont = 0; char resp; printf("\nEntre com o codigo do registro que deseja excluir: \n"); scanf("%d", &cod ); while ( cont <= 10 ) { if ( log[cont].cod == cod ) { if (log[cont].vazio == 1 ) { printf("\nCodigo: %d \nNome: %s\nRU: %s\n email: %s\n\n", log[cont].cod,log[cont].nome,log[cont].RU,log[cont]. email,); getchar(); printf("\nDeseja realmente exlucir? s/n: "); scanf("%s",&resp); if ( ( resp == 'S' ) || ( resp == 's' ) ) { log[cont].vazio=0; log[cont].cod = NULL; printf("\nExclusao feita com sucesso\n"); break; } else { if ( ( resp == 'N' ) || ( resp == 'n' ) ) { printf("Exclusao cancelada!\n"); break; } } } } cont++; if ( cont > 10 ) printf("\nCodigo nao encontrado\n"); } system("pause"); system("cls"); }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.