Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Objektno programiranje-pomoc

[es] :: Pascal / Delphi / Kylix :: [Zadatak] Objektno programiranje-pomoc

[ Pregleda: 2437 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darkopsyho
Darko Blagojevic
student
Zrenjanin

Član broj: 224979
Poruke: 3
93.87.159.*



Profil

icon [Zadatak] Objektno programiranje-pomoc08.06.2009. u 20:49 - pre 181 meseci
Tehnikom objektnog programiranja napraviti telefonski imenik. Pretplatnici mogu biti:
PRIVATNA LICA
- naziv vlasnika (ime i prezime), adresa, broj telefona
PRAVNA LICA
- naziv vlasnika (naziv firme), adresa, broj telefona, broj ziro racuna
Treba realizovati sledeće:
1. Unos novih pretplatnika
2. Pregled svih PRIVATNIH lica čiji broj počinje sa zadatim brojem (tražiti da se unese početna cifra)
3. Izmena broja telefona sa proverom da li taj broj telefona ima neki drugi pretplatnik (takvu promenu broja onemogućiti)
4. Štampati sva PRAVNA lica.

u pitanju je objektno programiranje u Pascalu...
molim pomoc...
u sredu prepodne moram predati uradjen zadatak...
hvala unapred...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: [Zadatak] Objektno programiranje-pomoc08.06.2009. u 23:35 - pre 181 meseci
Ovde možeš dobiti pomoć da samostalno rešiš zadatak, dakle napiši svoje nedumice, kod koji si do sada uradio itd. Ako tražiš gotov zadatak onda postavi oglas u forumu IT Berza poslova ili ovde.
 
Odgovor na temu

darkopsyho
Darko Blagojevic
student
Zrenjanin

Član broj: 224979
Poruke: 3
93.87.159.*



Profil

icon Re: [Zadatak] Objektno programiranje-pomoc09.06.2009. u 10:11 - pre 181 meseci
ok..hvala..

evo koda koji sam uradio:

Code:

unit PRLica ;
interface
uses PLica ;

type
  S25 = string [25] ;

  OPRLica = object (OPLica)
      constructor Init ;
    destructor Done ;

    procedure SetBrojZiroRacuna (bzr : S25) ;
    function GetBrojZiroRacuna : S25 ;

    procedure Unos ; virtual ;
    procedure Prikaz ; virtual ;

  private
    brojZiroRacuna : S25 ;
  end ;

  POPRLica = ^OPRLica ;

implementation

constructor OPRLica.Init ;
begin
    inherited Init ;
  brojZiroRacuna := '' ;
end ;

destructor OPRLica.Done ;
begin
  brojZiroRacuna := '' ;
  inherited Done ;
end ;


procedure OPRLica.SetBrojZiroRacuna (bzr : S25) ;
begin
  brojZiroRacuna := bzr ;
end ;

function OPRLica.GetBrojZiroRacuna : S25 ;
begin
    GetBrojZiroRacuna := brojZiroRacuna ;
end ;


procedure OPRLica.Unos ;
begin
    inherited Unos ;
    write ('Broj ziro racuna pretplatnika:') ;
  readln (brojZiroRacuna) ;
end ;

procedure OPRLica.Prikaz ;
begin
    inherited Prikaz ;
    write ('   br.ziro.rac : ', brojZiroRacuna ) ;
end ;

end.


unit PLica ;
interface

type
    S30 = string [30] ;
  S40 = string [40] ;
  S10 = string [10] ;
  S20 = string [20] ;

  OPLica = object
      constructor Init ;
    destructor Done ;

    procedure SetNaziv (n : S30) ;
    function GetNaziv : S30 ;
    procedure SetAdresa (a : S40) ;
    function GetAdresa : S40 ;
    procedure SetBrojTelefona (bt : S10) ;
    function GetBrojTelefona : S10 ;

    procedure Unos ; virtual ;
    procedure Prikaz ; virtual ;

  private
      naziv : S30 ;
    adresa : S40 ;
    brojTelefona : S10 ;
  end ;

  POPLica = ^OPLica ;
implementation

constructor OPLica.Init ;
begin
    naziv := '' ;
  adresa := '' ;
  brojTelefona := '' ;
end ;

destructor OPLica.Done ;
begin
    naziv := '' ;
  adresa := '' ;
  brojTelefona := '' ;
end ;


procedure OPLica.SetNaziv (n : S30) ;
begin
    naziv := n ;
end ;

function OPLica.GetNaziv : S30 ;
begin
    GetNaziv := naziv ;
end ;

procedure OPLica.SetAdresa (a : S40) ;
begin
  adresa := a ;
end ;

function OPLica.GetAdresa : S40 ;
begin
    GetAdresa := adresa ;
end ;

procedure OPLica.SetBrojTelefona (bt : S10) ;
begin
  brojTelefona := bt ;
end ;

function OPLica.GetBrojTelefona : S10 ;
begin
    GetBrojTelefona := brojTelefona ;
end ;

procedure OPLica.Unos ;
begin
    write ('Ime - naziv pretplatnika:') ;
  readln (naziv) ;
    write ('Adresa pretplatnika:') ;
  readln (adresa) ;
    write ('Broj telefona pretplatnika:') ;
  readln (brojTelefona) ;
end ;

procedure OPLica.Prikaz ;
begin
    write ('Ime : ',naziv, '   adresa : ', adresa, '   br.tel : ', brojTelefona) ;
end ;

end.

Unit Pret ;
interface
uses crt, PLica, PRLica ;

type
    PTListaPretplatnika = ^TListaPretplatnika ;

    TListaPretplatnika = record
      pretplatnik : POPLica ;
    sledeci : PTListaPretplatnika ;
  end ;

  OPretplatnici = object
      constructor Init ;
    destructor Done ;
    procedure GlavniMeni ;
    procedure Unos ;
    procedure PregledPrivatnih ;
    procedure StampanjePravnih ;
    procedure Izmena ;

  private
      Lista : PTListaPretplatnika ;
  end ;

implementation

constructor OPretplatnici.Init ;
begin
    Lista := nil ;
end ;

destructor OPretplatnici.Done ;
var
    pom : PTListaPretplatnika ;
begin
    while Lista <> nil do
  begin
        pom := Lista^.sledeci ;
    Dispose (Lista^.pretplatnik, Done) ;
    Dispose (Lista) ;
    Lista := pom ;
  end ;
end ;

procedure OPretplatnici.GlavniMeni ;
var
    c : char ;
begin
    repeat
      clrscr ;
    writeln ('Glavni meni') ;
    writeln ;
    writeln ('1. Unos novog pretplatnika') ;
    writeln ('2. Prikaz pretplatnika (PRIVATNIH LICA) koji pocinju sa brojevima') ;
    writeln ('3. Izmena broja pretplatnika') ;
    writeln ('4. Stampanje svih pravnih lica') ;
    writeln ('0. Kraj ') ;
    writeln ;
        write ('Izbor: ') ;

    c := readkey ;
    writeln (c) ;

    case c of
        '1': Unos ;
      '2' : PregledPrivatnih ;
      '3' : Izmena ;
      '4' : StampanjePravnih ;
    end ;
  until c = '0' ;
end ;

procedure OPretplatnici.Unos ;
var
    c : char ;
  pom : PTListaPretplatnika ;

begin
    writeln ;
  repeat
      write ('1 - Privatno lice    2 - Pravno lice  : ') ;
    c := readkey ;
    writeln (c) ;
  until c in ['1', '2'] ;

  new (pom) ;
    pom^.sledeci := Lista ;
  Lista := pom ;

  case c of
      '1' : pom^.pretplatnik := New (POPLica, Init) ;
      '2' : pom^.pretplatnik := New (POPRLica, Init) ;
  end ;

  pom^.pretplatnik^.Unos ;

end ;

procedure OPretplatnici.PregledPrivatnih ;
var
    pom : PTListaPretplatnika ;
  c : char ;
  pc : string ;
    bt : S10 ;

begin
  writeln ;
  write ('Unesite pocetne cifre telefonskog broja: ') ;
  readln (pc) ;

  writeln ;

    pom := Lista ;
  while pom <> nil do
  begin
      if TypeOf (pom^.Pretplatnik^) = TypeOf (OPLica) then
    begin
        bt := POPLica (pom^.Pretplatnik)^.GetBrojTelefona ;
            if copy(bt,1,length(pc)) = pc then
      begin
            pom^.pretplatnik^.Prikaz ;
          writeln ;
        end ;
    end ;
    pom := pom^.sledeci ;
  end ;
  writeln ;
  write ('Pritisnite neki taster za nastavak ...') ;
    c := readkey ;
end ;

procedure OPretplatnici.Izmena ;
var
    pom : PTListaPretplatnika ;
            pom2 : PTListaPretplatnika ;
  c : char ;
  pc : string ;
    bt : S10 ;

begin
  writeln ;
  write ('Unesite telefonski broj: ') ;
  readln (pc) ;

  writeln ;

    pom := Lista ;
  while pom <> nil do
  begin
      if POPLica(pom^.Pretplatnik^)^.GetBrojTelefona = pc then
    begin
        bt := POPLica (pom^.Pretplatnik)^.GetBrojTelefona ;
            writeln(‘Unesite nov broj telefona:’);
            readln(bt);
            pom2 := Lista;
            while (pom2 <> nil) and 
                      (POPLica(pom^.Pretplatnik^)^.GetBrojTelefona <> bt) 
                      do pom2:=pom2^.sledeci;
           if pom2=nil then POPLica(pom^.Pretplatnik^)^.SetBrojTelefona(bt)
             else writeln(‘Vec postoji pretplatnik sa tim brojem’);
    end ;
    pom := pom^.sledeci ;
  end ;
  writeln ;
  write ('Pritisnite neki taster za nastavak ...') ;
    c := readkey ;
end ;

procedure OPretplatnici.StampanjePravnih ;
var
    pom : PTListaPretplatnika ;
  c : char ;

begin
  writeln ;


  writeln ;

    pom := Lista ;
  while pom <> nil do
  begin
    if TypeOf (pom^.Pretplatnik^) = TypeOf (OPRLica)
    begin
     pom^.pretplatnik^.Prikaz ;
          writeln ;
    end ;
    pom := pom^.sledeci ;
  end ;
  writeln ;
  write ('Pritisnite neki taster za nastavak ...') ;
    c := readkey ;
end ;


end .

Program Imenik ;
uses Pret ;

var
    P : OPretplatnici ;
begin
    P.Init ;
  P.GlavniMeni ;
  P.Done ;
end .


e sad...malo se bunim oko dela gde su uslovi....

[Ovu poruku je menjao savkic dana 09.06.2009. u 12:03 GMT+1]
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: [Zadatak] Objektno programiranje-pomoc09.06.2009. u 11:18 - pre 181 meseci
> e sad...malo se bunim oko dela gde su uslovi....

Ali šta konkretno, misliš li na proceduru GlavniMeni, tu mi sve deluje u redu, doduše nisam kompajlirao program.
 
Odgovor na temu

darkopsyho
Darko Blagojevic
student
Zrenjanin

Član broj: 224979
Poruke: 3
93.87.159.*



Profil

icon Re: [Zadatak] Objektno programiranje-pomoc09.06.2009. u 18:02 - pre 181 meseci
Pa..probao sam kompajlirati i nije uspevalo...
I tek nakog desetog proveravanja zadtaka otkrio sam problem....zaboravio sam jednu proceduru uvrstiti u glavni meni...
Nadam se da je sad sve ok...

Da da....glavni meni me je bunio...
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: [Zadatak] Objektno programiranje-pomoc

[ Pregleda: 2437 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.