Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- typedef struct musicaStruct { // Registro com nome, artista e duração da música e claro, um ponteiro para a próxima música
- char *nome;
- char *artista;
- float duracao;
- struct musicaStruct *prox;
- } musica;
- void insereFinal(musica **msc, char *nome, char *artista, float duracao) { // função para inserção das músicas no final da playlist
- // elemento do tipo música criado
- musica *novaMusica;
- novaMusica = malloc(sizeof(musica));
- novaMusica->nome = nome;
- novaMusica->artista = artista;
- novaMusica->duracao = duracao;
- if (*msc == NULL) {
- novaMusica->prox = NULL;
- *msc = novaMusica;
- } else {
- musica *msc_temp = *msc;
- while (msc_temp->prox != NULL)
- {
- msc_temp = msc_temp->prox;
- }
- msc_temp->prox = novaMusica;
- novaMusica->prox = NULL;
- }
- }
- void listarMusicas (musica **msc) {
- // Fazendo a varredura na lista para imprimir os dados
- printf("\n------------------ PLAYLIST ----------------------\n");
- musica *msc_temp;
- msc_temp = *msc;
- while (msc_temp != NULL)
- {
- printf("%s de %s com tempo de %.2f minutos\n", msc_temp->nome, msc_temp->artista, msc_temp->duracao);
- msc_temp = msc_temp->prox;
- }
- printf("------------------ PLAYLIST ----------------------\n");
- }
- void escolha (musica **msc) {
- // Menu de escolha para o usuario listar, inserir ou sair do programa
- printf("[1] - Listagem das músicas\n[2] - Inserir nova música\n[3] - Sair\nDigite a sua escolha: ");
- int opcao;
- scanf("%d", &opcao);
- while (opcao != 3) {
- char *nome = malloc(sizeof(char *) * 64), *artista = malloc(sizeof(char *) * 64);
- float duracao = 0.00;
- switch (opcao) {
- case 1:
- // Chamada para função de listagem da playlist
- listarMusicas(msc);
- break;
- case 2:
- // Inserção da música na playlist
- printf("\nNome da música: ");
- scanf("%s", nome);
- printf("Nome do(a) artista: ");
- scanf("\n%s", artista);
- printf("Duração da música: ");
- scanf("%f", &duracao);
- insereFinal(msc, nome, artista, duracao);
- printf("A sua música %s do %s foi adicionada a playlist\n", nome, artista);
- listarMusicas(msc);
- break;
- case 3:
- exit(0);
- break;
- default:
- printf("Não conseguimos identificar essa opção\n");
- break;
- }
- printf("\n[1] - Listagem das músicas\n[2] - Inserir nova música\n[3] - Sair\nDigite a sua escolha: ");
- scanf("%d", &opcao);
- }
- }
- int main (void) {
- // Definindo o locale pra problemas de acentuação e pra números flutuantes em PT_BR
- setlocale(LC_ALL, "");
- musica *topo = NULL;
- // Inserindo os primeiros dados na playlist
- char *nome;
- nome = "Yoppa";
- char *artista;
- artista = "Lil Mosey";
- float duracao1 = 4.24;
- float duracao2 = 3.02;
- insereFinal(&topo, nome, artista, duracao1);
- insereFinal(&topo, artista, nome, duracao2);
- // Menu para escolha dos usuarios
- escolha(&topo);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement