Forum www.ispwsznysa.fora.pl Strona Główna www.ispwsznysa.fora.pl
Informatyka Stosowania PWSZ NYSA
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

l4

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.ispwsznysa.fora.pl Strona Główna -> Programowanie II (C)
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
sasa
Gość






PostWysłany: Sob 15:40, 24 Maj 2008    Temat postu: l4

Kod:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
///////////////////////////

char plik[]={"Baza_Cd.dat"};
//char plikwynik[]="wynik.dat";

/////////////

struct TUtwor
     {
     char autor[25];
     char wykonawca[25];
     int  czas_sec;
     };

struct TCd
     {
     char  album[50];
     char  wykonawca[50];
     char  wydawca[50];
     char  rok[3];
     float cena;
     struct TUtwor TU[24];
     } TCd;

int ile = 0;

///////////////////////
// zapis do pliku
///////////////////////

void zapis(void)
{
        FILE *wsk;
        wsk=fopen(plik,"ab");
        fwrite(&TCd,sizeof(TCd),1,wsk);
        fclose(wsk);
};
/*void zapiswynik(void)
{
        FILE *wsk2;
        wsk2=fopen(plikwynik,"wb");
        fwrite(&TCd,sizeof(TCd),1,wsk2);
        fclose(wsk2);
};
*/
int sprawdzile(void)
{
        FILE *wsk;

        int rozmiar;
        wsk=fopen(plik,"rb");

        if (wsk != NULL)
         {
          fseek (wsk, 0, SEEK_END);
          fread(&TCd,sizeof(TCd),1,wsk);
          rozmiar=ftell(wsk) / sizeof(TCd);
          fclose(wsk);
          return rozmiar - 1;
         } else return -1;
};
///////////////////////
//
///////////////////////
int odczyt(int nr)
   {
        FILE *wsk;
        int rozmiar;
        wsk=fopen(plik,"rb");
        if (wsk != NULL)
         {
          fseek(wsk,nr*sizeof(TCd),1);
          fread(&TCd,sizeof(TCd),1,wsk);
          fclose(wsk);
          return 0;
         } else return 1;
   };

/////////////////////////
//
/////////////////////////

void drukuj(void)
{
int  data,i,d;
char ch;
data=0;
printf("\n\n------------\n");
if (odczyt(data) == 0)
if (ile > -1)

do{
 odczyt(data);
 printf("\nAlbum   : %s \nWykonawca: %s \nWydawca  : %s \nRok      : %s \nCena     : %g zl\n\n [Lista utworow ",TCd.album,TCd.wykonawca,TCd.wydawca,TCd.rok,TCd.cena);

 for (i=0;i<24;i++)
  if (TCd.TU[i].autor[0] != '\0')
  {
   printf("\n Utwor %2d [",i+1);
   printf("Czas trwania %d",TCd.TU[i].czas_sec);
   printf("] Autor: %s Wykonawca: %s",TCd.TU[i].autor,TCd.TU[i].wykonawca);

  }
  printf("\n\n------------\n");
   data++;
} while (data <= ile);
else {
      printf("Wyswietl zawartosc bazy:\n\n Brak rekordow !");

}
else {
      printf("Wyswietl zawartosc bazy:\n\n Brak pliku [%s] bazy danych !",plik);
     }

};
////////////////////////
//
////////////////////////
void srednia(void)
{
int   i;
float s=0;

if (odczyt(0) == 0)
if (ile > -1)
{
 for (i=0;i<=ile;i++)
 { odczyt(i);
   s=s + TCd.cena; }
 s=s / (ile + 1);
 printf("Srednia wynosi: %g zl\n",s);
}
else printf("\n\n Brak rekordow !",plik);
else printf("\n\n Brak pliku [%s] bazy danych !",plik);
//zapiswynik();
};
////////////////////////
//
////////////////////////
void dodaj(void)
{
int i,l,m,s;
printf("Dodaj nowe CD:\n\n");

printf(" Album    : ");
scanf("%s",&TCd.album);
printf(" Wykonawca: ");
scanf("%s",&TCd.wykonawca);
printf(" Wydawca  : ");
scanf("%s",&TCd.wydawca);
printf(" Rok      : ");
scanf("%s",&TCd.rok);
printf(" Cena     : ");
scanf("%f",&TCd.cena);

do {
 printf(" Ile utworow  : ");
 scanf("%d",&l);
 if (l > 24 || l < 0) { printf("  BLAD: Zly zakres <0,24> !\n"); }
} while (l > 24 || l < 0);


for (i=0;i<l;i++)
{
 printf("\n[ Utwor %2d ]:\n",i+1);
 printf(" Autor     : ");
 scanf("%s",&TCd.TU[i].autor);
 printf(" Wykonawca : ");
 scanf("%s",&TCd.TU[i].wykonawca);
 printf(" Czas [min]: ");
 scanf("%d",&m);
 printf(" Czas [sec]: ");
 scanf("%d",&s);
 TCd.TU[i].czas_sec=(m * 60) + s;
}

zapis();
ile=sprawdzile();
};
//////////////////////
//
//////////////////////
void usun(void)
{
FILE *wsk;
int  i,nr;
char ch;
printf("Usun wybrane CD:\n\n");
if (odczyt(0) == 0)
if (ile > -1)
{

 do {
  printf(" Podaj nr. rekordu: ");
  scanf("%d",&nr);
  nr=nr-1;
  if (nr < 0 || nr > ile) printf("  BLAD : Brak takiego [%d] rekordu!\n",nr);
 } while(nr < 0 || nr > ile);

 odczyt(nr);
 printf("\n Czy na pewno usunac rekord ?\n");
 printf(" Album    : %s\n",TCd.album);
 printf(" Wykonawca: %s\n",TCd.wykonawca);
 printf(" Wydawca  : %s\n",TCd.wydawca);
 printf(" Rok      : %s\n",TCd.rok);
 printf("\n t/n ?");

 do {
  ch=getch();
 } while(ch != 't' && ch != 'n');

 if (ch == 't')
 {
  wsk=fopen("temp.dat","ab");
  for(i=0;i<nr;i++)
  {
   odczyt(i);
   fwrite(&TCd,sizeof(TCd),1,wsk);
  }
  for(i=nr+1;i<=ile;i++)
  {
   odczyt(i);
   fwrite(&TCd,sizeof(TCd),1,wsk);
  }
  fclose(wsk);
  remove(plik);
  rename("temp.dat",plik);
  ile=sprawdzile();
  printf("\n\n Rekord zostal usuniety.");
 } else printf("\n\n Anulowano usuwanie rekordu.");

}
else printf(" Brak rekordow !",plik);
else printf(" Brak pliku [%s] bazy danych !",plik);
}

/////////////////////
//
/////////////////////

void szukaj(void)
{
int  nr, i = 0,find = 0;
char  ch,szuk[50];


printf("Szukaj plyty:\n\n");
if (odczyt(0) == 0)
if (ile > -1)
{
 printf(" Podaj kryteria szukania: ");
 printf("\n1 - Album\n");
 printf("2 - Wykonawca\n");
 printf("3 - Wydawca\n");
 printf("4 - Cena");

 scanf("%d",&nr);
 if (nr == 1)
 printf("Podaj tytul albumu\n");
 if (nr ==2)
 printf(" Podaj wykonawce\n");
 if (nr == 3)
 printf("Podaj nazwe wydawcy\n");
 if (nr == 4 )
 printf("Podaj cene\n");

 scanf("%s",szuk);

 for(i=0;i<=ile;i++)
 { odczyt(i);

   if ((strcmp(szuk,TCd.album)==0) || (strcmp(szuk,TCd.wykonawca)==0) || (strcmp(szuk,TCd.wydawca)==0))
   {
    printf("\n Znalaeziono plyte:\n\n");
    printf(" ID : %d\n",i+1);
    printf(" ==========\n");
    printf(" Album    : %s\n",TCd.album);
    printf(" Wykonawca: %s\n",TCd.wykonawca);
    printf(" Wydawca  : %s\n",TCd.wydawca);
    printf(" Rok      : %s\n",TCd.rok);
    printf(" Cena     : %g",TCd.cena);
    find=1;

 }
 }
 if (find == 0) printf("\nNic nie znaleziono!");
 else printf("\n\nZakonczono szukanie.");
}
//else printf(" Brak rekordow !",plik);
else printf("Brak pliku [%s] bazy danych!",plik);
}


void main(void)
{
int poz,nr;
do{
 ile=sprawdzile();
 printf("1-Dodaj\n");
 printf("2-Usun\n");
 printf("3-Wyswietl\n");
 printf("4-Srednia cena\n");
// printf("5-Szukaj plyty\n");
// printf("4-Srednia cena plyt\n");
 printf("0-Koniec\n\n");
  scanf("%d", &poz);





if (poz ==1)  dodaj();
if (poz ==2)  usun();
if (poz == 3) drukuj();
if (poz == 5) szukaj();
if (poz == 4) srednia();
     }
 while (poz != 0);
}

Powrót do góry
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Gość







PostWysłany: Sob 15:42, 24 Maj 2008    Temat postu:

Kod:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

typedef struct TUtwor
  {
   char autor[25], wykonawca[25];
   int czas;
  } Utwory;

typedef struct TAlbum
{
 char tytul[25],
      nazwisko[25],
      wydawca[25];
 int rok,
     cena;
     ilosc;
 Utwory tab[25];
} Albumy;

void wypelnij(Albumy *d, int *n, int *m)
{
 int l,i, j;
 do
  {
   printf("Podaj ile plyt chcesz wpisac: "); scanf("%d", &(*n));
  } while(*n<1||*n>10);

 for(i=0; i<*n; i++)
  {
   printf("%d plyta:\n", i+1);
   printf("Podaj tytul plyty\n"); scanf("%s", &*d[i].tytul);
   printf("Podaj wykonawce\n"); scanf("%s", &(*(d+i)).nazwisko);
   printf("Podaj wydawce\n"); scanf("%s", &(*(d+i)).wydawca);
   printf("Podaj rok wydania\n"); scanf("%d", &(*(d+i)).rok);
   printf("Podaj cene plyty\n"); scanf("%d", &(*(d+i)).cena);
   do
    {
     printf("\nPodaj na plycie jest piosenek\n "); scanf("%d", &(*m));
    }
   while(*m<0||*m>25);

   l=(*m);
   ((*(d+i)).ilosc) = l;

   for(j=0; j<*m; j++)
    {
     printf("%d piosenka:\n", j+1);
     printf("Podaj autora piosenki: "); scanf("%s", &(*(d+i)).tab[j].autor);
     printf("Podaj wykonawce piosenki: "); scanf("%s", &(*(d+i)).tab[j].wykonawca);
     printf("Podaj czas trwania piosenki: "); scanf("%d", &(*(d+i)).tab[j].czas);
    }
  }
}

void wypisz(Albumy d[], int n, int m)
{
 int i, j;
 for(i=0; i<n; i++)
  {
   printf("%d plyta\n", i+1);
   printf("Tytul: %s\n", d[i].tytul);
   printf("Wykonawca: %s\n", d[i].nazwisko);
   printf("Wydawca: %s\n", d[i].wydawca);
   printf("Rok wydania: %d\n", d[i].rok);
   printf("Cena: %d\n", d[i].cena);
   printf("\npiosenek na plycie: %d\n", d[i].ilosc);

   for(j=0; j<d[i].ilosc; j++)
    {
     printf("%d piosenka:\n", j+1);
     printf("Autor: %s\n", d[i].tab[j].autor);
     printf("Wykonawca piosenki: %s\n", d[i].tab[j].wykonawca);
     printf("Czas trwania piosenki: %d\n", d[i].tab[j].czas);
    }
  }
}

double srednia_ceny(Albumy d[], int n)
{
 double s=0.0;
 int i;
 for(i=0; i<n; i++)
  s+=(double)d[i].cena;
 s/=n;
 return(s);
}

void main(void)
{
 int n, m;
 Albumy dane[10];
 Albumy Utwory[25];
 wypelnij(dane, &n, &m);
 printf("\n");
 printf("----------------");
 printf("\n");
 wypisz(dane, n, m);
 printf("\n");
 printf("Srednia cena podanych plyt wynosi: %.2f ", srednia_ceny(dane, n));
 getch();
}
Powrót do góry
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Gość







PostWysłany: Sob 16:48, 24 Maj 2008    Temat postu:

//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

typedef struct TUtwor
{
char autor[25], wykonawca[25];
int czas;
} Utwory;

typedef struct TAlbum
{
char tytul[25],
nazwisko[25],
wydawca[25];
int rok,
cena,
ilosc;
Utwory tab[25];
} Albumy;

void wypelnij(Albumy *d, int *n, int *m)
{
int l,i, j;
do
{
printf("Podaj ile plyt chcesz wpisac: "); scanf("%d", &(*n));
} while(*n<1||*n>10);

for(i=0; i<*n; i++)
{
printf("%d plyta:\n", i+1);
printf("Podaj tytul plyty\n"); scanf("%s", &*d[i].tytul);
printf("Podaj wykonawce\n"); scanf("%s", &(*(d+i)).nazwisko);
printf("Podaj wydawce\n"); scanf("%s", &(*(d+i)).wydawca);
printf("Podaj rok wydania\n"); scanf("%d", &(*(d+i)).rok);
printf("Podaj cene plyty\n"); scanf("%d", &(*(d+i)).cena);
do
{
printf("\nPodaj na plycie jest piosenek\n "); scanf("%d", &(*m));
}
while(*m<0||*m>25);

l=(*m);
((*(d+i)).ilosc) = l;

for(j=0; j<*m; j++)
{
printf("%d piosenka:\n", j+1);
printf("Podaj autora piosenki: "); scanf("%s", &(*(d+i)).tab[j].autor);
printf("Podaj wykonawce piosenki: "); scanf("%s", &(*(d+i)).tab[j].wykonawca);
printf("Podaj czas trwania piosenki: "); scanf("%d", &(*(d+i)).tab[j].czas);
}
}
}

void wypisz(Albumy d[], int n, int m)
{
int i, j;
for(i=0; i<n; i++)
{
printf("%d plyta\n", i+1);
printf("Tytul: %s\n", d[i].tytul);
printf("Wykonawca: %s\n", d[i].nazwisko);
printf("Wydawca: %s\n", d[i].wydawca);
printf("Rok wydania: %d\n", d[i].rok);
printf("Cena: %d\n", d[i].cena);
printf("\npiosenek na plycie: %d\n", d[i].ilosc);

for(j=0; j<d[i].ilosc; j++)
{
printf("%d piosenka:\n", j+1);
printf("Autor: %s\n", d[i].tab[j].autor);
printf("Wykonawca piosenki: %s\n", d[i].tab[j].wykonawca);
printf("Czas trwania piosenki: %d\n", d[i].tab[j].czas);
}
}
}

double srednia_ceny(Albumy d[], int n)
{
double s=0.0;
int i;
for(i=0; i<n; i++)
s+=(double)d[i].cena;
s/=n;
return(s);
}


double odchylenie(Albumy d[], int n, double p)
{
double s=0.0;
int i;
for(i=0; i<n; i++)
{
s=0.0;
s=(((double)d[i].cena)-p);
printf("\n");
printf("odchylenie wynosi:%d, %.2f ",i+, s);
printf("\n");
//return(s);
}
}

void main(void)
{
int n, m;
double p;

Albumy dane[10];
Albumy Utwory[25];
wypelnij(dane, &n, &m);
printf("\n");
printf("----------------");
printf("\n");
wypisz(dane, n, m);
printf("\n");
printf("Srednia cena podanych plyt wynosi: %.2f ", srednia_ceny(dane, n));
p=srednia_ceny(dane, n);
odchylenie(dane, n, p);
printf("\n");
// printf("odchylenie wynosi: %.2f ", p);
printf("\n");
getch();
}
Powrót do góry
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.ispwsznysa.fora.pl Strona Główna -> Programowanie II (C) Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin