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();
}
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();
}
sasa
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);
}


Powered by phpBB © 2001, 2005 phpBB Group