Создание информационной системы 'Учреждение образования'

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

Создание информационной системы 'Учреждение образования'

СОДЕРЖАНИЕ

Введение

. Выбор метода реализации задачи

.1 Обоснование метода реализации задачи

.2 Выделение функциональных частей

.3 Составление общего алгоритма

.4 Обоснование алгоритма отдельных функциональных частей

. Разработка тестовых приемов

. Разработка программы

. Тестирование и анализ результатов

Заключение

Список литературы

Приложения

ВВЕДЕНИЕ

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

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

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

В ходе выполнения курсового проекта будет создана информационная система “Учреждение образования”, которая может быть использована сотрудниками таких учреждений в целях облегчения поиска подходящей (необходимой) информации. Для лучшего использования в программе будет реализован удобный графический интерфейс и понятный любому пользователю диалоговый режим.

1. ВЫБОР МЕТОДА РЕАЛИЗАЦИИ ЗАДАЧИ

1.1 ОБОСНОВАНИЕ МЕТОДА РЕАЛИЗАЦИИ ЗАДАЧИ

Для написания информационной системы «Учреждение образования» будет выбран язык программирования Паскаль. Начинать изучение программирования лучше всего именно им - это единственный язык, который создан специально для обучения программированию. Паскаль имеет четкую систему типов данных, понятную словесную форму их описания, поддерживает как текстовый, так и графический режимы. Написанные на Паскале программы ближе всего к естественному языку. Программы записывают по синтаксису языка Паскаль, а стандартные слова - английским языком. Такая запись существенно улучшает понимание программы, а возможность автоматического перевода упрощает переход к профессиональным средам программирования. Язык Паскаль сыграл большую роль в развитии методов аналитического доказательства правильности программ и позволил реально перейти от методов отладки программ к системам автоматической проверки правильности программ.

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

-       легкость написания динамических программ и программ для работы с текстовой информацией;

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

-       низкие требования к аппаратуре и совместимость с широким кругом IBM-совместимых

Кроме набора средств, присущих современным языкам программирования высокого уровня (структурность, модульность, определяемые типы данных) в Паскаль включены средства для программирования "почти" на уровне ассемблера (использование указателей, побитовые операции, операции сдвига). Паскаль требует жесткой дисциплины программирования, содействующей устранению многих ошибок еще на стадии их трансляции. Данный язык не допускает использования принципов умолчаний и сокращений, требует строгого соблюдения соответствия типов данных, в нём жёстко регламентированы структура и место описания программных объектов.

Перечислим основные из них:

-       ограниченное использование типов данных, в полном объёме поддерживаются только арифметические типы данных.

-       вложенность блоков, в которых используются одноименные объекты, не должна превышать двух уровней.

-       процедурные блоки не должны быть внутри BEGIN-блоков, вложенность процедурных блоков не ограничивается.

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

-       ограниченное использование смешения различных типов данных.

В языке Паскаль операции отношения и рассмотренные ниже булевские операции более важны при написании программ, чем в других языках, так как они интенсивно используются для реализации разветвляющихся и циклических алгоритмов. Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию - в зависимости от того, для каких целей он создавался. Например, Паскаль <#"601491.files/image001.gif">

заставка (Рис. 4.1.).

После нажатия клавиши ENTER, на экране появляется горизонтальное меню (рис.4.2)

Рис. 4.2. Горизонтальное меню и информация.

Видно, что активный пункт меню - Новая. Нажимая клавиши управления курсором, перемещаюсь по пунктам меню. На пункте меню Новая нажимаю клавишу ENTER, на экране выводится сообщение (рис.4.3):

Рис. 4.3. Запрос на новую запись.

Ввожу следующую информацию:

Шифр

4653456

Фамилия

Петровский

Специальность

АСОИ

Имя

Евгений

Отчество

Иванович

Год поступления

1999


После ввода информации и нажатия клавиши ENTER, появляется запрос (рис.4.4). Нажимаю НЕТ - появляется первоначальная заставка (рис 4. 2.). Добавленную запись мы сразу же видим на экране.

Рис.4.4 Добавление записи.

Если бы мы нажали клавишу ДА, появилось снова бы сообщение (рис.4.3.).

Выход в главное меню при неполном заполнении записи осуществляется путём нажатия клавиши ESC.

Нажав клавишу TAB, видим, что появилась полная информация об окне (рис.4.5), расположенном первым по списку, нажимая клавиши ↓↑, мы перемещаемся по записям и наблюдаем полную информацию о каждом.

Рис. 4.5. Полная информация о записях.

При нажатии клавиш: DEL - появляется запрос (рис. 4.6.), ENTER - появляется такой же запрос, как и при создании новой записи (рис 4.3.), но поля уже содержат данные, INS -запрос о подтверждении переноса в архив (рис. 4.7.).

Рис. 4.6. Удаление записи

Рис 4.7. Перенос записи в архив.

Нажимаем клавишу ESC и возвращаемся в главное меню, выбираем пункт Поиск. Критерий поиска - любое поле записи (если же не указаны искомые данные, система выведет всю базу данных). Найдём всех студентов, факультета «АСОИ» (рис. 4.8.). В том случае, если программа не найдет записей по исходному запросу, то появится сообщение «Ничего не найдено!».

Рис. 4.8. Заполнение ключевых полей поиска.

Результат (рис.4.9), затем клавишей ESC возвращаемся в главное меню, выбираем пункт Сортировка. Появляется запрос (рис.4.10), перемещаясь с помощью клавиш ↓↑ выбираем сортируемое поле, например фамилия, результат (рис. 4.11.)

Рис. 4.9. Результат поиска.

Рис. 4.10. Запрос на сортировку.

Рис. 4.11. Результат сортировки.

Опять же клавишей ESC возвращаемся в главное меню, выбираем пункт Архив.

Нажимаем клавишу ENTER и просматриваем содержимое архива (поскольку мы не заносили туда никакой информации - результат пустой список). Возвращаемся в главное меню клавишей ESC, выбираем пункт Автор и нажимаем ENTER (рис 4.12.). Возвращение в главное меню - клавиша ESC.

Рис. 4.12. Краткая информация об авторе.

При выборе пункта меню Выход, мы возвращаемся в среду TP.

ЗАКЛЮЧЕНИЕ

В результате выполнения курсовой работы был разработан алгоритм реализации и написана программа для информационной системы «Учреждение образования». Данная программа позволяет создать базу данных, хранящую в себе данные о студентах (учащихся), таких как шифр, фамилия, имя, отчество, специальность, год поступления. Обеспечена возможность добавление записей, их редактирование и удаление.

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

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

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

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

СПИСОК ЛИТЕРАТУРЫ

-       Вальвачев А.Н., Крисевич В.С. Программирование на языке ПАСКАЛЬ для персональных ЭВМ ЕС: Справочное пособие. - Мн.: Выш. шк., 1989.

-       Базенков Т.Н., Дереченик С.С. СТ БПИ - 02 - 98. Графическая конструкторская документация электронной аппаратуры в курсовых и дипломных проектах (работах): Общие требования к разработке и правила оформления. - Брест, 1998.

-       ГОСТ 19.002 - 80 ЕСПД Схемы алгоритмов и программ. Правила выполнения. - М. : Издательство стандартов, 1990.

-       ГОСТ 19.003 - 80 ЕСПД Схемы алгоритмов и программ. Обозначения условные и графические. - М.: Издательство стандартов, 1990.

-       ГОСТ 19.701 - 90 ЕСПД Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. - М. : Издательство стандартов, 1990.

-       СТБПИ - 02 - 98 Стандарты института. Графическая конструкторская и программная документация электронной аппаратуры в курсовых и дипломных проектах (работах). Общие требования к разработке и правила оформления. - Брест : БПИ, 1998.

-       Епанешников А.М., Епанешников В.А.. «Программирование в среде TURBO PASCAL 7.0». Москва, «Диалог-мифи», 1996. Вальвачев А.Н., Крисевич В.С.. «Программирование на языка ПАСКАЛЬ». Минск, «Вышэйшая школа», 1989

ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ 1. БЛОК-СХЕМА АЛГОРИТМА



ПРИЛОЖЕНИЕ 2. ТЕКСТ ПРОГРАММЫ

kurs;crt;_Base=record {тип данных mag представляющий из себя запись с 6-ю переменными}

Record_Number:String[9]; {Шифр Студента}_Famile:string[40]; {Фамилия}_Special:string[20]; {Специальность}_Name:string[20]; {Имя}_Fathername:String[15]; {Отчество}_Year:String[20]; {Год поступления};=file of Record_Base;_Q=6;_S:array[0..MENU1_Q-1] of string[25] = ('Новая','Поиск','Сортировка','Архив','Автор','Выход');_S:array[1..6] of string[30] =

('Шифр : ','Фамилия : ','Специал. : ','Имя : ','Отчество : ','Год пост.: ');

FILENAME:string = 'Base.imm';ARCHIVNAME:string = 'Archiv.rar';='╔═ ДЕТАЛИ ════════════════════╗';='╔═ КРАТКИЕ ДАННЫЕ ═══════════╗';='╔═ ИНФОРМАЦИЯ ════════════════╗';:char;:word;,cod2,cod3,cod4,c1,c2,c3,c4,i,last1,last2,lastfile:integer;:string;,f1:FileType;:Record_Base;,n,flag,archiv:boolean;enter(x,y:integer;max:integer;mode:string;var flag:boolean;var str:string);s:string; c:char;:=mode; while keypressed do c:=readkey;gotoxy(x,y); for i:=1 to max do write(' '); gotoxy(x,y); write(s);c:=readkey;if ord(c)=0 then begin c:=readkey; c:=#0; end; until (ord(c)<>0);ord(c) of 8 : delete(s,length(s),1); end;(length(s)<max) and (ord(c)<>8) and (ord(c)<>13) then s:=s+c;(ord(c)=13) or (ord(c)=27); flag:=c=#27;:=s;;Panel(var x:integer;var n:word);leng,i,j:word; c:char;(1,1,80,1); leng:=80 div MENU1_Q;window(2,18,Length(STR1)-1,23); textattr:=$0f;; gotoxy(2,2); write('Нажмите "Tab", чтобы увидеть');(5,3); write('полную информацию');(6,4); write('или "Enter", чтобы '); textattr:=$0f;x of

:begin gotoxy(1,5);write('добавить новую запись в базу');end;

:begin gotoxy(5,5);write('найти запись в базе');end;

2:begin gotoxy(3,5);write('сортировать записи в базе');end;

:begin gotoxy(1,5);if archiv then write(' просмотреть содержимое базы')write('просмотреть содержимое архива');end;

:begin gotoxy(2,5);write('увидеть информацию об авторе');end;

:begin gotoxy(6,5);write('выйти из программы');end;

end;(1,1,80,1); textattr:=$07;; textattr:=$1b;i:=0 to MENU1_Q-1 do beginx=i then textattr:=$3f; for j:=1 to (leng-length(MENU1_S[i])) div 2 do(' '); write(MENU1_S[i]);j:=1 to (leng-length(MENU1_S[i])) div 2 do(' '); textattr:=$1b; end;:=readkey;if ord(c)=0 then c:=readkey; case ord(c) of

: x:=(x+1)*ord(x<>MENU1_Q-1);

: x:=(x-1)*ord(x<>0)+(MENU1_Q-1)*ord(x=0);

: n:=111n:=x;;(ord(c)=27) or (ord(c)=13) or (ord(c)=9);:=$07; Window(1,1,80,50); if ord(c)=27 then halt;;windows(x,y:integer;height,widgth,mode:integer;message:string):boolean;:array [1..1] of string[20] = (' ВНИМАНИЕ! ');=' ДА '; Button2=' НЕТ '; Button3=' OK ';:pointer; i,j,k:integer; c:char; t:boolean; oldmaxx,oldmaxy,oldminx,oldminy:integer;,cur2:byte;:=lo(windmax)+1; oldmaxy:=hi(windmax)+1;:=lo(windmin)+1; oldminy:=hi(windmin)+1;; window(1,1,80,25); getmem(p,(height+1)*(widgth+2)*2);

{Save window} for i:=0 to height do for j:=0 to (widgth+2)*2-1 do(ptr(segb800,80*2*(y+i-1)+x*2-2+j)^,ptr(seg(p^),ofs(p^)+i*((widgth+2)*2)+j)^,1);

{Print window} textattr:=$1b; window(x,y,x+widgth-1,y+height-1);; window(1,1,80,25); gotoxy(x+(widgth-length(message)) div 2,y+1);write(message);(x,y);write(#201); for i:=1 to round((widgth-length(STR[mode])-2)/2) do(#205); write(STR[mode]); for i:=1 to (widgth-length(STR[mode])-2) div 2 do(#205); write(#187);i:=1 to height-2 do(x,y+i);write(#186); gotoxy(x+widgth-1,y+i);write(#186);;(x,y+height-1); write(#200);i:=1 to widgth-2 do Write(#205); write(#188);

{Making dark area}:=$08; for i:=1 to height-1 dok:=0 to 1 do move(j,ptr(segb800,80*2*(y-1+i)+(x+k)*2+widgth*2-1)^,1);i:=1 to widgth do move(j,ptr(segb800,80*2*(y+height-1)+(x+1)*2+i*2-1)^,1);:=true; case mode of

:t=true then textattr:=$3f else textattr:=$07;(x+3,y+3);write(Button1); if t=false then textattr:=$3f else textattr:=$07;(x+widgth-3-length(Button2),y+3);write(Button2);:=readkey; case ord(c) of 75 : t:=true; 77 : t:=false; end;(ord(c)=13) or (ord(c)=27) or (ord(c)=32);ord(c)=27 then t:=false; end;

:textattr:=$3b;(Widgth div 2+x-length(Button3) div 2,height div 2+1+y);write(Button3);:=readkey; until (ord(c)=27) or (ord(c)=13) or (ord(c)=32);; {Print old window}i:=0 to height do for j:=0 to (widgth+2)*2-1 do(ptr(seg(p^),ofs(p^)+i*((widgth+2)*2)+j)^,ptr(segb800,80*2*(y+i-1)+x*2+j-2)^,1);(p); window(oldminx,oldminy,oldmaxx,oldmaxy);:=t;;windows_enter(x,y:integer;height,widgth:integer;mode:integer;var man:Record_Base;var flag,l:boolean);

const=' Пожалуйста, введите информацию ';:pointer; i,j,k:integer; c:char; oldmaxx,oldmaxy,oldminx,oldminy:integer;,cur2:byte; str:string;:=lo(windmax)+1; oldmaxy:=hi(windmax)+1;:=lo(windmin)+1; oldminy:=hi(windmin)+1;ah,03h10hcur1,chcur2,cl;(1,1,80,25); getmem(p,(height+1)*(widgth+2)*2);

{Save window} for i:=0 to height do for j:=0 to (widgth+2)*2-1 do(ptr(segb800,80*2*(y+i-1)+x*2-2+j)^,ptr(seg(p^),ofs(p^)+i*((widgth+2)*2)+j)^,1);

{Print window}:=$1b; window(x,y,x+widgth-1,y+height-1);; window(1,1,80,25); gotoxy(x,y);write(#201);i:=1 to round((widgth-length(STRin)-2)/2) do Write(#205);(STRin); for i:=1 to (widgth-length(STRin)-2) div 2 do(#205); write(#187);i:=1 to height-2 do begin gotoxy(x,y+i);write(#186);(x+widgth-1,y+i);write(#186); end;(x,y+height-1); write(#200); for i:=1 to widgth-2 do Write(#205);(#188); {Making dark area} j:=$08;i:=1 to height-1 do for k:=0 to 1 do(j,ptr(segb800,80*2*(y-1+i)+(x+k)*2+widgth*2-1)^,1);i:=1 to widgth do move(j,ptr(segb800,80*2*(y+height-1)+(x+1)*2+i*2-1)^,1);i:=1 to 12 do(x+3,y+i); write(MENU2_S[i]); end;(mode=1) or (mode=2) then with man do begin_Number:='';Record_Famile:='';_Special:='';Record_Name:='';Record_Fathername:='';Record_Year:='';; textattr:=$1f; with man do begin(Length(MENU2_S[1])+x+3,1+y);Write(Record_Number);(Length(MENU2_S[2])+x+3,2+y);Write(Record_Famile);(Length(MENU2_S[3])+x+3,3+y);Write(Record_Special);(Length(MENU2_S[4])+x+3,4+y);Write(Record_Name);(Length(MENU2_S[5])+x+3,5+y);Write(Record_Fathername);(Length(MENU2_S[6])+x+3,6+y);Write(Record_Year);;Man doif (mode=1) or (mode=3) thenEnter(x+3+Length(MENU2_S[1]),y+1,15,Record_Number,flag,Str);(length(Str)=0) and (not flag) then windows(23,9,5,36,2,'Это поле обязательно для ввода!'); textattr:=$1f;(length(Str)<>0) or flag else(x+3+Length(MENU2_S[1]),y+1,15,'',flag,Str);_Number:=str; if (mode=1) or (mode=3) thenif not flag then(x+3+Length(MENU2_S[2]),y+2,20,'',flag,Str);(length(Str)=0) and (not flag) then windows(23,9,5,36,2,'Это поле обязательно для ввода!'); textattr:=$1f;(length(Str)<>0) or flag else if not flag then(x+3+Length(MENU2_S[2]),y+2,20,'',flag,Str);_Famile:=str; if not flag then(x+3+Length(MENU2_S[3]),y+3,20,Record_Special,flag,str);Record_Special:=str;not flag then(x+3+Length(MENU2_S[4]),y+4,20,Record_Name,flag,str);Record_Name:=str;not flag then(x+3+Length(MENU2_S[5]),y+5,15,Record_Fathername,flag,str);Record_Fathername:=str;not flag then(x+3+Length(MENU2_S[6]),y+6,18,Record_Year,flag,str);Record_Year:=str;;:=$0b; if mode=1 then

l:=windows(23,9,5,30,1,'Продолжать вводить записи?');

{Print old windows} for i:=0 to height do for j:=0 to (widgth+2)*2-1 do(ptr(seg(p^),ofs(p^)+i*((widgth+2)*2)+j)^,ptr(segb800,80*2*(y+i-1)+x*2+j-2)^,1);(p); window(oldminx,oldminy,oldmaxx,oldmaxy);;windows_sort (x,y:integer; height, widgth: integer; var flag:boolean; var n:integer);

const STRin=' Выберите поле сортировки ';

var p:pointer; i,j,k: integer; c:char; oldmaxx, oldmaxy, oldminx, oldminy: integer;,cur2:byte; str:string;:=lo(windmax)+1; oldmaxy:=hi(windmax)+1; oldminx:=lo(windmin)+1;:=hi(windmin)+1; window(1,1,80,25); getmem(p,(height+1)*(widgth+2)*2);

{Save window} for i:=0 to height do for j:=0 to (widgth+2)*2-1 do(ptr(segb800,80*2*(y+i-1)+x*2-2+j)^,ptr(seg(p^),ofs(p^)+i*((widgth+2)*2)+j)^,1);

{Print window} textattr:=$1b; window(x,y,x+widgth-1,y+height-1); clrscr;(1,1,80,25); gotoxy(x,y);write(#201); for i:=1 to round((widgth-length(STRin)-2)/2) do(#205); write(STRin); for i:=1 to (widgth-length(STRin)-2) div 2 do(#205); write(#187); for i:=1 to height-2 do begin(x,y+i);write(#186); gotoxy(x+widgth-1,y+i);write(#186); end;(x,y+height-1); write(#200); for i:=1 to widgth-2 do Write(#205);(#188); {Making dark area} j:=$08; for i:=1 to height-1 do for k:=0 to 1 do(j,ptr(segb800,80*2*(y-1+i)+(x+k)*2+widgth*2-1)^,1); for i:=1 to widgth do(j,ptr(segb800,80*2*(y+height-1)+(x+1)*2+i*2-1)^,1); for i:=1 to 12 dogotoxy(x+3,y+i); write(MENU2_S[i]); end;:=false; n:=1; textattr:=$1f; repeat gotoxy(x+23,y+n); write(#17,#205,#205,#205); c:=readkey;if ord(c)=0 then c:=readkey; gotoxy(x+23,y+n); write(' ');ord(c) of 72 : n:=12*ord(n=1)+(n-1)*ord(n<>1);

: n:=1*ord(n=12)+(n+1)*ord(n<>12); end;(ord(c)=27) or (ord(c)=13); if ord(c)=27 then flag:=true;:=$1b; {Print old windows} for i:=0 to height doj:=0 to (widgth+2)*2-1 do(ptr(seg(p^),ofs(p^)+i*((widgth+2)*2)+j)^,ptr(segb800,80*2*(y+i-1)+x*2+j-2)^,1);(p); window(oldminx,oldminy,oldmaxx,oldmaxy);;ramka1(Nach:integer);i:integer;(1,2,Length(STR1),16); textattr:=$0b; clrscr; window(1,2,Length(STR1),17);:=$0b; gotoxy(1,Nach); if (Nach>0) and (Nach<=22) then Write(STR1);i:=Nach+1 to Nach+14 do if (i>0) and (i<=22) then begin(1,i);write(#186); gotoxy(31,i);write(#186); end;(Nach+14>0) and (Nach+14<=22) then begin gotoxy(1,Nach+14); Write(#200);i:=1 to 29 do write(#205); write(#188); end; window(2,2,Length(STR1)-1,16);:=$0b; for i:=1 to 12 do if (i+Nach>0) and (i+Nach<22) thengotoxy(1,i+Nach); write(MENU2_S[i]); end; window(1,1,80,25);;ramka2;(1,1,80,25); textattr:=$0b; gotoxy(32,3); Write(STR2);(32,4);Write(#186,'Шифр',#25); gotoxy(44,4);Write('Фамилия');(64,4);Write('Специальность'); gotoxy(80,4);write(#186);(32,5);write(#204); for i:=1 to 47 do write(#205); write(#185);i:=6 to 24 do begin gotoxy(32,i);write(#186); gotoxy(80,i);write(#186);; gotoxy(32,25);write(#200); for i:=1 to 47 do write(#205); write(#188);;ramka3;i:integer;(1,17,Length(STR1),25); textattr:=$0b; writeln(STR3); for i:=2 to 7 dogotoxy(1,i);write(#186); gotoxy(length(STR3),i);write(#186);; write(#200); for i:=1 to length(STR3)-2 do write(#205);(#188); window(1,1,80,25);End;Delete(l:integer);man:Record_Base;(f,l+1); while not eof(f) do begin read(f,man); seek(f,filepos(f)-2); write(f,man); seek(f,filepos(f)+1); end; seek(f,filesize(f)-1); truncate(f);;Init(FILENAME:string);(f,FILENAME); {$I-} reset(f); if IOResult<>0 thenrewrite(f); if IOResult<>0 then begin; writeln('Error while creating new file program will be terminated');(red+blink); Writeln('PRESS ENTER!');:=$07; Readln; Halt(1); end; end; close(f); {$I+};Show_ramka;ramka:=true;i:=-17 to 1 dowindow(1,2,Length(STR1),16); clrscr; ramka1(i); delay(round(sqr(i+30)));;;Hide_Ramka;ramka:=false;i:=1 downto -17 do begin window(1,2,Length(STR1),16); clrscr;(i); delay(round(sqr(i+30))); end;;New_String;Man:Record_Base; i:integer; c:char; str:string; l:boolean;(f); window(2,18,Length(STR1)-1,22); textattr:=$0f; clrscr; gotoxy(11,3);Write('Пожалуйста,'); gotoxy(7,4);Write('введите информацию'); window(3,3,Length(STR1)-1,15); Repeat windows_enter(15,4,14,50,1,man,flag,l);not flag then begin seek(f,filesize(f)); write(f,Man);last2+filesize(f)-lastfile-1<=19 thenif filesize(f)=1 then textattr:=$1f else textattr:=$0b;(33,5,79,23);(1,last2+filesize(f)-lastfile-1);clreol;write(man.Record_Number);(12,last2+filesize(f)-lastfile-1);write(man.Record_Famile);(32,last2+filesize(f)-lastfile-1);write(man.Record_Special); end;; Until not l; close(f);;Fill_Ramka2(n:integer);i,k:integer; Man:Record_Base;(f); textattr:=$0b; window(33,5,79,23); clrscr; i:=1;(i<20) and (not eof(f)) do begin read(f,man); if i=n then begin:=$1f; gotoxy(1,n); clreol; end;(1,i);write(man.Record_Number);(12,i);write(man.Record_Famile);(32,i);write(man.Record_Special);i=n then textattr:=$0b; inc(i); end; window(1,1,80,25); close(f);;ramka2_move(var x,l:integer);c:char; k:integer; man:Record_Base; flag,h:boolean;:file of Record_Base;(2,18,Length(STR1)-1,23); textattr:=$0f;; gotoxy(1,2); write(#24,' или ',#25,' - двигать курсор');

gotoxy(1,3); write('"del" - удалить запись');(1,4); write('"Enter"-редактировать запись');

gotoxy(1,5); if archiv then write('"Ins" - перенести в базу') else('"Ins" - перенести в архив'); if not ramka then Show_Ramka;(f); seek(f,l); if filesize(f)>0 thenread(f,man); seek(f,l);; repeat textattr:=$0f; if filesize(f)>0 thenwindow(3,3,Length(STR1)-1,16);Man do begin(Length(MENU2_S[1]),1);clreol;Write(Record_Number);(Length(MENU2_S[2]),2);clreol;Write(Record_Famile);(Length(MENU2_S[3]),3);clreol;Write(Record_Special);(Length(MENU2_S[4]),4);clreol;Write(Record_Name);(Length(MENU2_S[5]),5);clreol;Write(Record_Fathername);(Length(MENU2_S[6]),6);clreol;Write(Record_Year);; end else ramka1(1);(33,5,79,23); c:=readkey;if ord(c)=0 then c:=readkey;((ord(c)=72) and (filepos(f)>0)) or ((ord(c)=80) and (filepos(f)+1<filesize(f))) and (filesize(f)>0) then begin read(f,man);(f,filepos(f)-1); textattr:=$0b;(1,x); clreol; gotoxy(1,x);write(man.Record_Number);(12,x);write(man.Record_Famile); gotoxy(32,x);write(man.Record_Special);; case ord(c) of

:if (filepos(f)>0) and (filesize(f)<>0) thenif x=1 then begin gotoxy(1,x); insline; end else dec(x);(f,filepos(f)-1); read(f,man); seek(f,filepos(f)-1); end;

:if (filepos(f)+1<filesize(f)) and (filesize(f)<>0) then begin if x=19 thengotoxy(1,1); delline; end else inc(x); seek(f,filepos(f)+1); read(f,man);(f,filepos(f)-1); end; 83 : if filesize(f)<>0 then if windows(23,9,5,30,1,'Вы точно хотите удалить?') thentextattr:=$0b;:=filepos(f); delete(k); gotoxy(1,x); delline; if (k+19-x)<=filesize(f)-1 thenseek(f,k+19-x); read(f,man); seek(f,k); gotoxy(1,19);write(man.Record_Number);(12,19);write(man.Record_Famile); gotoxy(32,19);write(man.Record_Special);; if (k>filesize(f)-1) and (filesize(f)<>0) thenseek(f,k-1); dec(x); end else seek(f,k); if filesize(f)<>0 thenread(f,man); seek(f,filepos(f)-1); end;:=filepos(f); end;

: if filesize(f)<>0 then beginarchiv then h:=windows(23,9,5,30,1,'Перенести в базу?')

else h:=windows(23,9,5,30,1,'Перенести в архив?');

if h then begin {$I-} assign(f1,ARCHIVNAME); reset(f1); if IOResult<>0 then rewrite(f1);IOResult<>0 then halt(1); seek(f1,filesize(f1));(f1,man); close(f1); {$I+} k:=filepos(f);(k); gotoxy(1,x); delline; if (k+19-x)<=filesize(f)-1 thenseek(f,k+19-x); read(f,man); seek(f,k); gotoxy(1,19);write(man.Record_Number);(12,19);write(man.Record_Famile); gotoxy(32,19);write(man.Record_Special);; if (k>filesize(f)-1) and (filesize(f)<>0) thenseek(f,k-1); dec(x); end else seek(f,k); if filesize(f)<>0 then begin read(f,man); seek(f,filepos(f)-1); end; k:=filepos(f); end; end; 13 : begin windows_enter(15,4,14,50,3,man,flag,h); if not flag thenwrite(f,man); seek(f,filepos(f)-1); end else begin(f,man); seek(f,filepos(f)-1); end; end; end; if filesize(f)<>0 thengotoxy(1,x); textattr:=$1f; clreol; gotoxy(1,x);write(man.Record_Number);(12,x);write(man.Record_Famile); gotoxy(32,x);write(man.Record_Special);; l:=filepos(f); until (ord(c)=9) or (ord(c)=27); seek(f,0); close(f); Hide_ramka;(2,18,Length(STR1)-1,23); textattr:=$1b; clrscr; window(1,1,80,25);;About;(2,18,Length(STR1)-1,23); clrscr;(2,3); Write(' Сачевичик Алексей, АС-563 Январь 2012 ');

readkey; clrscr; window(1,1,80,25);;Find;Number:array[1..1000] of word; man1,man2:Record_Base; i,max,x,k,s,p:word;d,flag,l :boolean;(2,18,Length(STR1)-1,23); textattr:=$0f; clrscr;(11,3);Write('Пожалуйста,'); gotoxy(7,4);Write('введите информацию');:=$0f; windows_enter(15,4,14,50,2,man1,flag,l);(f); i:=0;if not flag thenbegin window(33,5,79,23);; while not eof(f) do begin read(f,Man2);:=(Man1.Record_Number=copy(Man2.Record_Number,1,length(Man1.Record_Number))) or (Man1.Record_Number='');:=d and ((Man1.Record_Famile=copy(Man2.Record_Famile,1,length(Man1.Record_Famile))) or (Man1.Record_Famile=''));:=d and ((Man1.Record_Special=copy(Man2.Record_Special,1,length(man1.Record_Special))) or (Man1.Record_Special=''));:=d and ((Man1.Record_Name=copy(Man2.Record_Name,1,length(man1.Record_Name))) or (Man1.Record_Name=''));:=d and ((Man1.Record_Fathername=copy(Man2.Record_Fathername,1,length(man1.Record_Fathername)))(Man1.Record_Fathername=''));:=d and ((Man1.Record_Year=copy(Man2.Record_Year,1,length(man1.Record_Year))) or (Man1.Record_Year='')); if d then begini=0 then textattr:=$1f else textattr:=$0b; if i<=18 thengotoxy(1,i+1);clreol; gotoxy(1,i+1);write(man2.Record_Number);(12,i+1);write(man2.Record_Famile); gotoxy(32,i+1);write(man2.Record_Special);; inc(i); Number[i]:=filepos(f)-1; end; end;if i>0 then begin if not ramka then show_ramka; max:=i; i:=1; x:=1; if max<>0 then begin seek(f,Number[1]);(f,man1); seek(f,Number[1]); end; window(2,18,Length(STR1)-1,23); textattr:=$0f;; gotoxy(1,2); write(#24,' или ',#25,' - двигать курсор');(1,3); write('"del" - удалить запись'); gotoxy(1,4);('"Enter"-редактировать запись'); gotoxy(1,5); if archiv then('"Ins" - перенести в базу') else write('"Ins" - перенести в архив');

repeat textattr:=$0f; if max<>0 then begin window(3,3,Length(STR1)-1,16);Man do begin(Length(MENU2_S[1]),1);clreol;Write(Man1.Record_Number);(Length(MENU2_S[2]),2);clreol;Write(Man1.Record_Famile);(Length(MENU2_S[3]),3);clreol;Write(Man1.Record_Special);(Length(MENU2_S[4]),4);clreol;Write(Man1.Record_Name);(Length(MENU2_S[5]),5);clreol;Write(Man1.Record_Fathername);(Length(MENU2_S[6]),6);clreol;Write(Man1.Record_Year);;ramka1(1);window(33,5,79,23); end; c:=readkey;if ord(c)=0 then c:=readkey; if ((ord(c)=72) and (i>1)) or ((ord(c)=80) and (i<max)) and (max>0) thentextattr:=$0b; gotoxy(1,x); clreol; seek(f,Number[i]); read(f,man1);(1,x);write(man1.Record_Number); gotoxy(12,x);write(man1.Record_Famile);(32,x);write(man1.Record_Special); end; case ord(c) of 72:if (i>1) and (max<>0) thenif x=1 then begin gotoxy(1,x); insline; end else dec(x);(i); end; 80 :if (i<max) and (max<>0) then beginx=19 then begin gotoxy(1,1); delline; end else inc(x); inc(i); end;

:filesize(f)<>0 then begin if archiv then l:=windows(23,9,5,30,1,'Перенести в базу?')l:=windows(23,9,5,30,1,'Перенести в архив?'); if l then{$I-} assign(f1,ARCHIVNAME); reset(f1); if IOResult<>0 then rewrite(f1);IOResult<>0 then halt(1); seek(f1,filesize(f1)); write(f1,man1);(f1); {$I+} textattr:=$0b; delete(Number[i]); for k:=1 to max dok>=i then if k+1<=max then Number[k]:=Number[k+1]-1; dec(max);(1,x); delline; if (19-x+i)<=max then begin(f,Number[19-x+i]); read(f,man1); gotoxy(1,19);write(man1.Record_Number);(12,19);write(man1.Record_Famile); gotoxy(32,19);write(man1.Record_Special);; if (i>max) and (max<>0) then begin(x); dec(i); end; end; end;

: if max<>0 then if windows(23,9,5,30,1,'Вы точно хотите удалить?') thentextattr:=$0b; delete(Number[i]); for k:=1 to max dok>=i then if k+1<=max then Number[k]:=Number[k+1]-1;(max); gotoxy(1,x); delline; if (19-x+i)<=max then begin(f,Number[19-x+i]); read(f,man1); gotoxy(1,19);write(man1.Record_Number);(12,19);write(man1.Record_Famile); gotoxy(32,19);write(man1.Record_Special);; if (i>max) and (max<>0) then begin dec(x); dec(i); end; end;

:windows_enter(15,4,14,50,3,man1,flag,l); if not flag thenseek(f,Number[i]); write(f,man1); seek(f,Number[i]); endbegin seek(f,Number[i]); read(f,man1); seek(f,Number[i]); end; end; end;(33,5,79,23); if max<>0 then begin gotoxy(1,x); textattr:=$1f;; seek(f,Number[i]); read(f,Man1); gotoxy(1,x);write(man1.Record_Number);(12,x);write(man1.Record_Famile); gotoxy(32,x);write(man1.Record_Special);; until (ord(c)=9) or (ord(c)=27); Hide_ramka;else windows(23,9,5,30,2,'Ничего не найдено!');end; close(f);:=1;lastfile:=0; fill_ramka2(last2);End;sort;,min,temp:Record_Base; m,i,j,l:integer; d:boolean;(f); windows_sort(15,4,14,50,flag,l); if not flag theni:=0 to filesize(f)-1 do begin seek(f,i); read(f,min); m:=i;(f,i); for j:=i to filesize(f)-1 do begin:=true; read(f,man); d:=(Man.Record_Number<min.Record_Number) or (l<>1);val(Man.Record_Famile,c1,cod1);val(min.Record_Famile,c2,cod2);:=d and ((c1<c2) or (l<>2));val(Man.Record_Special,c3,cod3);val(min.Record_Special,c4,cod4);:=d and ((c3<c4) or (l<>3));:=d and ((Man.Record_Name<min.Record_Name) or (l<>4));:=d and ((Man.Record_Fathername<min.Record_Fathername) or (l<>5));:=d and ((Man.Record_Year<min.Record_Year) or (l<>6));d then begin min:=man; m:=j; end; end; seek(f,i); read(f,man); temp:=man;(f,i); write(f,min); seek(f,m); write(f,man); end; close(f); last2:=1;lastfile:=0;_ramka2(Last2);End;Zastavka;i:integer;; window(7,4,77,19); textcolor(15); textbackground(1);(chr(186),' ___ ___ ___ ____ ___ ___ ',chr(186));(chr(186),' | | | | | | | | | | | | | | | | \ / ',chr(186));(chr(186),' |__ |___| ___| |___| | | |___| |___| |___| |__ | \/ ',chr(186));(chr(186),' | | | | | | | _|___|_ | | | | | | | || / \ ',chr(186));(chr(186),' |__| | | ___| | | | || | | | | | |__|| / \ ',chr(186));(chr(186),' ',chr(186));(chr(186),' __ ____ ',chr(186));(chr(186),' | | | | | ',chr(186));(chr(186),' |__| |___| __| ',chr(186));(chr(186),' | | | | ',chr(186));(chr(186),' |___| ___| ____| ',chr(186));(3,22,77,25); textcolor(15);textbackground(1);(' Программа разработана студентом группы АС-563,(с) Сачевичик Алексей');(' Нажмите <Enter> для продолжения'); textbackground(blue); readln;; window(1,1,80,25);movetoarchiv;archiv then begin filename:='Base.imm'; Archivname:='archiv.rar';_s[3]:='Архив'; end else begin filename:='Archiv.rar'; Archivname:='Base.imm';_s[3]:=' База'; end; init(Filename); Fill_ramka2(1); archiv:=not archiv;:=1;lastfile:=0;end;;(FILENAME);ax,0003h10h;:=false;:=$1b;(1,1,80,25);;(black);;;Fill_ramka2(1);;:=false;:=1;lastfile:=0;(last1,z);z of

:Find;

:sort;

:MovetoArchiv;

:About;

:ramka2_move(last2,lastfile);;z=5;(1,1,80,25);;

End.

Похожие работы на - Создание информационной системы 'Учреждение образования'

 

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