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

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 31.03.2021

Просмотров: 6870

Скачиваний: 51

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
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 

1б 

26 

1в 

30 

2а 

29 

… 

… 

… 

… 

** итог ** 

820 

21 

14 

 

Структура БД.

 Создадим две БД со структурами, изображенными в табл. 6.6. Поле «класс» 

содержит информацию о номере класса. По полю «класс1» различаются параллельные классы. 

Для быстрого поиска информации в базе, а также для автоматической сортировки записей 

после внесения изменений, проиндексируем их по полю «класс» и «класс1». При этом создаются 
индексные файлы KL.NDX и KL1.NDX. 


background image

 

533 

 

Таблица 6.6  

Структуры создаваемых баз данных 

 

Поле 

Имя 

Тип 

Длина 

001 

класс 

002 

002 

Класс1 

С 

002 

003 

пр:год 

005 

004 

четв:1 

002 

005 

четв:2 

002 

006 

четв:3 

002 

007 

четв:4 

002 

008 

неусп:ч1 

002 

009 

неусп:ч2 

002 

010 

неусп:ч3 

002 

011 

неусп:ч4 

002 

012 

втгод:ч1 

002 

013 

втгод:ч2 

002 

014 

втгод:ч3 

002 

015 

втгод:ч4 

002 

016 

проп.без у/п 

004 

017 

по:болезни 

004 

018 

на:учете 

005 

019 

тр.семья 

005 

 

 

 

 

Поле 

Имя 

Тип 

Длина 

001 

класс 

002 

002 

класс1 

С 

002 

003 

семьи 

005 

004 

дети 

005 

005 

фонд 

005 

006 

молоко 

004 

007 

пол1 

003 

008 

пол2 

003 

009 

осмотр 

005 

010 

хрон 

005 

011 

спрг 

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