Advertisement
Guest User

Untitled

a guest
May 6th, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <iostream>
  4. #include <string.h>
  5.  
  6. using std::cout;
  7. using std::endl;
  8.  
  9. enum TypyUrzadzen
  10. {
  11. DyskTwardy, PlytaGlowna, Zasilacz
  12. };
  13.  
  14. class Urzadzenie
  15. {
  16. char nazwa[50];
  17.  
  18. protected:
  19.  
  20. Urzadzenie(char * _nazwa)
  21. {
  22. strcpy(nazwa, _nazwa);
  23. }
  24.  
  25. public:
  26. char * GetName()
  27. {
  28. return nazwa;
  29. }
  30. virtual int Moc() = 0;
  31. virtual float Cena() = 0;
  32. virtual void Informacja()
  33. {
  34. cout << " Nazwa: " << nazwa << endl;
  35. cout << " Moc :" << Moc() << endl;
  36. cout <<"Cena :" << Cena() << endl;
  37. cout << endl;
  38. }
  39. };
  40.  
  41. class CZasilacz : public Urzadzenie
  42. {
  43.  
  44.  
  45. int moc;
  46. int wentylatory_i_;
  47.  
  48. public:
  49. CZasilacz(char* _nazwa, int moc, int wentylatory_i)
  50. : Urzadzenie(_nazwa),
  51. moc(moc),
  52. wentylatory_i_(wentylatory_i)
  53. {
  54. }
  55.  
  56. virtual int Moc() override
  57. {
  58. return moc;
  59. }
  60. virtual float Cena() override
  61. {
  62. float cena;
  63. cena = moc * 0, 9;
  64. return cena + (wentylatory_i_ * 25);
  65. }
  66. // virtual void Informacja() override
  67. // {
  68. // cout << " Nazwa: " << GetName() << endl;
  69. // cout << " Moc :" << Moc() << endl;
  70. // cout << "Cena :" << Cena() << endl;
  71. // cout << endl;
  72. // }
  73. };
  74.  
  75. class CPlytaGlowna : public Urzadzenie
  76. {
  77. int liczba_procesorow_i_;
  78. int liczba_zlacz_sata_i_;
  79. int liczba_zlacz_pci_i_;
  80.  
  81. public:
  82. CPlytaGlowna(char* _nazwa, int liczba_procesorow_i, int liczba_zlacz_sata_i, int liczba_zlacz_pci_i)
  83. : Urzadzenie(_nazwa),
  84. liczba_procesorow_i_(liczba_procesorow_i),
  85. liczba_zlacz_sata_i_(liczba_zlacz_sata_i),
  86. liczba_zlacz_pci_i_(liczba_zlacz_pci_i)
  87. {
  88. }
  89.  
  90.  
  91. int Moc() override
  92. {
  93. return (liczba_procesorow_i_ * 100) + (20 * liczba_zlacz_pci_i_) + (liczba_zlacz_sata_i_ * 20);
  94. }
  95. float Cena() override
  96. {
  97. return 300 + (liczba_procesorow_i_ * 400) + (liczba_zlacz_pci_i_ * 50) + (liczba_zlacz_sata_i_ * 20);
  98.  
  99. }
  100. // void Informacja() override
  101. // {
  102. // cout << " Nazwa: " << GetName() << endl;
  103. // cout << " Moc :" << Moc() << endl;
  104. // cout << "Cena :" << Cena() << endl;
  105. // cout << endl;
  106. // }
  107. };
  108.  
  109. class CDyskTwardy : public Urzadzenie
  110. {
  111. int pojemnosc_dysku_i_;
  112.  
  113. public:
  114. CDyskTwardy(char* _nazwa, int pojemnosc_dysku_i)
  115. : Urzadzenie(_nazwa),
  116. pojemnosc_dysku_i_(pojemnosc_dysku_i)
  117. {
  118. }
  119.  
  120.  
  121. virtual int Moc() override
  122. {
  123. int moc_dysku_twardego_i = 70;
  124. return moc_dysku_twardego_i;
  125. }
  126. virtual float Cena() override
  127. {
  128. float cena_jednego_gb_x =1 ;
  129. if (pojemnosc_dysku_i_ < 200) return 200;
  130. return cena_jednego_gb_x* pojemnosc_dysku_i_;
  131. }
  132. // virtual void Informacja() override
  133. // {
  134. // cout << " Nazwa: " << GetName() << endl;
  135. // cout << " Moc :" << Moc() << endl;
  136. // cout << "Cena :" << Cena() << endl;
  137. // cout << endl;
  138. // }
  139. };
  140.  
  141. int TypWpisu(char * informacjaotypie)
  142. {
  143. if (strcmp(informacjaotypie, "DyskTwardy") == 0) return DyskTwardy;
  144. if (strcmp(informacjaotypie, "PlytaGlowna") == 0) return PlytaGlowna;
  145. if (strcmp(informacjaotypie, "Zasilacz") == 0) return Zasilacz;
  146. }
  147.  
  148. int main()
  149. {
  150. FILE * plik;
  151. plik = fopen("urzadzenia.txt", "a+");
  152. Urzadzenie *tab[100];
  153. int i = 0;
  154.  
  155. while (!feof(plik))
  156. {
  157. char informacja_otypie_wpisu_c[20];
  158. char buffor_nazwy_produktu_c[50];
  159. int parametr1 = 0;
  160. int parametr2 = 0;
  161. int parametr3 = 0;
  162.  
  163. if (!plik)
  164. return 0;
  165. //fscanf(plik, "%s %s %d %d %d", &informacja_otypie_wpisu_c, &buffor_nazwy_produktu_c, &parametr1, &parametr2_i, &parametr3_i);
  166. fscanf(plik, "%s %s %d %d %d", &informacja_otypie_wpisu_c,&buffor_nazwy_produktu_c ,&parametr1,&parametr2 , &parametr3);
  167. int typwpisu_i = TypWpisu(informacja_otypie_wpisu_c);
  168.  
  169. switch (typwpisu_i)
  170. {
  171. case 0:
  172. {
  173. tab[i] = new CDyskTwardy(buffor_nazwy_produktu_c, parametr1);
  174. break;
  175. }
  176. case 1:
  177. {
  178.  
  179. tab[i] = new CPlytaGlowna(buffor_nazwy_produktu_c, parametr1, parametr2, parametr3);
  180. break;
  181. }
  182. case 2:
  183. {
  184.  
  185. tab[i] = new CZasilacz(buffor_nazwy_produktu_c, parametr1, parametr2);
  186. break;
  187. }
  188. }
  189. i++;
  190. }
  191. fclose(plik);
  192. for (int j = 0; j < i; j++)
  193. {
  194. tab[j]->Informacja();
  195. }
  196.  
  197. _getch();
  198. return 0;
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement