Текущий архив: 2003.01.23;
Скачать: CL | DM;
Вниз
Пересчёт Найти похожие ветки
← →
niko45 (2002-12-26 23:42) [0]Привет всем.
Надо составить базу данных проката компакт дисков,
Почти всё сделал только одна проблемма при подсчёте
денег за прокат дисков. У меня не получается пересчитать в базе каждого клиента
сумму денег вписывается всем одинаковая.Не подскажите как пересчитать правильно
базу данных.
Заранее всем спасибо.
← →
VAleksey © (2002-12-27 06:26) [1]Недостаточно данных для ответа
← →
KSergey © (2002-12-27 07:45) [2]Это делается в 2 этапа.
1. Разработать методику (алгоритм), позволяющую безошибочно рассчитывать суммы.
2. Безошибочно реализовать данный алгоритм в программе.
← →
niko45 (2002-12-27 10:14) [3]>>VAleksey
Вообщем так.
Есть база данных проката дисков.Приходит человек берёт диск в базу вводится информация о диске и когда он его взял
(тобишь чесло и месяц), потом когда человек приносит через какоето время диск
прога должна пересчитать сколько человек должен за прокат(тоесть умножается количество дней
(сколько диск был на руках)на стоимость проката данного диска).
А если в базе 100 человек то как сделать что бы прога пересчитала правельно каждому человеку сумму к оплате.У меня же проблема
в том что когда прога пересчитывает базу она или подвисает или берёт первую запись и сумму которую она просчитала вписывает
всем людям которые записаны в базе.
>>!KSergey
Вот именно алгоритм реализации у меня и неполучается.
← →
Sergey13 © (2002-12-27 10:27) [4]2niko45 (27.12.02 10:14)
>У меня же проблема в том что когда прога пересчитывает базу она или подвисает ...
А что значит "пересчитывает базу"? Я то думал, что сдал человек диск - поставили дату сдачи. Разница между датами выдачи и сдачи - и есть искомое число дней. Чего там "пересчитывать"?
ИМХО, что ту тут в консерватории не так.
← →
myor © (2002-12-27 10:37) [5]покажи сначала свой алгоритм- посмотрим, а то задал задачку и ждешь готового решения.
← →
KSergey © (2002-12-27 11:28) [6]Хуже даже не то, что ждет готового решения, а что описал общую задачу, а вопрос ставит "где в программе ошибка"! А она, к стати, как обычно в 17 строке. Она всегда там в таких случаях.
← →
niko45 (2002-12-27 12:46) [7]НЕ пацаны я не жду готового решения просто не догадался показать код. Прошу прощения.
var
aser,kol:integer;
n,se:integer;
begin
se:=strtoint(edit7.Text); //здесь находится чесло когда принисли диски в прокат сдавать
aser:=Table1.FieldByName("Data").AsInteger; //суда вписывается дата когда человек взял диск
Table1.First; // начинаем пересчёт с первоё записи
for n:=1 to Table1.RecordCount do begin //начать с первой записи и до конца
begin
kol:=(aser-se) * 30; //здесь производися расчёт суммы типа сегодняшную дату отнимаем от той когда взял и умножаем на стоимость проката
Table1.Edit;
Table1.FieldByName("Сумма к выплоте").AsInteger:=kol; // вот суда вписывается сумма к выплоте
Table1.Post;
← →
vopros © (2002-12-27 13:12) [8]Не судьба сделать вычесляемое поле где бы ето производилось для всех записей таблицы?
см. OnCalcFields
← →
Dona © (2002-12-27 13:27) [9]а Table1.Next есть?
← →
myor © (2002-12-27 13:33) [10]
> Table1.First;
ну, допустим, начал- вижу.
> for n:=1 to Table1.RecordCount do begin
??????
а, может, лучше
while not eof
...
next
> kol:=(aser-se) * 30
> Table1.Edit;
> Table1.FieldByName("Сумма к выплоте").AsInteger:=kol;
> // вот суда вписывается сумма к выплоте
> Table1.Post;
посчитал и ввел, а где переход на следующую строку?
дописывай код
ты ж стоишь на first записи и RecordCount раз считаешь одну и ту же сумму
← →
gek © (2002-12-27 13:35) [11]
Table1.FieldByName("Data").AsInteger; //суда вписывается дата когда человек взял диск
Это что, просто число, что ли?
В Delphi тип Tdate хранится как double
← →
Anatoly Podgoretsky © (2002-12-27 13:36) [12]Ничего переаисывать не надо, марш за учебники
← →
Dona © (2002-12-27 13:38) [13]
se:=strtoint(edit7.Text); //здесь находится чИсло когда принЕсли диски в прокат сдавать
aser:=Table1.FieldByName("Data").AsInteger; //сЮда вписывается дата когда человек взял диск
- операции не в цикле, поэтому их значения одни и те же для каждой записи => получаем одинаковую сумму kol.
Вообще интересно, с датой работаете как с целым числом (а если взяли кассету в одном месяце, а приннесли в другом)?! И отнимаете от предыдущей даты следующую...
А лучше, конечно, как предлагал
>Sergey13 © (27.12.02 10:27)
>А что значит "пересчитывает базу"? Я то думал, что сдал человек >диск - поставили дату сдачи. Разница между датами выдачи и >сдачи - и есть искомое число дней. Чего там "пересчитывать"?
← →
Val © (2002-12-27 16:07) [14]>Dona © (27.12.02 13:38)
А лучше, конечно, как предлагал..
лучшее предложение от Anatoly Podgoretsky © (27.12.02 13:36) :)
← →
Dona © (2002-12-27 16:18) [15]>Val ©
И то верно... :)
Страницы: 1 вся ветка
Текущий архив: 2003.01.23;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.016 c