📄 problem_2.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 + -