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 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.
    • By eduuamorim
      Boa noite! Sou novo aqui no fórum e tenho umas dúvidas de como implementar um simulador de linha de crédito passado pelo cliente.

      Vou deixar as informações que ele precisa ter no simulador, se alguém puder me ajudar ou me dar uma luza vou ser grato de coração.
       
      Obs: Não entendo nada sobre esse tipo de simulador, peguei o projeto na raça e quero terminar ele logo, conto com  a ajuda de todos, grato desde já!
       
       
      Informações do cliente nos prints abaixo:
       




×

Important Information

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