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 Pregled{
- char * _dijagnoza;
- double _cijenaPregleda;
- void Unos(){
- char temp[1000];
- cout << "Unesite dijagnozu (# -za prekid):" << endl;
- cin.getline(temp, 1000, '#');
- int vel = strlen(temp) + 1;
- _dijagnoza = new char[vel];
- strcpy(_dijagnoza, temp);
- double cijena;
- cout << "Unesite cijenu pregleda: ";
- cin >> cijena;
- cin.ignore();
- }
- void Ispis(){
- cout << crt << "Dijagnoza: \n" << _dijagnoza << endl << "Cijena pregleda: " << _cijenaPregleda << crt;
- }
- };
- struct Pacijent{
- char *_imePrezime;
- Pregled * _pregledi[10];
- int _brojPosjeta;
- void Unos(){
- char temp[50];
- cout << "Unesite ime i prezime: " << endl;
- cin.getline(temp, 50);
- _imePrezime = new char[strlen(temp + 1)];
- _brojPosjeta = 0;
- }
- void Ispis(){
- cout << crt << "Ime i prezime: " << _imePrezime << endl;
- for (int i = 0; i < _brojPosjeta; i++)
- _pregledi[i]->Ispis();
- }
- void AddPregled(){
- if (_brojPosjeta < 10){
- _pregledi[_brojPosjeta] = new Pregled;
- _pregledi[_brojPosjeta]->Unos();
- _brojPosjeta++;
- }
- else cout << "Greska, nema dovoljno mjesta!" << endl;
- }
- double GetUkupneTroskove(){
- double s = 0;
- if (_brojPosjeta == 0) return 0;
- for (int i = 0; i < _brojPosjeta; i++){
- s += _pregledi[i]->_cijenaPregleda;
- }
- return s;
- }
- };
- void PovratNovca(Pacijent * pok, int max){
- double cijenaPregleda, troskovi;
- cout << "Unesite koliko kosta pregled: ";
- cin >> cijenaPregleda;
- cin.ignore();
- for (int i = 0; i < max; i++){
- troskovi = pok[i].GetUkupneTroskove();
- if (troskovi > cijenaPregleda){
- cout << crt <<"Ime i prezime pacijenta: " << pok[i]._imePrezime << endl;
- double povrat = pok[i].GetUkupneTroskove() *0.1;
- for (int j = 0; j < pok[i]._brojPosjeta; j++) pok[i]._pregledi[j]->_cijenaPregleda *= 0.9;
- cout << "Pacijentu treba vratiti: " << povrat << "KM." << crt;
- }
- else cout << "Pacijent nije preplatio cijenu." << endl;
- }
- }
- void PretragaPoDijagnozi(Pacijent * pok, int max){
- char * dijagnoza;
- char temp[100];
- cout << "Unesite kljucni tekst za pretragu (# - za prekid): " << endl;
- cin.getline(temp, 100, '#');
- dijagnoza = new char[strlen(temp + 1)];
- strcpy(dijagnoza, temp);
- int brosoba = 0;
- for (int i = 0; i < max; i++){
- for (int j = 0; j < pok[i]._brojPosjeta; j++){
- int br = 0;
- if (strstr(pok[i]._pregledi[j]->_dijagnoza, dijagnoza) != NULL){
- br++; brosoba++;
- if (br < 2) cout << pok[i]._imePrezime << endl;
- }
- }
- }
- cout << "Broj osoba kod kojih je detektovana traΕΎena fraza je: " << brosoba << endl;
- }
- int main(){
- int brPac = 0;
- cout << "Za koliko pacijenata zelite inicijalizirati podatke: ";
- cin >> brPac;
- cin.ignore();
- Pacijent * niz = new Pacijent[brPac];
- for (int i = 0; i < brPac; i++){
- niz[i].Unos();
- for (int j = 0; j < 3; j++){
- niz[i]._pregledi[j]->Unos();
- }
- }
- PretragaPoDijagnozi(niz, 3);
- PovratNovca(niz, 3);
- //dealokacija
- for (int i = 0; i < brPac; i++){
- delete[] niz[i]._imePrezime;
- for (int j = 0; j < niz[i]._brojPosjeta; j++){
- delete[] niz[i]._pregledi[j]->_dijagnoza;
- }
- }
- delete[] niz;
- system("pause > null");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement