|
www.ispwsznysa.fora.pl Informatyka Stosowania PWSZ NYSA
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
sasa
Gość
|
Wysł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ść
|
Wysł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ść
|
Wysł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 |
|
|
|
|
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
|