Рефераты
 

Информационно-справочная система по науке и технике. Средства передвижения

Информационно-справочная система по науке и технике. Средства передвижения

48

РЕФЕРАТ

Пояснительная записка: 42 с., 6 рис., 1 табл.

Информационно-справочная система по истории науки и техники.

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

В данном программном продукте реализованы следующие возможности:

Удобная навигация по имеющимся в программе меню с легко доступной для понимания графической реализацией

Достаточно упрощенный и одновременно удобный просмотр текстового материала из базы в специальном графическом окне

Возможность поиска в текстовом материале заданного слова или фразы (включая те, которые повторяются несколько раз)

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

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

Возможность создания или добавления собственного материала в базу информационно-справочной системы

Система помощи, исчерпывающе отображающая необходимые навыки обращения с программой

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

ИСТОРИЯ, РАЗРАБОТКИ, ИЗОБРЕТЕНИЯ, ТЕХНИКА, ЗНАНИЯ, ОПЫТ, ПОИСК, ТЕСТИРОВАНИЕ, ТЕОРЕТИЧЕКСИЙ МАТЕРИАЛ.

ВВЕДЕНИЕ

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

Греческое слово "техника" (techne - искусство, ремесло, мастерство) подразумевает под собой знания и опыт, накопленные в процессе развития общества. На сегодняшний день вопрос о хранении и упорядочивании накопленной информации остается актуальным. Данная информационно-справочная система позволяет эффективно хранить необходимую пользователю информацию и осуществлять быструю навигацию по накопленному в базе материалу.

1. ПОСТАНОВКА ЗАДАЧИ

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

2. АНАЛИЗ СУЩЕСТВУЮЩИХ АНАЛОГОВ

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

Также необходимо учитывать и то, что подавляющее большинство аналогов разработаны для наиболее популярных операционных систем. Таких как Windows. Конечно, эта ОС дает возможность создания максимально комфортного для пользователя интерфейса, однако не у всех пользователей имеется аппаратная возможность компьютера для установки операционных систем выше MS-DOS. Не для кого не секрет, что пользователей с такими компьютерами совсем немного, но все же о них забывать не стоит…

3. ОБОСНОВАНИЕ ВЫБОРА ЯЗЫКА ПРОГРАММИРОВАНИЯ

Данный курсовой проект написан на языке Turbo Pascal версии 7.0

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

4. ОПИСАНИЕ И ОБОСНОВАНИЕ ВЫБОРА МЕТОДА РЕШЕНИЯ

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

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

5. ОПИСАНИЕ И ОБОСНОВАНИЕ ВХОДНЫХ И ВЫХОДНЫХ СТРУКТУР

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

Strs: Array [1. .250] of String;

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

ReadFile: Text;

Материал информационно-справочной системы может быть определен на усмотрение пользователя. Это было достигнуто путем создания внешнего текстового файла - "base. lks". Этот файл может быть корректироваться прямо в программе путем выбора необходимого пункта в главном меню. Его структура условно разбита на несколько пар строк, где вышестоящая строка - тема материала в информационной базе, а нижестоящая - путь к этой теме на диске. То есть:

"

Автомобиль

C: \inf\auto. txt

Самолет

C: \inf\plane. txt

"

Что касается реализации пользовательских меню, то их за отображение отвечает массив строк с элементами-константами, соответствующими пунктам в пользовательских меню.

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

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

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

6. ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ

Структура программы представляет собой комплекс процедур и функций. Этот комплекс подпрограмм составляет общую функциональность всей программы в целом.

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

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

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

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

7. ОПИСАНИЕ ПРОГРАММНОЙ РЕАЛИЗАЦИИ

Ниже перечислены процедуры, которые встречаются в программе.

Procedure Copt(i1, i2: Byte);

Процедура для изменения цвета фона и шрифта в программе

Procedure CurVisible(Strg: string);

Применяется для включения и выключения видимости мигающего курсора

Procedure BarInfo;

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

Procedure fMove (Opt: Byte);

Вызывается при нажатии клавиш для навигации в читаемом файле и последующего вывода содержимого файла на нужную позицию. Перемещения в файле: вверх, вниз, Page Up, Page Down, в начало или конец файла.

Procedure InitFile(DealF: String);

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

Procedure iFace;

Сначала очищает экран, затем прорисовывает разработанный интерфейс и создает окно для отображения файлов из информационно-справочной базы.

Procedure SearchText;

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

Procedure ShowBase;

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

Procedure AddTheme;

Добавляет новый материал в информационно-справочную базу.

Procedure Testing;

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

Procedure AboutProgram;

Отображает титульный лист с информацией об авторе программы.

Procedure UpMenu(Indeff: byte);

Процедура для реализации рабочего главного меню.

Procedure WatchPressed;

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

8. АНАЛИЗ ЭФФЕКТИВНОСТИ

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

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

ВЫВОДЫ

После завершения работы над программой, её можно протестировать и выявить как достоинства, так и недостатки. Мною были выполнены поставленные задачи, а именно:

в программе был реализован удобный графический пользовательский интерфейс

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

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

Среди недостатков программы стоит отметить тот факт, что программа не способна отображать файлы, имеющие больше 250 строк.

В будущем, возможна модернизация программы в следующих направлениях:

сделать программу более удобной при чтении материала из информационной базы;

сделать программу под более современную операционную систему;

Список использованной литературы

"Программирование в среде Turbo Pascal 7.0", А.И. Марченко; 1998

Конспект лекций по предмету "ОП и АЯ"

Книга рекордов Гиннеса, 1998 г.

"Техника - молодежи", №7, 1988.

"Американские ученые и изобретатели", Митчел Уилсон. М.: Знание, 1975.

Большая энциклопедия Кирилла и Мефодия, 1998.

"Наука и Жизнь", №2, 1987 г.

Лесков С. "Ни портных, ни иголок". Газета "Известия". Технологии, 2003.

"Мотор экономики США". Washington ProFile, 2004.

"Краткая история американских скоростных магистралей". Washington ProFile, 2004.

Ресурс в сети Интернет: http: // www. n-t. ru

Приложение А

Техническое задание на проектируемый программный продукт

А.1 Общие сведения

Полное наименование проектируемой программы: “Информационно-справочная система по науке и технике. Средства передвижения”.

Программа проектируется студентом первого курса Донецкого государственного института искусственного интеллекта (ДонГИИИ), факультета СКИТ, группы ПО-03в Благиревым Артемом Михайловичем.

А.2 Назначения и цели создания программы ведения.

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

Программа предназначена для поиска информации в заданной области.

Целью создания программы является:

информационно-справочная система на заданную тему;

поиск информации по фразе или по слову;

контроль знаний с помощью тестирования.

А.3 Требования к программе

А.3.1. Требования к программе в целом

В целом к программе предъявляются следующие требования:

удобный и простой для пользования интерфейс;

обеспечивать удобный ввод данных.

контроль действий пользователя, связанные с работой программы;

хранение информации во внешнем источнике данных;

А.3.2. Требования к задачам и функциям

Программа должна реализовать следующие функции:

удобный доступ к данным;

поисковая служба на информационной базе;

вывод результатов тестирования.

А.3.3. Требования к программному обеспечению

Программа будет реализована на языке Паскаль и для ее работы необходимо наличие операционной системы MS-DOS 5.0 и выше.

А.3.4. Требования к техническому обеспечению

Для корректной работы программы необходимы:

IBM - совместимый ПК с процессором не ниже 80286;

VGA монитор.

А.4 Стадии разработки программы:

Таблица А.1 - Стадии разработки программы

Этапы работы

Срок выполнения (недели)

1.

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

1-2

2.

Составление технического задания

2-3

3.

Техническое проектирование.

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

3-4

4.

Разработка основного алгоритма функционирования программы. Составление спецификаций модулей.

5

5.

Рабочее проектирование:

Определение структур входных и выходных данных, алгоритмов работы модулей. Оценки структур данных и алгоритмов. Описание входных и выходных данных.

6-7

6.

Написания программы.

8-10

7.

Отладка программы на верхнем уровне.

11-12

8.

Комплексная отладка и тестирование.

12-13

9.

Написание пояснительной записки.

11-14

10.

Защита курсового проекта.

14-16

Приложение Б

Экранные формы

Рисунок Б.1. Заставка.

Рисунок Б.2. Главное меню программы.

Рисунок Б.3. Поиск ключевой фразы в тексте

Рисунок Б.4. Вид реализованного контроля знаний

Рисунок Б.5. Выбор материала в информационно-справочной базе

Рисунок Б.6. Руководство пользователя

Приложение В

Руководство пользователя

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

- Поиск в тексте

Поиск будет осуществляться по текущему файлу, отображаемом в окне

вывода материала.

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

текста, нажать клавишу Enter, а затем той же клавишей выбрать

следующую команду - "Найти" или "Отменить".

- Тестирование

Запустив тест перед вами появится вопрос с вариантами ответов. Необходимо выбрать нужный вариант - нажав клавишу - от 1 до 3, а затем нажать клавишу Enter, подтвердив свой ответ. Также можно создать свое персональное тестирование с ограничением в 20 вопросов, отредактировав файл "text. txt" по аналогии согласно текущему тесту.

- Показать базу

Отображает список тем, доступных для изучения. Сменить отображаемый файл можно нажав клавишу Enter, предварительно поставив курсор на необходимый материал из списка. Курсор меняет свое положение при помощи клавиш "вверх" и "вниз". Также можно наполнить базу своем материалом воспользовавшись пунктом меню "Добавить тему".

- Заставка

Отображает реквизиты.

- Добавить тему

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

Навигация по отображаемому файлу осуществляется клавишами - "вверх", "вниз", Home, Page Up, Page Down, End.

Приложение Д

Листинг программы

Program InfBase;

uses Crt;

var

FirstF,SecondF: Text;

Reading: Array [1. .250] of String;

Ch: Char;

Down,Up,SizeF, i: Integer;

WorkFile: String;

Procedure Hiding (Param: Boolean);

begin

if Param = true then

begin

asm mov ah,01; mov cx,$0E0D; int $10; end;

end;

if Param = False then

begin

asm mov ah,01; mov cx,$2000; int $10; end;

end;

end;

Procedure Writing;

begin

for i: =Up to Down do

begin

if i = Down then

begin

Write(Reading [i]);

Break;

end;

Writeln(Reading [i]);

end;

end;

Procedure SetFace (Txt,Bckgr: Byte);

begin

TextColor(txt);

TextBackGround(bckgr);

end;

Procedure About;

begin

Window(1,1,80,25); Hiding(False);

SetFace(White,Black); ClrScr;

GotoXY(19,2); Write('Министерство образования и науки Украины');

GotoXY(10,3); Write('Донецкий государственный институт искусственного интеллекта');

GotoXY(25,9); Write('К У Р С О В О Й П Р О Е К Т');

GotoXY(9,11); Write('по дисциплине: "Основы программирования и алгоритмические языки"');

GotoXY(25,12); Write('на тему "Средства передвижения"');

GotoXY(44,17); Write('Выполнил: студент группы ПО-03в');

GotoXY(55,18); Write('Благирев Артем Михайлович');

TextColor(Yellow);

GotoXY(23,25); Write('Для продолжения нажмите Enter >>');

repeat until keypressed;

end;

Procedure FileStatus;

begin

Window(44,1,79,1); SetFace(Black,Cyan); ClrScr;

Write('Количество строк в файле: ',Down,' / ',SizeF);

Window(1,25,80,25); SetFace(7,Black);

GotoXY(1,1); Write('Esc'); GotoXY(57,1); Write(' F1');

GotoXY(29,1); Write(' F10');

Gotoxy(47,1); Write(' F7');

Gotoxy(68,1); Write(' Alt+Q');

SetFace(Black,Cyan);

GotoXY(4,1); Write(' Информационный материал ');

GotoXY(33,1); Write(' Главное меню ');

GotoXY(50,1); Write(' Поиск ');

GotoXY(60,1); Write(' Помощь ');

GotoXY(74,1); Write(' Выход');

Window(1,2,80,24); SetFace(11,Blue); ClrScr;

end;

Procedure ChoiceRF; Forward;

Procedure MainMenu; FORWARD;

Procedure Test;

var

TestFile,TF: Text;

Vopros: Array [1. .10] of String [64] ;

Answ: Array [1. .30] of String;

PravAnsw: Array [1. .10] of Integer;

StrTmp: String;

Vau,CountTrue,q,yo: Integer;

CountTest,g,a: Byte;

begin

CountTest: =0; a: =1; g: =0; CountTrue: =0;

{$I-}

Assign(TestFile,'Base\test. txt');

Assign(TF,'Base\test. txt');

Reset(TF);

Reset(TestFile);

If IOResult <> 0 then

begin

Window(1,1,80,25); SetFace(Red+Blink,Black);

ClrScr; GotoXY(15,13);

Writeln('Ошибка чтения файла!!! ');

Hiding(True);

end;

{$I+}

While not EOF(TF) do

begin

Readln(TF);

inc(CountTest);

end;

Window(1,1,80,25); SetFace(Yellow,Black); ClrScr; Hiding(False);

GotoXY(6,3); Write('г======================

Система тестирования =======================¬');

for i: =4 to 21 do

begin

GotoXY(6, i); Write('¦ ¦');

end;

gotoxy(6,7); Write('¦-------------------------------------------------------------------¦');

GotoXY(6,22); Write('L===================================================================-');

gotoxy(8,4); SetFace(11,Black);

Write('Вас приветствует система тестирования! Через несколько секунд');

gotoxy(8,5); Write('Вам будет предложен вопрос и 3 варианта ответа. ');

gotoxy(8,6); Write('Для выбора варианта ответа используйте клавиши 1 - 3');

GotoXY(23,11); Write('г');

GotoXY(23,15); Write('L');

for i: =24 to 56 do

begin

GotoXY(i,11); Write('=');

end;

for i: =24 to 56 do

begin

GotoXY(i,15); Write('=');

end;

for i: =12 to 14 do

begin

GotoXY(23, i); Write('¦ ¦');

end;

GotoXY(57,11); Write('¬');

GotoXY(57,15); Write('-');

GotoXY(32,11); Write(' Варианты ответов ');

for vau: =1 to (CountTest div 4) do

begin

Readln(TestFile,Vopros [vau]);

for i: =1 to 3 do

begin

Readln(TestFile,Answ [a]);

StrTmp: =Answ [a] ; g: =ord(StrTmp [0]);

if StrTmp [g] = '%' then

begin

Delete(StrTmp,g-1,3);

Answ [a]: =StrTmp;

PravAnsw [vau]: =i;

end;

inc(a);

end;

end;

q: =0; yo: =1;

repeat

inc(q);

Window(8,8,72,10); SetFace(White,Black); ClrScr;

GotoXY(1,1); StrTmp: =Vopros [q] ;

Write(StrTmp);

SetFace(Yellow,Black);

Window(25,12,55,14); SetFace(White,Black); ClrScr;

for i: =1 to 3 do

begin

if i = 3 then

begin

Write(Answ [yo]); inc(yo);

Break;

end;

Writeln(Answ [yo]); inc(yo);

end;

repeat

Ch: =ReadKey;

if Ch = '1' then

begin

if PravAnsw [q] = 1 then inc(CountTrue);

end;

if Ch = '2' then

begin

if PravAnsw [q] = 2 then inc(CountTrue);

end;

if Ch = '3' then

begin

if PravAnsw [q] = 3 then inc(CountTrue);

end;

if Ch = '4' then

begin

if PravAnsw [q] = 4 then inc(CountTrue);

end;

until (Ch = '1') or (Ch = '2') or (Ch = '3') or (Ch = #27);

until (Ch = #27) or (q = CountTest div 4);

if (q = CountTest div 4) then

begin

Window(9, 20,74,22);

SetFace(White,Black); Write('Количество набранных баллов: ',CountTrue,'. Результат - ');

GotoXY(45,1); TextColor(Red);

if (CountTrue = 0) then

Write ('No Comments! ');

if (CountTrue = 1) or (CountTrue = 2) then

Write('НЕУДОВЛЕТВОРИТЕЛЬНЫЙ');

if (CountTrue = 3) or (CountTrue = 4) or (CountTrue = 5) then

Write('УДОВЛЕТВОРИТЕЛЬНЫЙ');

if (CountTrue = 6) or (CountTrue = 7) or (CountTrue = 8) then

Write('ХОРОШИЙ');

if (CountTrue = 9) or (CountTrue = 10) then

Write('ОТЛИЧНЫЙ ');

Ch: =ReadKey;

MainMenu;

end

else

begin

MainMenu;

end;

end;

Procedure SetFile; Forward;

Procedure Viewing; Forward;

Procedure HotKeysView; Forward;

Procedure MainMenu;

var

Stop: Integer;

MenuPoints: Array [1. .5] of String;

begin

MenuPoints [1]: =' Информационный материал ';

MenuPoints [2]: =' Заставка ';

MenuPoints [3]: =' Тестирование ';

MenuPoints [4]: =' Руководство пользователя ';

MenuPoints [5]: =' Выход ';

Stop: =1;

{------------------------------------------}

Window(1,1,80,25); SetFace(Black,Black); ClrScr;

GotoXY(1,25); TextBackground(7); insline;

Hiding(false);

Window(20,8,60,16); SetFace(White,Cyan); ClrScr;

GotoXY(4,2); Write('г========= Главное меню ==========¬');

for i: =3 to 7 do

begin

GotoXY(4, i);

Write('¦ ¦');

end;

GotoXY(4,8); Write('L=================================-');

{------------- - Рисуем тень главного меню - ---------------}

Window(1,1,80,25); SetFace(8,5);

GotoXY(61,9); Write('--');

for i: =10 to 17 do

begin

GotoXY(61, i); Write('--');

end;

for i: =22 to 61 do

begin

GotoXY(i,17); Write('--');

end;

{------------ - Закончили прорисовку - ---------------------}

Window(25,10,56,14); SetFace(White,Cyan);

repeat

for i: =1 to 5 do

begin

GotoXY(1, i); Write(MenuPoints [i]);

end;

SetFace(White,Black); GotoXY(1,Stop); Write(MenuPoints [Stop]);

Ch: =ReadKey;

if Ch = #80 then

begin

if Stop < 5 then inc(Stop);

end;

if Ch = #72 then

begin

if Stop > 1 then dec(Stop);

end;

if Ch = #13 then

begin

if Stop = 1 then

begin

Window(1,2,80,24); SetFace(White,Black);

ClrScr; Hiding(False); Ch: =#27;

ChoiceRF;

end;

if Stop = 2 then

begin

Window(1,2,80,24); SetFace(White,Black);

ClrScr; Hiding(False); Ch: =#27;

About;

end;

if Stop = 3 then

begin

Test;

end;

if Stop = 4 then

begin

WorkFile: ='Base\help. txt'; SetFile;

Viewing; HotKeysView;

end;

if Stop = 5 then

begin

Window(1,1,80,25); SetFace(White,Black);

Hiding(True); ClrScr; Halt(1);

end;

end;

if Ch = #27 then

begin

Window(1,1,80,25); SetFace(White,Black);

Hiding(True); ClrScr; Halt(1);

end;

SetFace(White,Cyan);

until (Ch = #27) or (Ch = #13);

end;

Procedure SetFile;

begin

SizeF: =0;

{$I-}

Assign(FirstF,WorkFile);

Assign(SecondF,WorkFile);

Reset(FirstF);

Reset(SecondF);

{$I+}

If IOResult <> 0 then

begin

Window(1,1,80,25); SetFace(Red+Blink,Black);

ClrScr; GotoXY(29,6);

Writeln('Ошибка чтения файла!!! ');

Hiding(True);

end;

While not EOF(SecondF) do

begin

Readln(SecondF);

inc(SizeF);

end;

for i: =1 to SizeF do

begin

Readln(FirstF,Reading [i]);

end;

Close(FirstF);

Close(SecondF);

end;

Procedure Viewing;

begin

Window(1,1,80,25); SetFace(Black,Cyan); Hiding(False);

GotoXY(1,1); Insline; GotoXY(2,1); Write(WorkFile);

GotoXY(1,25); Insline;

Window(1,2,80,24); SetFace(11,Blue); ClrScr; FileStatus;

Writing;

end;

Procedure ChoiceRF;

var

Choice,Yorik,

yoyo,duhast,will: Integer;

ConfF1,ConfF2: Text;

Themes: Array [1. .25] of String [37] ;

Paths: Array [1. .25] of String;

StrTmp: String;

begin

Yorik: =0; Choice: =1; DuHast: =9; Will: =1; Up: =1; Down: =23;

{------------------------------------------}

Window(1,1,80,25); SetFace(Black,Black); ClrScr;

Window(17,6,63,18); SetFace(White,Cyan); ClrScr;

GotoXY(4,2); Write('г======= Информационный материал =======¬');

for i: =3 to 11 do

begin

GotoXY(4, i);

Write('¦ ¦');

end;

GotoXY(4,12); Write('L=======================================-');

{------------- - Рисуем тень главного меню - ---------------}

Window(1,2,80,24); SetFace(8,5);

GotoXY(64,6); Write('--');

for i: =7 to 18 do

begin

GotoXY(64, i); Write('--');

end;

for i: =19 to 64 do

begin

GotoXY(i,18); Write('--');

end;

{------------ - Закончили прорисовку - ---------------------}

{$I-}

Assign(ConfF1,'Base\List. txt');

Assign(ConfF2,'Base\List. txt');

Reset(ConfF1);

Reset(ConfF2);

{$I+}

If IOResult <> 0 then

begin

Window(1,1,80,25); SetFace(Red+Blink,Black);

ClrScr; GotoXY(15,13);

Writeln('Ошибка чтения файла!!! ');

Hiding(True);

end;

While not EOF(ConfF2) do

begin

Readln(ConfF2);

inc(Yorik);

end;

for i: =1 to Yorik do

begin

Readln(ConfF1,StrTmp);

for yoyo: =1 to ord(StrTmp [0]) do

begin

Ch: =StrTmp [yoyo] ;

if Ch = '; ' then

begin

Themes [i]: =Copy(StrTmp,1,yoyo-1);

Paths [i]: =Copy(StrTmp,yoyo+1,ord(StrTmp [0]));

StrTmp: ='';

end;

end;

end;

Close(ConfF1);

Close(ConfF2);

{----------------------------------------------------------}

Window(22,8,58,16); SetFace(White,Cyan); Hiding(False); ClrScr;

repeat

ClrScr;

for i: =Will to DuHast do

begin

if i <= Yorik then

begin

if i = DuHast then

begin

Write(Themes [i]); Break;

end;

Writeln(Themes [i]);

end;

end;

if Will > DuHast-Will then

begin

SetFace(White,Blue); GotoXY(1,Choice-Will+1);

Write(Themes [Choice]);

end

else

begin

SetFace(White,Blue); GotoXY(1,Choice);

Write(Themes [Choice]);

end;

Ch: =ReadKey;

if Ch = #80 then

begin

if Choice < Yorik then

begin

inc(Choice);

end;

if Choice > DuHast then

begin

inc(Will,9); inc(DuHast,9);

end;

end;

if Ch = #72 then

begin

if Choice > 1 then

begin

dec(Choice);

end;

if Choice < Will then

begin

dec(Will,9); dec(DuHast,9);

end;

end;

if Ch = #13 then

begin

WorkFile: =Paths [Choice] ; SetFile;

Viewing; HotKeysView;

end;

if Ch = #27 then

begin

Window(1,1,80,25); ClrScr;

MainMenu;

end;

SetFace(White,Cyan);

until (Ch = #13) or (Ch = #27);

end;

Procedure Navigation (param: Byte);

begin

if Param = 80 then {Вниз}

begin

if Down <> SizeF then

begin

inc(Up);

inc(Down);

FileStatus; Writing;

end;

end;

if Param = 72 then {Вверх}

begin

if (Up > 1) then

begin

dec(Up);

dec(Down);

FileStatus; Writing;

end;

if Up = 1 then

begin

Up: =1; Down: =23;

FileStatus; Writing;

end;

end;

if Param = 71 then {Home}

begin

Up: =1;

Down: =23;

FileStatus; Writing;

end;

if Param = 79 then {End}

begin

Up: =SizeF-23;

Down: =SizeF;

FileStatus; Writing;

end;

end;

Procedure Finding;

var

FindStr,FromReading: String;

Menu: Array [1. .2] of String;

F_Symb,F_Str: Array [1. . 20] of Integer;

Position,k,fine: Integer;

Flag: Boolean;

OB,Choice: Byte;

begin

Menu [1]: =' [Найти!] ';

Menu [2]: =' [Отмена] ';

Position: =0; k: =0; OB: =0;

Window(18,9,62,14); SetFace(Black,3); ClrScr;

GotoXY(4,2); Write('г======== Поиск заданной фразы =======¬');

GotoXY(4,3); Write('¦ ¦');

GotoXY(4,4); Write('¦ ¦');

GotoXY(4,5); Write('L=====================================-');

Hiding(False); SetFace(Black,Cyan);

GotoXY(31,3); Write(Menu [1]);

GotoXY(31,4); Write(Menu [2]);

Repeat

Window(23,11,45,11); SetFace(Green,White); ClrScr;

Hiding(True);

GotoXY(1,1);

Readln(FindStr);

if ord(FindStr [0]) > 22 then

begin

Window(23,12,45,12); SetFace(Red,Cyan);

Write('Неправильный ввод! ');

Hiding(False);

repeat until Keypressed;

ClrScr; FindStr: ='';

end;

Until (ord(FindStr [0]) < 22);

GotoXY(1,1); Write(FindStr);

Window(48,11,58,12); Choice: =1;

Repeat

SetFace(Black,Cyan); ClrScr;

Hiding(False);

GotoXY(1,1); Write(Menu [1]);

GotoXY(1,2); Write(Menu [2]);

SetFace(Black,Yellow); GotoXY(1,Choice); Write(Menu [Choice]);

Ch: =ReadKey;

if Ch = #80 then

begin

if Choice = 1 then inc(Choice);

end;

if Ch = #72 then

begin

if Choice = 2 then dec(Choice);

end;

if Ch = #13 then

begin

if Choice = 2 then

begin

Flag: =False;

end;

if Choice = 1 then

begin

Flag: =True;

end;

end;

Until Ch = #13;

{----------- - реализация поиска - ------------}

for i: =1 to SizeF do

begin

inc(Position);

FromReading: =Reading [i] ;

OB: =Pos(FindStr,FromReading);

if OB > 0 then

begin

Inc(k); F_Symb [k]: =OB;

F_Str [k]: =Position; i: =F_Str [k] ;

end;

end;

if (k = 0) and (Flag = True) then

begin

Window(25,12,56,17);

SetFace(white,red); ClrScr;

Gotoxy(4,2); Write('г= Поиск заданной фразы =¬');

Gotoxy(4,3); Write('¦ Такой фразы не найдено ¦');

Gotoxy(4,4); Write('¦ ¦');

Gotoxy(4,5); Write('L========================-');

Gotoxy(15,4); SetFace(Black,7); Write(' ОК ');

Readln; Viewing;

end;

if (k > 0) and (Flag = True) then

begin

fine: =k;

for k: =1 to fine do

begin

Up: =F_Str [k] ; Down: =F_Str [k] +22;

Window(1,2,80,25); ClrScr; Viewing;

GotoXY(F_Symb [k],1); SetFace(11,Red);

for i: =F_Symb [k] to ord(FindStr [0]) - F_Symb [k] do

begin

Write(' ');

end;

GotoXY(F_Symb [k],1); Write(FindStr);

SetFace(11,1);

repeat

Ch: =ReadKey;

case Ch of

#27: k: =fine;

end;

until (Ch = #27) or (Ch = #13);

if k = fine then

begin

Viewing;

Window(25,13,56,18); SetFace(white,red); ClrScr;

GotoXY(4,2); Write('г= Поиск заданной фразы =¬');

GotoXY(4,3); Write('¦ Поиск закончен ¦');

GotoXY(4,4); Write('¦ ¦');

GotoXY(4,5); Write('L========================-');

GotoXY(15,4); SetFace(Black,7); Write(' ОК ');

repeat

Ch: =ReadKey;

if Ch = #13 then

begin

Window(1,2,80,25);

SetFace(White,Black); ClrScr;

Viewing;

end;

until Ch = #13;

end;

end;

end;

if Flag = False then

begin

Window(1,2,80,24); ClrScr;

Viewing;

end;

end;

Procedure HotKeysView;

begin

repeat

Ch: =ReadKey;

if Ch = #80 then Navigation(80);

if Ch = #72 then Navigation(72);

if Ch = #71 then Navigation(71);

if Ch = #79 then Navigation(79);

if Ch = #27 then ChoiceRF;

if Ch = #68 then MainMenu;

if Ch = #16 then

begin

Window(1,1,80,25); SetFace(White,Black); ClrScr;

Hiding(True);

Halt(1);

end;

if Ch = #59 then

begin

WorkFile: ='Base\help. txt'; SetFile;

Viewing; HotKeysView;

end;

if Ch = #65 then Finding;

until Ch = #27;

end;

begin

Up: =1; Down: =23;

MainMenu;

repeat until KeyPressed;

end.

Приложение Е

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

Средства передвижения. \Base\Inf\auto. txt

<Автомобили>

Средства передвижения стали играть в нашей жизни очень важную роль,

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

АВТОМОБИЛЬ, транспортное средство, появилось одновременно с паровой машиной. Первые А. стали строиться во 2-й пол. XVIII в. в Англии, но развитие А. получили после изобретения малых двигателей (бензиновых, керосиновых и электрических) и каучуковых шин. В 1845 был изобретен каучук и вскоре шины. Позже в 1860 Ленуар изобрел газовый двигатель.

Непрерывный ряд усовершенствований, особ, с 1890-х гг дал Автомобилю широкое распространение.

Автомобиль - колесная машина для перевозки пассажиров, грузов или специального оборудования по безрельсовым дорогам, приводимая в движение собственным двигателем. В зависимости от назначения автомобили можно подразделить на:

1.1. Пассажирские (автобусы и легковые)

2.1. Грузовые

3.1. Специальные (пожарные, коммунальные, авто-краны, авто-мастерские и др.)

По проходимости автомобили делятся на:

1.2. Ограниченной проходимости - предназначенные в основном для движения по дорогам с твердым покрытием.

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

Автомобиль состоит из шасси и кузова. Шасси включает в себя:

1.3. Автомобильный двигатель - являющийся источником механической энергии, необходимой для движения.

2.3. Трансмиссия - служащую для передачи вращающего момента от вала двигателя к ведущим колесам автомобиля.

3.3. Ходовая часть - тележка на которой установлены все механизмы и кузов автомобиля.

4.3. Рулевое управление, тормоз - механизмы управления.

<Автобус>

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

> В Городских автобусах - количество пассажиров колеблется от 12 до 30 человек. Обычно они небольших размеров, и как правило с меньшим уровнем комфортабельности по сравнению со специальными и междугородними.

Пример городских автобусов:

Богдан А 091

ЛАЗ 695Н

ГАЗ 32213 Газель и др.

> Междугородние автобусы предназначены для перевозки пассажиров от 30 до 90 человек на сравнительно большие расстояния. Они бывают 2-х видов:

1. Одноэтажные до 55 человек

2. Полутороэтажые до 60 человек

3. Двухэтажные до 90 человек с высоким уровнем комфортабельности.

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

Междугородние автобусы значительных размеров поэтому возникают трудности с перемещением их на городских улицах. Для их перемещения специально созданы междугородние авто магистрали.

Пример междугородних автобусов:

MAN Aysberg

Mercedes C457

Ikarus 365-10

> К специальным автобусам относят служебные, санитарные, военные и др.

<Автомобиль высокой проходимости - внедорожник, джип>

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

1. Уменьшить сопротивление движению автомобиля на дорогах без твердого покрытия

2. Увеличить силу тяги на колесах

3. Обеспечить возможность преодоления автомобилем неровностей дороги и различных дорожных препятствий (канавы, рвы, брод и т.д.)

Основными мероприятиями, повышающими проходимость автомобиля, являются применение:

1.1. Гусеничного движителя вместо задних колес (полугусеничный автомобиль)

1.2. Увеличение общего числа осей до 3 или 4-ех

1.3. Увеличение числа ведущих осей

1.4. Введение в силовую передачу дополнительных коробок

1.5. Применение шин широкого профиля со специальным (глубоким) рисунком протектора

1.6. Увеличение просветов давления и углов переднего и заднего въездов

1.7. Уменьшение радиуса продольной проходимости

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

Пример колесных 2-х осных внедорожников:

Hammer H-2

Toyota Land Cruiser Prado

Mitsubishi Pajero

Nissan Patrol

Hammer H-2

Производство США, разработан в 1967г специально для военных сил.

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

Приложение Ж

Пример текстового документа для контроля знаний

1. Какой внедорожник обладает самой большой проходимостью?

> Hammer H2%

> Land Rover Freelander

> Ford Explorer

2. Какой самолет самый большой в мире?

> Мрiя%

> Ан - 124 Руслан

> Боинг - 747

3. В каком году перестали делать Автожиры?

> 1932

> 1936

> 1954%

4. Зачем подводной лодке перископ?

> Для наблюдения%

> Для борьбы со злом

> Для движения

5. Когда впервые на машину установили реактивный двигатель?

> 1968

> 1986

> 1972%

6. Какой русский конструктор разрабатывал реактивный двигатель?

> Яковлев

> Королев%

> Камов

7. Какая система вертолетных плоскостей является самой надежной?

> Продольная%

> Поперечная

> Такой системы нет

8. У какого парохода самое большое водоизмещение?

> Титаник

> Санта-Мария%

> Седов

9. Какая глубина является критической для подводный лодок?

> 900 м

> 1 200 м%

> 1000 м

10. Максимальная высота подъема стратостата?

> 28 000 км%

> 49 000 км

> 37 000 км


© 2010 BANKS OF РЕФЕРАТ