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" };
- // ispitni 4
- struct Pregled{
- char *_dijagnoza;
- void Unos(){
- char temp[300];
- cout << "Unesite dijagnozu: " << crt;
- cin.getline(temp, 300);
- _dijagnoza = new char[strlen(temp) + 1];
- strcpy(_dijagnoza, temp);
- }
- void Ispis(){
- cout << crt << "Dijagnoza: " << endl << _dijagnoza << crt;
- }
- void Dealociraj(){
- delete[]_dijagnoza;
- _dijagnoza = nullptr;
- }
- };
- struct Pacijent {
- char * _imePrezime;
- Pregled PreglediPacijenata[50];
- int _brojPregleda;
- void Unos(){
- char temp[30];
- cout << "Unesite ime i prezime: ";
- cin.getline(temp, 30);
- _imePrezime = new char[strlen(temp) + 1];
- strcpy(_imePrezime, temp);
- _brojPregleda = 0;
- }
- void Ispis(){
- cout << "Ime i prezime pacijenta: " << _imePrezime << endl;
- for (int i = 0; i < _brojPregleda; i++)
- PreglediPacijenata[i].Ispis();
- }
- void addPregled(){
- if (_brojPregleda >= 50){ cout << "Nema vise mjesta za preglede!!!"; return; }
- PreglediPacijenata[_brojPregleda].Unos();
- _brojPregleda++;
- }
- void Dealokacija(){
- delete[]_imePrezime;
- _imePrezime = nullptr;
- }
- };
- struct Ljekar {
- char * _imePrezime;
- Pacijent listaPacijenata[100];
- int _brojPacijenata;
- void Unos(){
- char temp[30];
- cout << "Unesite ime i prezime: ";
- cin.getline(temp, 30);
- _imePrezime = new char[strlen(temp) + 1];
- strcpy(_imePrezime, temp);
- _brojPacijenata = 0;
- }
- void Ispis(){
- cout << "Ime i prezime ljekara: " << _imePrezime << endl;
- for (int i = 0; i < _brojPacijenata; i++)
- listaPacijenata[i].Ispis();
- }
- void addPacijenta(){
- if (_brojPacijenata >= 100){ cout << "Ljekar je prebukiran!" << endl; return; }
- listaPacijenata[_brojPacijenata].Unos();
- _brojPacijenata++;
- }
- void Dealociraj(){
- for (int i = 0; i < _brojPacijenata; i++)
- listaPacijenata[i].Dealokacija();
- delete[]_imePrezime;
- _imePrezime = nullptr;
- }
- };
- void DodajPodatkeOPacijentu(Ljekar * pok, int max){
- int koliko;
- cout << "Koliko pacijenata zelite unijeti u bazu: ";
- cin >> koliko;
- cin.ignore();
- for (int i = 0; i < koliko; i++){
- cout <<crt<< "Dostupni ljekari su: " << endl;
- for (int j = 0; j < max; j++)
- pok[j].Ispis();
- int izbor;
- do{
- cout << "Izaberite kojem ljekaru zelite dodjeliti pacijente: ";
- cin >> izbor;
- cin.ignore();
- } while (izbor <0 || izbor > max);
- pok[izbor].addPacijenta();
- }
- }
- void DodajPodatkeOPregledu(Ljekar * pok, int max){
- char temp[30];
- cout << "Unesite ime i prezime pacijenta kojem zelite dodati podatke o pregledu: " << endl;
- cin.getline(temp,30);
- char * ime = new char[strlen(temp) + 1];
- strcpy(ime, temp);
- for (int i = 0; i < max; i++){
- for (int j = 0; j < pok->_brojPacijenata; j++){
- if (strcmp(pok[i].listaPacijenata[j]._imePrezime, ime) == 0){
- pok[i].listaPacijenata[j].addPregled();
- }
- }
- }
- }
- int main(){
- //korisniku omoguciti da definise broj ljekara unutar institucije, te za svakog od njih inicijalizira potrebne podatke
- int brLjekara = 0;
- cout << "Koliko ljekara radi u instituciji: ";
- cin >> brLjekara;
- cin.ignore();
- Ljekar * doktori = new Ljekar[brLjekara];
- for (int i = 0; i < brLjekara; i++)
- doktori[i].Unos();
- // koristeci odg globalnu funciju, korisniku omoguciti dodavanje podataka o pacijentima te zatim dodavanje podataka o pregledima
- DodajPodatkeOPacijentu(doktori, brLjekara);
- DodajPodatkeOPregledu(doktori, brLjekara);
- // ispisati podatke o svim ljekarima, pacijentima i njihovim pregledima
- for (int i = 0; i < brLjekara; i++){
- doktori[i].Ispis();
- for (int j = 0; j < doktori[i]._brojPacijenata; j++){
- doktori[i].listaPacijenata[j].Ispis();
- for (int z = 0; z < doktori[i].listaPacijenata[j]._brojPregleda; z++){
- doktori[i].listaPacijenata[j].PreglediPacijenata[z].Ispis();
- }
- }
- }
- system("pause > null");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement