elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [ayuda] programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [ayuda] programa en C  (Leído 1,907 veces)
anunnaki

Desconectado Desconectado

Mensajes: 3


Ver Perfil
[ayuda] programa en C
« en: 2 Marzo 2012, 12:04 pm »

Buenas a tod@s, estoy en un curso de aplicaciones informáticas y han pedido un proyecto de un reproductor en C realmente lo que tiene que hacer el reproductor es añadir, Nombre, Titulo, Genero, Duració, el problema es que he faltado varios días por motivos personales y no se realizar muy bien el tad, yo he hecho un pequeño programa sobre el reproductor muy sucio y casi todo printf, si me pueden dar una ayuda o base o manual para los tad lo agradezco

// La mitad del codigo es de mi profesor que no lo da como una base.
Codigo : 92-ma-heredia-tad-lista.c

Código:
#include "92-ma-heredia-tad-lista.h"
#include <stdio.h>
#include <stdlib.h>



Lista listaNew(){
Lista lista;
lista= (Lista) malloc( sizeof( struct nodoStruct ) );
if ( lista == NULL ) return NULL;
lista->siguiente= NULL;
return ( lista );
}
int
listaVacia(Lista lista){
return ( lista->siguiente == NULL );
}
int
listaInsertarPrimero(Lista lista, Dato dato){
Nodo nodoNuevo;
nodoNuevo= (Nodo) malloc( sizeof( struct nodoStruct ) );
if ( nodoNuevo == NULL ) return 1;
nodoNuevo->dato= dato;
nodoNuevo->siguiente= lista->siguiente;
lista->siguiente= nodoNuevo;
return 0;
}
int
listaSuprimirPrimero(Lista lista){
Nodo nodoAux;
if ( listaVacia(lista) ) return 1;
nodoAux= lista->siguiente;
lista->siguiente= nodoAux->siguiente;
free(nodoAux);
return 0;
}
Dato listaObtenerValorPrimero(Lista lista){
Dato datoAux;
if ( listaVacia(lista) ) return ( datoAux ); //critico
return ( lista->siguiente->dato );
}
int listaDestroy(Lista lista){
while ( !listaVacia(lista) )
listaSuprimirPrimero(lista);
free(lista);
return 0;
}
int listaMostrar(Lista lista){
Nodo nodo;
nodo= lista->siguiente;
while (nodo!= NULL){
printf(" %d ",nodo->dato);
nodo= nodo->siguiente;
}

//critico
return 0;
}

int
listaInsertarUltimo(Lista lista, Dato dato){
Nodo nodoAux;
Nodo nodoNuevo;
nodoAux= lista;
while (nodoAux->siguiente != NULL)
nodoAux= nodoAux->siguiente;
nodoNuevo= (Nodo) malloc( sizeof( struct nodoStruct ) );
if ( nodoNuevo == NULL ) return 1;
nodoNuevo->dato= dato;
nodoNuevo->siguiente= NULL;
nodoAux->siguiente= nodoNuevo;
return 0;
}
int
listaSuprimirUltimo(Lista lista){
Nodo nodoAux;
if (listaVacia( lista )) return 1;
nodoAux= lista;
while (nodoAux->siguiente->siguiente!= NULL)
nodoAux= nodoAux->siguiente;
free(nodoAux->siguiente);
nodoAux->siguiente= NULL;
return 0;
}
Dato listaObtenerValorUltimo(Lista lista){
Dato datoAux;
Nodo nodoAux;
if ( listaVacia(lista) ) return ( datoAux ); //critico
nodoAux= lista;
while (nodoAux->siguiente != NULL)
nodoAux= nodoAux->siguiente;
return ( nodoAux->dato );
}


codigo : 92-ma-heredia-tad-lista.h

[code]#ifndef MA_HEREDIA_92_TAD_LISTA_H
#define MA_HEREDIA_92_TAD_LISTA_H 1
typedef int *Dato;

struct nodoStruct{
Dato dato;
struct nodoStruct *siguiente;
};

typedef struct nodoStruct *Nodo;
typedef struct nodoStruct *Lista;

Lista listaNew();
int listaInsertarPrimero(Lista lista, Dato dato);
int listaSuprimirPrimero(Lista lista);
int listaVacia(Lista lista);
Dato listaObtenerValorPrimero(Lista lista);
int listaMostrar(Lista lista);
int listaDestroy(Lista lista);
int listaInsertarUltimo(Lista lista, Dato dato);
int listaSuprimirUltimo(Lista lista);
Dato listaObtenerValorUltimo(Lista lista);
int listaIncluye(Lista lista, Dato dato);
int listaDeCanciones(Lista lista);


#endif

int
listaIncluye(Lista lista, Dato dato){
Nodo nodoAux;
if (listaVacia( lista )) return 0;
nodoAux= lista;
while ( (nodoAux->siguiente != NULL) && (nodoAux->siguiente->dato != dato) )
nodoAux= nodoAux->siguiente;
return ( !(nodoAux->siguiente == NULL) );

}

Codigo : 92-ma-heredia-tad-lista-test.c

Código:
#include "92-ma-heredia-tad-lista.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

int reproductor(Lista lista,Dato contador);
int Tracklist(Lista lista);
int menu(Lista lista,Dato contador);
int cargando(Lista lista);

int main(){

Lista lis;
int contador;
Dato contadores;
contadores=&contador;
system("clear");

cargando(lis);

for (;;){
system("clear");
for (contador=0;contador==contador;){

lis=listaNew();
reproductor(lis, contadores);
Tracklist(lis);
listaDeCanciones(lis);
contador++;
menu(lis, contadores);

}

}

return 0;
}



int listaDeCanciones(Lista lista){
int num;
do{
printf("\n\t\tEscribe el tema deseado a escuchar : ");
scanf("%d",&num);
printf("\n\n\t\tEl tema selecionado es : ");
switch (num){

case 1 : printf("1.Limosna De Amor\n");
break;
case 2 : printf("2.Adios, Adios\n");
break;
case 3 : printf("3.Vacaciones\n");
break;
case 4 : printf("4.Enfermo De Amor\n");
break;
case 5 : printf("5.Que Bonita Eres\n");
break;
case 6 : printf ("6.La Paya\n");
break;
case 7 : printf ("7.Sin Ti No Puedo Estar\n");
break;
case 8 : printf ("8.Ven Por Favor\n");
break;

default : printf("No existe la cancion inserte de nuevo : ");
}
}while(num<0||num>8);



return 0;
}

int reproductor(Lista lista,Dato contador){

printf("\t\t\tReproductor Winump 3.02\n\n");
printf("\t\tTemas escuchados : %d",(*contador));
printf("\n\t\tArtista : Los Chungitos\n");
printf("\n\t\tDisco : Limosna de amor\n");
printf("\n\n\t\tTracklist\n");

return 0;}

int Tracklist(Lista lista){

    printf("\n\t\t1.Limosna De Amor");
  printf("\n\t\t2.Adios, Adios");
  printf("\n\t\t3.Vacaciones");
  printf("\n\t\t4.Enfermo De Amor");
  printf("\n\t\t5.Que Bonita Eres");
  printf("\n\t\t6.La Paya");
  printf("\n\t\t7.Sin Ti No Puedo Estar");
  printf("\n\t\t8.Ven Por Favor\n");



return 0;}

int menu(Lista lista,Dato contador){

printf("\n\t\tAbriendo. . .\n\n");
  sleep(3);
    printf("\t\t***********************WINUMP***********************\n");
printf("\t\tW                       W\n");
printf("\t\tI                                                  I\n");
printf("\t\tN                       N\n");
printf("\t\tU  TEMA ESCUCHADOS : %3d   U\n",(*contador));
printf("\t\tM                       M\n");
printf("\t\tP                       P\n");
printf("\t\t***********************WINUMP***********************\n");

sleep(10);
system("clear");

return 0;}


int cargando(Lista lista){

printf("\t\t%s\n","                       ,+?              ");
printf("\t\t%s\n","                      ,I?,,             ");
printf("\t\t%s\n","                     ??~~, ,            ");
printf("\t\t%s\n","                    =~~=~,              ");
printf("\t\t%s\n","                  =+~~~=,               ");
printf("\t\t%s\n","                =+~~~~~:                ");
printf("\t\t%s\n","               ==~===~~                 ");
printf("\t\t%s\n","             ~?++++===:,                ");
printf("\t\t%s\n","            :?=???+++$7777$$$7+         ");
printf("\t\t%s\n","          :?+I???????++++++=++:         ");
printf("\t\t%s\n","         :?+??WINUMP 3 02++++=          ");
printf("\t\t%s\n","        =?I?I?I????????+???=            ");
printf("\t\t%s\n","        ~=+++++=+=??+?I???:             ");
printf("\t\t%s\n","                ,+?II??I?,              ");
printf("\t\t%s\n","                =?IIII?:                ");
printf("\t\t%s\n","                ?III?+:                 ");
printf("\t\t%s\n","               ~III?~                   ");
printf("\t\t%s\n","               ?II?=,                   ");
printf("\t\t%s\n","              =?I+ ,    ,               ");
printf("\t\t%s\n","              ??, ,,,,:::,              ");
printf("\t\t%s\n","           EJECUTANDO PROGRAMA          ");

sleep(8);

return 0;}

Makefile : makefile
Código:
CC= gcc
CFLAGS= -Wall -lm

#CC_DEFINES=
#CC_INCLUDES=


92-ma-heredia-tad-lista.o: 92-ma-heredia-tad-lista.c 92-ma-heredia-tad-lista.h
$(CC) $(CFLAGS) -c 92-ma-heredia-tad-lista.c
92-ma-heredia-tad-lista-test.o: 92-ma-heredia-tad-lista.h 92-ma-heredia-tad-lista-test.c
$(CC) $(CFLAGS) -c 92-ma-heredia-tad-lista-test.c
92-ma-heredia-tad-lista-test.sh: 92-ma-heredia-tad-lista.o 92-ma-heredia-tad-lista-test.o
$(CC) 92-ma-heredia-tad-lista.o 92-ma-heredia-tad-lista-test.o $(CFLAGS) -o 92-ma-heredia-tad-lista-test.sh


Gracias :D [/code]


« Última modificación: 2 Marzo 2012, 14:12 pm por anunnaki » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [ayuda] programa en C
« Respuesta #1 en: 2 Marzo 2012, 14:21 pm »

Si buscas cursos sobre listas vinculadas un par muy bueno pero en ingles se puede descargar de la pagina de la universidad de Stanford.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
anunnaki

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: [ayuda] programa en C
« Respuesta #2 en: 6 Marzo 2012, 09:36 am »

Gracias por la ayuda ya casi tengo el programa :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 2,695 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,529 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
Ayuda con programa en vb
Programación Visual Basic
BriaNUR 1 1,487 Último mensaje 12 Febrero 2006, 16:55 pm
por Kizar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines