⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 problem_2.txt

📁 it is a good simple od class and inheritance
💻 TXT
字号:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class vraboten
{
protected:
	char *name;//char
	int year; //int
public:
	vraboten(char buf[30], int yer)
	{
	
		year=yer;
		name= new char[strlen(buf)+1];
		strcpy(ime,buf);

	}	
	virtual void postavi()
	{
		char buf[30];
		cout<<"set name: ";
		cin>>buf;
		name=new char[strlen(buf)+1];
		strcpy(ime,buf);
		cout<<" set year: ";
		cin>>year;

	}

	virtual void prikazi_podatoci()
	{
		cout<<name<<endl;
		cout<<year<<endl;
	}
	vraboten(){};
	virtual ~vraboten(){delete []ime;}
	int godina()
	{
		return year;
	}

};
class profesor:public vraboten
{
	char *titel;
	int nr_subject;
public:
	profesor():vraboten(){};
	profesor(char buf[30], int yer, char buf2[30],int nr_s):vraboten(buf,yer)
	{
		titel=new char[strlen(buf2)+1];
		nr_subject=nr_s;
	}
	void postavi()
	{
		char buf[30];
		vraboten::postavi();
		cout<<" set title: ";
		cin >>buf;
		zvanje=new char[strlen(buf)+1];
		strcpy(title, buf);
		cout<< "vset number of subject: ";
		cin>>nr_subject;
	}
	void prikazi_podatoci()
	{
		vraboten::prikazi_podatoci();
		cout<<title<<endl;
		cout<<nr_subject<<endl;
	}
};
class administrator:public vraboten
{
	char *obrazovanie;
public:
	administrator():vraboten(){};
		administrator(char buf[30], int god, char buf2[30]):vraboten(buf,god)
		{
			obrazovanie=new char[strlen(buf2)+1];
			strcpy(obrazovanie,buf2);
		}
    void postavi()
	{
		char buf[30];
		vraboten::postavi();
		cout<<"set the school: ";
		cin>>buf;
		obrazovanie=new char[strlen(buf)+1];
		strcpy(obrazovanie,buf);
	}
	void prikazi_podatoci()
	{
		vraboten::prikazi_podatoci();
		cout<< obrazovanie<<endl<<endl;
	}

};
class asistent:public vraboten
{
	char *title;
	int nr_subject;
	vector<int> t;
	float average;
public:
	asistent():vraboten(){};
 	asistent(char buf[30], int god, char buf2[30],int br_p, float av):vraboten(buf,god)
	{
		zvanje=new char[strlen(buf2)+1];
		nr_subject=br_p;
		average=av;
	}
	void postavi()
	{
		char buf[30];
		vraboten::postavi();
		cout<<"est title: ";
		cin >>buf;
		title=new char[strlen(buf)+1];
		strcpy(title, buf);
		cout<< "set nmber of subjects: ";
		cin>>nr_subject;
		cout<<"set average: ";
		cin>>average;
	}
	void prikazi_podatoci()
	{
		vraboten::prikazi_podatoci();
		cout<<title<<endl;
		cout<<nr_subject<<endl<<endl;
	}
};

void main()
{
	int i, p=1, k,f=0,j,*l;
	vraboten *t[20];
	t[0]=new administrator("kujtim",20,"sredno");
	t[0]->prikazi_podatoci();
	int izbor=1;
	vector<int> kuj;
while(izbor!=5)
{
	 cout<<"1.      vrabotuvanje\n";
	 cout<<"2.      azuriranje na brojot na predmeti na nekoj asistent ili prof\n";
	 cout<< "3.      prikazuvanje na lista\n";
	 cout<<"4.      prikazuvanje posledni na n vraboteni (spored godina_na_vrabotuvanje)\n";
	 cout<<"5.      kraj\n";

	 cin>> izbor;
     switch(izbor)
	 {
	 case 1: cout<<"6. profesor ili 7. asistent: "; cin>>k;
		    if(k==6){t[p]=new profesor(); t[p]->postavi(); p++;}
			if(k==7){t[p]=new asistent(); t[p]->postavi();p++;}
			break;
	 case 2:cout<<"vneis go brojot na rabotnikot: "; cin>>k;
		 t[k]->postavi();
		 break;
	 case 3: for(i=1;i<p;p++)
				 t[i]->prikazi_podatoci();
		 break;
	 case 4: cout<<" za kolku rabotnici: "; cin>>k;
		 for(i=1;i<p;i++){kuj.push_back(t[i]->godina());}
		 sort(kuj.begin(),kuj.end());
		while(f<=k)
		 {
			for(i=1;i<p;i++)
			{
				for(j=0;j<p;j++)
				{
			 	if (t[i]->godina()== kuj[j])
					{
						t[i]->prikazi_podatoci();
						f++;
					}
				}
			}
			break;
		}
	 }
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -