programação C (programa para lista)

boas.... grandes mestres precisava da vossa ajuda para fazer um trabalho em programação C, tenho que fazer para passar numa cadeira, e de programação não percebo muito, se me poderem ajudar agradecia imenso e também o programa pode dar jeito a muita gente e a mim principalmente... os objectivos do trabalho são: fazer uma lista de filmes, e quando o filme ja se encontra na lista ele indica se está emprestado ou não... e tenho que criar um menu com as seguintes opções: guardar registo (nome do filme), verificar se está disponivel e ver lista completa...thank's
 
mas o que? queres que façamos por ti?
Jovem, isso não funciona assim. apresenta alguma coisa feita ou alguma duvida e tentaremos ajudar-te.
aqui não fazemos trabalhos pros outros, mas sim ajudamos a fazer.

cumpts
 
tenham calma eu tb vou postar aki a minha programaçaõ touso a faxer os ultimos tokes... o k eu keria e meter aki as minhas duvidas e k voces m dexem umas dicas de como comecar...mas amanha ja meto aki o k fix e depois faxo as perguntas...
 
tenham calma eu tb vou postar aki a minha programaçaõ touso a faxer os ultimos tokes... o k eu keria e meter aki as minhas duvidas e k voces m dexem umas dicas de como comecar...mas amanha ja meto aki o k fix e depois faxo as perguntas...

Primeiro, tenta melhorar a tua escrita, todos fazemos um esforço para escrever de igual modo.
Segundo, a malta está cá para ajudar/encaminhar, mas não para resolver problemas.
Terceiro, usa a solução do Reptil e crias uma Lista(*) de filmes . Se não tiveres noções de pointers nem de structs, convém leres um bocadinho, porque vai ajudar-te bastante.


LinkedList (*) - Aqui e Aqui
 
trick

#include <stdio.h>
struct filme {
char ocup;
};
int n=1000000 //numero maximo de filmes
void inicializa (p) //:::::::::::::::::::::::::::::::::::::::::::::::::::::


struct filme *p;
{
int i;
for (i=0, i<n,i++)
(p++) -> ocup='0';
}


int menu() //:::::::::::::::::::::::::::::::::::::::::::::::::::::
{
int i;

printf ("\n #---------------------------------------#");
printf ("\n | Inserir Filme______________________(1)|");
printf ("\n | Apagar Registo_____________________(2)|");
printf ("\n | Listar Filmes______________________(3)|");
printf ("\n | Ficheiros: |");
printf ("\n | Gravar em fiCheiro_________________(4)|");
printf ("\n | Ler Ficheiro_______________________(5)|");
printf ("\n | Gravar só os Reg. Ocupados_________(6)|");
printf ("\n | Ler só os Reg. Ocupados____________(7)|");
printf ("\n | Sair_______________________________(8)|");
printf ("\n #---------------------------------------#\n");
do {

printf ("Qual a sua opcao?");
scanf ("d",&i);
}

while (i<0 || i>12);
return i;
}


void inserir(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

struct filme *p;

{
int i;
for (i=0; i<n && p->ocup=='1'; i++)
p++;
if (i<n)
}

printf ("\n\tQual o Título do filme?");
scanf ("%s", p->titulo);
print ("\tQual o genero?");
scanf ("%s", p->genero);
p->ocup='1';
}
else
printf ("\n\t Lista Completa");
}


void apagar(p) //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
struct filme *p;
{
int i;
printf ("\n Qual o n: do registo do filme a apagar?");
scanf ("%d",&i);
if (i>0 && i<=n)
(p+i-1) -> ocup='0';
}


void mostrar(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

strcut filme *p;
{
int i;
for (i=0;i<0;i++)
}
if (p->ocup=='1')
printf ("\n\t\t Registo n: %d \n\t\t Titulo: %s \n\t\t Qual o genero: %s",i+1,p->titulo,p->genero);
else
printf ("\nRegisto n: %d (livre)", i+1);
p++;
}
}

void escreveficheiro1(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::

struct filme *p
{
FILE *fic;
int i;
char *nome="lista1.dat";
if ((fic= fopen(nome,"w"))==NULL)
fprintf (stderr, "impossivel abrir ficheiro.\n");
else
{
fread (p,sizeof(*p),n,fic);
fclose(fic);
}
}

void escreverficheiro2(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

struct filme *p;
{
FILE *fic;
int i;
char *nome="lista2.dat";
if ((fic= fopen(nome,"w"))==NULL)
fprintf(stderr, "impossivel abrir o ficheiro. \n");
else
{
for (i=0;i<n;i++)
}
fwrite(p,sizeof(*p),1,fic);
p++;
}
fclose (fic);
}
}

void leficheiro2(p) //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

struct filme *p;
{
FILE *fic;
int i;
char *nome="lista2.dat";
if ((fic= fopen (nome "r"))==NULL)
fprintf(stderr,"impossivel abrir o ficheiro. \n");
else
{
for (i=0;i<n;i++)
{
fread(p,sizeof(*p,1,fic);
p++;
}
fclose(fic);
}
}

void escreveficheiro3(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
struct filme *p;
{
FILE *fic;
int i;
char *nome="lista3.dat";
if (fic= fopen(nome,"r"))==NULL)
fprintf (stderr, "Impossivel abrir ficheiro.\n");
else
{
while (!feof(fic))
{
fread(p,sizeof(*p),1,fic);
p++;
fclose (fic);
}
}

int main() //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
{
struct filme filmes [n];
struct filme copia [n];
int op;
FILE *fic;
inicializa (filmes);
inicializa (copia);
do
{

op=menu();
switch (op)
{
case 1: inserir (filmes); break;
case 2: apagar (filmes); break;
case 3: mostrar (livros); break;
case 4: escreverficheiro1(filmes); break;
case 5: leficheiro (copia);
mostrar (copia);
break;
case 6: escreveficheiro2 (filmes); break;
case 7: leficheiro2(copia);
mostrar (copia);
break;
case 8: escreveficheiro3(filmes); break;
case 9: leficheiro3(copia);
mostrar(copia);
break;
case 10: exit(0);
}
}
while (1);
printf("\n\n");
getc(stdin);
return 0;
}




grandes mestres dêem uma vista de olhos e digam qualquer coisa....abraço e obrigado
 
Back
Topo