Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa wyliczająca zakresy tętna
Forum PHP.pl > Forum > PHP > Object-oriented programming
primo
Witam,

mam arkusz exel o następującej konstrukcji:


Tam gdzie są białe pola to należy wpisać dane, czyli wiek, waga, płeć, wzrost, i HRmax (Tmax w klasie).

Chcę ten arkusz przerobić na klasę php i móc ją wykorzystywać na stronie. Stanąłem jednak w martwym punkcie:

  1. <?php
  2. define('SEX_MAN','m');
  3. define('SEX_WOMAN', 'w');
  4.  
  5.  
  6. class Kalkulator {
  7.  
  8. /** Wartosć maksymalna tętna **/
  9. var $_Tmax = 0;
  10.  
  11. /** Wartosć minimalna tętna **/
  12. var $_Tmin = 0;
  13.  
  14. /** Wiek wypełniajacego kalkulator **/
  15. var $_Age = 0;
  16.  
  17. /** Waga wypełniajacego kalkulator **/
  18. var $_Weight = 0;
  19.  
  20. /** Wzrost wypełniajacego kalkulator **/
  21. var $_Height = 0;
  22.  
  23. /** Body mas index **/
  24. var $_BMI = '';
  25.  
  26. /** Płeć **/
  27. var $_Sex;
  28.  
  29. /** Wartość tętna po przeliczeniu procentowym w poszczególnych działach: trening,
     zawody, pulsometr **/
  30. var $_HR = '';
  31.  
  32. /** Tablica reprezentująca Kalkulator **/
  33. var $_array = array ();
  34.  
  35. /**
  36. * Konstruktor klasy
  37. **/
  38.  
  39. function Kalkulator ($sex, $weight, $age, $height, $tmax) {
  40. $this ->_Sex = $sex;
  41. $this ->_Weight = $weight;
  42. $this ->_Age = $age;
  43. $this ->_Height = $height;
  44. $this ->_Tmax  = $tmax;
  45. }
  46.  
  47. function Trening () {
  48.  
  49. }
  50.  
  51. function Zawody () {
  52.  
  53. }
  54.  
  55. function Pulsometr () {
  56.  
  57. }
  58.  
  59. /** Zwraca tablicę Kalkulator **/
  60.  
  61. function GetArray () {
  62. return $this->_array;
  63. }
  64.  
  65.  
  66. }
  67. ?>


Jak rzucicie okiem na gif to zauważycie, że podzielony jest on na 3 części: trening, zawody, pulsometr (utworzyłem 3 funkcje obsługujące te 3 strefy). Nie wiem jednak teraz jak potraktować te powtarzające się elementy jak trucht, owb1 itd. Czy stworzyć na początku klasy kolejne właściwości, czy też określić je w inny sposób.

Kolejne moje pytanie dotyczy określenie zakresu procentowego np. że trucht to jest zakres między 50 a 60% Tmax.

Czy poszczególne zakresy odnośnie kolejnych klas liczyć w tych klasach, czy też stworzyć osobną klasę wylicz () i tam to zrobić??

Może macie jakieś inne pomysły na rozwiązanie tego questionmark.gif

pozdrawiam
Strzałek
Temat: Tematyka i zasady panujce na forum PHP PRO

Cytat
Dyskusje prowadzone tutaj powinny dotyczyć raczej strategii pisania aplikacji, metod rozwoju i podnoszenia elastyczności. Preferowanymi tematami są takie, które są wystarczająco kontrowersyjne aby prowadzić do dłużych dyskusji. Należy unikać poruszania konkretnych, drobnych kwestii. Na tego typu pytania jest miejsce na forum php.



----------
Strzalek: wystarczy zaraportowac.

Przenosze: PHP PRo --> PHP
--
dr_bonzo
primo
Cytat(Strzałek @ 1.03.2007, 18:00:09 ) *


Przepraszam, niedopatrzenie.

Proszę o przeniesienie.

Widzę że nikt nie garnie się do pomocy. Może za trudne questionmark.gif Kontynuuję jednak, może się ktoś z czasem dołączy.

Zastanawiam się ciągle nad tymi funkcjami Trening, Zawody, Pulsometr. Mają jakieś cechy wspólne: trucht, owb1, wb2, wb3, wt. Czy lepiej ifami określić co jest co czy ten sposób uznacie za odpowiedni:
  1. <?php
  2. function Trening () {
  3.  
  4. $trening = array (
  5. 'trucht_t' => $trucht_t,
  6. 'obw1_t' => $obw1_t,
  7. 'wb2_t'  => $wb2_t,
  8. 'wb3_t'  => $wb3_t,
  9. 'wt_t' => $wt_t
  10. );
  11.  
  12. }
  13.  
  14. function Zawody () {
  15.  
  16. }
  17.  
  18. function Pulsometr () {
  19.  
  20. $pulsometr = array (
  21.  'trucht_p' => $trucht_p,
  22.  'obw1_p' => $obw1_p,
  23.  'wb2_p'  => $wb2_p,
  24.  'wb3_p'  => $wb3_p,
  25.  'wt_p' => $wt_p
  26.  );
  27. }
  28. ?>
DeyV
Nie do końca jestem w stanie zrozumieć problem, nie mając dostępu do wzorów i sposobu przeliczeń takiego arkusza.

Zrobiłbym to jednak chyba mniej więcej w taki sposób.
  1. <?php
  2. class Kalkulator{
  3. function __construct( $sex, $weight, $age, $height, $tmax ){ } 
  4.  // jakieś tablice i wspólne parametry
  5. }
  6.  
  7.  
  8. class KalkulatorTrening extends Kalkulator{
  9.  
  10. /** 
  11.    * @return array 
  12.    */
  13. function wylicz(){
  14.  
  15. } 
  16.  
  17. // parametry i wzór do wyliczeń 
  18. }
  19.  
  20. class KalkulatorZawody extends Kalkulator{
  21.  
  22. /** 
  23.    * @return array 
  24.    */
  25. function wylicz(){
  26.  
  27. } 
  28.  
  29. // parametry i wzór do wyliczeń 
  30. }
  31. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.