pjobro

bank and

Apr 8th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.34 KB | None | 0 0
  1. /*  PRIMJER MODELIRANJA.....
  2.     Naslov - sto je cilj?
  3.         Dostava cigareta na kucnu adresu
  4.     Lik - tko zeli postici cilj?
  5.         Aplikacija/sustav
  6.     Scenarij - kako se postize cilj?
  7.        ** Korisnik ima izbornik sa cigaretama na mobilnoj aplikaciji i ubacuje artikle u kosaricu. Potvrduje narudbu i korisnika se
  8.         traze podaci osobne (ime, prezime, godina rodenja - 18 god minimalno), nakon provjere provjerava se uplata karticom i dostavljac
  9.         dostavlja artikl na unesenu adresu.
  10.  
  11.        * KORISNIK-PODACI, IZBORNIK, CIGARETE, KOSARICA, NARUDBA, PROVJERA_PODATAKA, KARTICA/RACUN, DOSTAVLJAC
  12.  
  13.         1.Sucelje za prikaz artikla na aplikaciji
  14.         2.Omoguciti sortiranje cijenom uzl/sil
  15.         3.Pretrazivanje unesenog imena cigareta
  16.         4.Unos podataka i spremanje u bazu, slanje na provjeru
  17.         5.Provjera podataka (-18)
  18.         6.Unos kartice ili placanje pouzecem
  19.             6.1. Kartica-provjera uplate
  20.             6.2. Pouzecem, nastavlja se dalje
  21.         7.Slanje podataka o narudbi dostavljacu
  22.         8.Smanjenje zaliha za narucene artikle
  23.         9.Slanje podataka o narudbi kupcu na e-mail
  24.  
  25.     Dodaci - sto ako nesto zapne
  26.         1.U slucaju da je korisnik maloljetan, ispisuje se upozorenje o prodaji duhanskih proizvoda mladim od 18 godina.
  27.         2.U slucaju da nema trazenih cigareta, preporuka naslicnijih
  28.         3.Uplata nije prosla, ponudi se da pokusa ponovo
  29.  
  30.  ---------------------------------------------------------------------------------------------------------------------------------------------------------
  31.         bankomat i mora imati, sustav prijave, s korisnickim imenom i sifrom
  32.         kad se prijavi, mora imati u izborniku dvije opceije pregled stanja, i podizanje novca, nek se stanje racuna biljezi u vanjskoj datoteci
  33.  
  34.                 varijable u fstremu, kor ime i sifru i racun broj i stanje
  35.         Naslov
  36.             Sustav bankomata
  37.         Cilj
  38.             Podizanje gotovine, pregled stanja
  39.         Scenarij
  40.             Korisnik unosi broj racuna(karticu) i unosi PIN. Ako je PIN ispravan, nudi se mogucnost:
  41.                 1. Unosenja kolicine novca za podignuti sa bankomata, provjerava se stanje racuna iz baze i ako je kolicina zatrazenog novca manja ili jednaka od stanja racuna,
  42.                     omogucuje se isplata, u suprotnom se trazi novi unos. Nakon podizanja gotovine, novo stanje se ispisuje u bazu
  43.                 2. Pregleda stanja novca - iz baze se dohvacaju podaci o stanju, imenu, prezimenu i ispisuju na ekran.
  44.  
  45.         Dodaci
  46.             U slucaju greske kod pina, trazi se ponovni unos, ako opet zapne trazi se unos, i ako po treci put pogrijesi, racun se brise
  47.  
  48.  
  49.         Klase: KORISNIK      RACUN       BAZA    ISPLATA     ISPIS
  50.  
  51.  
  52. */
  53.  
  54.  
  55.  
  56.  
  57.  
  58. #include <iostream>
  59. #include <fstream>
  60. #include <vector>
  61. #include <cstdlib>
  62. #include <iomanip>
  63. using namespace std;
  64.  
  65. class Racun{
  66.     int PIN;
  67.     int broj_racuna;
  68.     int stanje;
  69. public:
  70.     void set_pin(int tmp);
  71.     void set_broj_racuna(int tmp);
  72.     int get_pin();
  73.     int get_broj_racuna();
  74.     void set_stanje(int tmp);
  75.     int get_stanje();
  76. };
  77.  
  78. class Korisnik{
  79.     string ime,prezime;
  80.     Racun r1;
  81. public:
  82.     void set_ime(string tmp);
  83.     string get_ime();
  84.     void set_prezime(string tmp);
  85.     string get_prezime();
  86.     void set_racun(int pin, int broj_racuna,int stanje);
  87.     void set_racun(int stanje){
  88.         r1.set_stanje(stanje);
  89.     };
  90.     int get_racun_pin();
  91.     int get_racun_broj_racuna();
  92.     int get_racun_stanje();
  93. };
  94.  
  95.  
  96. void izbornik(vector<Korisnik>vektor,int trenutni_kor){
  97.     int izbor,pare_za_van,izbor_ponovo;
  98.  
  99.     cout<<"\t1. Podizanje gotovine\n\t2. Pregled stanja"<<endl;
  100.  
  101.  
  102.     cin>>izbor;
  103.     switch(izbor){
  104.     case 1:
  105.         cout<<"Vase trenutno stanje iznosi: "<<vektor[trenutni_kor].get_racun_stanje()<<endl;
  106.         cout<<"Koliko gotovine zelite podici?"<<endl;
  107.         cin>>pare_za_van;
  108.         if(pare_za_van<=vektor[trenutni_kor].get_racun_stanje()){
  109.             int novo_stanje=vektor[trenutni_kor].get_racun_stanje() - pare_za_van;
  110.             vektor[trenutni_kor].set_racun( novo_stanje );
  111.             cout<<"Novo stanje racuna iznosi: "<<vektor[trenutni_kor].get_racun_stanje()<<endl;
  112.  
  113.         }
  114.         break;
  115.     case 2:
  116.         cout<<"___________________________"<<endl;
  117.         cout<<"| Podaci o korisniku      |"<<endl;
  118.         cout<<"| Ime:         "<<setw(10)<<vektor[trenutni_kor].get_ime()<<" |"<<endl;
  119.         cout<<"| Prezime:     "<<setw(10)<<vektor[trenutni_kor].get_prezime()<<" |"<<endl;
  120.         cout<<"| Broj racuna: "<<setw(10)<<vektor[trenutni_kor].get_racun_broj_racuna()<<" |"<<endl;
  121.         cout<<"| Stanje:      "<<setw(10)<<vektor[trenutni_kor].get_racun_stanje()<<" |"<<endl;
  122.         cout<<"___________________________"<<endl;
  123.     }
  124.  
  125.     ofstream fout("baza.txt");
  126.         for(int i=0;i<vektor.size()-1;i++){
  127.             fout<<vektor[i].get_ime()<<" ";
  128.             fout<<vektor[i].get_prezime()<<" ";
  129.             fout<<vektor[i].get_racun_pin()<<" ";
  130.             fout<<vektor[i].get_racun_broj_racuna()<<" ";
  131.             fout<<vektor[i].get_racun_stanje()<<" ";
  132.             fout<<endl;
  133.         }
  134.     fout.close();
  135.  
  136. }
  137.  
  138.  
  139.  
  140. int main()
  141. {
  142.     vector<Korisnik>vektor;
  143.     int tmp,tmp2,tmp3;
  144.     string stmp,stmp2;
  145.     Korisnik objekt;
  146.     ifstream fin("baza.txt");
  147.         while(fin){
  148.  
  149.             fin>>stmp;
  150.             objekt.set_ime(stmp);
  151.             fin>>stmp2;
  152.             objekt.set_prezime(stmp2);
  153.             fin>>tmp>>tmp2>>tmp3;
  154.             objekt.set_racun(tmp,tmp2,tmp3);
  155.             vektor.push_back(objekt);
  156.         }
  157.     // provjera //cout<<vektor[0].get_ime()<<vektor[0].get_prezime()<<endl<<vektor[0].get_racun_pin()<<endl;
  158.     fin.close();
  159.  
  160.  
  161.  
  162.  
  163.     cout<<"Dobrodosli u bankomat v1.beta"<<endl;
  164.  
  165.     cout<<"Unesite vase ime, broj racuna i PIN "<<endl;
  166.  
  167.     string tmp_ime;
  168.     int tmp_PIN,tmp_broj_racuna;
  169.  
  170.     cin>>tmp_ime;
  171.     cin>>tmp_broj_racuna;
  172.     cin>>tmp_PIN;
  173.  
  174.     if( tmp_ime==vektor[tmp_broj_racuna].get_ime()&&tmp_PIN==vektor[tmp_broj_racuna].get_racun_pin()){
  175.         cout<<"Unijeli ste tocne podatke, izvolite u izbornik"<<endl;
  176.         system("pause");
  177.         system("cls");
  178.  
  179.         izbornik(vektor,tmp_broj_racuna);
  180.  
  181.     } else{
  182.         cout<<"Nazalost unijeli ste krive podatke, nemogu pristupiti racunu, izlazim iz programa(izbacujem karticu)"<<endl;
  183.         return 0;
  184.  
  185.     }
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.     return 0;
  193. }
  194.  
  195. void Racun::set_pin(int tmp){
  196.     PIN=tmp;
  197. };
  198. void Racun:: set_broj_racuna(int tmp){
  199.     broj_racuna=tmp;
  200. };
  201. int Racun::get_pin(){
  202.     return PIN;
  203. };
  204. int Racun::get_broj_racuna(){
  205.     return broj_racuna;
  206. };
  207. void Racun::set_stanje(int tmp){
  208.     stanje=tmp;
  209. };
  210. int Racun::get_stanje(){
  211.     return stanje;
  212. };
  213.  
  214.  
  215.  
  216. void Korisnik::set_ime(string tmp){
  217.     ime=tmp;
  218. };
  219. string Korisnik::get_ime(){
  220.     return ime;
  221. };
  222. void Korisnik::set_prezime(string tmp){
  223.     prezime=tmp;
  224. };
  225. string Korisnik::get_prezime(){
  226.     return prezime;
  227. };
  228. void Korisnik::set_racun(int pin, int broj_racuna,int stanje){
  229.     r1.set_broj_racuna(broj_racuna);
  230.     r1.set_pin(pin);
  231.     r1.set_stanje(stanje);
  232. };
  233. int Korisnik::get_racun_pin(){
  234.     return r1.get_pin();
  235. };
  236. int Korisnik::get_racun_broj_racuna(){
  237.     return r1.get_broj_racuna();
  238. };
  239. int Korisnik::get_racun_stanje(){
  240.     return r1.get_stanje();
  241. };
Add Comment
Please, Sign In to add comment