Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
3 / 3 / 0
Регистрация: 11.06.2012
Сообщений: 19
1

Расчет периода обслуживания объекта

11.06.2012, 23:09. Показов 2363. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С++Builder6,база данных Access, технология ADO, использовал ADOTable.
DBGrid имеется таблица, пользователь вводит данные в поле Год и период(в месяцах, 24(=2 года)) программа должна просчитать период обслуживания данного объекта с промежутком в заданное количество месяцев (например пользователь ввел год 2012 и период 72, то запись должна про дублироваться в 2018,2024,2030,2036, и так до 2100 года)
Спасибо заранее)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2012, 23:09
Ответы с готовыми решениями:

Расчет периода разности дат
Здравствуйте! Кто может помочь? Не могу понять где ошибаюсь. Есть на форме четыре поля: ДатаНачала,...

Расчет периода до определенного момента
Написать программу, которая рассчитывает период времени в днях, часах, минутах, секундах до...

Автоматический расчет среднего значения после указания периода времени
Здравствуйте! Помогите пожалуйста сделать автоматический расчет среднего значения из имеющихся...

Excel. Автоматический расчет среднего значения после указания периода времени
Здравствуйте! Помогите пожалуйста сделать автоматический расчет среднего значения из имеющихся...

32
3 / 3 / 0
Регистрация: 11.06.2012
Сообщений: 19
13.06.2012, 11:55  [ТС] 21
Author24 — интернет-сервис помощи студентам
почти правильно, нужно дать весь список. только заранее его нужно программно создать.
введём всего одну дату обслуживания и промежуток обслуживания для данного оборудования, после чего программа посчитает и создаст записи о последующих тех. обслуживаниях.
то есть я к примеру ввёл следующие данные:
дата обслуживания: 2012 год
период обслуживания: 24 месяца
и т.д.

программа создаст следующие записи в этой же таблице:
дата обслуживания период обслуживания т.д.
2012 24 -
2014 24 -
2016 24 -
2018 24 -
и т.д. и т.д. и т.д.
(до 2100 года)
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
13.06.2012, 12:28 22
RRRR,

Цитата Сообщение от RRRR Посмотреть сообщение
нужно дать весь список. только заранее его нужно программно создать.
Хоть убейте не могу понять зачем Вам этот список нужен.

Изначально проблема трактовалась следующим образом:
Цитата Сообщение от RRRR Посмотреть сообщение
а далее нужен такой алгоритм, чтобы программа сама просчитала что это оборудование надо отремонтировать в 2018,2024 и.т.д (например до 2100) и когда пользователь введет в поиске год, например 2018, ему должно в БД отразится все оборудование выпадающее на этот год в ремонт.
Сейчас "когда пользователь введет в поиске год, например 2018, ему должно в БД отразится все оборудование выпадающее на этот год в ремонт" - что еще нужно, понять ну никак не могу


Цитата Сообщение от RRRR Посмотреть сообщение
2012 24 -
2014 24 -
2016 24 -
2018 24 -
и т.д. и т.д. и т.д.
(до 2100 года)
Ну это обычный цикл (даю общий зарос):
C++
1
2
3
4
5
6
7
int period = StrToInt (Edit2->Text) / 12;
for (int currentYear = StrToInt (Edit1->Text); currentYear < 2100; currentYear +=period){
      ADOQuery1->Close();
      ADOQuery1->SQL->Clear();
      ADOQuery1->SQL->Add("INSERT INTO MyTable (Year, Period) VALUES (" + currentYear + ", " + period + ")");
      ADOQuery1->ExecSQL(); 
}
Добавлено через 4 минуты
Цитата Сообщение от The_Immortal Посмотреть сообщение
Ок, давайте конкретно мне задачу, чтобы я понял. Вот с текущим алгоритмом. Что надо узнать сейчас, просчитать? На конкретном примере.
И, кстати, я не дождался от Вас конкретного примера
Вы - пользователь, я - программа. Давайте запросите что-нибудь конкретное. Может быть так я пойму в чем суть.
0
3 / 3 / 0
Регистрация: 11.06.2012
Сообщений: 19
13.06.2012, 13:02  [ТС] 23
вот этот вариант просчета мне подходит, спасибо)
Теперь нужно что бы данный код выполнялся сразу при добавлении новых данных.
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
13.06.2012, 13:05 24
RRRR, ниче не буду делать, пока:


Цитата Сообщение от The_Immortal Посмотреть сообщение
И, кстати, я не дождался от Вас конкретного примера
Вы - пользователь, я - программа. Давайте запросите что-нибудь конкретное. Может быть так я пойму в чем суть.
0
3 / 3 / 0
Регистрация: 11.06.2012
Сообщений: 19
14.06.2012, 13:52  [ТС] 25
даже не знаю, например, я пользователь ввожу 2036 год, необходимо вывести все оборудование попадающее в ремонт на этот год
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 13:55 26
RRRR,
Расчет периода обслуживания объекта
Вот вам результат
Только там 2018 год, Вы не против?
0
3 / 3 / 0
Регистрация: 11.06.2012
Сообщений: 19
14.06.2012, 14:12  [ТС] 27
Почему там когда вводишь 2018, в таблице указвтель показывает на строку 2015

Добавлено через 9 минут
А это получается, показал предыдущий год
Нужно вот так
при введении новой записи срабатывал ваш последний код)
C++
1
2
3
4
5
6
int period = (взять из столбца период) / 12;
for (int currentYear = ((взять из столбца год); currentYear < 2100; currentYear +=period){
      ADOQuery1->Close();
      ADOQuery1->SQL->Clear();
      ADOQuery1->SQL->Add("INSERT INTO Основное_оборудование_2011 (Год,Наименование_оборудования,Период) VALUES (" + IntToStr(currentYear) + "," + period + ")");
      ADOQuery1->ExecSQL();
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 14:15 28
RRRR,

Цитата Сообщение от RRRR Посмотреть сообщение
Почему там когда вводишь 2018, в таблице указвтель показывает на строку 2015
Хоспади ты Боже мой... 2015 - отправная точка, которую вполне логично там и отображать (или вообще не отображать, а просто как Вы и хотели показывать список наименований). Для этого наименования установлен период 36 месяцев - это 3 года, поэтому 2015 + 3 сколько получается?


Цитата Сообщение от RRRR Посмотреть сообщение
Нужно вот так
при введении новой записи срабатывал ваш последний код)
Это будет ужасная избыточность, которая никакого смысла не имеет.

Или в результате запроса Вам обязательно надо отображать графу "Год", которая тупо будет дублировать то, что Вы ввели в поиске?
0
3 / 3 / 0
Регистрация: 11.06.2012
Сообщений: 19
14.06.2012, 14:27  [ТС] 29
ну вообще да, хотя сейчас начал потихоньку вникать, а если введешь 2021, он тоже 15 покажет?
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 14:37 30
RRRR,
Цитата Сообщение от RRRR Посмотреть сообщение
ну вообще да, хотя сейчас начал потихоньку вникать, а если введешь 2021, он тоже 15 покажет?
Представьте себе, да! Т.е. это второй так скажем "шаг" будет: 2015 + 3 (первый "шаг") + 3 (второй "шаг").

Я на том скрине вообще-то несколько "шагов" отразил. Посмотрите внимательнее: возьмем, к примеру "2010 - 24 (2 года)". Под "2018" попал, т.к. 2010 + 2 + 2 + 2 + 2 = 2018 (4 "шага").

Теперь поняли?
1
3 / 3 / 0
Регистрация: 11.06.2012
Сообщений: 19
14.06.2012, 14:41  [ТС] 31
дадада все дошло=) и действительно этот метод куда лучше получается=) просто была в голове та идея, вот на ней и зациклился, а теперь понятнои сложностей не каких этот метод, в отличие от дублирования, не вызывает, и перегрузки нет
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 14:42 32
RRRR,

Цитата Сообщение от RRRR Посмотреть сообщение
все дошло=)
Ааааалилуя! Алилуя!!! (соответствующая музыка)
1
3 / 3 / 0
Регистрация: 11.06.2012
Сообщений: 19
14.06.2012, 15:05  [ТС] 33
0
14.06.2012, 15:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2012, 15:05
Помогаю со студенческими работами здесь

Расчет простоя компьютеров с учетом разного начала рабочего времени и периода обеда
Всем привет и хорошего дня!) Форумчане, нужна ваша помощь. Не могу ни как сделать расчет...

Период из запроса разбить на начало периода и конец периода
есть запрос &quot;выбрать оборотыпродажи. период как период из продажиобороты &quot; на выходе имеем...

(Моделирование системы массового обслуживания с параллельными каналами обслуживания с повторами)
Помогите написать программу Рассмотрим систему массового обслуживания с заданным числом устройств...

Система массового обслуживания с параллельными каналами обслуживания с повторами
Всем доброго времени суток. Прошу вашей помощи в следующей задаче (Нет, не очередной ловец халявы:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru