акже следует дополнительные достоинства: это возможность пополнения базы новыми справочными материалами, а также возможность создания собственного тестирования. Среди недостатков программы стоит отметить тот факт, что программа не способна отображать файлы, имеющие больше 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; varFirstF,SecondF: Text; Reading: Array [1. .250] of String; Ch: Char; Down,Up,SizeF, i: Integer; WorkFile: String; Procedure Hiding (Param: Boolean); beginif Param = true thenbeginasm mov ah,01; mov cx,$0E0D; int $10; end; end; if Param = False thenbeginasm mov ah,01; mov cx,$2000; int $10; end; end; end; Procedure Writing; beginfor i: =Up to Down dobeginif i = Down thenbeginWrite(Reading [i]); Break; end; Writeln(Reading [i]); end; end; Procedure SetFace (Txt,Bckgr: Byte); beginTextColor(txt); TextBackGround(bckgr); end; Procedure About; beginWindow(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; beginWindow(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; varTestFile,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; beginCountTest: =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 thenbeginWindow(1,1,80,25); SetFace(Red+Blink,Black); ClrScr; GotoXY(15,13); Writeln('Ошибка чтения файла!!! '); Hiding(True); end; {$I+}While not EOF(TF) dobeginReadln(TF); inc(CountTest); end; Window(1,1,80,25); SetFace(Yellow,Black); ClrScr; Hiding(False); GotoXY(6,3); Write('г====================== Система тестирования =======================¬'); for i: =4 to 21 dobeginGotoXY(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 dobeginGotoXY(i,11); Write('='); end; for i: =24 to 56 dobeginGotoXY(i,15); Write('='); end; for i: =12 to 14 dobeginGotoXY(23, i); Write('¦ ¦'); end; GotoXY(57,11); Write('¬'); GotoXY(57,15); Write('-'); GotoXY(32,11); Write(' Варианты ответов '); for vau: =1 to (CountTest div 4) dobeginReadln(TestFile,Vopros [vau]); for i: =1 to 3 dobeginReadln(TestFile,Answ [a]); StrTmp: =Answ [a] ; g: =ord(StrTmp [0]); if StrTmp [g] = '%' thenbeginDelete(StrTmp,g-1,3); Answ [a]: =StrTmp; PravAnsw [vau]: =i; end; inc(a); end; end; q: =0; yo: =1; repeatinc(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 dobeginif i = 3 thenbeginWrite(Answ [yo]); inc(yo); Break; end; Writeln(Answ [yo]); inc(yo); end; repeatCh: =ReadKey; if Ch = '1' thenbeginif PravAnsw [q] = 1 then inc(CountTrue); end; if Ch = '2' thenbeginif PravAnsw [q] = 2 then inc(CountTrue); end; if Ch = '3' thenbeginif PravAnsw [q] = 3 then inc(CountTrue); end; if Ch = '4' thenbeginif 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) thenbeginWindow(9, 20,74,22); SetFace(White,Black); Write('Количество набранных баллов: ',CountTrue,'. Результат - '); GotoXY(45,1); TextColor(Red); if (CountTrue = 0) thenWrite ('No Comments! '); if (CountTrue = 1) or (CountTrue = 2) thenWrite('НЕУДОВЛЕТВОРИТЕЛЬНЫЙ'); if (CountTrue = 3) or (CountTrue = 4) or (CountTrue = 5) thenWrite('УДОВЛЕТВОРИТЕЛЬНЫЙ'); if (CountTrue = 6) or (CountTrue = 7) or (CountTrue = 8) thenWrite('ХОРОШИЙ'); if (CountTrue = 9) or (CountTrue = 10) thenWrite('ОТЛИЧНЫЙ '); Ch: =ReadKey; MainMenu; endelsebeginMainMenu; end; end; Procedure SetFile; Forward;
Страницы: 1, 2, 3
|