Материал: Могилев А.В. Информатика

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
background image

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)  При  добавлении  записей  на  экране  высветим  пустую  экранную  форму.  Пользователь 

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

background image

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. 

background image

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 _________________ 

background image

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 

background image

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 

Источник: https://files.student-it.ru/previewfile/15111