Programowanie w C, proszę o pomoc z Programem.

0

Napisz program ktory przechowa informacje max 10 filmów ma pozwolić dopisać, ma pozwolic odczytać informacje o danym filmie, ma pozwolić wypisać informacje o wszystkich filmach naraz, pozwala też usunąć informacje o danym filmie...(wszystkie informacje mają być w pliku)

#include <stdio.h>
#include <stdlib.h>

  typedef struct
  {
       char nazwa[30];
       char rezyser[20];
       int rok; /*==0 oznacza ze puste*/
       int czas;
       int ocena;
       } film;

   int main(int argc, char *argv[])
{
       char nazwa[13];
       film tab[10];
       for(i=0;i<10;i++)
       tab[i].rok=0;
       int i; /* zmienna do petli bo na pewno jakies beda*/
       FILE*wsk;
       char menu;
       do
       {
       system("CLS");
       printf("1)Stworzenie pliku");
       printf("2)Otworzenie pliku");
       printf("3)Zapisanie do pliku"); /*zapisanie na dysku te elementy ktore sa wypelnione czyli nie sa puste*/
       printf("4)Dodaj");
       printf("5)Usun");
       printf("6)Wypisz wybrane informacje");
       printf("7)Wypisz wszystkie informacje o filmie");

       menu=getch();
       switch(menu)
       { case '1':
         printf("Podaj nazwe pliku.");
         scanf("%s",nazwa);
         if((wsk=fopen(nazwa,"w"))==NULL)
         printf("Nie udalo sie utworzyc pliku.");
         system("PAUSE");   
         return 0;
         fclose(wsk);
         break;

         case'2':
                 printf("Podaj nazwe pliku ktory chcesz otworzyc");
                 scanf("%s",nazwa);
                 if((wsk=fopen(nazwa,"r")==NULL)
                 {printf("Nie udalo sie otworzyc pliku");
                 break;
                 }
                 i=0;
                 while(fread(&tab[i],sizeof(film),1,wsk)!=0)
                 i++;
                 fclose(wsk);
                 break;

           case'3':
                   printf("Podaj nazwe pliku");
                   scanf("%s",nazwa);
                   if((wsk=fopen(nazwa,"w"))==NULL)
                   {puts("Nie mozna zapisac");
                   break;
                   }
                   for(i=0;i<10;i++)
                       if(tab[i].rok!=0)
                       fwrite(&tab[i],sizeof(film),1,wsk);
                       fclose(wsk);
                       break;

                       i=0;
                       while(i<10&&tab[i].rok!=0)
                       i++;

                       .
                       .
                       .
                       break;
                       }
                       while(1);
                    /*petla nieskonczona*/

  system("PAUSE");  
  return 0;
}

dobra i to już jest prawie zrobione bo na lekcji już prawie kończyliśmy tylko trzeba dopisać pare kroków czyli "case" tam w programie są wypisane na początku ale pod spodem są nie napisane programy do tych kroków...
ale zadanie polega na tym teraz żeby ten program skrócić i np z każdego case'a zrobić funkcje dać przed main czyli przed program a potem w programie już tylko wywoływać te funkcje.

aaa i podpowiedź do któregoś tam case'a chyba tam gdzie jest usuwanie że to jest przypisanie 0 do odpowiedniego rekordu np.rok to wtedy nam wykasuje dane rok z danego filmu albo z wszystkich filmów?:P nie wiem

Nie ogarniam tego.. ;/

Proszę o pomoc, z góry dziękuje!

0

Ależ to nieskładnie napisałeś... I nie mówię tutaj o kodzie.
Nie wiem na czym konkretnie polega Twój problem. Nie wiesz jak się tworzy funkcje w C? Nie masz pomysłu jak to na funkcje rozdzielić? Nie wiesz co w tych funkcjach wpisać? Potrzebuję wyjaśnień.
Może spróbuj napisać to jeszcze raz (nie kod), tylko tym razem wolniej, dorzuć trochę przecinków żebyśmy zrozumieli właściwy przekaz, może zadaj jakieś konkretne pytanie itp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0