Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Направи класа Студент во која ќе се чуваат информации за индекс, оценки по секој предмет (низа од броеви),колку положени предмети, име и насока на студентот. Напиши сите потребни методи, конструктори и copy.
- prosek() - presmetuva prosekot na eden student
- print() - printaj informacii za studentot vo format Ime, index, prosek, smer
- Потоа направи класа Факултет што ќе чува низа од студенти и бројот на студенти запишани во тој факултет. Направи функции за
- printajStudenti() - printaj site studenti
- prvenecNaGeneracija() - student so najgolem prosek
- studentSoNajvekje6() - koj student ima najvekje 6ki
- studentSoNajvekjeOcenka(int ocenka) - student so najvekje dobieni ocenki int ocenka, ako imaat isto dobieni ocenki printaj go studentot so pogolem prosek
- nasokaSoNajvekjeStudenti() - koja nasoka ima najvekje studenti
- studentiPred2018() - printaj gi site studenti zapishani pred 2018 godina
- daliPostoiStudent(Student objekt) - proveri dali postoi toj student na fakultetot
- #include<iostream>
- using namespace std;
- class Student{
- private:
- int index;
- int ocenki[5];
- char ime[15];
- char nasoka[5];
- public:
- Student(){}
- Student(int index,char* ime,char* nasoka,int* ocenki){
- this->index=index;
- strcpy(this->ime,ime);
- strcpy(this->nasoka,nasoka);
- for(int i=0;i<5;i++){
- this->ocenki[i]=ocenki[i];
- }
- }
- // copy constructor
- Student(const Student &drugStudent){
- this->index=drugStudent.index;
- strcpy(this->ime,drugStudent.ime);
- strcpy(this->nasoka,drugStudent.nasoka);
- for(int i=0;i<5;i++){
- this->ocenki[i]=drugStudent.ocenki[i];
- }
- }
- // vrati ja ocenkata na pozicija index
- int getOcenki(int index){
- return ocenki[index];
- }
- // gotova funkcija za broenje kolku pati ja ima int ocenka
- int izbrojOcenki(int ocenka){
- int brojac=0;
- for(int i=0;i<5;i++){
- if(ocenki[i]==ocenka){
- brojac++;
- }
- }
- return brojac;
- }
- float prosek(){
- int suma=0;
- for(int i=0;i<5;i++){
- suma+=ocenki[i];
- }
- return (float)suma/5;
- }
- int getIndex(){
- return index;
- }
- char* getNasoka(){
- return nasoka;
- }
- void print(){
- cout<<ime<<" "<<index<<" "<<prosek()<<" "<<nasoka<<endl;
- }
- };
- class Fakultet{
- private:
- int brojStudenti;
- // ako ne znaeme kolkava e nizata stavame *
- Student *niza;
- char ime[20];
- public:
- Fakultet(){}
- Fakultet(char* ime,Student *niza,int brojStudenti){
- strcpy(this->ime,ime);
- for(int i=0;i<brojStudenti;i++){
- // copy constructor ili operator =
- this->niza[i]=niza[i];
- }
- this->brojStudenti=brojStudenti;
- }
- // print site studenti
- void printStudenti(){
- cout<<"Studenti zapishani na fakultetot "<<ime<<endl;
- for(int i=0;i<brojStudenti;i++){
- niza[i].print();
- }
- }
- // student so najgolem prosek
- void prvenecNaGeneracija(){
- float maxProsek=0;
- int pamtiIndex;
- for(int i=0;i<brojStudenti;i++){
- if(niza[i].prosek()>maxProsek){
- maxProsek=niza[i].prosek();
- pamtiIndex=i;
- }
- }
- cout<<"Najgolem prosek ima studentot"<<endl;
- niza[pamtiIndex].print();
- }
- // koj student ima najvekje 6ki
- void studentSoNajvekje6(){
- int broj6ki=0;
- int max6ki=0;
- int pamtiIndex;
- for(int i=0;i<brojStudenti;i++){
- broj6ki=0;
- for(int j=0;j<5;j++){
- if(niza[i].getOcenki(j)==6){
- broj6ki++;
- }
- }
- if(broj6ki>max6ki){
- max6ki=broj6ki;
- pamtiIndex=i;
- }
- }
- cout<<"Studentot so najvekje 6ki e"<<endl;
- niza[pamtiIndex].print();
- }
- // printaj gi site studenti zapishani pred 2018
- void studentiPred2018(){
- for(int i=0;i<brojStudenti;i++){
- if(niza[i].getIndex()/10000<18){
- niza[i].print();
- }
- }
- }
- // dali postoi student vo fakultetot
- int daliPostoiStudent(Student nov){
- for(int i=0;i<brojStudenti;i++){
- if(nov.getIndex()==niza[i].getIndex()){
- nov.print();
- return 1;
- }
- }
- return 0;
- }
- // nasoki: pit,kni,knia,sis
- void nasokaSoNajvekjeStudenti(){
- int brojPit=0;
- int brojKni=0;
- int brojKnia=0;
- int brojSis=0;
- for(int i=0;i<brojStudenti;i++){
- if(strcmp("pit",niza[i].getNasoka())==0){
- brojPit++;
- }
- if(strcmp("kni",niza[i].getNasoka())==0){
- brojKni++;
- }
- if(strcmp("knia",niza[i].getNasoka())==0){
- brojKnia++;
- }
- if(strcmp("sis",niza[i].getNasoka())==0){
- brojSis++;
- }
- }
- if(brojPit>brojSis && brojPit>brojKni && brojPit>brojKnia){
- cout<<"Pit ima najvekje "<<brojPit<<endl;
- }
- }
- // student so najvekje dobieni ocenki kako int ocenka
- void studentSoNajvekjeOcenka(int ocenka){
- int brojOcenka=0;
- int maxOcenka=0;
- int pamtiIndex;
- for(int i=0;i<brojStudenti;i++){
- brojOcenka=0;
- for(int j=0;j<5;j++){
- if(niza[i].getOcenki(j)==ocenka){
- brojOcenka++;
- }
- }
- if(brojOcenka>maxOcenka){
- maxOcenka=brojOcenka;
- pamtiIndex=i;
- }else if(brojOcenka==maxOcenka){
- if(niza[i].prosek()>niza[pamtiIndex].prosek()){
- pamtiIndex=i;
- }
- }
- }
- cout<<"Studentot so najvekje "<<ocenka<<" ocenki e"<<endl;
- niza[pamtiIndex].print();
- }
- };
- int main(){
- int n;
- cout<<"Vnesi kolku studenti sakash"<<endl;
- cin>>n;
- Student nizaStudenti[n];
- int index;
- char ime[15];
- char nasoka[5];
- int ocenki[5];
- for(int i=0;i<n;i++){
- //cout<<"Vnesi index"<<endl;
- cin>>index;
- //cout<<"Vnesi ime"<<endl;
- cin>>ime;
- //cout<<"Vnesi nasoka"<<endl;
- cin>>nasoka;
- //cout<<"Vnesi 5 ocenki"<<endl;
- for(int j=0;j<5;j++){
- cin>>ocenki[j];
- }
- nizaStudenti[i]=Student(index,ime,nasoka,ocenki);
- }
- Fakultet finki("FINKI",nizaStudenti,n);
- int x;
- cin>>x;
- //finki.printStudenti();
- //finki.prvenecNaGeneracija();
- //finki.studentSoNajvekje6();
- //finki.studentiPred2018();
- //finki.nasokaSoNajvekjeStudenti();
- finki.studentSoNajvekjeOcenka(x);
- return 0;
- }
- /*
- if(finki.daliPostoiStudent(nizaStudenti[1])){
- cout<<"Postoi"<<endl;
- }else{
- cout<<"Ne postoi"<<endl;
- }
- return 0;
- }
- /*
- 5
- 171717
- Petar
- pit
- 6 6 6 6 6
- 141414
- Boris
- knia
- 6 7 8 9 10
- 161616
- Borjan
- pit
- 6 7 6 7 7
- 161615
- Anja
- pit
- 5 6 7 8 6
- 181818
- Ivana
- sis
- 6 7 6 7 9
- */
- /*
- class Klupa{
- private:
- int nogarki;
- char boja[15];
- public:
- Klupa(){}
- Klupa(char boja[],int nogarki){
- strcpy(this->boja,boja);
- this->nogarki=nogarki;
- }
- Klupa(int nogarki,char boja[]){
- strcpy(this->boja,boja);
- this->nogarki=nogarki;
- }
- void print(){
- cout<<"Klupata ima "<<nogarki<<" nogarki i "<<boja<<" boja"<<endl;
- }
- };
- class Uchilna{
- private:
- Klupa objektKlupa;
- int prozori;
- bool televizor;
- char boja[15];
- public:
- Uchilna(){
- cout<<"Default constructor"<<endl;
- }
- Uchilna(char boja[],Klupa objektKlupa, int prozori,bool televizor){
- cout<<"Parameter constructor"<<endl;
- strcpy(this->boja,boja);
- this->objektKlupa=objektKlupa;
- this->prozori=prozori;
- this->televizor=televizor;
- }
- // copy constructor
- Uchilna(Uchilna &objekt){
- this->prozori=objekt.prozori;
- this->televizor=objekt.televizor;
- strcpy(this->boja,objekt.boja);
- this->objektKlupa=objekt.objektKlupa;
- }
- void setBoja(char* niza){
- strcpy(this->boja,niza);
- }
- char* getBoja(){
- return this->boja;
- }
- void printKlupa(){
- objektKlupa.print();
- }
- };
- int main(){
- Uchilna prva;
- prva.setBoja("crvena");
- cout<<prva.getBoja()<<endl;
- Klupa nekojaKlupa(4,"tirkizna");
- Uchilna vtora("plava",nekojaKlupa,3,true);
- // this == treta
- Uchilna treta(vtora);
- // samo ako imame copy constructor ke raboti
- //treta=vtora;
- treta.printKlupa();
- return 0;
- }
- */
Add Comment
Please, Sign In to add comment