Смекни!
smekni.com

Разработка информационно-обучающей системы на тему Правила дорожного движения (стр. 2 из 3)


СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. С.Стивен Прата. Язык программирования/ /Москва-Киев:2002. – 837с.

2. Михайлов А. П., Дорожный П. Р. Правила дорожного движения //Киев: 2004. – 340с.


Приложение А

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

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

Полное название программного продукта: «Справочно-информационная система. Правила дорожного движения. Данный программный продукт выполнен студентом 1-го курса Донецкого государственного института искусственного интеллекта (ДонГИИИ), факультета СКИТ, группы ИС-04б Климовым Вячеславом Алексеевичем.

Программа разрабатывается по заданию, выданному кафедрой ПОИС.

Плановый срок начала работы по созданию ПП: 11.02.2005, срок окончания: 23.05.05.

Курсовая работа должна выполняться согласно графику, приведённому в таблице А.1

Таблица А.1 – Стадии и этапы разработки ПП

Этапы разработки ПП Сроки выполнения
1. Постановка задачи 1-2
2. Составление технического задания 2-3
3. Техническое проектирование. Разработка метода решения задачи. Определение структуры программы, выделение модулей, организация их взаимосвязи 3-4
4. Разработка основных алгоритмов функционирования программы, составление спецификационных модулей. 5
5. Рабочее проектирование. Определение структур входных и выходных данных, алгоритмов работы модулей. Описание входных и выходных данных 6-7
6. Написание программы 7-10
7. Отладка и тестирование программы 11
8. Написание пояснительной записки 11-14
9. Защита курсового проекта 23 мая 2005

А.2 Назначение и цели создания ПП

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

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

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

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

а) контроль вводимых данных;

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

в) интуитивно понятный интерфейс;

г) организация тестирования;

д) предоставление справочного материала;

е) хранение справочного материала в файле на диске;

А.3.2 Требования к задачам и функциям, выполняемым программой

В процессе работы необходимо обеспечить выполнение следующих функций:

а) вывод текста на экран;

б) скроллинг текста;

в) поиск фрагмента текста;

г) предоставление справки по данной теме и по навигации в программе.


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

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

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

- видеокарта с поддержкой режима 640x480, 16 цветов;

- процессор 80386 и выше;

- VGA монитор;

- 1Mb оперативной памяти;

- клавиатура;

- дисковод гибких дисков.

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

Данный ПП реализован для ОС MS-DOS версии не ниже 5.22.

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

В программную документацию должны входить:

1) пояснительная записка;

2) приложения:

а) техническое задание;

б) руководство пользователя;

в) экранные формы;

г) листинг программы.


Приложение Б

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Чтобы установить программу, необходимо запустить Ар system.rar, указать адрес инсталляции программы, затем, чтобы запустить программу, необходимо запустить файл system\start.bat. После запуска программы на экране появится главное окно программы (см. Форма 1).

При выборе кнопки «Меню» откроется подменю с подтемами (см. Форма 2). При выборе одной из подтем в главное окно вывода выведется теоретическая информация по выбранной теме (см. Форма 3). Вернуться в подменю с подтемами можно, нажав клавишу Esc.

Второе меню – «Тест». При выборе этого меню появляется окошко с первым вопросом теста (см. Форма 4). Теперь необходимо ответить на 10 вопросов. Выйти из теста можно, нажав клавишу Esc при выводе результата тестирования.

Меню – «Помощь». При нажатии клавиши Enter в главное окно вывода будет выведена справочная информация о навигации по программе (см. Форма 5). Выйти из меню помощи в главное меню – Esc.

Пятое, меню – «О программе». Выводится окошко с краткой информацией о программе и её авторе (см. Форма 6). Выйти в главное меню – Esc.

И, наконец, последнее меню – «Выход». При нажатии Enter программа закончит свою работу .


Приложение В

ЭКРАННЫЕ ФОРМЫ

Форма 1-Главное окно

Форма 2- Меню

Форма 3 - Теория

Форма 4 - Тесты

Форма 5 - Помощь

Форма 6 – О программе


Приложение В

ЛИСТИНГ ПРОГРАММЫ

#include <stdio.h>

#include <conio.h>

#include <graphics.h>

#include <alloc.h>

#include <dos.h>

#include <string.h>

#include <stdlib.h>

int a,b,d=0,i,k=0,l=0,x=0,z=0,p=1,r=0;

int mode=VGAHI;

int driver=VGA;

FILE *in;

char ch,cd[50],*str,c,s,cf[50],cb;

void *buf,*buf1, *buf2;

openf (char s[20])

{

setfillstyle(SOLID_FILL,0);

bar(23,445,615,470);

setcolor(4);

outtextxy(25,450,"Прокрутка текста постранично клавишами <page up>,<page down>");

outtextxy(25,460,"Прокрутка текста построчно клавишами <вверх>,<вниз>");

putimage(23,43,buf,0);

setcolor(15);

line(23,43,112,43);

z=0;

k=0;

in=fopen(s,"r");

do

{

setviewport(24,61,412,435,0);

rewind(in);

while(fgets(cd,47,in)!=NULL)

{

a=strlen(cd);

if(cd[a-1]=='&bsol;n')

cd[a-1]=' ';

if(k>z)

{

setcolor(7);

outtextxy(15,10+x,cd);

x+=10;

}

k++;

if(k>35+z)

break;

}

ch=getch();

if(ch!=27)

ch=getch();

if(ch==80)

{z++;}

if(ch==72)

{z--;}

if(ch==81)

{z+=35;}

if(ch==73)

{z-=35;}

if(z<0)

z=0;

k=0;

x=0;

clearviewport();

}while(ch!=27);

setviewport(0,0,639,479,0);

fclose(in);

setfillstyle(SOLID_FILL,0);

bar(23,445,615,470);

setcolor(4);

outtextxy(25,450,"Перемещение по меню кнопками <влево>,<вправо>; выбор меню клавишей <enter>");

outtextxy(25,460,"Выход из меню - <esc>;");

return(0);

}

test ()

{

setfillstyle(SOLID_FILL,7);

bar (56,101,380,395);

setcolor(15);

line(55,100,55,396);

line(55,100,381,100);

line(377,130,377,391);

line(60,391,377,391);

setcolor(8);

line(55,396,381,396);

line(381,100,381,396);

line(60,130,60,391);

line(60,130,377,130);

setfillstyle(SOLID_FILL,0);

bar(61,131,376,390);

while (a!=27)

{

if ((p==1)&&(a==51)) r++;

if ((p==2)&&(a==49)) r++;

if ((p==3)&&(a==49)) r++;

if ((p==4)&&(a==51)) r++;

if ((p==5)&&(a==50)) r++;

if ((p==6)&&(a==50)) r++;

if ((p==7)&&(a==49)) r++;

if ((p==8)&&(a==51)) r++;

if ((p==9)&&(a==50)) r++;

if ((p==10)&&(a==50)) r++;

if ((a==49)||(a==50)||(a==51)) p++;

setfillstyle(SOLID_FILL,0);

bar(61,131,376,390);

setfillstyle(SOLID_FILL,7);

bar (56,101,380,129);

setcolor(4);

if (p==1)

{

outtextxy(150,110,"Вопросномер 1");

outtextxy(65,140,"Назовите первое действие при посадке");

outtextxy(65,150,"в автомобиль?");

outtextxy(65,170,"1. принять удобное положение;");

outtextxy(65,180,"2. включить сцепление;");

outtextxy(65,190,"3. застебнуть ремни безопасности;");

}

if (p==2)

{

outtextxy(150,110,"Вопрос номер 2");

outtextxy(65,140,"Какова наиболее общая причина аварий?");

outtextxy(65,170,"1. ошибка водителя;");

outtextxy(65,180,"2. наркотики;");

outtextxy(65,190,"3. аварий не бывает;");

}

if (p==3)

{

outtextxy(150,110,"Вопрос номер 3");

outtextxy(65,140,"Эта передача нормальная для вождения ");

outtextxy(65,150,"в городе и на шоссе?");

outtextxy(65,170,"1. вождение [d];");

outtextxy(65,180,"2. нейтарльная [n];");

outtextxy(65,190,"3. парковка [p];");

}

if (p==4)

{

outtextxy(150,110,"Вопрос номер 4");

outtextxy(65,140,"Эта передача используется для ");

outtextxy(65,150,"движения задом.");

outtextxy(65,170,"1. вождение [d];");

outtextxy(65,180,"2. парковка [p];");

outtextxy(65,190,"3. обратная [r];");

}

if (p==5)

{

outtextxy(150,110,"Вопрос номер 5");

outtextxy(65,140,"Для управления автомобилем всегда ");

outtextxy(65,150,"имейте с собой...");

outtextxy(65,170,"1. аптечку;");

outtextxy(65,180,"2. удостоверение;");

outtextxy(65,190,"3. запаску;");

}

if (p==6)

{

outtextxy(150,110,"Вопрос номер 6");

outtextxy(65,140,"В каких местах запрещена стоянка?");

outtextxy(65,170,"1. на обочине;");

outtextxy(65,180,"2. на мостах;");

outtextxy(65,190,"3. на стоянке;");

}

if (p==7)

{

outtextxy(150,110,"Вопрос номер 7");

outtextxy(65,140,"Когда нужно останавливаться перед");

outtextxy(65,150,"железнодорожными путями?");

outtextxy(65,170,"1. всегда;");

outtextxy(65,180,"2. если есть дорожные знаки;");

outtextxy(65,190,"3. по усмотрению водителя;");

}

if (p==8)

{

outtextxy(150,110,"Вопрос номер 8");

outtextxy(65,140,"Как правильно выезжать на");

outtextxy(65,150,"автостраду?");

outtextxy(65,170,"1. вы должны замедлиться;");

outtextxy(65,180,"2. вам должны уступить дорогу;");

outtextxy(65,190,"3. вы должны уступить дорогу;");

}

if (p==9)

{

outtextxy(150,110,"Вопрос номер 9");

outtextxy(65,140,"На дороге полностью покрытой снегом,");

outtextxy(65,150,"что обеспечивает наилучшую тягу?");

outtextxy(65,170,"1. дождевые покрышки;");

outtextxy(65,180,"2. покрышки с железными цепями;");

outtextxy(65,190,"3. лысые покрышки;");

}

if (p==10)

{

outtextxy(150,110,"Вопрос номер 10");

outtextxy(65,140,"Ваш автомобиль двигается быстрее...");

outtextxy(65,170,"1. на подьеме;");