Program Pascal, baza danych, rezerwacja.

0

Witam serdecznie,
Mam problem, którego rozwiązanie jest pilne niczym sprawa Państwowa- dla mnie rzecz jasna :D
Muszę zrobić program (na jutro!) walczę z nim od dłuższego czasu, chciałem się sam uporać, ale już popadam w desperację bo nie dam rady a muszę to mieć na jutro.
Chodzi o to że program ma działać jak wypożyczalnia. Jest baza (plik tekstowy) z samochodami oraz plik z klientami. Teraz trzeba zrobić rezerwację danego auta do danego klienta. Myślałem zrobić to na podstawie "dostępności" w postaci okienek ale za grosz mi to nie wychodzi.
Głupio mi prosić, ale gdyby ktoś mógłby podesłać mi procedurę jak to zrobić będę cholernie wdzięczny. (wazy to na moje zaliczenie;/)
zamieszczę poniżej kod:

program project1;
uses crt;
 
const maxk=15;
const maxaut=10;
type
  auto = record
    marka:string;
    model:string;
    przebieg:integer;
    rocznik:integer;
  end;
type
  klient = record
    imie:string;
    nazw:string;
  end;
 
 
var
  tauto:array[0..maxaut-1] of auto;
  kli:array[0..maxk-1] of klient;
  plik,plik1:text;
  nrauta,nrkli:integer;
  odp1,odp2:char;
 
// ------------------DODANIE AUTA DO BAZY----------------------//
procedure dodajauto;
begin
clrscr;
 
  repeat
  nrauta:=nrauta+1;
 
  write('Podaj marke samochodu: ');                  readln(tauto[nrauta].marka);
  write('Podaj model samochodu: ');                  readln(tauto[nrauta].model);
  write('Podaj rocznik samochodu: ');                readln(tauto[nrauta].rocznik);
  write('Podaj przebieg samochodu: ');               readln(tauto[nrauta].przebieg);
  writeln;
  write('Dopisujesz dalej? T/N: ');                  readln(odp1);
  writeln
  until (odp1='n') or (odp1='N')
 
end;
 
// ------------------DODANIE KLIENTA DO BAZY----------------------//
procedure dodajklienta;
begin
clrscr;
 
  repeat
  nrkli:=nrkli+1;
 
  write('Podaj imie: ');                  readln(kli[nrkli].imie);
  write('Podaj nazwisko: ');              readln(kli[nrkli].nazw);
  writeln;
  write('Dopisujesz dalej? T/N: ');       readln(odp2);
  writeln
  until (odp2='n') or (odp2='N')
 
end;
//----------------------ZAPIS ZMIAN WPROWADZONYCH DANYCH---------//
procedure zapiszzmiany;
var
  i,j,k:integer;
begin
clrscr;
  assign(plik,'C:\Users\Artur\Desktop\autka\AUTA_BAZA.txt');
  rewrite(plik);
  writeln(plik,nrauta);
 
  assign(plik1,'C:\Users\Artur\Desktop\autka\KLIENT_BAZA.txt');
  rewrite(plik1);
  writeln(plik1,nrkli);
 
  for i:=1 to nrauta do
  begin
      writeln(plik,tauto[i].marka);
      writeln(plik,tauto[i].model);
      writeln(plik,tauto[i].rocznik);
      writeln(plik,tauto[i].przebieg);
  end;
 
  for k:=1 to nrkli do
  begin
      writeln(plik1,kli[k].imie);
      writeln(plik1,kli[k].nazw);
  end;
  close(plik);
  close(plik1);
 
  for j:=1 to 4 do
  begin
      delay(250);
      write('. ');
  end;
  writeln;
  writeln('Zapisywanie przebieglo pomyslnie! Kliknij Klawisz by powrocic do menu...');
  readkey;
end;
 
//---------------------ODCZYT I WYSWIETLENIE PLIKOW W BAZIE-------//
 
procedure odczytajplik;
var i,k:integer;
begin
  assign(plik,'C:\Users\Artur\Desktop\autka\AUTA_BAZA.txt');
  reset(plik);
  readln(plik,nrauta);
 
  assign(plik1,'C:\Users\Artur\Desktop\autka\KLIENT_BAZA.txt');
  reset(plik1);
  readln(plik1,nrkli);
 
  for i:=1 to nrauta do
  begin
      readln(plik,tauto[i].marka);
      readln(plik,tauto[i].model);
      readln(plik,tauto[i].rocznik);
      readln(plik,tauto[i].przebieg);
  end;
 
  for k:=1 to nrkli do
  begin
      readln(plik1,kli[k].imie);
      readln(plik1,kli[k].nazw);
  end;
  close(plik);
  close(plik1);
end;
 
procedure listaaut;
var i:integer;
begin
clrscr;
odczytajplik;
  if nrauta=0 then
    writeln('Obecnie nie ma dostepnych aut')
  else
    for i:=1 to nrauta do
    begin
      writeln('Auto nr. ',i,':');
      writeln('Marka:    ',tauto[i].marka);
      writeln('Model:    ',tauto[i].model);
      writeln('Rocznik:  ',tauto[i].rocznik,'r.');
      writeln('Przebieg: ',tauto[i].przebieg,'km');
      writeln;
    end;
  writeln('Kliknij klawisz by powrocic...');
  readkey;
end;
 
procedure listaklientow;
var k:integer;
begin
clrscr;
odczytajplik;
  if nrkli=0 then
    writeln('Obecnie nie ma klientow')
  else
    for k:=1 to nrkli do
    begin
      writeln('Klient nr. ',k,':');
      writeln('Imie:     ',kli[k].imie);
      writeln('Naziwsko: ',kli[k].nazw);
      writeln;
    end;
  writeln('Kliknij klawisz by powrocic...');
  readkey;
end;
 
//---------------------------------PROGRAM GLOWNY---------------------//
var odpmenu:char;
begin
 
  repeat
  clrscr;
  writeln('---------------WYPOZYCZALNIA SAMOCHODOW--------------');
 
    writeln('1. Dodaj Samochod');
    writeln('2. Dodaj klienta');
    writeln('3. Lista Aut');
    writeln('4. Lista klientow');
    writeln('5. Zapisz zmiany');
    writeln('0. Wyjscie');
    readln(odpmenu);
    if odpmenu='1' then dodajauto;
    if odpmenu='2' then dodajklienta;
    if odpmenu='3' then listaaut;
    if odpmenu='4' then listaklientow;
    if odpmenu='5' then zapiszzmiany;
    if odpmenu='0' then halt;
  until keypressed;
 
end.

Mam nadzieję że ktoś pomoże :)

dodanie znacznika <code class="pascal"> - fp

0

Głupio mi prosić, ale gdyby ktoś mógłby podesłać mi procedurę jak to zrobić będę cholernie wdzięczny. (wazy to na moje zaliczenie;/)

Racja, to Twoje zaliczenie więc program masz napisać Ty, a nie My - nie ma tak łatwo;

Chodzi o to że program ma działać jak wypożyczalnia. Jest baza (plik tekstowy) z samochodami oraz plik z klientami. Teraz trzeba zrobić rezerwację danego auta do danego klienta.

Dorób sobie do tego rekordu:

type
   auto = record
     marka:string;
     model:string;
     przebieg:integer;
     rocznik:integer;
   end;

pole typu Boolean - jeśli wypożyczone to wpisz True, a jeśli nie to False; Do tego napisz sobie procedurę Rezerwowanie i w niej ustalaj wartość dla tego pola (w macierzy z listą aut); Resztę odpowiednio przystosuj pod nowe pole i gotowe;

EDIT: Albo zamiast wartości logicznej podaj tam ID klienta - będzie łatwiej sprawdzić kto pożyczył samochód;

0

Dziękować, będę próbował... :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1