Advertisement
Guest User

123465

a guest
Mar 20th, 2018
369
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.90 KB | None | 0 0
  1. Да се дефинира класа ParkingPlac во која се чуваат податоци за:
  2.  
  3. Адреса на плацот (низа од знаци, максимум 20),
  4. Идентификациски број на плацот (динамичка низа од знаци),
  5. Цена за паркирање за 1 час (цел број),
  6. Заработка на паркинг плацот (цел број)
  7. параметри потребни за дополнителниот дел од задачата:
  8.  
  9. Динамичка низа од класата Avtomobil
  10. Број на паркирани автомобили во даден момент
  11. За потребите на класата да се имплементираат :
  12.  
  13. соодветни конструктори и деструктор, и потребните get-функции (погледнете ги повиците во main функцијата)
  14. функција pecati() за печатење на податоците за еден паркинг плац во следниот формат:
  15.  
  16. идентификациски_број адреса - X denari, ако X е заработката на паркинг плацот X не е 0
  17.  
  18. идентификациски_број адреса , ако X =0
  19.  
  20. функција platiCasovi(int casovi) која на заработката ја додава платената вредност за дадениот број на часови.
  21.  
  22. функција daliIstaAdresa(ParkingPlac p) во која се споредува дали дадениот паркинг плац е на иста адреса како паркинг плацот p.
  23. Во дадената main функција прво се внесуваат n паркинг плацеви. Потоа се внесуваат m плаќања и на крај се печатат сите паркинг плацеви од низата кои имаат иста адреса со дадениот паркинг плац (објектот pCentar).
  24.  
  25. ДОПОЛНИТЕЛНО БАРАЊЕ
  26.  
  27. Дефинирајте класа Avtomobilво која се чуваат податоците за:
  28.  
  29. Бојата на автомобилот (низа од знаци, максимум 20)
  30. Брендот на автомобилот (низа од знаци, максимум 20)
  31. Моделот на автомобилот (низа од знаци, максимум 20)
  32. За потребите на класата ќе треба да :
  33.  
  34. Се имплементира конструктор
  35. Да го преоптоварите assignment operator-от
  36. Понатака да пишете метод за класата ParkingPlac наречен parkirajVozilo(Avtomobil novoVozilo), неговата цел ќе биде да се паркира ново возило на паркингот во кој се повикува методот.
  37.  
  38. На крај ќе треба да се испечатат паркираните возила во еден паркинг преку методот pecatiParkiraniVozila() кој исто така треба да биде имплементиран во класата ParkingPlac.
  39.  
  40. Ориентирајте се според дадениот код во main методот за како се ова треба да го имплементирате.
  41.  
  42. #include<iostream>
  43. #include<cstring>
  44. using namespace std;
  45. //вашиот код
  46. class Avtomobil{
  47. private:
  48. char boja[20];
  49. char brend[20];
  50. char model[20];
  51. public:
  52. Avtomobil(){
  53. }
  54. Avtomobil(char *boja,char *brend,char *model){
  55. strcpy(boja,boja);
  56. strcpy(brend,brend);
  57. strcpy(model,model);
  58. }
  59. Avtomobil(const Avtomobil &a){
  60. strcpy(boja,a.boja);
  61. strcpy(brend,a.brend);
  62. strcpy(model,a.model);
  63. }
  64. /*Avtomobil& operator= (const Avtomobil &a){
  65. if(this!=&a){
  66. strcpy(boja,a.boja);
  67. strcpy(brend,a.brend);
  68. strcpy(model,a.model);
  69. }
  70. return *this;*/
  71.  
  72. };
  73.  
  74. class ParkingPlac{
  75. private:
  76. char adresa[20];
  77. char* id;
  78. int cenaEden;
  79. int zarabotka;
  80. Avtomobil* avto;
  81. int brParkirani;
  82. public:
  83. ParkingPlac(){
  84. id = new char [0];
  85. }
  86. ParkingPlac(char *adresa,char* id,int cenaEden){
  87. strcpy(adresa,adresa);
  88. id=new char[strlen(id)+1];
  89. strcpy(id,id);
  90. cenaEden=cenaEden;
  91. zarabotka=0;
  92. }
  93. ParkingPlac(const ParkingPlac &p){
  94. strcpy(adresa,p.adresa);
  95. id=new char[strlen(p.id)+1];
  96. strcpy(id,p.id);
  97. cenaEden=p.cenaEden;
  98. zarabotka=p.zarabotka;
  99. }
  100. ParkingPlac& operator= (const ParkingPlac &p){
  101. if(this!=&p){
  102. strcpy(adresa,p.adresa);
  103. id=new char[strlen(p.id)+1];
  104. strcpy(id,p.id);
  105. cenaEden=p.cenaEden;
  106. zarabotka=p.zarabotka;
  107. }
  108. return *this;
  109. }
  110. ~ParkingPlac(){
  111. delete [] id;
  112. }
  113. void pecati(){
  114. cout<<id<<" "<<adresa<<" - "<<zarabotka<<" denari";
  115. }
  116. void platiCasovi(int casovi){
  117. zarabotka+=casovi*cenaEden;
  118. }
  119. int daliIstaAdresa(ParkingPlac p){
  120. if(strcmp(adresa,p.adresa)==0) return 1;
  121. return 0;
  122. }
  123. char* getId(){
  124. return id;
  125. }
  126. void parkirajVozilo(Avtomobil novoVozilo){
  127.  
  128. }
  129. void pecatiParkiraniVozila(){
  130.  
  131. }
  132. };
  133.  
  134.  
  135. int main(){
  136.  
  137. ParkingPlac p[100];
  138. int n,m;
  139. char adresa[50],id[50];
  140. int brojcasovi,cenacas;
  141. cin>>n;
  142. if(n > 0){
  143.  
  144.  
  145. for (int i=0;i<n;i++){
  146. cin.get();
  147. cin.getline(adresa,50);
  148. cin>>id>>cenacas;
  149.  
  150. ParkingPlac edna(adresa,id,cenacas);
  151.  
  152. //povik na operatorot =
  153. p[i]=edna;
  154. }
  155.  
  156. //plakjanje
  157. cin>>m;
  158. for (int i=0;i<m;i++){
  159.  
  160. cin>>id>>brojcasovi;
  161.  
  162. int findId=false;
  163. for (int j=0;j<m;j++){
  164. if (strcmp(p[j].getId(),id)==0){
  165. p[j].platiCasovi(brojcasovi);
  166. findId=true;
  167. }
  168. }
  169. if (!findId)
  170. cout<<"Ne e platen parking. Greshen ID."<<endl;
  171. }
  172.  
  173. cout<<"========="<<endl;
  174. ParkingPlac pCentar("Cvetan Dimov","C10",80);
  175. for (int i=0;i<n;i++)
  176. if (p[i].daliIstaAdresa(pCentar))
  177. p[i].pecati();
  178. } else {
  179.  
  180. ParkingPlac najdobarPlac("Mars", "1337", 1);
  181. int brVozila;
  182. cin >> brVozila;
  183. for(int i = 0; i < brVozila; ++i){
  184.  
  185. char boja[20];
  186. char brend[20];
  187. char model[20];
  188.  
  189. cin >> boja >> brend >> model;
  190. Avtomobil novAvtomobil(boja, brend, model);
  191. najdobarPlac.parkirajVozilo(novAvtomobil);
  192. }
  193. if(brVozila != 0)
  194. najdobarPlac.pecatiParkiraniVozila();
  195.  
  196. }
  197.  
  198.  
  199.  
  200.  
  201. }
  202.  
  203. Sample input
  204. 2
  205. Cvetan Dimov
  206. C12 100
  207. Cvetan Dimov
  208. C11 80
  209. 2
  210. C12 2
  211. C11 1
  212. Sample output
  213. =========
  214. C12 Cvetan Dimov - 200 denari
  215. C11 Cvetan Dimov - 80 denari
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement