Jump to content

Recommended Posts

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;
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By FelipeCostaFT
      Estou iniciando uma startup para ajudar os devs a entrarem no mercado de trabalho mais preparados
      e, por isso, com maior chance de arrumar um bom emprego.

      Mas gostaria de saber como está sendo a realidade de vocês nesse momento de encarar o mercado.
      Alguém já está nessa fase ou até dentro do mercado poderia me ajudar? Esse forms dura 1 minuto pra
      responder e vai nos auxiliar a descobrir como ajudá-los a chegar lá mais rápido.
       
      link do forms
    • By Spy_brbr
      Tenho um sistema em PHP que funciona como um tipo de repositório para documentos. No início a ideia era apenas realizar pesquisas pelo título ou tipo de documento, mas andei lendo sobre algumas ferramentas como Apache Solr ou ElasticSearch que realizazam a indexação dos arquivos e permite realizar as buscas dentro de arquivos PDF, DOC, etc. Alguém já utilizou essas ferramentas ?
    • By Jefferson andre
      Ola, Tenho uma lista de nomes de clientes escritas sem nenhum padrao de maiscula e minuscula e preciso fazer uma pesquisa nelas. O usuario vai digitar sem nenhum padrao. Entao preciso que todo o conteudo da lista e o campo digitado pelo usuario seja convertido para maisucula/minuscula e a pesquisa seja feita.   Exemplo: JEFFERSON rose Nicolas ROSEMEIRE   PESQUISAR POR: Ro   RETORNO DA PESQUISA: rose ROSEMEIRE   Como fazer isso em javascript ? preciso de um exemplo se tiver ok
    • By Alberto Nascimento
      Estou tentando, mas não esta exibindo o registro...
       
      localizar.php
       
      <?php session_start(); $_SESSION["localizarfotografia"] = $_POST["codphoto"]; ?> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>EXIBIR FOTOGRAFIA PELO CÓDIGO INTERNO</title> <style type="text/css"> <!-- .Style6 {font-size: 13px} .auto-style20 { text-align: center; } .auto-style22 { background-color: #FEB624; } .auto-style23 { font-family: Verdana, Geneva, Tahoma, sans-serif; font-size: xx-small; text-align: center; } .auto-style25 { background-color: #FFCC66; } .auto-style26 { font-size: x-small; } .auto-style27 { font-size: x-small; text-align: center; } .auto-style28 { text-align: center; background-color: #FEB624; } --> </style> </head> <body style="margin-top: 50"> <body onload="form1.login.focus();"> <form id="form1" name="form1" method="post" action="pesquisaragora.php"> <div class="auto-style20"> <table align="center" cellpadding="0" cellspacing="0" class="auto-style23" style="width: 500"> <tr> <td class="auto-style20"> &nbsp;</td> </tr> <tr> <td class="auto-style22"> &nbsp;</td> </tr> <tr> <td class="auto-style25" style="height: 41px">Informe o código da FOTOGRAFIA abaixo</td> </tr> <tr> <td class="auto-style25"> <table align="center" style="width: 450"> <tr> <td class="auto-style27"><span class="Style6"> <label> <input name="codphoto" type="text" id="codphoto" style="width: 305px; height: 83px;" /></label></span></td> </tr> <tr> <td class="auto-style26"><strong> </strong></td> </tr> <tr> <td class="auto-style20"><span class="Style6"> <label> <input type="submit" name="Submit" value="LOCALIZAR PHOTO" /></label></span></td> </tr> </table> </td> </tr> <tr> <td class="auto-style25">&nbsp;</td> </tr> <tr> <td class="auto-style28"> &nbsp;</td> </tr> </table> <br></div> </form> </body> </html>  
      pesquisarphoto.php
       
      <?php include("config.php"); $codphoto = $_POST['codphoto']; $sql_logar = "SELECT * FROM photos WHERE codphoto = '$codphoto'"; $exe_logar = mysql_query($sql_logar) or die (mysql_error()); $fet_logar = mysql_fetch_assoc($exe_logar); $num_logar = mysql_num_rows($exe_logar); $codphoto = $fet_logar['codphoto']; $nome = $fet_logar['nome']; $cidade = $fet_logar['cidade']; $uf = $fet_logar['uf']; if ($num_logar == 0){ echo "Desculpe, mas a foto não foi localizada."; echo "<br><a href='javascript:window.history.go(-1)'>Clique aqui e tente novamente.</a>"; } else{ session_start(); $_SESSION['codphoto'] = $codphoto; $nome = $fet_logar['nome']; $cidade = $fet_logar['cidade']; $uf = $fet_logar['uf']; echo $exibir["codphoto"]; echo $exibir["nome"]; echo $exibir["cidade"]; echo $exibir["uf"]; } ?>  
       
       
       
       
       
       
       
       
    • By wsilva7
      Bom dia.
      Pessoal criei um form de pesquisa e nele tenho dois Edits,
      um para o codigo e outro onde digito o nome a ser pesquisado e um dbgrid ele 
      exibe o resultado da pesquisa.
      Coloquei um IBQuery e esta tudo ligado. Em um button coloquei o seguinte codigo:
      procedure Tfrmconsultafornecedores.BitBtn1Click(Sender: TObject);
      begin
      QryConsFornecedor.CLOSE;
      QryConsFornecedor.Params[0].AsString:= '%'+Edit1.Text+'%';
      QryConsFornecedor.Params[1].AsString:= '%'+Edit2.Text+'%';
      QryConsFornecedor.Open;
      end;
      Esta tudo funcionando
      O que eu nao estou conseguindo fazer é ao clicar duas vezes no DBGRID, o resultao da pesquisa feita ser carregado no formulario de cadastro.
      Exemplo. Cadastro de clientes nele efetuo a pesquisa por fulano de tal, ao ser encontrado o fulano de tal, dar dois clics e ai o form de pesquisa fecha e abre o form de cadastro posicionado no form de cadastro de clientes.
      Desde já agradeço.
×

Important Information

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