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

[Zadatak] Strukture: pacijent, osiguranje, uplata, isplata, ...

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Strukture: pacijent, osiguranje, uplata, isplata, ...

[ Pregleda: 2849 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MentalConfusion
Mutvak

Član broj: 130735
Poruke: 4
*.dlp164.bih.net.ba.



Profil

icon [Zadatak] Strukture: pacijent, osiguranje, uplata, isplata, ...13.02.2007. u 12:05 - pre 209 meseci
Tekst zadatka sa zadnjeg ispitnog roka.... Imam problema sa dovršavanjem u mainu, nikako da skontam pristupanje funkcijama,a posebno ovoj preko strukture



-------------------------------


Code:

#include <iostream.h>
#include <fstream.h>
#include<string.h>
struct Osiguranje
{
     char brojOsiguranja [12];
     float stanjeRacuna;
     void Uplata(float iznos);
     void Isplata(float iznos);
};

struct Pacijent
{
     char * ImePrezime;
     char JMBG[14];
     Osiguranje osiguranje;
};

void Osiguranje::Isplata (float iznos)
{
     cout <<"-------isplata--------"<< endl;
     cout <<"Koliko novca zelite isplatiti?"<< endl;
     float n;
     cin >> n;
     if (n>iznos)
     {
          cout <<"Iznos je prevelik, nemate toliko na racunu"<< endl;
     }
     else
     {
          if (n<0)
          {
                cout <<"Iznos je negativan, ali cemo vam ipak uzeti pare"<< endl;
                iznos = iznos + n;
          }
          else
          {
                iznos = iznos - n;
          }
     cout <<"Novo stanje na vasem racunu je "<< iznos << " KM"<< endl;
     }

}

void Osiguranje::Uplata (float iznos)
{
     cout <<"------uplata-------"<< endl;
     cout <<"Koliko novca zelite uplatiti?"<< endl;
     float n;
     cin >> n;
     if (n<=0)
     {
          cout <<"Iznos koji zelite uplatiti je ravan nuli ili manji od nule"<< endl;
     }
     else
     {
          iznos = iznos + n;
          cout <<"Novo stanje na vasem racunu je " << iznos << " KM"<< endl;
     }
}

Pacijent * DodajPacijenta()
{
     Pacijent * n = new Pacijent;
     n[0].ImePrezime = new char [20];
     cout <<"Unesite ime i prezime"<< endl;
     cin.ignore();
     cin.getline(n[0].ImePrezime,19);
     cout <<"Unesite maticni broj"<< endl;
     cin.getline(n[0].JMBG,13);
     cout <<"Da li je bolesnik prije bolovao (0=NE, sve ostalo=DA)"<< endl;
     cin >> n[0].RanijeBolovao;
     cout <<"Ulaz u podatke o osiguranju..."<< endl;
     cout <<"Unesite broj osiguranja"<< endl;
     cin.getline(n[0].osiguranje.brojOsiguranja,11);
     cout <<"Pocetno stanje racuna je 0 KM"<< endl;
     n[0].osiguranje.stanjeRacuna = 0;

     return n;
}

void PrikaziInfo (Pacijent * p)
{
     cout <<"Ispisujem sve podatke o pacijentu"<< endl;
     cout <<"Ime i prezime: "<< p[0].ImePrezime << endl;
     cout <<"JMBG: "<< p[0].JMBG << endl;
     cout <<"Bolovao: ";
     if (p[0].RanijeBolovao = false)
     cout <<" NE"<< endl;
     else
     cout <<" DA"<< endl;
     cout <<"Broj osiguranje: "<< p[0].osiguranje.brojOsiguranja << endl;
     cout <<"Stanje racuna: " << p[0].osiguranje.stanjeRacuna << " KM"<< endl;
}

Pacijent * Pretraga (Pacijent * niz[])
{
     cout <<"Pretraga"<< endl;
     char broj[14];
     cin.ignore();
     cout <<"Unesite JMBG";
     cin.getline(broj,13);
     cin.ignore();
     for (int i=0; i<=9; i++)
     {
          if(strcmp(niz[i]->JMBG,broj)==0)
          {
                cout<<niz[i]->JMBG<<endl;
                             return niz[i];
          }
                   else
                   return 0;

     }
}

void UpisiuFajl (ofstream & obj, Pacijent * p)
{
      obj.open ("c://mojFajl.txt");
     obj <<"Ime i Prezime: " << p[0].ImePrezime << endl;
     obj <<"JMBG: " << p[0].JMBG << endl;
     obj <<"Ranije bolovao: ";
     if (p[0].RanijeBolovao = false)
     obj <<" NE"<< endl;
     else
     obj <<" DA"<< endl;
     obj <<"Broj osiguranja: " << p[0].osiguranje.brojOsiguranja << endl;
     obj <<"Stanje racuna: " << p[0].osiguranje.stanjeRacuna << " KM " << endl;

     obj.close();
}

void KopirajFajl()
{
     char noviFajl[20]="c://mojFajl2.txt";
     char fajl[20]="c://mojFajl.txt";
     char znak;
     ifstream ispis;
     ofstream obj;
     ispis.open(fajl,ios::in);
     obj.open(noviFajl,ios::app);
     if(!ispis.fail()){
     if(!obj.fail()){
     while(ispis.get(znak)){
     obj<<znak;
     }
     cout<<"Sadrzaj fajla: "<<fajl;
     cout<<" uspjesno dodat fajlu: "<<noviFajl<<endl;
     }
     else
     cout<<"\nProblem pri otvaranju fajla u koji kopiramo\n";
     }
     cout<<"\nProbelm pri otvaranju fajla iz kojeg kopiramo\n";
     obj.close();
     ispis.close();

}

int main()
{
 Pacijent*x=new Pacijent[4];
 
 for(int i=0;i<4;i++)
  {
         
    DodajPacijenta();
    
  }
     ofstream obj("c://mojFajl.txt");
     upisiUfajl(obj,x);
     Pacijent*pok=&x[2];
     (*pok).osiguranje.uplata(150);
     (*pok).osiguranje.isplata(100);
    float iznos=(*pok).osiguranje.stanjeRacuna/1.1;
    x[3].osiguranje.uplata(iznos);
    (*pok).osiguranje.isplata(iznos);

    Pacijent*pok2;
    Pretraga(&pok2);
    prikaziInfo(pok2);
    kopiraj();
    return 0;
    
}


"Doradila" sam main, medjutim problem je kada pokrenem program dopusti mi unos ime/prezime, jmbg i onda je provrti par puta i stane....sta se desava?



[Ovu poruku je menjao MentalConfusion dana 14.02.2007. u 13:17 GMT+1]
quod me ordinit me destruit
 
Odgovor na temu

nticaric
Alan Ford
Zagreb

Član broj: 30608
Poruke: 13
*.mobile.carnet.hr.



Profil

icon Re: [Zadatak] Strukture: pacijent, osiguranje, uplata, isplata, ...21.02.2007. u 18:07 - pre 208 meseci
Mislim da bi ovo trebalo raditi!

Code:

#include <iostream>
#include <fstream>
#include<string.h>
using namespace std;

struct Osiguranje
{
     char brojOsiguranja [12];
     float stanjeRacuna;
     float Uplata(float iznos);
     float Isplata(float iznos);
};

struct Pacijent
{
     char * ImePrezime;
     char JMBG[14];
     int RanijeBolovao;
     Osiguranje osiguranje;
};

float Osiguranje::Isplata (float iznos)
{
     cout <<"-------isplata--------"<< endl;
     cout <<"Koliko novca zelite isplatiti?"<< endl;
     float n;
     cin >> n;
     if (n>iznos)
     {
          cout <<"Iznos je prevelik, nemate toliko na racunu"<< endl;
     }
     else
     {
          if (n<0)
          {
                cout <<"Iznos je negativan, ali cemo vam ipak uzeti pare"<< endl;
                iznos += n;
          }
          else
          {
                iznos -= n;
          }
     cout <<"Novo stanje na vasem racunu je "<< iznos << " KM"<< endl;
     return iznos;
     }

}

float Osiguranje::Uplata (float iznos)
{    
     cout <<"------uplata-------"<< endl;
     cout <<"Koliko novca zelite uplatiti?"<< endl;
     float n;
     cin >> n;
     if (n<=0)
     {
          cout <<"Iznos koji zelite uplatiti je ravan nuli ili manji od nule"<< endl;
     }
     else
     {
          iznos += n;
          cout <<"Novo stanje na vasem racunu je " << iznos << " KM"<< endl;
     }
     return iznos;
}

Pacijent * DodajPacijenta()
{
     Pacijent * n = new Pacijent;
     n[0].ImePrezime = new char [20];
     cout <<"Unesite ime i prezime"<< endl;
     cin.getline(n[0].ImePrezime,19);
     cout <<"Unesite maticni broj"<< endl;
     cin.getline(n[0].JMBG,14);
     cout <<"Da li je bolesnik prije bolovao (0=NE, 1=DA)"<<endl;
     cin>>n[0].RanijeBolovao;
     cin.ignore();
     cout <<"Ulaz u podatke o osiguranju..."<< endl;
     cout <<"Unesite broj osiguranja"<< endl;
     cin.getline(n[0].osiguranje.brojOsiguranja,12);
     cout <<"Pocetno stanje racuna je 0 KM"<< endl;
     n[0].osiguranje.stanjeRacuna = 0;
     cout<<"Stanje racuna je "<<n[0].osiguranje.stanjeRacuna<<endl;
     n[0].osiguranje.stanjeRacuna =  n[0].osiguranje.Uplata(n[0].osiguranje.stanjeRacuna);
     n[0].osiguranje.stanjeRacuna = n[0].osiguranje.Isplata(n[0].osiguranje.stanjeRacuna);
     return n;
}

void PrikaziInfo (Pacijent * p)
{
     cout <<"Ispisujem sve podatke o pacijentu"<< endl;
     cout <<"Ime i prezime: "<< p[0].ImePrezime << endl;
     cout <<"JMBG: "<< p[0].JMBG << endl;
     cout <<"Bolovao: ";
     if (p[0].RanijeBolovao == 0)
     cout <<" NE"<< endl;
     else
     cout <<" DA"<< endl;
     cout <<"Broj osiguranje: "<< p[0].osiguranje.brojOsiguranja << endl;
     cout <<"Stanje racuna: " << p[0].osiguranje.stanjeRacuna << " KM"<< endl;
}

Pacijent * Pretraga (Pacijent * niz)
{
     cin.ignore();
     cout <<"Pretraga"<< endl;
     char broj[14];
     cout <<"Unesite JMBG ";
     cin.getline(broj,14);

     if(strcmp(niz[0].JMBG,broj)==0)
          {
                cout<<niz[0].JMBG<<endl;
                return niz;
          }
                 else
                 return 0;

     }

void UpisiuFajl (Pacijent * p)
{    
     ofstream obj("c://mojFajl.txt", ios::app);
     obj <<"Ime i Prezime  : " << p[0].ImePrezime << endl;
     obj <<"JMBG           : " << p[0].JMBG << endl;
     obj <<"Ranije bolovao : ";
     if (p[0].RanijeBolovao == false)
     obj <<"NE"<< endl;
     else
     obj <<"DA"<< endl;
     obj <<"Broj osiguranja: " << p[0].osiguranje.brojOsiguranja << endl;
     obj <<"Stanje racuna  : " << p[0].osiguranje.stanjeRacuna << " KM " << endl;
     obj <<"\n";
     obj.close();
}

void KopirajFajl()
{
     char noviFajl[20]="c://mojFajl2.txt";
     char fajl[20]="c://mojFajl.txt";
     char znak;
     ifstream ispis;
     ofstream obj;
     ispis.open(fajl,ios::in);
     obj.open(noviFajl,ios::app);
     if(!ispis.fail()){
     if(!obj.fail()){
     while(ispis.get(znak)){
     obj<<znak;
     }
     cout<<"Sadrzaj fajla: "<<fajl;
     cout<<" uspjesno dodat fajlu: "<<noviFajl<<endl;
     }
     else{
     cout<<"\nProblem pri otvaranju fajla u koji kopiramo\n";
     cout<<"\nProbelm pri otvaranju fajla iz kojeg kopiramo\n";
     }}
     
     obj.close();
     ispis.close();

}

int main()
{
 Pacijent *x =new Pacijent[2];
 
 for(int i=0;i<1;i++)
  {    
    x = DodajPacijenta();
    UpisiuFajl(x);
  }

    if(Pretraga(x)) PrikaziInfo(x);
    else cout<<"Nije pronaden niti jedan korisnik"<<endl;
    KopirajFajl();
    system("pause");
    return 0;
    
}




[Ovu poruku je menjao nticaric dana 21.02.2007. u 19:28 GMT+1]

[Ovu poruku je menjao nticaric dana 24.02.2007. u 00:38 GMT+1]
 
Odgovor na temu

MentalConfusion
Mutvak

Član broj: 130735
Poruke: 4
*.dlp265.bih.net.ba.



Profil

icon Re: [Zadatak] Strukture: pacijent, osiguranje, uplata, isplata, ...22.02.2007. u 15:00 - pre 208 meseci
meni opet rusi program nakon unosa jmbg-a ....i ne upisuje mi nista u kreirani fajl :(
quod me ordinit me destruit
 
Odgovor na temu

nticaric
Alan Ford
Zagreb

Član broj: 30608
Poruke: 13
*.mobile.carnet.hr.



Profil

icon Re: [Zadatak] Strukture: pacijent, osiguranje, uplata, isplata, ...23.02.2007. u 23:40 - pre 208 meseci
Probaj sada!! Malo sam izmjenio kod gore! Meni radi!
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Strukture: pacijent, osiguranje, uplata, isplata, ...

[ Pregleda: 2849 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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