Turbo Pascal
 
Szukanie zaawansowane
   
 
Home Rejestracja FAQ Użytkownicy Grupy Galerie  
 
 


Forum Turbo Pascal Strona Główna Kody źródłowe Baza Danych
Wyświetl posty z ostatnich:   
       
Napisz nowy temat  Odpowiedz do tematu Idź do strony 1, 2  Następny

Pią 20:30, 03 Mar 2006
Autor Wiadomość
blood777
Początkujący



Dołączył: 17 Lut 2006
Posty: 7
Przeczytał: 0 tematów

Ostrzeżeń: 0/3
Skąd: Zakrzewo

Temat postu: Baza Danych

To ja może dorzuce baze danych którą ostatnio zrobiłem :)

Kod:
program baza_danych;

uses crt;

type
  osoba = record
            imie : string[15];
            nazwisko : string[20];
            plec : char;
            zarobki : integer;
            telefon : string;
          end;

var
  x, y, ile, i : integer;
  znak : char;
  dane : array[1..10] of osoba;

procedure wpis;

var
  rekord : osoba;

begin
  ClrScr;
  with rekord do
   begin
     gotoxy(27, 6);
     write('Podaj imie : ');
     readln(Imie);
     gotoxy(27, 7);
     write('Podaj nazwisko : ');
     readln(Nazwisko);
     gotoxy(27, 8);
     write('Podaj plec (K/M) : ');
     repeat
       plec := readkey;
     until upcase(plec) in['M', 'K'];
     writeln(plec);
     gotoxy(27, 9);
     write('Podaj zarobki : ');
     readln(zarobki);
     gotoxy(27, 10);
     write('Podaj telefon : ');
     readln(telefon);
   end;
   Inc(ile);
   dane[ile] := rekord;
end;

procedure zobacz;
begin
  if ile > 0 then
    begin
      x := 1;
      repeat
        clrscr;
        gotoxy(10, 5);
        writeln('<-: poprzedni wpis,  ->: nastpny wpis  Esc: koniec');
        gotoxy(27, 7);
        writeln('Wpis nr ', x);
        gotoxy(27, 8);
        writeln(dane[x].imie, ' ', dane[x].nazwisko, ' Plec ', dane[x].plec);
        gotoxy(27, 9);
        writeln('Zarabia ', dane[x].zarobki, '  nr tel ', dane[x].telefon);
        writeln();
        znak := readkey;
        case znak of
          #75 : x := x - 1;
          #77 : x := x + 1;
        end;
        if x = 0 then x := ile;
        if x = ile + 1 then x := 1;
      until znak = #27;
    end
  else
    begin
      clrscr;
      gotoxy(25, 8);
      writeln('Nie ma jeszcze zadnych wpisow');
      readln;
    end;
end;

procedure usun;

var
  plik : file of osoba;

begin
  if ile > 0 then
    begin
      x := 1;
      repeat
        clrscr;
        gotoxy(7, 5);
        writeln('<-: poprzedni wpis, ->: nastpny wpis, enter: usun wpis, Esc: koniec');
        gotoxy(27, 7);
        writeln('Wpis nr ', x);
        gotoxy(27, 8);
        writeln(dane[x].imie, ' ', dane[x].nazwisko, ' Plec ', dane[x].plec);
        gotoxy(27, 9);
        writeln('Zarabia ', dane[x].zarobki, ' nr tel ', dane[x].telefon);
        writeln;
        znak := readkey;
        case znak of
          #75 : x := x - 1;
          #77 : x := x + 1;
        end;
        if x = 0 then x := ile;
        if x = ile + 1 then x := 1;
      until (znak = #27) or (znak =#13);

      if znak =#13 then
        begin
          dane[x] := dane[x + 1];
          ile := ile - 1;
          clrscr;
          gotoxy(25, 8);
          writeln('Wpis nr ', x, ' zostal usuniety');
          readln;
       end;
   end
   else
     begin
       clrscr;
       gotoxy(25, 8);
       writeln('Nie ma jeszcze zadnych wpisow');
       readln;
     end;
end;

procedure zapisz;

var
  plik : file of osoba;

begin
  clrscr;
  if ile > 0 then
    begin
      assign(plik, 'baza');
      rewrite(plik);
      for i := 1 to ile do
        write(plik, dane[i]);
      close(plik);
      gotoxy(25, 8);
      writeln('Twoje dane zostaly zapisane');
    end
  else
    begin
      gotoxy(15, 8);
      writeln('Twoje dane nie zostaly zapisane poziewaz nie ma wpisow');
    end;
  readln;
end;

procedure wczytaj;

var
  i, w : integer;
  plik : file of osoba;

begin
  clrscr;
  assign(plik, 'baza');
  reset(plik);
  i := 1;
  while not eof(plik) do
  begin
    read(plik, dane[i + ile]);
    Inc(i);
  end;
  close(plik);
  w := ile;
  ile := i - 1 + w;
   gotoxy(25, 8);
  writeln('Twoje dane zostaly wczytane');
  readln;
end;

procedure menu;

var
  tab : array[1..6] of string = ('Nowy wpis', 'Zobacz wpis', 'Usun wpis', 'Zapisz dane', 'Wczytaj dane', 'Koniec');

begin
  y := 1;
  repeat
    textcolor(black);
    for x := 1 to 6 do
      begin
        gotoxy(33, 7 + x);
        writeln(tab[x]);
      end;
    gotoxy(33, 7 + y);
    textcolor(red);
    writeln(tab[y]);
    znak := readkey;
    case znak of
      #72 : y := y - 1;
      #80 : y := y + 1;
    end;
    if y = 0 then y := 6;
    if y = 7 then y := 1;
  until znak = #13;
end;

begin
  repeat
    clrscr;
    menu;
    textcolor(black);
    case y of
      1 : wpis;
      2 : zobacz;
      3 : usun;
      4 : zapisz;
      5 : wczytaj;
    end;
  until y = 6;
end.


Post został pochwalony 0 razy

Ostatnio zmieniony przez blood777 dnia Sob 14:00, 04 Mar 2006, w całości zmieniany 1 raz
 
Zobacz profil autora
      Do góry  
Sob 10:10, 04 Mar 2006
Autor Wiadomość
istredd`
Średnio zaawansowany



Dołączył: 14 Lut 2006
Posty: 37
Przeczytał: 0 tematów

Ostrzeżeń: 0/3
Skąd: Kraków

Temat postu:

Nie chcę nic mówić, ale niestety Twój program jest niedopracowany.

1. W procedurze usun [od 85 linijki] brakuje definicji zmiennej 'plik'.
2. Czarny kolor tekstu... no cóż, albo zostaw kolory w spokoju, albo dodaj może inny kolor tła
3. Fajnie, że programujesz w linuksie, ale mógłbyś przy tworzeniu i zapisywaniu bazy danych tworzyć lokalny plik, a nie gdzieś w Twoim katalogu domowym. Zamiast /home... wpisz po prostu baza.txt. A w ogóle po co dodawać rozszerznie txt do pliku, który plikiem tekstowym nie jest. Nie myl użytkowników.

Bez poprawy tych błędów Twoja baza nie będzie działać jak należy.


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Sob 14:06, 04 Mar 2006
Autor Wiadomość
blood777
Początkujący



Dołączył: 17 Lut 2006
Posty: 7
Przeczytał: 0 tematów

Ostrzeżeń: 0/3
Skąd: Zakrzewo

Temat postu:

Zastosowałem twoje wskazówki :)
Ale nie wiem czemu się czepiasz kolorów ?
U mnie w konsoli dobrze wyglądały :)
nie wiem jak pod Windowsem.


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Nie 0:05, 05 Mar 2006
Autor Wiadomość
istredd`
Średnio zaawansowany



Dołączył: 14 Lut 2006
Posty: 37
Przeczytał: 0 tematów

Ostrzeżeń: 0/3
Skąd: Kraków

Temat postu:

Niestety standardowym kolorem tła (również w konsoli linuksa) jest czarny. Więc, albo wymuś od razu inny kolor tła, albo zrezygnuj z koloru czarnego jako czcionki.

Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Śro 16:58, 10 Maj 2006
Autor Wiadomość
raven
Pierwszy raz na forum



Dołączył: 10 Maj 2006
Posty: 1
Przeczytał: 0 tematów

Ostrzeżeń: 0/3

Temat postu:

tab : array[1..6] of string = ('Nowy wpis', 'Zobacz wpis', 'Usun wpis', 'Zapisz dane', 'Wczytaj dane', 'Koniec');

w tej linijce jest cos chyba nie tak jak probuje kompilowac to wykazuej ze brak ";" w tym miejscu ...of string = ('nowy wpis.... :/

to w tym zapisie jest cos nie tak czy to ja mam stara wersje turbo pascala ? help :)

yyy mam turbo pascal 7.0


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Wto 23:50, 23 Maj 2006
Autor Wiadomość
PoOm
Początkujący



Dołączył: 23 Maj 2006
Posty: 15
Przeczytał: 0 tematów

Ostrzeżeń: 2/3
Skąd: Thousand thousand miles away..

Temat postu:

Blue_Light_Colorz_PDT_11

Nie wiem czy to tylko mi sie chce pisac jakies wieksze programy. Los chciał ze własnie na zaliczenie mam do napisania baze.

Bym umieścił jakies kody ale .... za duzo byście mieli przewijania.
(~3-5 tysiący linijek kodu).
Zaryzykował bym jakąś współpracą...lecz niestety choc baza jest ciekawa
to mało praktyczna (Tryb BGI + dos = brak dostepu do ramu). I tak
mozna pracowac raptem na 5 tysiacach rekordów +- cos tam .


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Śro 13:01, 24 Maj 2006
Autor Wiadomość
rafael
Administrator



Dołączył: 07 Lut 2006
Posty: 72
Przeczytał: 0 tematów

Ostrzeżeń: 0/3
Skąd: Pszczyna

Temat postu:

Bardzo proszę Cię o pokazanie tych programów po 5 tysięcy linijek kodu Blue_Light_Colorz_PDT_02 . Nie musisz wklejać kodu źródłowego na forum, ale możesz umieścić link do tego własnie kodu Blue_Light_Colorz_PDT_17 .

Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Śro 13:50, 24 Maj 2006
Autor Wiadomość
PoOm
Początkujący



Dołączył: 23 Maj 2006
Posty: 15
Przeczytał: 0 tematów

Ostrzeżeń: 2/3
Skąd: Thousand thousand miles away..

Temat postu:

Nie udostepnie całych kodów w necie dla szerokiej publicznosci.
Wiele osób pisze baze na zaliczenie a ja w mikołaja bawic sie nie bede.
Za duzo pracowałem nad programem (i dalej pracuje ) by komuś takie
programy udostępniać za friko.

Bo choć pascal to przezytek to czesto uzywany jest na uczelniach.

Za to moge obiecac ze udostepnie finalna versje programu. Oraz cześci
kodu. (juz nawet zaczolem umieszczając unit myszy)

Btw...za co mam 2 ostrzezenia?


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  
Napisz nowy temat  Odpowiedz do tematu Idź do strony 1, 2  Następny

 
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


      Do góry  

Strona 1 z 2
Idź do strony 1, 2  Następny
Skocz do:  
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
Avalanche style by What Is Real © 2004
             
Regulamin