Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef _MSC_VER
- #define _CRT_SECURE_NO_WARNINGS
- #endif
- #include <iostream>
- using namespace std;
- char crt[] = { "\n----------------------------------\n" };
- struct Rezervacija {
- char *_imePrezime;
- int _brojOsoba;
- double _uplata;
- //--------------------------
- void Unos(){
- cout << crt;
- char tempIme[30];
- cout << "Unesite ime osobe: ";
- cin.getline(tempIme, 30);
- _imePrezime = new char[strlen(tempIme) + 1];
- strcpy(_imePrezime, tempIme);
- cout << "Na koliko osoba glasi rezervacija: ";
- cin >> _brojOsoba;
- cin.ignore();
- cout << "Koliko novca je uplaceno: ";
- cin >> _uplata;
- cin.ignore();
- }
- void Ispis(){
- cout << crt << "Ime i prezime: " << _imePrezime << endl;
- cout << "Na koliko osoba vazi rezervacija: " << _brojOsoba << endl;
- // 50 km * broj osoba treba
- if ((50 * _brojOsoba) > _uplata)
- cout << "Uplaceno je: " << _uplata << " i jos se duguje: " << (_brojOsoba * 50) - _uplata << crt;
- else cout << "Uplaceno je: " << _uplata << " te se ne duguje nista. " << crt;
- }
- void UplataRezervacije(){
- double dodatno;
- cout << "Koliko zelite dodatno da uplatiti: ";
- cin >> dodatno;
- cin.ignore();
- _uplata += dodatno;
- double trebabitiuplaceno = _brojOsoba * 50;
- if (trebabitiuplaceno < _uplata)
- cout << "Uplacen je dovoljan iznos." << endl << "Osobi " << _imePrezime << " treba vratiti " << (_uplata - trebabitiuplaceno) << endl;
- }
- };
- struct Proslava{
- char * _naziv;
- Rezervacija * gosti[50];
- int _brojRezervacija;
- //---------------------------
- void Unos(){
- char temp[50];
- cout << "Unesite naziv proslave: ";
- cin.getline(temp, 50);
- _naziv = new char[strlen(temp) + 1];
- strcpy(_naziv, temp);
- _brojRezervacija = 0;
- }
- void Ispis(){
- cout << crt << "Naziv: " << _naziv << endl;
- for (int i = 0; i < _brojRezervacija; i++)
- gosti[i]->Ispis();
- }
- void AddRezervacija(){
- if (_brojRezervacija >= 50) cout << "Nema dovoljno mjesta!";
- else{
- gosti[_brojRezervacija] = new Rezervacija;
- gosti[_brojRezervacija]->Unos();
- _brojRezervacija++;
- }
- }
- };
- Rezervacija * GetRezervacija(Proslava * p){
- if (p->_brojRezervacija == 0) return NULL;
- cout << crt << "Pretraga rezervacije: " << crt;
- char temp[30];
- cout << "Unesite ime i prezime osobe na koju glasi rezervacija: ";
- cin.getline(temp, 30);
- int lokacija = -1;
- for (size_t i = 0; i < p->_brojRezervacija; i++){
- if (strcmp(temp, p->gosti[i]->_imePrezime) == 0){
- lokacija = i;
- break;
- }
- }
- if (lokacija == -1){
- cout << "Nije pronadjena rezervacija koja glasi na navedenu osobu." << endl;
- return NULL;
- }
- else return p->gosti[lokacija];
- }
- void PrikaziDuznike(Proslava * p){
- double visinaDugovanja;
- int br = 0, izbor;
- cout << "Unesite visinu dugovanja po kojoj zelite izvrsiti pretragu: ";
- cin >> visinaDugovanja;
- cin.ignore();
- for (int i = 0; i < p->_brojRezervacija; i++){
- double trebaBitiUplaceno = p->gosti[i]->_brojOsoba * 50;
- if (trebaBitiUplaceno>p->gosti[i]->_uplata){
- p->gosti[i]->Ispis();
- br++;
- }
- }
- do{
- cout << "Izaberite duznika koji zeli izvrsiti naknadnu uplatu: ";
- cin >> izbor;
- cin.ignore();
- } while (izbor >br || izbor < 0);
- p->gosti[izbor]->UplataRezervacije();
- }
- int main(){
- Proslava * objekat = new Proslava;
- int br;
- cout << "Koliko rezervacija zelite unijeti: ";
- cin >> br;
- cin.ignore();
- objekat->Unos();
- for (int i = 0; i < br; i++)
- objekat->AddRezervacija();
- Rezervacija * rez = GetRezervacija(objekat);
- if (rez != NULL) rez->Ispis();
- PrikaziDuznike(objekat);
- system("pause > null");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement