Jaels

Калькулятор видео

May 10th, 2016
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.87 KB | None | 0 0
  1. /*
  2. КАЛЬКУЛЯТОР СТОИМОСТИ: примерный расчёт для расстояний в пределах 100 метров от записывающего устройства до камер
  3.  
  4. Для приблизительного подсчета итоговой цены пользователь должен заполнить следующие параметры:
  5.  
  6. 1 - Качество изображения (FHD или HD)
  7. 2 - кол-во уличных и внутренних камер
  8. 3 - Время хранения видеоархива
  9. 4 - время автономной работы
  10.  
  11. Помимо этого есть ещё внутренние переменные, которые пользователь не видит, такие как:
  12. 1 - цена за единицу камеры определенного типа
  13. 2 - цена за терайбайт данных
  14. 3 - цена за кабель (берем цену на 100 метров)
  15.  
  16. Отдельный блок кода отвечает за калькулятор подсчета необходимого обьема жестких дисков для хранения архива.
  17.  
  18.  
  19. */
  20.  
  21. const int fhd_ext_price=200; //Цена за единицу уличной камеры с качеством Full HD
  22. const int hd_ext_price=75; //Цена за единицу уличной камеры с качеством HD
  23. const int fhd_int_price=100; //Цена за единицу внутренней камеры с качеством Full HD
  24. const int hd_int_price=50; //Цена за единицу внутренней камеры с качеством HD
  25. const int usd_price = 25.5 // цена за доллар
  26.  
  27. /*пользователь не может выбирать разный тип качества для внутренних или внешних камер
  28. Кликает только один раз на общий выбор качества записи для всех типов камер
  29.  
  30. В примере калькулятора дальше будем считать, что пользователь выбрал FHD качество
  31. */
  32. const int cable_price=20.5; //Цена за 100м витой пары
  33.  
  34. /*
  35. Дальше поехал калькулятор расчета архива
  36. Объем диска = разрешение камеры * количество часов записи * количество дней записи * количество камер
  37.  
  38. перечисляем список размеров кадров
  39. */
  40.  
  41. const int fhd_frame_size=24;// 24 килобайт
  42. const int hd_frame_size=11; //11 килобайт
  43. const int fps_per_hour=90000; //будем считать, что везде запись будет вестись в 25 кадров/секунду, т.е. 90000 кадров/час
  44. int ext_cam_count=2; //переменная для ввода кол-ва уличных камер. (считаем, что пользователь выбрал 2 уличные камеры)
  45. int int_cam_count=5; //переменная для ввода кол-ва внутренних камер (считаем, что пользователь выбрал 5 внутренних камер)
  46. int total_cam_count = ext_cam_count + int_cam_count; // считаем общее количество камер всех типов ( в данном случае получилось 7)
  47. const int rec_time=12; //считаем, что запись ведется 12 часов в сутки
  48.  
  49. //перемножаем объем 1 кадра изображения на количество кадров в час и получаем требуемое место на жестком диске для записи одной видеокамеры в течении 1 часа
  50.  
  51. int fhd_size_per_hour = fhd_frame_size * fps_per_hour; //для FHD (например - 24 * 90000 = 2160000 килобайт)
  52. int hd_size_per_hour = hd_frame_size * fps_per_hour; //для HD     (например - 11 * 90000 = 990000 килобайт)
  53.  
  54. //перемножаем полученный обьем для записи в течении одного часа на количество часов записи и получаем требуемое место для записи в течении дня
  55.  
  56. int fhd_size_per_day = fhd_size_per_hour * rec_time; // например - 2160000 * 12 = 25920000 килобайт
  57. int hd_size_per_day = hd_size_per_hour * rec_time; // например - 990000 * 12 = 11880000 килобайт
  58.  
  59. /*
  60. 1 - узнаем требуемый объем для записи всех видеокамер в течении 1 суток
  61. 2 - умножаем количество суток на требуемый объем для записи всех видеокамер в течении 1 суток
  62. */
  63.  
  64. int all_cam_size_per_day = fhd_size_per_day * total_cam_count; // все 7 камер займут 181440000 килобайт в сутки
  65.  
  66. // Дальше расчитываем 3 разных обьема в зависимости от выбранного чекбокса на сайте (7 дней, 14 дней, 1 месяц)
  67. int sum_size_week = all_cam_size_per_day * 7; // на неделю (1280 гигабайт) 1270080000 кб
  68. int sum_size_2weeks = all_cam_size_per_day * 14; //на 2 недели (2560 гигабайт) 2540160000 кб
  69. int sum_size_month - all_cam_size_per_day * 30; // на месяц 5443200000 кб
  70.  
  71.  
  72. //переводим получившиеся килобайты в гигабайты:
  73. int sum_size_in_in_gigs = sum_size_month / 1000000; // 5443.2 гигабайт
  74.  
  75. const int 1gb_price = 1.55; //цена за 1 гигабайт в гривне
  76.  
  77. //А дальше имея количество гигабайт и цену за 1 гигабайт мы легко можем посчитать приблизительную себестоимость хранения всего видеоархива
  78. int hdd_for_all_archive_price = 1gb_price * sum_size_in_in_gigs; // 1.55 * 5443.2 = 8436.96 гривен
  79. hdd_for_all_archive_price_in_usd = hdd_for_all_archive_price / usd_price; //и переводим цену в доллары
  80.  
  81. /*Дальше считаем время автономной работы без питания от электросети (пользователь выберет один из чекбоксов на сайте)
  82.  
  83. Просто умножаем количество камер на цену
  84.  
  85. до 30 минут - 6 долларов
  86. до 60 минут - 12 долларов
  87. до 90 минут - 20 долларов
  88. */
  89. int ups_price = total_cam_count * 12; //допустим мы выбрали время автономной работы - 60 минут (т.е. цена за одну камеру = 12 долларов)
  90.  
  91. //Дальше накидываем стоимость коммутатора исходя из количество камер * 6 долларов за единицу
  92. int switch_price = total_cam_count * 6;
  93.  
  94. //добавляем цену регистратора в зависимости от количества камер
  95.  
  96. int reg_price;
  97. if {
  98.     total_cam_count -lt 4;
  99.     reg_price = 80; //80 Долларов
  100.     else if total_cam_count -gt 4 && -lt 8 {
  101.         reg_price = 100;
  102.     }
  103.     else if total_cam_count -gt 8 & -lt 16{
  104.         reg_price = 150;
  105.     }
  106.     else if total_cam_count -gt 16 & -lt 32 {
  107.         reg_price = 290;
  108.     }
  109. }
  110.  
  111. const int job_price = total_cam_count * 15; //стоимость работы исходя из кол-ва камер * 15 Долларов
  112.  
  113.  
  114. int total_price = cable_price + hdd_for_all_archive_price_in_usd + ups_price + switch_price + reg_price + job_price + cam_price;
  115.  
  116. // И в итоге всю цену разделить на переменную курса доллара и вывести пользователю на страницу
Advertisement
Add Comment
Please, Sign In to add comment