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 

lista 6 zad3 dudek

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.ispwsznysa.fora.pl Strona Główna -> Programowania I
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
stramik
Administrator



Dołączył: 02 Gru 2007
Posty: 126
Przeczytał: 0 tematów

Skąd: Grodków

PostWysłany: Pon 18:44, 14 Sty 2008    Temat postu: lista 6 zad3 dudek

Moja wersja zadania. Baza danych tworzy sie po wybraniu opcji zapisz baze. tworzy sie plik baza.bin Pozniej mozna juz zaladowywac ta baze. Po ponownym wlczeniu programy baza jest nie zaladowana i dopiero zaladowanie sprawi ze sie pojawi .

Kod:

program zad3;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type

TCzas=record
minuta:byte;
sekunda:byte;
end;

TData=record
dzien:byte;
miesiac:byte;
rok:byte;
end;

TUtwor=record
wykonawca:string[20];
tytul:string[20];
czas:Tczas;
end;

TCd=record
autor:string[20];
tytul:string[20];
data:TData;
cena:real;
liczba:1..20;
utwor:array [1..20] of TUtwor;
end;

baza=array [1..10] of TCd;

procedure menu(var q:char);
begin
repeat
writeln('Wybierz jedna z opcji:');
writeln('1. Dodaj do bazy');
writeln('2. Usun z bazy');
writeln('3. Wyswietl liste plyt z bazy');
writeln('4. Wyswietl konkretna plyte cd z bazy');
writeln('5. Zaladuj baze danych');
writeln('6. Zapisz plik bazy danych');
writeln('7. Wyjdz z programu');
write(' Twoj wybor to: ');
readln(q);
if q>'7' then
begin
if q<'1' then
writeln('Bledna opcja, wybierz jeszcze raz');
end;
writeln;
writeln;
until (q>'0') and (q<'8');
end;

procedure dodaj(var n:byte;var dane:baza);
var
i:byte;
begin
n:=n+1;
write('Podaj wykonawce, jezeli skladanka nacisnij enter ');
readln(dane[n].autor);
if dane[n].autor='' then dane[n].autor:='Rozni wykonawcy';
write('Podaj tytul plyty: ');
readln(dane[n].tytul);
write('Podaj date wydania w formacie DD MM RR : ');
readln(dane[n].data.dzien,dane[n].data.miesiac,dane[n].data.rok);
write('Podaj cene plyty w pln PLN.GR : ');
readln(dane[n].cena);
write('Podaj liczbe utworow na plycie : ');
readln(dane[n].liczba);
for i:=1 to dane[n].liczba do
begin
if dane[n].autor='Rozni wykonawcy' then
begin
write('Podaj wykonawce ',i,' utworu: ');
readln(dane[n].utwor[i].wykonawca);
end;
write('Podaj tytul ',i,' utworu: ');
readln(dane[n].utwor[i].tytul);
write('Podaj czas utworu w formacie MM SS ');
readln(dane[n].utwor[i].czas.minuta,dane[n].utwor[i].czas.sekunda);
end;
end;

procedure lista(n:byte;dane:baza);
var
i:byte;
begin
if n>0 then
begin
writeln('PLYTY W BAZIE:');
for i:=1 to n do
writeln(i:2,'.WYKONAWCA: ',dane[i].autor:22,' TYTUL PLYTY: ',dane[i].tytul:22);
end;
if n=0 then
writeln('Baza jest pusta!!!!');
end;

procedure usun(var n:byte;var dane:baza);
var
i:byte;
begin
i:=0;
writeln('Wybierz plyte do skasowania');
lista(n,dane);
readln(i);
if n<>0 then
n:=n-1;
for i:=i to n do
dane[i]:=dane[i+1];
end;

procedure szczegol(n:byte;dane:baza);
var
i,p:byte;
begin
lista(n,dane);
writeln('Ktora plyte wyswietlic?? ');
readln(p);
writeln('WYKONAWCA: ',dane[p].autor,' TYTUL PLYTY: ',dane[p].tytul);
writeln('DATA WYDANIA: ',dane[p].data.dzien,'.',dane[p].data.miesiac,'.',dane[p].data.rok,'r.');
writeln('CENA: ',dane[p].cena:3:2);
writeln('LISTA UTWOROW:');
for i:=1 to dane[p].liczba do
begin
write(i:3);
if dane[p].autor='Rozni wykonawcy' then
write(dane[p].utwor[i].wykonawca:22);
write(dane[p].utwor[i].tytul:22);
write(dane[p].utwor[i].czas.minuta:4,':',dane[p].utwor[i].czas.sekunda);
writeln;
end;
end;


var
n:byte;
p,j:byte;
q:char;
dane:baza;
plik:file of baza;



begin
n:=0;
repeat
menu(q);
case q of
'1':dodaj(n,dane);
'2':usun(n,dane);
'3':lista(n,dane);
'4':szczegol(n,dane);
end;

if q='5' then
begin
assignfile(plik,'baza.bin');
if fileexists ('baza.bin') then
begin
p:=0;
reset(plik);
read(plik,dane);
writeln('Baza zaladowana!!!');
  for j:=1 to 10 do
  begin
    if dane[j].autor<>'' then
    begin
    inc(p);
    end
  end;
n:=p;
end
else writeln('Brak bazy danych do zaladowania');
end;


if q='6' then
begin
assignfile(plik,'baza.bin');
rewrite(plik);
write(plik,dane);
close(plik);
writeln('ZAPISANO BAZE DANYCH');
end;

writeln;
writeln;

until q='7';
{ TODO -oUser -cConsole Main : Insert code here }
end.
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.ispwsznysa.fora.pl Strona Główna -> Programowania I Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie 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