ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2021
Просмотров: 6870
Скачиваний: 51
531
Таблица 6.4
Класс
Многодетные
семьи и опекае-
мые дети
Горячее питание
Медицинское об-
служивание
Учебники,
дидактиче-
ские мате-
риалы
ГПД УПК
семьи опекае-
мые де-
ти
фонд
все-
обуча
б/п
моло-
ко
1 2
п. п.
количе-
ство ос-
мотров
хрониче-
ские за-
болев.
Входной информацией в БД выступают следующие данные по каждому классу: число уче-
ников на конец прошлого года и по четвертям; число неуспевающих в классе по четвертям; число
пропусков в классе на текущий момент (по болезни и без уважительной причины. Учитывается
работа с трудными семьями, медицинское обслуживание. Собирается информация о сохранности
учебников и наглядно-дидактических материалов; о группах продленного дня и посещении УПК.
Требования к переработке информации:
• ввод данных и автоматическая сортировка по классам;
• добавление записей;
• внесение изменений в записи по запросу на номер класса;
• удаление записей посредством пометки знаком «*» в режиме просмотра данных. Выход-
ная информация:
• просмотр данных в виде табл. 6.3 или табл. 6.4, а также просмотр данных по одному из
столбцов таблиц, например, только пропуски уроков;
• вывод на принтер табл. 6.3 или табл. 6.4, а также печать только определенных столбцов.
Ввод данных удобно осуществлять с использованием экранных форм, повторяющих на эк-
ране таблицы. Так как эти таблицы не помещаются на экране одновременно и содержат неповто-
ряющуюся информацию, целесообразно разделить ввод данных на две части. Обработку инфор-
мации также удобнее проводить по двум таблицам по отдельности. Выбор осуществим по меню:
1. Часть 1.
2. Часть 2.
3. Конец работы.
Создадим две БД и проиндексируем их с тем. чтобы при вводе данных они автоматически
сортировались по классам и чтобы в дальнейшем ускорить поиск требуемой информации. Над ка-
ждой из двух таблиц организуем проведение следующих операций:
1) заполнение новой
базы
;
2) добавление записей;
3)корректировку;
4)удаление записей;
5) печать документов;
6)выход.
Рассмотрим характеристики программ по каждому из представленных пунктов меню.
1) Этот пункт предполагает, что все записи БД уничтожаются и предварительно появляется
предупреждение:
«При создании новой БД все данные уничтожаются. Вы действительно хотите создать но-
вую БД? (д/н)».
При нажатии клавиши «д» пользователю предоставляется
пустая экранная форма, соответ-
ствующая выбранной таблице из главного меню.
2) При добавлении записей на экране высветим пустую экранную форму. Пользователь
может вносить информацию, передвигаясь по столбцам. При этом курсор автоматически по за-
полнении столбца переходит в следующий. После заполнения каждой строки в нижней части эк-
рана высвечивается сообщение:
532
«Продолжить добавление записей? (д/н) :: »
При ответе «н» происходит возврат в меню, а записи сортируются по классам.
3) Для корректировки также высветим экранную форму, но с уже заполненными столбца-
ми. Здесь необходимо предусмотреть тот случай, когда изменения должны вноситься только в от-
дельные классы. В этой связи требуется создание подменю.
4) При удалении записей, необходимо, как и в режиме корректировки, предусмотреть под-
меню с запросами по классам. Пользователю необходимо поставить знак «звездочка» (*) в столбце
«классы», о чем в нижней части экрана организуем подсказку:
«Для удаления записи, на которой стоит курсор, пометьте ее звездочкой (* )»
По завершении работы все помеченные записи уничтожаются, а оставшиеся автоматически
сортируются по классам.
5) Этот раздел служит для получения выходной информации. При его выборе создадим еще
одно меню:
(Часть 1)
1) Полный отчет
2) Сохранение контингента
3) Неуспевающие
4) Успеваемость второгодников 5) Пропуски
6) Трудные учащиеся
(Часть 2)
1) Полный отчет
2) Многодетные семьи и опекаемые дети
3) Горячее питание
4) Медицинское обслуживание
5) Сохранность учебников
6) ГПД
7) УПК
Здесь по требованию пользователя должна выводиться информация либо о всех классах
сразу, либо только о тех, которые укажет пользователь в ответе на запрос В этом же запросе сразу
определим, на какое устройство осуществляется вывод. Вид запроса:
«Какие классы Печать (д/н)»
Полный отчет (первый пункт меню) выводится в соответствии с экранными формами табл.
6.3 и табл. 6.4. Для всех остальных пунктов создадим форматные файлы, которые выводят инфор-
мацию по одному из столбцов экранных форм.
Таблица 6.5
Отчет по «Медицинскому обслуживанию»
Медицинское обслуживание
Класс
Количество осмотров Хронические заболевания Специальные медицинские группы
1а
30
3
1
1б
26
2
0
1в
30
0
0
2а
29
1
1
…
…
…
…
** итог **
820
21
14
Структура БД.
Создадим две БД со структурами, изображенными в табл. 6.6. Поле «класс»
содержит информацию о номере класса. По полю «класс1» различаются параллельные классы.
Для быстрого поиска информации в базе, а также для автоматической сортировки записей
после внесения изменений, проиндексируем их по полю «класс» и «класс1». При этом создаются
индексные файлы KL.NDX и KL1.NDX.
533
Таблица 6.6
Структуры создаваемых баз данных
Поле
Имя
Тип
Длина
001
класс
N
002
002
Класс1
С
002
003
пр:год
N
005
004
четв:1
N
002
005
четв:2
N
002
006
четв:3
N
002
007
четв:4
N
002
008
неусп:ч1
N
002
009
неусп:ч2
N
002
010
неусп:ч3
N
002
011
неусп:ч4
N
002
012
втгод:ч1
N
002
013
втгод:ч2
N
002
014
втгод:ч3
N
002
015
втгод:ч4
N
002
016
проп.без у/п
N
004
017
по:болезни
N
004
018
на:учете
N
005
019
тр.семья
N
005
Поле
Имя
Тип
Длина
001
класс
N
002
002
класс1
С
002
003
семьи
N
005
004
дети
N
005
005
фонд
N
005
006
молоко
N
004
007
пол1
N
003
008
пол2
N
003
009
осмотр
N
005
010
хрон
N
005
011
спрг
N
004
012
учебн
С
010
013
гпд
С
003
014
упк
С
005
Создадим форматные файлы отчетов для вывода информации по одному
из
столбцов таб-
лиц: PROP FRM (пропуски), TRUD.FRM (трудные учащиеся), UPK.FRM (УПК), SOHR.FRM (со-
хранение контингента), WTORG.FRM (успеваемость второгодников). NEUSP.FRM (неуспеваю-
щие), SEM.FRM (многодетные семьи и опекаемые), PIT.FRM (горячее питание), MED.FRM (меди-
цинское обслуживание), UBN.FRM (сохранность учебников), GRD.FRM (группы продленного
дня).
Ниже представлены тексты некоторых программ, поддерживающие рассматриваемую ин-
формационную систему (автор -Т.П. Глазко).
Программа 140
____________ модуль MAIN. PRG _________________
534
erase
set colon on
set talk off
store ' ' to rl,dd,d3
do while
d3<>'3'
erase
do while dd<>'l' .and. dd <>'2' .and. dd<>'3'
@ 5,12 say ' 1). Часть 1 '
@ 6,12 say ' 2). Часть 2
@ 7,12 say ' 3). Конец работы '
@ 8,12 say ' Введите цифру ' get dd
read
loop
enddo
If dd<>'3'
do case
case dd= '1'
use newws Index kl
case dd
= '2'
use newwsl Index kll
endcase
do menu
else
store '3' to d3
endif store ' ' to dd
loop
enddo
cancel
_______ МОДУЛЬ MENU.PRG ____________________
MENU.PRG поддерживает меню операций и в зависимости от выбранного пункта передает
управление модулям: SERVIS2.PRG (корректировка), APPN PRG (добавление), NEWBD.PRG
(создание новой БД), SERVIS3.PRG (удаление), DOC.PRG (документы). Прежде чем будет вызва-
на программа SERVIS2.PRG, выполняется еще одна программа - DOP.PRG, которая к этому меню
добавляет запрос на классы.
Программа 141
set format to screen
store 0 to dl, d2
do while d2<>8
goto top
erase
store 0 to dl
text
МЕНЮ
1) Заполнение новой базы
4) Удаление записей
2) Добавление записей
5) Документы
3) Корректировка
6) Выход
endtext
do while d1<>l .and. dl<>2 .and. dl<>3 .and. dl<>4; .and. dl<>5 .and.
dl<>6
@ 9,1 say ' Введите цифру' get dl picture '9'
read
loop
enddo
do case
case dl=3
do DOP
535
do SERVIS2
case dl=2
do APPN
case dl=l
do NEWBD
case dl=4
do SERVIS3
case dl=5
do DOC
case dl=6
store 8 to d2
endcase
loop
enddo
return
_____________ модуль DOP.PRG ______________
DOP.PRG осуществляет запрос на классы, по результатам ввода формирует логическую пе-
ременную kkk. используемую в некоторых других модулях для контроля за номерами классов, kkk
принимает значение «истина», если поле «класс» соответствует введенным номерам, и «ложь» - в
противоположном случае.
Программа 142
store 0 to kl
store to kl
store Т to pp
*** запрос на классы
@ 10,1 say 'Какие классы*
do while pp
@ 10,13 get kl picture '99-99'
read
if val($(kl,l,2))<12 .and. val($(kl,4,2))<l2
store F to pp
endif
loop
enddo
*** Формирование логической переменной kkk
if val ($(kl,4,2))=0
store 12 to kl
else
store val($(kl,4,2))+l to kl
endif
store 'Kлacc>val ($ (kl, 1,2))—1 .and. Knacc<kl' to kkk
return
____________ модуль SERV1S2.PRG _________________
Этот модуль позволяет внести изменения в записи БД. Классы, в которых будет произво-
диться корректировка, пользователь указывает, отвечая на запрос до вызова настоящей програм-
мы.
Программа 143
erase
set colon off
set talk off
goto top
if val(dd)=l
do shapka
else do shapkal
endif