Advertisement
Guest User

Untitled

a guest
May 21st, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.55 KB | None | 0 0
  1. Opened: 00:00:00
  2. Студент Problem 6 (0 / 0)
  3. Дадена е дел од дефиниција на класата StudentKurs. За секој студент кој слуша некој курс се чуваат информации за неговото име (низа од знаци), оценка од писмен дел (цел број) и дали студентот сака да биде испрашуван и усно (булова променлива).
  4.  
  5. Оцената за писмениот дел е вредност од 1 до МАX. MAX има почетна вредност 10 која е иста е за сите и може да се промени со соодветна функција setMAX(). (5 поени)
  6.  
  7. Кај оние студенти кои сакаат да бидат испрашувани усно и добиваат и описна оценка. Имплементирај соодветна класа StudentKursUsno во која се чуваат дополнителни информации за описна оценка на усното испрашување (динамичко алоцирана низа од знаци). Описни оценки може да бидат: odlicen, dobro, losho.... Ако описната оценка е odlicen тогаш оцената ќе биде најмногу за оценки 2 повисока од оценката од писмениот дел, ако е dobro оценката ќе биде најмногу за 1 повисока, а ако е losho за 1 пониска. Ако студентот добие некоја друга описна оценка, неговата оценка ќе остане иста со оценката од писмениот дел.
  8.  
  9. Во класите StudentKurs и StudentKursUsno треба да се имплементираат потребните конструктори, функции за поставување и преземање и деструктор. (5 поени)
  10.  
  11. За сите објекти од класите треба да се обезбедат следните функции:
  12.  
  13. преоптоварен оператор << во кој се печатат информации за студентот на курсот во формат: Ime --- ocenka (5 поени)
  14. оcenka() – ја враќа оценката на студентот на курсот (5 поени)
  15. Во класата StudentKursUsno дефинирај ја функцијата:
  16.  
  17. преоптоварен оператор += за поставување на описна оценка на студентот(5 поени)
  18. Ако се направи обид да се внесе описна оценка во која покрај букви има и други знаци треба да се фрли исклучок (објект од класата BadInputException). Фатете го исклучокот во главната функција каде што е потребно. Откако ќе го фатите отпечатете соодветна порака за грешка (Greshna opisna ocenka) и справете се со исклучокот така што тие знаци ќе отстранат од стрингот со описната оценка (ако описната оценка била dо1ba0r ќе се промени во dоbar). (10 поени)
  19.  
  20. Дадена е дел од дефиницијата на класата KursFakultet во која се чуваат информаци за името на курсот (низа од 30 знаци) и за студентите запишани на курсот (низа од 20 покажувачи кон класата StudentKurs) како и бројот на студенти запишани на курсот.
  21.  
  22. Еден студент кој запишал некој курс ќе го положи курсот ако има барем MINOCENKA. Вредноста MINOCENKA е членка на класата StudentKurs и има фиксна вредност 6 која не може да се промени. (5 поени)
  23.  
  24. Во класата KursFakultet имплементирај ги функциите:
  25.  
  26. функција pecatiStudenti() во која се печатат сите студенти кои го положиле курсот, секој во посебен ред. Претходно во првиот ред се печати: Kursot XXXXX go polozile: (5 поени).
  27.  
  28. функција postaviOpisnaOcenka(char * ime, char* opisnaOcenka) во која на студентот на курсот со даденото име му се поствува описна оценка. Ако тоа не е можно функцијата не прави ништо (15 поени).
  29.  
  30. Комплетна функционалност (5 поени)
  31.  
  32.  
  33. #include<iostream>
  34. #include<string.h>
  35. using namespace std;
  36.  
  37. class StudentKurs{
  38. protected:
  39. char ime[30];
  40. int ocenka;
  41. bool daliUsno;
  42.  
  43. public:
  44. StudentKurs(char* ime,int finalenIspit){
  45. strcpy(this->ime,ime);
  46. this->ocenka=finalenIspit;
  47. this->daliUsno=false;
  48. }
  49. //дополни ја класата
  50. };
  51.  
  52.  
  53. //вметни го кодот за StudentKursUsno
  54.  
  55.  
  56. class KursFakultet{
  57. private:
  58. char naziv[30];
  59. StudentKurs *studenti[20];
  60. int broj;
  61.  
  62. public:
  63. KursFakultet(char *naziv, StudentKurs** studenti,int broj ){
  64. strcpy(this->naziv,naziv);
  65. for (int i=0;i<broj;i++){
  66. //ako studentot ima usno isprashuvanje
  67. if (studenti[i]->getDaliUsno()){
  68. this->studenti[i]=new StudentKursUsno(*dynamic_cast<StudentKursUsno*>(studenti[i]));
  69. }
  70. else this->studenti[i]=new StudentKurs(*studenti[i]);
  71. }
  72. this->broj=broj;
  73. }
  74. ~KursFakultet(){
  75. for (int i=0;i<broj;i++) delete studenti[i];
  76. }
  77.  
  78. //дополни ја класата
  79. };
  80.  
  81. int main(){
  82.  
  83. StudentKurs **niza;
  84. int n,m,ocenka;
  85. char ime[30],opisna[10];
  86. bool daliUsno;
  87. cin>>n;
  88. niza=new StudentKurs*[n];
  89. for (int i=0;i<n;i++){
  90. cin>>ime;
  91. cin>>ocenka;
  92. cin>>daliUsno;
  93. if (!daliUsno)
  94. niza[i]=new StudentKurs(ime,ocenka);
  95. else
  96. niza[i]=new StudentKursUsno(ime,ocenka);
  97. }
  98.  
  99. KursFakultet programiranje("OOP",niza,n);
  100. for (int i=0;i<n;i++) delete niza[i];
  101. delete [] niza;
  102. cin>>m;
  103.  
  104. for (int i=0;i<m;i++){
  105. cin>>ime>>opisna;
  106. programiranje.postaviOpisnaOcenka(ime,opisna);
  107. }
  108.  
  109. StudentKurs::setMAX(9);
  110.  
  111. programiranje.pecatiStudenti();
  112.  
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement