База данных для учета оплаты за междугородние разговоры — страница 2

  • Просмотров 2854
  • Скачиваний 328
  • Размер файла 16
    Кб

внесен аванс, но сумма P превысила его, то оплата за кредит начисляется на сумму превышения. 3. Если оплата не внесена в течении двух месяцев, то телефон отключается. 1.2.Запросы к заданию 4. 1. Выведите фамилии абонентов, у которых долг превышает 100000 рублей. 2. Отберите абонентов, звонивших в зону № и имеющих аванс меньше тарифа данной зоны.№ зоны должен вводиться пользователем. 3. Введите № зоны и название месяца и получите доход по

этой зоне за данный месяц. 2.ТАБЛИЦА АТРИБУТОВ. Таблица 1. имя тип длина примечание av N 7 аванс dolg N 7 долг data_v Date 8 дата n_t C 8 № телефона n_z N 1 № зоны fio C 20 Ф.И.О. tar N 7 тариф t N 3 время разговора data_raz Date 8 дата разговора br C 5 время дня 3. ER-ДИАГРАММА. ВЕДЕТ НАХОДИТСЯ ЗОНА 1 ОСУЩЕСТВЛЯЕТСЯ С 1 ПЛАТА 1 1 РАЗГОВОРР АБОНЕНТ 1 1 ГОРОД N 4. СПРОЕКТИРОВАННЫЕ ОТНОШЕНИЯ Abon Таблица 2 FIO N_t ZONA Таблица 3. N_Z Tar Plata Таблица 4. AV DOLG DATA_V N_T N_Z Razg Таблица 5. t Br Data-razg N_z N_t

АБОНЕНТ ЗОНА ПЛАТА ДАННЫЕ ЗАПРОС 3 ЗАПРОС 2 ЗАПРОС 1 ЗАПРОСЫ РАЗГОВОР ВЫХОД 5. СТРУКТУРА МЕНЮ 6. ЛИСТИНГ МЕНЮ Z 4.PRG clear set safe off set talk off close database define menu ats bar at line 3 define pad x1 of ats prompt "запросы 1-3" define pad x2 of ats prompt "данные" define pad x3 of ats prompt "выход" on pad x1 of ats activ popup xx1 on pad x2 of ats activ popup xx2 on pad x3 of ats quit define popup xx1 from 4,1 to 11,11 define bar 1 of xx1 prompt "запрос 1" define bar 2 of xx1 prompt "запрос 2" define bar 3 of xx1 prompt "запрос 3" on sele bar 1 of xx1 do zapros1 on sele bar 2 of xx1 do zapros2

on sele bar 3 of xx1 do zapros3 define popup xx2 from 4,12 to 12,20 define bar 1 of xx2 prompt "абонент" define bar 2 of xx2 prompt "плата" define bar 3 of xx2 prompt "разговор" define bar 4 of xx2 prompt "зона" on sele popup xx2 do basa with bar() activ menu ats deactiv menu ats procedure basa parameters k close database do case case k=1 use abon browse use case k=2 use mts browse use case k=3 use plata browse use case k=4 use razg browse use case k=5 use zona browse use endcase 7. ЛИСТИНГ ПРОГРАММ. zapros1.prg close database use abon use plata in 2 index on n_t to abon sele 2 index on n_t to plata sele 1 set rela to n_t into 2 set filter to b.dolg>100000 brow fields a.fio,b.dolg set rela to set

filter to zapros2.prg clear set safe off close database set talk off sele 1 use razg index on n_z to k1 sele 2 use zona index on n_z to k2 sele 1 set rela to n_z into 2 set skip to 2 c=date() @ 2,10 say "Введите дату" get c read v=0 @ 4,10 say "Введите номер зоны" get v read set filter to a.data_razg=c.and. b.n_z=v browse fields a.data_razg,b.n_z,a.t,b.tar X1=a.T X2=b.Tar h=a.T*b.tar ?h,a.n_t set filter to close database zapros3.prg clear set safe off close database set talk off sele 1 use razg index on n_z to k1 sele 2 use zona index on n_z to k2 sele 1 set rela to n_z into 2 set skip to 2 c=date() @ 2,10 say "Введите дату" get c read v=0 @ 4,10 say "Введите номер зоны" get v read set

filter to a.data_razg=c.and. b.n_z=v browse fields a.data_razg,b.n_z,a.t,b.tar X1=a.T X2=b.Tar h=a.T*b.tar ?h,a.n_t set filter to close database