• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zadanie domowe programowanie w C

0 głosów
347 wizyt
pytanie zadane 13 maja 2019 w C i C++ przez antek97 Nowicjusz (220 p.)
edycja 13 maja 2019 przez antek97
#include <stdio.h>
#include <string.h>

struct baza{
char imie[15];
char nazwisko[25];
int telefon[9];
};



int main()
{
    FILE *wsk_pliku;
    struct baza osoba, *wsk_osoby;
    wsk_osoby=&osoba;
    int operacja;
    do{
    printf("\nWybierz operacje od 1 do 5.\n");
    printf("1.Wprowadz dane.\n");
    printf("2.Zapisz do pliku.\n");
    printf("3.Wczytaj z pliku.\n");
    printf("4.Wyswietl dane.\n");
    printf("5.Koniec.\n");




        scanf("%d",&operacja);
    switch (operacja){
    case 1:
    printf("\nPodaj dane osoby: \n");
    printf("\tImie: "); scanf("%s", osoba.imie);
    printf("\tNazwisko: "); scanf("%s", osoba.nazwisko);
    printf("\tTelefon: "); scanf("%d",osoba.telefon);
    break;

    case 2:
   if((wsk_pliku=fopen("baza2.txt","w"))!= NULL )
    printf ("Nie mogę otworzyć pliku baz2.txt do zapisu!\n")

        {
        fprintf(wsk_pliku,"%s",wsk_osoby->imie);
        fprintf(wsk_pliku,"\n");
        fprintf(wsk_pliku,"%s",wsk_osoby->nazwisko);
        fprintf(wsk_pliku,"\n");
        fprintf(wsk_pliku,"%d",wsk_osoby->telefon);
        fprintf(wsk_pliku,"\n");
        fclose(wsk_pliku);
        }

    break;

    case 3:
     if((wsk_pliku=fopen("baza2.txt","r"))!=NULL)
       {
        fscanf(wsk_pliku,"%s",wsk_osoby->imie);
        fscanf(wsk_pliku,"%s",wsk_osoby->nazwisko);
        fscanf(wsk_pliku,"%d",wsk_osoby->telefon);
        fclose(wsk_pliku);
        }
     else
        printf("Blad otwarcia\n");
        printf("\nDane osoby:\n");
     printf("\tImie: %s\n",wsk_osoby->imie);
     printf("\tNazwisko: %s\n", wsk_osoby->nazwisko);
     printf("\tTelefon: %d", wsk_osoby->telefon);
    break;

    case 4:
     printf("\nDane osoby:\n");
     printf("\tImie: %s\n",wsk_osoby->imie);
     printf("\tNazwisko: %s\n", wsk_osoby->nazwisko);
     printf("\tTelefon: %d", wsk_osoby->telefon);
    break;


     default : printf("\nWybierz ponownie !");
    printf("\nPodaj operacje: ");scanf("%d", operacja);
        break;

    };
    }while(operacja!=5);






    return 0;
}

Opracuj program tworzący prostą bazę danych np. osobowych. Program powinien zawierać możliwość wprowadzenia danych, zapisania oraz pobrania danych z dysku. Program powinien korzystać z funkcji oraz sprawdzać poprawność wprowadzanych danych. Przykładowe menu: 1. Wprowadź dane 2. Zapisz dane na dysk 3. Pobierz dane z dysku 4. Wyświetl dane 5. Koniec.

Nie wiem czego brakuje zeby działoło zapisywanie pliku 

1 odpowiedź

+2 głosów
odpowiedź 13 maja 2019 przez niezalogowany
edycja 13 maja 2019

to mi działa

case 2:
   if((wsk_pliku=fopen("baza2.txt","w"))== NULL )
    {printf ("Nie mogę otworzyć pliku baz2.txt do zapisu!\n");
    return 1;
    }

        {
        fprintf(wsk_pliku,"%s",wsk_osoby->imie);
        fprintf(wsk_pliku,"\n");
        fprintf(wsk_pliku,"%s",wsk_osoby->nazwisko);
        fprintf(wsk_pliku,"\n");
       
        fprintf(wsk_pliku,"\n");
        fclose(wsk_pliku);
        }

    break;

fprintf(wsk_pliku,"%d",*wsk_osoby->telefon); // to mi kompilator krzyczał że podaje wskaźnik zamiast wartości

if((wsk_pliku=fopen("baza2.txt","w"))== NULL ) {printf ("Nie mogę otworzyć pliku baz2.txt do zapisu!\n"); return 1; }

// jezeli NULL (nie udało się wyświetlić pliku )  to zrób to co w klamrach,

a było nie rób tego co jest w klamrach;

 

komentarz 13 maja 2019 przez antek97 Nowicjusz (220 p.)
Ale cały program normalnie?
1
komentarz 13 maja 2019 przez niezalogowany

wszędzie gdzie fprintf(wsk_pliku,"%d",*wsk_osoby->telefon) //krzyczał że błąd

tu masz cały (dodatkowo 7 wyjście)

#include <stdio.h>
#include <string.h>

struct baza{
char imie[15];
char nazwisko[25];
int telefon[9];
};



int main()
{
    FILE *wsk_pliku;
    struct baza osoba, *wsk_osoby;
    wsk_osoby=&osoba;
    int operacja;
    do{
    printf("\nWybierz operacje od 1 do 5.\n");
    printf("1.Wprowadz dane.\n");
    printf("2.Zapisz do pliku.\n");
    printf("3.Wczytaj z pliku.\n");
    printf("4.Wyswietl dane.\n");
    printf("5.Koniec.\n");




        scanf("%d",&operacja);
    switch (operacja){
    case 1:
    printf("\nPodaj dane osoby: \n");
    printf("\tImie: "); scanf("%s", osoba.imie);
    printf("\tNazwisko: "); scanf("%s", osoba.nazwisko);
    printf("\tTelefon: "); scanf("%d",osoba.telefon);
    break;

    case 2:
   if((wsk_pliku=fopen("baza2.txt","w"))== NULL )
    {printf ("Nie mogę otworzyć pliku baz2.txt do zapisu!\n");
    return 1;
    }

        {
        fprintf(wsk_pliku,"%s",wsk_osoby->imie);
        fprintf(wsk_pliku,"\n");
        fprintf(wsk_pliku,"%s",wsk_osoby->nazwisko);
        fprintf(wsk_pliku,"\n");
        fprintf(wsk_pliku,"%d",*wsk_osoby->telefon);
        fprintf(wsk_pliku,"\n");
        fclose(wsk_pliku);
        }

    break;

    case 3:
     if((wsk_pliku=fopen("baza2.txt","r"))!=NULL)
       {
        fscanf(wsk_pliku,"%s",wsk_osoby->imie);
        fscanf(wsk_pliku,"%s",wsk_osoby->nazwisko);
        fscanf(wsk_pliku,"%d",wsk_osoby->telefon);
        fclose(wsk_pliku);
        }
     else
        printf("Blad otwarcia\n");
        printf("\nDane osoby:\n");
     printf("\tImie: %s\n",wsk_osoby->imie);
     printf("\tNazwisko: %s\n", wsk_osoby->nazwisko);
     printf("\tTelefon: %d", *wsk_osoby->telefon);
    break;

    case 4:
     printf("\nDane osoby:\n");
     printf("\tImie: %s\n",wsk_osoby->imie);
     printf("\tNazwisko: %s\n", wsk_osoby->nazwisko);
     printf("\tTelefon: %d", *wsk_osoby->telefon);
    break;

    case 7:
     return 0;
    break;


     default : printf("\nWybierz ponownie !");
    printf("\nPodaj operacje: ");scanf("%d", &operacja);
        break;

    };
    }while(operacja!=5);






    return 0;
}

 

Podobne pytania

0 głosów
1 odpowiedź 343 wizyt
pytanie zadane 13 maja 2019 w C i C++ przez antek97 Nowicjusz (220 p.)
0 głosów
2 odpowiedzi 642 wizyt
0 głosów
1 odpowiedź 664 wizyt

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,327 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...