Friday, 26.04.2024, 12:22 PM
Welcome Guest | RSS
Main | News | Sign Up | Login
Search
Menu
4e
Main » 2012 » June » 11 » Borna
10:49 PM
Borna
program Racunanje_cijene_plina;
uses crt,graph;
type pokazivac=^struktura;
     struktura=record
 ime:string[30];
 mjesto:string[20];
 ulica:string[50];
 postanski_broj:integer;
 v:real;
 e:real;
 eo:real;
 cbruto:real;
 cneto:real;
 p:pokazivac;
     end;
var trenutni,pocetni,prethodni:pokazivac;
    i:integer;

{PROCEDURA ZA UNOS NOVOG ELEMENTA LISTE:}
procedure dodaj;
begin
  new(trenutni);
  clrscr();
  writeln('UNOS PODATAKA');
  writeln('======================');
  write('Ime i prezime korisnika  => ');
  readln(trenutni^.ime);
  write('Mjesto u kojem korisnik stanuje => ');
  readln(trenutni^.mjesto);
  write('Ulica u kojoj korisnik stanuje => ');
  readln(trenutni^.ulica);
  write('Broj na kojem korisnik stanuje => ');
  readln(trenutni^.postanski_broj);
  write('Unesite potrosenu kolicinu plina,kubikazu =>');
  readln(trenutni^.v);
  trenutni^.e:=trenutni^.v * (33.33835/3.6);
  trenutni^.eo:=trenutni^.e-trenutni^.v*9.2607;
  trenutni^.cbruto:=trenutni^.e*0.252357+trenutni^.eo*0.183571;
  trenutni^.cneto:=trenutni^.cbruto*1.25;
  trenutni^.p:=pocetni;
  pocetni:=trenutni;
end;

{PROCEDURA ZA BRISANJE KORISNIKA}
procedure obrisi;
var ime:string[30];
    nadjen:boolean;
begin
    clrscr();
    writeln ('Unesite korisnika kojeg zelite ukloniti => ');
    readln(ime);
    trenutni:=pocetni;
    prethodni:=nil;
    nadjen:=false;
    while (trenutni<>nil) and not nadjen do
    begin
    if ime<>trenutni^.ime then
    begin
    prethodni:=trenutni;
    trenutni:=trenutni^.p;
    end
    else nadjen:=true;
    end;
    if nadjen then
    begin
    if prethodni=nil then
    pocetni:=trenutni^.p;
    if (prethodni <> nil) and (trenutni<>nil) then
    prethodni^.p:=nil;
    dispose(trenutni);
    writeln('Obrisan je',ime);
    end
    else writeln('Nema tog korisnika!');
end;

{PROCEDURA ZA RAČUNANJE UKUPNU CIJENU PLINA}
procedure vrijednost;
var a,b,c,d:real;
begin
  trenutni:=pocetni;
  b:=0;
  a:=0;
  d:=0;
  c:=0;
  clrscr();
  writeln('UKUPNA VRIJEDNOS,KOLICINA,ENERGIJA,CIJENA');
  writeln('=======================');
  while trenutni<>NIL do
  begin
     a:=a+trenutni^.v;
     b:=b+trenutni^.e;
     c:=c+trenutni^.cbruto;
     d:=d+trenutni^.cneto;
     trenutni:=trenutni^.p;
  end;
  writeln('=======================');
  writeln('Potrosen plin=>',a:4:2,'metara kubicnih');
  writeln('Potrosena energija=>',b:4:2,'MJ');
  writeln('Cijena bez poreza=>',c:4:2,'kn');
  writeln('Cijena s porezom=>',d:4:2,'kn');
  writeln;
  readln;
end;


{PROCEDURA ZA RAČUNANJE UKUPNU CIJENE PLINA U JEDNOJ ULICI}
procedure ulica;
var a,b,c,d:real;
    s,k:string;
begin
  trenutni:=pocetni;
  clrscr();
  b:=0;
  a:=0;
  d:=0;
  c:=0;
  writeln('Unesite ime grada u kojem korisnici se nalaze');
  readln(k);
  writeln('Unesite ime ulice u kojoj korisnici se nalaze');
  readln(s);
  writeln('UKUPNA VRIJEDNOST,KOLICINA,ENERGIJA,CIJENA ULICE');
  writeln('=======================');
  while trenutni<>NIL do
  begin
  if (k=trenutni^.mjesto) and (s=trenutni^.ulica)  then
  begin
     a:=a+trenutni^.v;
     b:=b+trenutni^.e;
     c:=c+trenutni^.cbruto;
     d:=d+trenutni^.cneto;
  end
  else writeln('Ulica nije nadjena');
     trenutni:=trenutni^.p;
  end;
  writeln('=======================');
  writeln('Potrosen plin=>',a:4:2,'metara kubicnih');
  writeln('Potrosena energija=>',b:4:2,'MJ');
  writeln('Cijena bez poreza=>',c:4:2,'kn');
  writeln('Cijena s porezom=>',d:4:2,'kn');
  writeln;
  readln;
end;


{PROCEDURA ZA RAČUNANJE CIJENE PLINA ZA JEDNOG KORISNIKA}
procedure korisnik;
var a,b,c,d:real;
    s:string;
begin
  trenutni:=pocetni;
  clrscr();
  a:=0;
  b:=0;
  d:=0;
  c:=0;
  writeln('Unesite korisnika o kojem zelite saznati podatke');
  readln(s);
  writeln('UKUPNA VRIJEDNOST,KOLICINA,ENERGIJA,CIJENA ULICE');
  writeln('=======================');
  while trenutni<>NIL do
  begin
  if s=trenutni^.ime then
  begin
     a:=a+trenutni^.v;
     b:=b+trenutni^.e;
     c:=c+trenutni^.cbruto;
     d:=d+trenutni^.cneto;
  end
  else writeln('Korisnik nije nadjen');
     trenutni:=trenutni^.p;
  end;
  writeln('=======================');
  writeln('Potrosen plin=>',a:4:2,'metara kubicnih');
  writeln('Potrosena energija=>',b:4:2,'MJ');
  writeln('Cijena bez poreza=>',c:4:2,'kn');
  writeln('Cijena s porezom=>',d:4:2,'kn');
  readln;
end;

{PROCEDURA ZA RAČUNANJE UKUPNU CIJENU PLINA U JEDNOM MJESTU}
procedure grad;
var a,b,c,d:real;
    s:string;
begin
  trenutni:=pocetni;
  clrscr();
  a:=0;
  b:=0;
  c:=0;
  d:=0;
  writeln('Unesite ime mjesta koje zelite analizirati');
  readln(s);
  writeln('UKUPNA VRIJEDNOST,KOLICINA,ENERGIJA,CIJENA MJESTA');
  writeln('=================================================');
  while trenutni<>NIL do
  begin
  if s=trenutni^.mjesto then
  begin
     a:=a+trenutni^.v;
     b:=b+trenutni^.e;
     c:=c+trenutni^.cbruto;
     d:=d+trenutni^.cneto;
  end
  else writeln('Mjesto nije nadjeno');
     trenutni:=trenutni^.p;
  end;
  writeln('=================================================');
  writeln('Potrosen plin=>',a:4:2,'metara kubicnih');
  writeln('Potrosena energija=>',b:4:2,'MJ');
  writeln('Cijena bez poreza=>',c:4:2,'kn');
  writeln('Cijena s porezom=>',d:4:2,'kn');
  writeln;
  readln;
end;

{PROCEDURA ZA UNOS PODATAKA U TEKSTUALNU DATOTEKU}
procedure tekst;
var f:text;
begin
  trenutni:=pocetni;
  clrscr();
  assign(f,'plin.txt');
  rewrite(f);
  while trenutni<>NIL do
  begin
     writeln(f,trenutni^.ime:30,trenutni^.mjesto:20,trenutni^.ulica:50,trenutni^.postanski_broj,trenutni^.e:2:4,trenutni^.cbruto:2:4,trenutni^.cneto);
     trenutni:=trenutni^.p;
     write('#');
  end;
  writeln;
  close(f);
  readln;
end;

{PROCEDURA ZA USPOREDBU BAR GRAFOM KOLICINE PLINA}
procedure koordinatni;
var gd,gm:smallint;
    x,y,n,i:integer;
    k:array[1..1000] of string[30];
    l:array[1..1000] of integer;
begin
detectgraph(gd,gm);
initgraph(gd,gm,'');
clrscr();
x:=0;
y:=getmaxy div 2;
writeln('Ucitajte zeljeni broj ljudi koje zelite graficki usporediti');
readln(n);
for i:=1 to n do
begin
writeln('Unesite ime osobe koju zelite usporediti');
readln(k[i]);
end;
while trenutni<>NIL do
begin
if k[i]=trenutni^.ime then
for i:=1 to n do
begin
l[i]:=round(trenutni^.v);
end;
trenutni:=trenutni^.p;
end;
for i:=1 to n do
begin
setfillstyle(1,3);
bar(x,y,x+10,y-l[i]);
outtextxy(x,y+10,k[i]);
x:=x+100;
end;
readln;
closegraph;
end;

{PROCEDURA ZA USPOREDBU CHUCKOVIM GRAFOM KOLICINE PLINA}
procedure maxminusp;
var gd,gm:smallint;
    x,y,z,e:integer;
    s,f:string[20];
begin
detectgraph(gd,gm);
initgraph(gd,gm,'');
x:=10;
y:=10;
z:=0;
e:=maxint;
while trenutni<>NIL do
  begin
     i:=round(trenutni^.v);
     if  i>z  then
     begin
     s:=trenutni^.ime;
     z:=i;
     end;
     if i<e then
     begin
     f:=trenutni^.ime;
     e:=i;
     end;
     trenutni:=trenutni^.p;
  end;
  setcolor(4);
  circle(getmaxx div 2, getmaxy div 2, z);
  outtextxy(x,y,s);
  setcolor(3);
  circle(getmaxx div 2, getmaxy div 2, e);
  outtextxy(x,y+10,f);
readln;
closegraph;
end;

procedure ekstremkubikaza;
var a,u:integer;
    b,c:string[20];
begin
trenutni:=pocetni;
a:=0;
clrscr();
while trenutni<>NIL do
begin
b:=trenutni^.ime;
u:=round(trenutni^.v);
if u>a then
begin
     c:=b;
     a:=u;
end;
trenutni:=trenutni^.p;
end;
writeln('Najvise je potrosio:',c,' ',a,' kubika');
readln;
end;


procedure minimum;
var a,u:integer;
    b,c:string[20];
begin
trenutni:=pocetni;
a:=maxint;
clrscr();
while trenutni<>NIL do
begin
b:=trenutni^.ime;
u:=round(trenutni^.v);
if u<a then
begin
     c:=b;
     a:=u;
end;
trenutni:=trenutni^.p;
end;
writeln('Najmanje je potrosio:',c,' ',a,' kubika');
readln;
end;

procedure ispis;
begin
  trenutni:=pocetni;
  clrscr();
  writeln('ISPIS');
  writeln('=======================');
  while trenutni<>NIL do
  begin
  writeln('IME-',trenutni^.ime);
  writeln('ADRESA-',trenutni^.mjesto,' ',trenutni^.ulica,' ',trenutni^.postanski_broj);
  writeln('POTROSNJA-',trenutni^.v:4:2,'metara kubicnih');
  writeln('CIJENA NETO-',trenutni^.cneto:4:2,'kn');
  writeln('CIJENA BRUTO-',trenutni^.cbruto:4:2,'kn');
  writeln('=======================');
  trenutni:=trenutni^.p;
  end;
  writeln;
  readln;
end;
begin
    pocetni:=NIL;
    repeat
    clrscr();
    writeln('PROGRAM ZA RACUNANJE POTROSENOG PLINA');
    writeln('==================================================================');
    writeln('1. Dodaj podatke o korisniku');
    writeln('2. Obrisi zeljenog korisnika');
    writeln('3. Ispisi ukupnu vrijednost potrosenog plina plina,kolicinu i energiju');
    writeln('4. Pronadite zeljenog korisnika');
    writeln('5. Ispisi vrijednost potrosenog plina plina,kolicinu i energiju jedne ulice');
    writeln('6. Ispisi vrijednost potrosenog plina plina,kolicinu i energiju jednog mjesta');
    writeln('7. Upis u datoteku s nazivom plin');
    writeln('8. Usporedi zeljeni broj korisnika bar grafom po kolicini potrosenog plina');
    writeln('9. Usporedi maxpotrosaca i minpotrosaca plina');
    writeln('10. Nadi osobu koja najvise trosi plin');
    writeln('11. Nadi osobu koja najmanje trosi plin');
    writeln('12. Ispisi ljude koji su uneseni');
    writeln('0. Kraj');
    write('Tvoj izbor => ');
    readln(i);
    case i of
 1: dodaj;
 2: obrisi;
 3: vrijednost;
 4: korisnik;
 5: ulica;
 6: grad;
 7: tekst;
 8: koordinatni;
 9: maxminusp;
 10:ekstremkubikaza;
 11:minimum;
 12:ispis;
    end;
    until i=0;
end.
Views: 749 | Added by: vajmar1 | Rating: 0.0/0
Create a free website with uCoz