Курсовая работа выполняется согласно графику, приведенному в таблице А.1.
Программа предназначена для обучения пользователя простейшим тригонометрическим функциям.
А.3 Требования к программе
А.3.1 Требования к программе в целом
В целом к программе предъявляются следующие требования:
- удобный и простой для пользования графический интерфейс;
- удобный способ ввода-вывода данных;
- контроль действий пользователя, связанные с работой программы;
- хранение информации во внешнем источнике данных;
- наличие справочной информации
А.3.2 Требования к задачам и функциям программного продукта
Программа должна реализовать следующие функции:
- удобный доступ к информационному материалу;
- вывод легко доступной для восприятия справочной информации;
А.3.3 Требования к программному обеспечению
Программа будет реализована на языке TurboPascal 7.0 и для ее работы необходимо наличие операционной системы MS-DOS 5.0 и выше.
А.3.4 Требования к техническому обеспечению
Для корректной работы программы необходимы:
- IBM – совместимый ПК с процессором не ниже 80386;
- VGA монитор.
А.4 Стадии разработки программы:
Таблица А.1 – Стадии разработки программы
Этапы работы | Срок выполнения (недели) |
Постановка задачи: определение требований к программному комплексу. Формулировка постановки задачи: исходные данные, ограничения, результат, связь. | 1-2 |
Составление технического задания | 2-3 |
Техническое проектирование.Разработка метода решения задачи. Модульный анализ: определение структуры программы, выделение модулей, организация и их взаимосвязи. | 3-4 |
Разработка основного алгоритма функционирования программы. Составление спецификаций модулей. | 5 |
Рабочее проектирование:Определение структур входных и выходных данных, алгоритмов работы модулей. Оценки структур данных и алгоритмов. Описание входных и выходных данных. | 6-7 |
Написания программы. | 8-10 |
Отладка программы на верхнем уровне. | 11-12 |
Комплексная отладка и тестирование. | 12-13 |
Написание пояснительной записки. | 11-14 |
Защита курсового проекта. | 22.05.06 |
Приложение Б
Помощь при работе с информационной системой
Информация.
Отображает список доступных для рассмотрения тем. Выбрав этот пункт меню, появится окно с названием простейших тригонометрических функциями. Используя клавиши "вверх", "вниз" и "enter" вы можете выбрать функцию, которое вас интересует.
Справка:
Отображает справочное меню.
Разработчик:
Отображает информацию о разработчике.
Выход:
Используя этот пункт, вы можете выйти из программы.
Приложение В
Листинг программы
Programmy_kursuch;
Uses Graph,crt;
Var i,j,y:integer;
com:char;
txt:array[1..750]of ^string;
procedure worspece; forward;
{|----------------------------------------------|}
{| Процедура вывода текстового файла на экран |}
{|______________________________________________|}
Procedure ReadF(name:string;fl:boolean);
var
com:char;
str:string;
f:text; pos:integer;
n:integer;
i,j:integer;
begin
name:=concat('\TXT',name);
cleardevice;
worspece;
assign(f,name);
{$I-}
reset(f);
{$I+}
if IOresult<>0 then
begin
cleardevice;
textcolor(red);
outtext('Ненайденфайл, проверьтеналичиефайланадиске.');
readkey;
end
else
begin
n:=1;
while not eof(f) do {Read from Fille in Massiv}
begin
readln(f,str);
txt[n]^:=str;
n:=n+1;
end;
n:=n-1;
if n<=25 then
begin
pos:=40;
for j:=1 to n do
begin
outtextXY(40,20+pos,txt[j]^);
pos:=pos+10;
end;
repeat
until readkey=#27;
end
else
begin
pos:=40;
for j:=1 to 25 do
begin
outtextXY(40,20+pos,txt[j]^);
pos:=pos+10;
end;
i:=25;
while com<>#27 do
begin
com:=readkey;
if com=#72 then {///Up}
if i>=26 then
begin
worspece;
delay(60);
pos:=40;
for j:=i-26 to i-1 do
begin
outtextXY(40,20+pos,txt[j]^);
pos:=pos+10;
end;
i:=i-1;
end;
if com=#73 then {/// PageUp}
if i>=50 then
begin
pos:=40;
worspece;
delay(60);
for j:=i-49 to i-25 do
begin
outtextXY(40,20+pos,txt[j]^);
pos:=pos+10;
end;
i:=i-25;
end
else
if i<>25 then
begin
worspece;
delay(60);
pos:=40;
for j:=1 to 25 do
begin
outtextXY(40,20+pos,txt[j]^);
pos:=pos+10;
end;
i:=25;
end;
if com=#80 then {///Down}
if i<=n-1 then
begin
worspece;
delay(60);
pos:=40;
for j:=i-24 to i+1 do
begin
outtextXY(40,20+pos,txt[j]^);
pos:=pos+10;
end;
i:=i+1;
end;
if com=#81 then {/// PageDown}
if i<=n-25 then
begin
worspece;
delay(60);
pos:=40;
for j:=i to i+25 do
begin
outtextXY(40,20+pos,txt[j]^);
pos:=pos+10;
end;
i:=i+25;
end
else
if i<>n then
begin
worspece;
delay(60);
pos:=40;
for j:=n-25 to n do
begin
outtextXY(40,20+pos,txt[j]^);
pos:=pos+10;
end;
i:=n;
end;
end;
end;
end;
com:=#1;
end;
{----------------------КОНЕЦ-------------------------------}
{|----------------------------------------------|}
{| Процедура прорисовки окна выбора справки |}
{|______________________________________________|}
procedure select;
begin
setfillstyle(1,blue);
bar(0,0,640,240);
setfillstyle(1,yellow);
bar(0,210,640,480);
setcolor(blue);
bar3d(30,215,150,235,0,topoff);
outtextXY(40,220,'История');
setcolor(red);
outtextXY(50,250,'SIN X');
outtextXY(60,280,'COS X');
outtextXY(70,310,'tg X');
outtextXY(80,340,'ctg X');
outtextXY(90,370,'arctg X');
outtextXY(100,400,'arcctg X');
outtextXY(110,430,'Помощь');
com:=#1;
i:=1;
j:=1;
repeat
com:=readkey;
if((i=1) and (com=#72)) then
begin
j:=i;
i:=i+7;
end
else
if((i=8) and (com=#80)) then
begin
j:=i;
i:=i-7;
end
else
f((y<>1) and (com=#72)) then
begin
j:=i;
i:=i-1;
end
else
f((y<>1) and (com=#80)) then
begin
j:=i;
i:=i+1;
end;
setcolor(blue);
case i of
1:begin bar3d(30,215,150,235,0,topoff); outtextXY(40,220,'История');end;
2:begin bar3d(40,245,160,265,0,topoff); outtextXY(50,250,'SIN X');end;
3:begin bar3d(50,275,170,295,0,topoff); outtextXY(60,280,'COS X');end;
4:begin bar3d(60,305,180,325,0,topoff); outtextXY(70,310,'tg X');end;
5:begin bar3d(70,335,190,355,0,topoff); outtextXY(80,340,'ctg X');end;
6:begin bar3d(80,365,200,385,0,topoff); outtextXY(90,370,'arctg X');end;
7:begin bar3d(90,395,210,415,0,topoff); outtextXY(100,400,'arcctg X');end;
8:begin bar3d(100,425,220,445,0,topoff); outtextXY(110,430,'Помощь');end;
end;
setcolor(red);
if ((com=#72) or (com=#80)) then
case j of
1:begin
setcolor(yellow);
bar3d(30,215,150,235,0,topoff);
setcolor(7);
outtextXY(40,220,'История');
end;
2:begin
setcolor(yellow);
bar3d(40,245,160,265,0,topoff);
setcolor(8);
outtextXY(50,250,'SIN X');
end;
3:begin
setcolor(yellow);
bar3d(50,275,170,295,0,topoff);
setcolor(9);
outtextXY(60,280,'COS X');
end;
4:begin
setcolor(yellow);
bar3d(60,305,180,325,0,topoff);
setcolor(10);
outtextXY(70,310,'tg X');
end;
5:begin
setcolor(yellow);
bar3d(70,335,190,355,0,topoff);
setcolor(11);
outtextXY(80,340,'ctg X');
end;
6:begin
setcolor(yellow);
bar3d(80,365,200,385,0,topoff);
setcolor(12);
outtextXY(90,370,'arctg X');
end;
7:begin
setcolor(yellow);
bar3d(90,395,210,415,0,topoff);
setcolor(13);
outtextXY(100,400,'arcctg X');
end;
8:begin
etcolor(yellow);
bar3d(100,425,220,445,0,topoff);
setcolor(17);
outtextXY(110,430,'Помощь');
end;
end;
until((com=#27) or (com=#13));
end;
{---------------КОНЕЦ----------------------------}
{|----------------------------------------------|}
{| Процедура построения рабочей области экрана |}
{|______________________________________________|}
procedure WorSpece;
begin
setcolor(15);
setfillstyle(1,9);
bar3d(0,0,getmaxX,getmaxY,0,true);
setfillstyle(1,7);
setcolor(0);
bar3d(15,15,getmaxX-15,getmaxY-15,0,true);
setcolor(4);
setfillStyle(1,8);
bar3d(16,16,getmaxX-16,30,0,true);
setcolor(0);
line(17,32,17,getmaxY-17);
line(17,32,getmaxX-17,32);
line(getMaxX-17,32,getmaxX-17,getmaxY-17);
line(17,getmaxY-17,getmaxX-17,getmaxY-17);
bar3d(17,getmaxY-120,getmaxX-17,getmaxY-17,0,true);
setcolor(15);
outtextXY(90,getmaxY-100,'Page Up-страница вверх, Page Down-страница вниз');
outtextXY(105,getmaxY-80,'Стрелки вверх и вниз-перемещение по строкам');
setcolor(4);
end;
{----------------------КОНЕЦ----------------------------------------}
{|------------------------------------------------------------}
{| Процедура вывода реквизитов разработчика на экран |}
{|___________________________________________________________|}
procedure greator;
var i:byte;
begin
cleardevice;
begin
i:=60;
{---------------------------рисуем мышь--------------------------------}
setfillstyle (1,4);
fillellipse (320,240,80,140);
setfillstyle (1,1);
fillellipse (320,240,60,20);
setcolor (15);
settextstyle (4,0,30);
outtextXY (295,235,'S V E N');
line (250,180,390,180);
line (320,180,320,100);
{-----------------------------------------------------------------------}
SETFILLSTYLE (1,15);
setcolor (black);
settextstyle(9,0,15);
bar3D (0,460,300,477,0,FALSE);
outtextxy (40,465,'Любая клавиша-возврат в меню');
bar3D (320,460,638,477,0,FALSE);
outtextxy (400,465,'Любая клавиша-возврат в меню');
setcolor (10);
outtextxy(120,i,'ДОНЕЦКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА');
delay (200);
outtextxy(140,i+40,'КАФЕДРА ПРОГРАММНОГ ОБЕСПЕЧЕНИЯ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ');
delay (200);
outtextxy (230,i+80, ' КУРСОВАЯ РАБОТА');
delay (200);
outtextxy(170,210,' ПО ДИСЦИПЛИНЕ:"АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ И ПРОГРАММИРОВАНИЕ"');
delay (200);
outtextxy(120,260,'ТЕМА:"РАЗРОБОТКА ИНФОРМАЦИОННОЙ СИСТЕМЫ"');
delay (200);
outtextxy(160,280,'"ПРОСТЕЙШИЕ ТРИГОНОМЕТРИЧЕСКИЕ ФУНКЦИИ"');
delay (200);
outtextxy (480,300,'ВЫПОЛНИЛА:');
delay (200);
outtextxy (460,320,'СТ.ГР.:');
delay (200);
outtextxy(460,340,'');
end;
end;
{--------------------КОНЕЦ ПРОЦЕДУРЫ---------------------------}
{|------------------------------------------------------------}
{| Процедура выбора меню |}
{|___________________________________________________________|}
procedure move;
begin
com:=#1;
i:=1;
j:=1;
repeat
com:=readkey;
if((i=1) and (com=#72)) then
begin
j:=i;
i:=i+3;
end
else
if((i=4) and (com=#80)) then
begin
j:=i;
i:=i-3;
end
else
if((y<>1) and (com=#72)) then
begin
j:=i;
i:=i-1;
end
else
if((y<>1) and (com=#80)) then
begin
j:=i;
i:=i+1;
end;
setcolor(blue);
case i of
1:begin bar3d(30,215,150,235,0,topoff); outtextXY(40,220,'√ Информация');end;
2:begin bar3d(40,245,160,265,0,topoff); outtextXY(50,250,'√ Справка');end;
3:begin bar3d(50,275,170,295,0,topoff); outtextXY(60,280,'√ Разработчик');end;
4:begin bar3d(60,305,180,325,0,topoff); outtextXY(70,310,'√ Выход');end;
end;
setcolor(red);
if ((com=#72) or (com=#80)) then
case j of
1:begin
setcolor(yellow);
ar3d(30,215,150,235,0,topoff);
setcolor(red);
outtextXY(40,220,'√ Информация');
end;
2:begin
setcolor(yellow);
bar3d(40,245,160,265,0,topoff);
setcolor(red);
outtextXY(50,250,'√ Справка');
end;
3:begin
setcolor(yellow);
bar3d(50,275,170,295,0,topoff);
setcolor(red);
outtextXY(60,280,'√ Разработчик');
end;
4:begin
setcolor(yellow);
bar3d(60,305,180,325,0,topoff);
setcolor(red);
outtextXY(70,310,'√ Выход');
end;
end;
until(((com=#13) and (i=4))or (com=#13) or(com=#27));
end;
{--------------------КОНЕЦ ПРОЦЕДУРЫ--------------------------}
{|------------------------------------------------------------}
{| Процедура инициализации графики |}
{|___________________________________________________________|}
procedure initgr;
var GD,GM:integer;
begin
Gd:=Detect;
InitGraph(Gd, Gm, ' '); { Путь к BGI драйверам }