Программа обработки информации о пропусках занятий студентами

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    68,55 Кб
  • Опубликовано:
    2012-12-19
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программа обработки информации о пропусках занятий студентами

АННОТАЦИЯ

В данном документе описывается программа, написанная в соответствии с постановкой задачи на курсовое проектирование по теме "Программа обработки информации о пропусках занятий студентами" по дисциплине "Основы программирования и алгоритмические языки". Входными данными является файл, в котором храниться таблица с информацией о студентах: группа, фамилия, пропуски занятий по предметам, оправданные пропуски занятий по предметам. Для проверки функционирования программы разработан тестовый пример. Результаты тестирования показывают, правильность выполнения программой всех операции по обработке входных данных и формированию выходных данных.

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

СОДЕРЖАНИЕ

Введение

1. Назначение и область применения

2.       Технические характеристики

2.1 Постановка задачи

.2 Описание основных типов данных

.3 Входные данные

.4 Выходные данные

.5 Описание алгоритма программы

2.5.1 Основная программа

.5.2 Процедура Del

.5.3 Процедура Saveto

2.5 Описание процедур

.7 Выбор языка программирования

3. Основные технико-экономические показатели

Заключение

Библиографический список

Приложение

ВВЕДЕНИЕ

Развитие компьютерных технологий позволило упростить ручную, монотонную и расчетную работу. На данный момент создано большое количество программ, обрабатывающих разнотипную информацию. В настоящее время работа любого предприятия просто не мыслима без применения компьютерных технологий. Современные программы могут значительно упростить процесс управления предприятием и производством. И только с использованием компьютеров и соответствующих программ современное предприятие может плодотворно работать и достигать немыслимых при некомпьютерной обработке информации результатов.

1. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ

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

К достоинствам данной программы можно отнести то что она написана в на языке Visual C++ и поэтому создает полноценное Windows-приложение ,что удовлетворяет требованиям сегодняшнего времени.

Недостатком данной программы является то, что для обработки такой информации лучше использовать языки программирования, предназначенные для разработки баз данных, например FoxPro.

2. ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ

 

.1 Постановка задачи


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

Даны сведения за месяц о пропусках занятий студентами групп. Подсчитать количество неоправданных часов по каждому студенту, суммарные показатели по каждому виду, а также процент неоправданных пропусков в целом.

Структура записи: шифр группы (6 символов), фамилия (15 символов), пропущено часов, оправдано часов.

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

2.2 Описание основных типов данных


Для обработки и хранения входных данных в программе был создан класс StudData, включающий в себя структуру student и функции для работы для работы с объектами StudData:

struct student

{group[N],fam[N];propusk[5][M];

};StudData:public CVIC_1_0Dlg

{:stud;*left,*right;:vivod(StudData *ptop);*add_tree(student);progul_st1(StudData *,int*,int*);poisk(char *str);write_data();

}*Top;

Информация, содержащаяся в полях структуры student:

grup - группа;

fio - фамилия;

propusk- массив ,содержит оправданные и неоправданные пропуски по предметам ;

Информация, содержащаяся в полях структуры StudData:

Stud-объект структуры student содержит всю информацию о студентах (смотри student);

left- указатель на левое поддерево

right- указатель на правое поддерево

Для того чтобы возможно было обрабатывать множество записей, необходимо организовать их в массив список или дерево. В данном случае используется бинарное дерево. Оно является наиболее приемлемой структурой для нашей задачи, поскольку обеспечивает наиболее быстрый доступ к своим элементам и его можно организовать динамически. Так как заранее неизвестно количество элементов, мы не можем определить статическую структуру.

2.3 Входные данные

Входные данные представляют собой текстовый файл, в котором по строкам разбита информация о студентах - Таблица 2.1.

Таблица 2.1

Пример входных данных

И-22 Бондарева 9 8 7 6 5 4 3 2 1 1

И-22 Герасимов 21 9 8 87 9 1 2 3 4 5

И-22 Заря 9 0 0 0 0 0 0 0 0 0 0

И-22 Хоролич 2 2 2 2 2 0 0 0 0 0

И-22 Гуща 12 8 9 9 9 0 5 5 1 1

.4 Выходные данные

Выходные данные представляют собой информацию о зарплате - Таблица 2.2.

Таблица 2.2

Пример выходных данных

Количество рабочих Средняя зарплатацеха Всего в том числе Всего в том числе

Муж Жен Муж Жен

17 13 4 542 584 500

13 9 4 557 601 513

8 7 1 502 559 445

3 3 0 277 554 0

3 3 0 165 330 0

2 2 0 167 335 0

5 4 1 852 747 957

4 3 1 794 617 971

1 1 0 277 554 0

2 2 0 242 485 0

2.5 Описание алгоритма программы

2.5.1 Основная программа (рис. 2.1)

Блок 1. Присвоение начальных значений переменных.

Блок 2. Вызов процедуры Org - которая организует чтение списка из файла

Блок 3. Вызов процедуры Show - которая выводит список на экран.

Блок 4. Вызов процедуры Main - в которой выполняются все действия по работе со списком.

Блок 5. Вызов процедуры Close - которая сохраняет список в файл и завершает выполнение программы.

Рисунок 2.1 - Основная программа

.5.2 Процедура Del - удаление элементов из списка (рис. 2.2)

Блок 1. Проверка, выполняется ли условие cur=1, если да то дальше Блок 2, если нет Блок 5.

Блок 2. Так как выполнилось условие cur=1, то значит удаляется первый элемент. Переменной temp ставим указатель на первый элемент списка.

Блок 3. Вызывается процедура Dispose - освобождение памяти занимаемой переменной left.

Блок 4. Переменная left указывает на первый элемент списка. Количество элементов уменьшается на 1.

Блок 5. Проверка, удаляется ли последний элемент. Если да то Блок 6, в противном случае Блок 9.

Блок 6. Так как выполнилось условие cur=count, то значит удаляется последний элемент. Переменной temp ставим указатель на последний элемент списка.

Блок 7. Вызывается процедура Dispose - освобождение памяти занимаемой переменной right.

Блок 8. Переменная right указывает на последний элемент списка.

Блок 9. Переменная temp указывает на удаляемый элемент списка.

Блок 10. Вызывается процедура Dispose - освобождение памяти занимаемой переменной temp.

Блок 11. Количество элементов уменьшается на 1.

2.5.3 Процедура Saveto - сохранение списка в файл (рис. 2.3)

Блок 1. Переменной f присваивается указатель на файл ‘out.txt’.

Блок 2. Файл ‘out.txt’ обнуляется.

Блок 3. Переменной temp присваивается указатель на начало списка.

Блок 4. Проверяется условие temp<>nil: если условие выполняется то Блок 5, если нет Блок 7.

Блок 5. Запись элемента списка в файл.

Блок 6. Указатель temp на следующий элемент списка.

Блок 7. Закрытие файла ‘out.txt’

Рисунок 2.2 - Процедура Del

2.6 Описание процедур

Функция getp(n:integer):ptabl - передается параметр n - номер элемента списка, возвращается указатель на элемент с этим номером;

Процедура sort(t:integer) - сортирует список по полю t;

Процедура org - создает список;

Рисунок 2.3 - Процедура Saveto

Процедура show - создает список;

Функция menum:integer - возвращает номер выбранного пункта меню;

Процедура saveto - сохраняет список в файл;

Процедура add - добавляет элемент в список;

Процедура edit - редактирует элемент списка;

Процедура del - удаляет элемент из списка;

Процедура help - вывод помощи;

Процедура close - выход из программы;

Процедура main - процедура, в которой идет обработка меню;

.7 Выбор языка программирования

Выбрав языком программирования Turbo Pascal 7.0 я руководствовался следующими критериями:

1. Для разработки программ такого типа удобнее использовать язык высокого уровня;

2.       Легкость в работе с указателями;

.        Достаточная скорость выполнения готовой программы;

Всем этим требованиям удовлетворяет язык программирования Turbo Pascal 7.0.

3. ОСНОВНЫЕ ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ

В результате компиляции программы компилятором Turbo Pascal 7.0 был получен исполняемый файл формата DOS EXE размером 37 Кбайт, что является приемлемым размером для программ такого типа.

Для выполнения требуется процессор класса 286.

Программа может работать под управлением операционной системы класса DOS, при этом сохраняет работоспособность и в режиме эмуляции MS-DOS операционной системой Windows 9x.

Таким образом программа может выполняться практически на любом доступном PC компьютере.

Заключение

Данная программа, составлена в соответствии с постановкой задачи на курсовое проектирование по теме " Программа обработки информации о пропусках занятий студентами" по дисциплине "Основы программирования и алгоритмические языки" (ОПиАЯ). При написании программы использованы методические указания по курсовому проектированию по дисциплине "ОПиАЯ". Для проверки работоспособности программы и правильности обработки входных данных разработан тестовый пример. Тестирование программы подтвердило, что программа правильно выполняет обработку данных и выдаёт верные результаты. Всё это свидетельствует о работоспособности программы и позволяет сделать вывод о пригодности программы к решению практических задач по обработке экономической информации.

информационный программа пропуск занятие

ПРИЛОЖЕНИЕ А

Текст программы

uses dos,crt;

const= 70;: array [1..7] of string=(' Добавление данных ',

' Редактирование данных ',

' Удаление данных ',

' Сортировка данных ',

' Обработка данных ',

' Помощь ',

' Фамилии ',

' Году рождения ',

' Полу ',

' Стажу ',

' Разряду ',

' Номеру цеха ',

' Зарплате ');

= ^Ttabl;= record:string[5];:string[22];:string[4];:string[7];:string[2];:string[1];:string[2];:string[4];:string[5];;

=record:tablinf;,prev:Ptabl;;

:array[1..20] of record:string;_v,rab_m,rab_w:integer;_v,zar_m,zar_w:integer;;:tablinf;,left,right,tabl:Ptabl;,c,starty,perc,i,cur,beg,lin,lnum,count:integer;:char;

cls;:registers;.ah := $0F;($10,r);.ah := $00;($10,r);;

hidecursor;:registers;.ax := $0100;.cx := $2607;($10,r);;

showcursor;:registers;.ax := $0100;.cx := $0506;($10,r);;

getp(n:integer):ptabl;:integer;:Ptabl;:= 1;:= left;c<>n do(c);:= el^.next;;:= el;;

inttostr(i:longint):string;:string[11];(i,s);:= S;;

strtoint(s:string):longint;,code:integer;s[1]=' ' do delete(s,1,1);s[length(s)]=' ' do delete(s,length(s),1);(s,i,code);:= i;;

flip(var t1,t2:ptabl);:tablinf;:= t1^.inf;^.inf := t2^.inf;^.inf := d;;

sort(t:integer);,temp2:ptabl;,i,j:integer;:= 1;i := 1 to count doj := 1 to count do begin:= getp(i);:= getp(j);s=2 thent of

:if strtoint(temp1^.inf.num)>strtoint(temp2^.inf.num) then

flip(temp1,temp2);

:if temp1^.inf.fio>temp2^.inf.fio then flip(temp1,temp2);

:if strtoint(temp1^.inf.godr)>strtoint(temp2^.inf.godr) then

flip(temp1,temp2);

:if temp1^.inf.pol>temp2^.inf.pol then flip(temp1,temp2);

:if strtoint(temp1^.inf.stazh)>strtoint(temp2^.inf.stazh) then

flip(temp1,temp2);

:if strtoint(temp1^.inf.razr)>strtoint(temp2^.inf.razr) then

flip(temp1,temp2);

:if strtoint(temp1^.inf.ceh)>strtoint(temp2^.inf.ceh) then

flip(temp1,temp2);

:if strtoint(temp1^.inf.zarp)>strtoint(temp2^.inf.zarp) then

flip(temp1,temp2);elses=1 thent of

:if strtoint(temp1^.inf.num)<strtoint(temp2^.inf.num) then

flip(temp1,temp2);

:if temp1^.inf.fio<temp2^.inf.fio then flip(temp1,temp2);

:if strtoint(temp1^.inf.godr)<strtoint(temp2^.inf.godr) then

flip(temp1,temp2);

:if temp1^.inf.pol<temp2^.inf.pol then flip(temp1,temp2);

:if strtoint(temp1^.inf.stazh)<strtoint(temp2^.inf.stazh) then

flip(temp1,temp2);

:if strtoint(temp1^.inf.razr)<strtoint(temp2^.inf.razr) then

flip(temp1,temp2);

:if strtoint(temp1^.inf.ceh)<strtoint(temp2^.inf.ceh) then

flip(temp1,temp2);

:if strtoint(temp1^.inf.zarp)<strtoint(temp2^.inf.zarp) then

flip(temp1,temp2);;;;

org;:text;(f,'base.txt');(f);(f,newe.num);newe.num='99999' then exit;(f,newe.fio);read(f,newe.godr);(f,newe.pol);read(f,newe.stazh);(f,newe.razr);read(f,newe.ceh);(f,newe.uch);read(f,newe.zarp);(tabl);^.inf := newe;^.next := nil;^.prev := nil;:= tabl;:= tabl;(f);:= 1;true do begin(f,newe.num);newe.num='99999' then exit;(f,newe.fio);read(f,newe.godr);(f,newe.pol);read(f,newe.stazh);(f,newe.razr);read(f,newe.ceh);(f,newe.uch);read(f,newe.zarp);(tabl);^.inf := newe;^.next := nil;^.prev := right;^.next := tabl;:= tabl;(count);(f);;(f);;

procedure window(xs,ys:integer;cap:string);wind(w,h:integer;cap:string);,j,l,u:integer;:= (80-w) div 2;:= (25-h) div 2;i := l to l + w - 1 doj := u to u + h - 1 do(i,j);(' ');;(1);textbackground(3);(l,u);write('╔');(l + w-1,u);write('╗');(l,u + h-1);write('╚');(l + w-1,u + h-1);write('╝');i := u + 1 to u + h-2 do(l,i);('║');(l + w-1,i);('║');;i := l + 1 to l + w-2 do(i,u);('═');(i,u + h-1);('═');;(l + (w-length(cap) + 2) div 2-1,u);write(' ',cap,' ');;(1);textbackground(3);i := 40 downto ((80-xs) div 2) do(i,25 div 2);('─');(80-i-2,25 div 2);('─');(wdelay);;i := 1 to ys do(xs,i,cap);(wdelay + 20);;(0);(7);;

inp(x,y,size:integer;cap,def:string);,i:integer;:char;:string;:= x + length(cap) + 1;(x,y);(cap,' ');(1);i := 1 to size do write(' ');(15);(k,y);(def);(1);textbackground(3);;

input(x,y,size:integer;cap,def:string;num:boolean):string;,k,i:integer;:char;:string;:= x + length(cap) + 1;(x,y);(cap,' ');(1);i := 1 to size do write(' ');(15);(k,y);:= def;(s);(wherex-1,wherey);:= readkey;(ch<>#13) and (ch<>#27) then(ch=#8) and (length(s)>0) then delete(s,length(s),1) elsenum and (ch>='0') and (ch<='9') then(length(s)<size) and (length(s)>=0) and (ch<>#8) then s:=s+ch;(length(s)=size) and (ch<>#8) then s[length(s)] := ch;elsenot num then(length(s)<size) and (length(s)>=0) and (ch<>#8) then s:=s+ch;(length(s)=size) and (ch<>#8) then s[length(s)] := ch;;(k,y);i := 1 to size do write(' ');(k,y);(s);length(s)=size then gotoxy(wherex-1,wherey);;(ch=#13) or (ch=#27);(1);textbackground(3);:= s;;

show;(0);(7);(1,starty);

('write

'│ Номер │ ФИО │ Годр │ Пол │ Ст │ Р │ НЦ │ НУч. │ Зарп. │');';(1,starty + 3);:= getp(beg);i := 1 to lnum doi=lin then(7);(1);temp^.inf do('│ ',num,' │ ',fio,' │ ',godr,' │ ',pol,' │ ',stazh,' │ ',razr,' │ ',ceh,' │

',uch,' │ ',zarp,' │');(0);(7);elsetemp^.inf do('│ ',num,' │ ',fio,' │ ',godr,' │ ',pol,' │ ',stazh,' │ ',razr,' │ ',ceh,' │

',uch,' │ ',zarp,' │');:= temp^.next;;'(7);(0);:= trunc((100/count)*(beg + lin-1));(1,starty + lnum + 4);(15);('Запись №',cur:2,' из ',count);(80,starty + 2 + round((lnum/100)*perc));';(15);(1);(33,starty + lnum + 5);(' TAB - Menu ');;

menum:integer;:char;,lp:integer;:= 1;(25,9,'Menu');(c=#80) and (lp<7) then inc(lp);(c=#72) and (lp>1) then dec(lp);i := 1 to 7 do if i=lp then(7);textbackground(1);(28,8 + i);(mainmenu[i]);else(1);textbackground(3);(28,8 + i);(mainmenu[i]);;(1);textbackground(3);:= readkey;(c=#27) or (c=#13);c=#13 then menum := lp;;

saveto;:text;(f,'out.txt');(f);:= getp(beg);temp<>nil dotemp^.inf do(f,'│ ',num,' │ ',fio,' │ ',godr,' │ ',pol,' │ ',stazh,' │ ',razr,' │ ',ceh,' │

',uch,' │ ',zarp,' │');:= temp^.next;;(f);;

add;,er:integer;:string;(31,11,'Добавление:');(26,8,5,'Номер:','');(26,9,22,'ФИО:','');

inp(26,10,4,'Год рождения:','');(26,11,7,'Пол:','');(26,12,2,'Стаж:','');(26,13,1,'Разряд:','');(26,14,2,'Номер цеха:','');(26,15,4,'Номер участка:','');

inp(26,16,5,'Зарплата:','');:= input(26,8,5,'Номер:','',true);length(st)<5 then for p := 1 to 5-length(st) do st := st + ' ';.num := st;:= input(26,9,22,'ФИО:','',false);length(st)<22 then for p := 1 to 22-length(st) do st := st + ' ';.fio := st;:= input(26,10,4,'Год рождения:','',true);length(st)<4 then for p := 1 to 4-length(st) do st := st + ' ';.godr := st;:= input(26,11,7,'Пол:','',false);st<>'жен' then st:='муж';length(st)<7 then for p := 1 to 7-length(st) do st := st + ' ';.pol := st;:= input(26,12,2,'Стаж:','',true);length(st)<2 then for p := 1 to 2-length(st) do st := st + ' ';.stazh := st;:= input(26,13,1,'Разряд:','',true);.razr := st;:= input(26,14,2,'Номер цеха:','',true);length(st)<2 then for p := 1 to 2-length(st) do st := st + ' ';.ceh := st;:= input(26,15,4,'Номер участка:','',true);length(st)<4 then for p := 1 to 4-length(st) do st := st + ' ';.uch := st;:= input(26,16,5,'Зарплата:','',true);length(st)<5 then for p := 1 to 5-length(st) do st := st + ' ';.zarp := st;(tabl);^.inf := newe;^.next := nil;^.prev := right;^.next := tabl;:= tabl;(count);;

edit;,er:integer;:string;(31,11,'Добавление:');(26,8,5,'Номер:',getp(cur)^.inf.num);(26,9,22,'ФИО:',getp(cur)^.inf.fio);(26,10,4,'Год рождения:',getp(cur)^.inf.godr);(26,11,7,'Пол:',getp(cur)^.inf.pol);(26,12,2,'Стаж:',getp(cur)^.inf.stazh);(26,13,1,'Разряд:',getp(cur)^.inf.razr);(26,14,2,'Номер цеха:',getp(cur)^.inf.ceh);(26,15,4,'Номер участка:',getp(cur)^.inf.uch);(26,16,5,'Зарплата:',getp(cur)^.inf.zarp);:= input(26,8,5,'Номер:',getp(cur)^.inf.num,true);length(st)<5 then for p := 1 to 5-length(st) do st := st + ' ';(cur)^.inf.num := st;:= input(26,9,22,'ФИО:',getp(cur)^.inf.fio,false);length(st)<22 then for p := 1 to 22-length(st) do st := st + ' ';(cur)^.inf.fio := st;:= input(26,10,4,'Год рождения:',getp(cur)^.inf.godr,true);length(st)<4 then for p := 1 to 4-length(st) do st := st + ' ';(cur)^.inf.godr := st;:= input(26,11,7,'Пол:',getp(cur)^.inf.pol,false);st<>'жен' then st:='муж';length(st)<7 then for p := 1 to 7-length(st) do st := st + ' ';(cur)^.inf.pol := st;:= input(26,12,2,'Стаж:',getp(cur)^.inf.stazh,true);length(st)<2 then for p := 1 to 2-length(st) do st := st + ' ';(cur)^.inf.stazh := st;:= input(26,13,1,'Разряд:',getp(cur)^.inf.razr,true);(cur)^.inf.razr := st;:= input(26,14,2,'Номер цеха:',getp(cur)^.inf.ceh,true);length(st)<2 then for p := 1 to 2-length(st) do st := st + ' ';(cur)^.inf.ceh := st;:= input(26,15,4,'Номер участка:',getp(cur)^.inf.uch,true);length(st)<4 then for p := 1 to 4-length(st) do st := st + ' ';(cur)^.inf.uch := st;:= input(26,16,5,'Зарплата:',getp(cur)^.inf.zarp,true);length(st)<5 then for p := 1 to 5-length(st) do st := st + ' ';(cur)^.inf.zarp := st;;

del;cur=1 then:= left^.next;^.prev := nil;(left);:= temp;(count);elsecur=count then:= right^.prev;^.next := nil;(right);:= temp;(count);(beg);else:= getp(cur);^.prev^.next := temp^.next;^.next^.prev := temp^.prev;(temp);(count);;:= 1;:= 1;;

sortby:integer;:char;,lp:integer;

begin:= 1;(30,10,'Сортировать по:');

repeat(c=#80) and (lp<8) then inc(lp);(c=#72) and (lp>1) then dec(lp);i := 1 to 8 do if i=lp then(7);textbackground(1);(26,7 + i);(sortmenu[i]);else(1);textbackground(3);(26,7 + i);(sortmenu[i]);;(1);textbackground(3);:= readkey;(c=#27) or (c=#13);c=#13 then sortby := lp;;

inf;,nceh:integer;_v,sr_m,sr_w:longint;:string;:= 1;(7);:= left;:= left^.inf.ceh;[nceh].n := s;temp<>nil dos<>temp^.inf.ceh then(nceh);[nceh].n := temp^.inf.ceh;;:= temp^.inf.ceh;:= temp^.next;;i := 1 to nceh do:= left;temp<>nil dostrtoint(temp^.inf.ceh)=strtoint(cehnum[i].n) thentemp^.inf.pol='муж ' then inc(cehnum[i].rab_m) else

inc(cehnum[i].rab_w);temp^.inf.pol='муж ' then cehnum[i].zar_m := cehnum[i].zar_m +

strtoint(temp^.inf.zarp) else[i].zar_w := cehnum[i].zar_w + strtoint(temp^.inf.zarp);;:= temp^.next;;:= left;;(54,nceh + 8,'');(1);textbackground(3);(13,3);('');

gotoxy(13,4);('║ N цеха ║ Количество рабочих ║ Средняя зарплата ║');(13,5);('');(13,6);('║ ║ Всего ║ в том числе ║ Всего ║ в том числе ║');(13,7);('');(13,8);('║ ║ ║ Муж ║ Жен ║ ║ Муж ║ Жен ║');(13,9);('');

begin(13,9 + i);('║ ',cehnum[i].n,' ║ ',(cehnum[i].rab_w + cehnum[i].rab_m):2,' ║

',cehnum[i].rab_m:2,' ║ ',[i].rab_w:2,' ║ ');cehnum[i].zar_m<>0 then_m := cehnum[i].zar_m div cehnum[i].rab_m else sr_m := 0;cehnum[i].zar_w<>0 then_w := cehnum[i].zar_w div cehnum[i].rab_w else sr_w := 0;(cehnum[i].rab_w + cehnum[i].rab_m)<>0 then_v := (sr_w + sr_m) div 2 else sr_v := 0;(sr_v:5,' ║ ',sr_m:4,' ║ ',sr_w:4,' ║');;(13,10 + nceh);('');;;

help;(40,15,'Помощь');(1);textbackground(3);(22,6);('Клавиши управления программой:');

gotoxy(22,7);write('Up - на одну строку вверх');(22,9);write('Down - на одну строку вниз');(22,10);write('PgUp - на экран вверх');

gotoxy(22,11);write('PgDown - на экран вниз');

gotoxy(22,12);write('Home - в начало списка');

gotoxy(22,13);write('End - в конец списка');(22,14);write('Tab - меню');

gotoxy(22,15);write('Esc - выход');;;

close;;;(1);;

main;keypressed then:= readkey;ch=#71 then {home}:= 1;beg := 1;;ch=#9 then {tab}menum of

:add;

:edit;

:del;

:sort(sortby);

:inf;

:help;

:close;;;ch=#79 then {end}:= lnum;beg := count-lnum + 1;;(ch=#73) then {pageup}:= 1;:= beg-lnum;beg<1 then beg := 1;;(ch=#81) then {pagedown}:= lnum;:= beg + lnum;beg>(count-lnum) then beg := count-lnum + 1;;ch=#80 then {down}(lin);lin>lnum then:= lnum;(beg + lnum)<=count then inc(beg);;;ch=#72 then {up}(lin);lin<1 then:= 1;beg>1 then dec(beg);;;:= beg + lin-1;;;ch=#27;;

begin;:= 18;:= 2;:= 1;:= 1;:= 1;;;;;;;.

ПРИЛОЖЕНИЕ Б

Руководство оператора

Для выполнения прграммы необходимо запустить исполняемый файл KURS.EXE. После запуска программы на экране появляется окно - Рисунок 1

Рисунок 1 - основное окно программы


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

После нажатия на Tab появляется меню - Рисунок 2

Рисунок 2 - основное меню программы

При выборе пункта Добавление данных появляется окно ввода данных - Рисунок 3, в котором можно добавить новый элемент в список.

Рисунок 3 - добавление элемента

При выборе пункта Редактирование данных появляется окно ввода данных - Рисунок 4, в котором можно добавить новый элемент в список.

Рисунок 4 - редактирование данных

После выбора пункта Удаление данных будет удален текущий элемент.

Выбрав Сортировка данных появится окно выбора поля, по которому будет производиться сортировка - Рисунок 5.

Рисунок 5 - тип сортировки

Пункт Обработка данных - вычисляется количество всего рабочих, из них мужчин и женщин, средняя зарплата, а так же средняя зарплата у мужчин и женщин в отдельности - Рисунок 6.

Рисунок 6 - обработка данных

Пункт Помощь - помощь в управлении программой - Рисунок 7.

Рисунок 7 - помощь

Пункт Выход - выход из программы

Похожие работы на - Программа обработки информации о пропусках занятий студентами

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!