Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Болница Problem 2 (0 / 0)
- Да се дефинира класата Pacient во која се чуваат информации за (5 поени):
- име презиме (низа од најмногу 30 знаци),
- ID (цел број),
- дијагноза (динамички резервирана низа од знаци),
- клиника на која е примен пациентот (низа од најмногу 30 знаци)
- Да се обезбедат сите потребни методи за класата за правилно функционирање на програмата. (10 поени)
- Дополнително за оваа класа да се дефинира методот:
- pecati() - функција со која ќе се печатат податоците за пациентот во формат: ID - дијагноза (5 поени)
- Да се креира класата Bolnica во која се чуваат информации за (5 поени):
- име на болницата (низа од најмногу 30 знаци)
- листа од пациенти (низа од најмногу 100 објекти од класата Pacient),
- број на пациенти (цел број)
- Да се обезбедат сите потребни методи за класата за правилно функционирање на програмата. (5 поени)
- Дополнително за оваа класа да се дефинираат методите:
- dodadiPacient (Pacient p)- со кој се додава нов пациент во листата, но само ако има место да се прими нов пациент (се смета дека во болницата може да се примат најмногу 100 пациенти) и нема друг пациент во листата со истo ID(10 поени)
- pecatiPacientiPoKlinika (char* k) – со кој се печатат сите пациенти во болницата примени на клиниката k (10 поени)
- Sample input
- 1
- Petko 11234 alergiska_reakcija_na_polen Alergologija
- Sample output
- ===== Testiranje na klasata Pacient ======
- 11234 - alergiska_reakcija_na_polen
- //CODE//
- #include<iostream>
- #include<cstring>
- using namespace std;
- class Pacient{
- char ime[30];
- int id;
- char *dijagnoza;
- char klinika[30];
- public:
- char *getKlin(){return this -> klinika;}
- Pacient(const char *ime = " ", int id = 0, const char * dijagnoza = " ", const char * klinika = " "){
- strcpy(this -> ime, ime);
- this -> id = id;
- this -> dijagnoza = new char[strlen(dijagnoza) + 1];
- strcpy(this -> dijagnoza, dijagnoza);
- strcpy(this -> klinika, klinika);
- }
- Pacient(const Pacient &p){
- strcpy(this -> ime, p.ime);
- this -> id = p.id;
- this -> dijagnoza = new char[strlen(p.dijagnoza) + 1];
- strcpy(this -> dijagnoza, p.dijagnoza);
- strcpy(this -> klinika, p.klinika);
- }
- Pacient &operator=(const Pacient &p){
- if(this != &p){
- strcpy(this -> ime, p.ime);
- this -> id = p.id;
- delete [] dijagnoza;
- this -> dijagnoza = new char[strlen(p.dijagnoza) + 1];
- strcpy(this -> dijagnoza, p.dijagnoza);
- strcpy(this -> klinika, p.klinika);
- }
- return *this;
- }
- void pecati(){
- cout<<id<<" - "<<dijagnoza<<endl;}
- ~Pacient(){delete [] dijagnoza;}
- int getID(){ return this -> id;}
- };
- class Bolnica{
- char ime[30];
- Pacient pacienti[100];
- int broj;
- public:
- Bolnica(){}
- Bolnica(const char* ime = " "){
- strcpy(this -> ime, ime);
- broj = 0;}
- int getBroj(){return this -> broj;}
- Bolnica & dodadiPacient(Pacient p){
- ++broj;
- Bolnica & dodadiPacient(Pacient p){
- for(int i = 0; i < broj+1; i++){
- if(broj +1<100&&pacienti[i].getID()==p.getID())
- {
- return *this;
- }
- }
- pacienti[broj++]=p;
- return *this;
- }
- void pecatiPacientiPoKlinika(char* k)
- {
- cout<<"Primeni pacienti na Klinikata za "<<k<<" se:"<<endl;
- for(int i=0; i<broj; i++)
- {
- if(strcmp(pacienti[i].getKlin(),k)==0)
- {
- pacienti[i].pecati();
- }
- }
- }
- Pacient getPacient (int i)
- {
- return pacienti[i];
- }
- };
- int main() {
- // se testira zadacata modularno
- int testCase;
- cin >> testCase;
- int n, ID;
- char ime[30], dijagnoza[50], klinika[30], qklinika[30];
- if(testCase == 1) {
- cout << "===== Testiranje na klasata Pacient ======" << endl;
- cin >> ime;
- cin >> ID;
- cin >> dijagnoza;
- cin >> klinika;
- Pacient p(ime,ID,dijagnoza,klinika);
- p.pecati();
- } else if(testCase == 2) {
- cout << "===== Testiranje na klasata Bolnica ======" << endl;
- Bolnica b("Gradska Bolnica");
- cin>>n;
- for (int i=0; i<n; i++) {
- cin >> ime;
- cin >> ID;
- cin >> dijagnoza;
- cin >> klinika;
- Pacient p(ime,ID,dijagnoza,klinika);
- b.dodadiPacient(p);
- }
- for (int i=0; i<n; i++)
- (b.getPacient(i)).pecati();
- } else if(testCase == 3) {
- cout << "===== Testiranje na metodot dodadiPacient() od klasata Bolnica ======" << endl;
- Bolnica b("Gradska Bolnica");
- cin>>n;
- for (int i=0; i<n; i++) {
- cin >> ime;
- cin >> ID;
- cin >> dijagnoza;
- cin >> klinika;
- Pacient p(ime,ID,dijagnoza,klinika);
- b.dodadiPacient(p);
- }
- for (int i=0; i<b.getBroj(); i++)
- (b.getPacient(i)).pecati();
- } else if(testCase == 4) {
- cout << "===== Testiranje na metodot pecatiPacientiPoKlinika() od klasata Bolnica ======" << endl;
- Bolnica b("Gradska Bolnica");
- cin>>n;
- for (int i=0; i<n; i++) {
- cin >> ime;
- cin >> ID;
- cin >> dijagnoza;
- cin >> klinika;
- Pacient p(ime,ID,dijagnoza,klinika);
- b.dodadiPacient(p);
- }
- cin>>qklinika;
- b.pecatiPacientiPoKlinika(qklinika);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment