Программа предназначена для обучения пользователя простейшим тригонометрическим функциям.
А.3 Требования к программе
А.3.1 Требования к программе в целом
В целом к программе предъявляются следующие требования:
- удобный и простой для пользования графический интерфейс;
- удобный способ ввода-вывода данных;
- контроль действий пользователя, связанные с работой программы;
- хранение информации во внешнем источнике данных;
- наличие справочной информации
А.3.2 Требования к задачам и функциям программного продукта
Программа должна реализовать следующие функции:
- удобный доступ к информационному материалу;
- вывод легко доступной для восприятия справочной информации;
А.3.3 Требования к программному обеспечению
Программа будет реализована на языке Turbo Pascal 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" вы можете выбрать функцию, которое вас интересует.
Справка:
Отображает справочное меню.
Разработчик:
Отображает информацию о разработчике.
Выход:
Используя этот пункт, вы можете выйти из программы.
Приложение В
Листинг программы
Program my_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 драйверам }
If GraphResult <> grOk Then
begin
writeln('Ошибка при подключении графики...');
halt(1);
end;
end;
{--------------------КОНЕЦ ПРОЦЕДУРЫ---------------------------}
{|-----------------------------------------------------------|}
{| Процедура прорисовки справочного окна программы |}
{|___________________________________________________________|}
procedure help;
begin
cleardevice;
bar3d(30,215,150,235,0,topoff);
outtextXY(40,220,'История');
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,'Помощь');
setcolor(12);
outtextXY(50,460,'Вверх,Вниз-Движение Enter-Выбор');
com:=#125;
select;
if (com=#13)and(i=1) then
begin
readf('file.txt',false);
help;
end;
if (com=#13)and(i=2) then
begin
readf('edit.txt',false);
select;
end;
if (com=#13)and(i=3) then
begin
readf('search.txt',false);
select;
end;
if (com=#13)and(i=4) then
begin
readf('run.txt',false);
select;
end;
if (com=#13)and(i=5) then
begin
readf('debug.txt',false);
select;
end;
if (com=#13)and(i=6) then
begin
readf('compile.txt',false);
select;
end;
if (com=#13)and(i=7) then
begin
readf('options.txt',false);
select;
end;
if (com=#13)and(i=8) then
begin
readf('help1.txt',false);
select;
end;
end;
{--------------------КОНЕЦ ПРОЦЕДУРЫ---------------------------}
{|------------------------------------------------------------}
{| Процедура прорисовки главного окна программы |}
{|___________________________________________________________|}
procedure main;
begin
cleardevice;
{-----ФЛАГ---------}
setfillstyle(1,4);
bar(0,0,640,240);
setfillstyle(1,yellow);
bar(0,210,640,480);
{---КОНЕЦ ФЛАГА----}
{-----------------прорисовка дискеты-----------------------------}
setfillstyle(1,9);
BAR (100,100,200,200);
setfillstyle(1,8);
BAR (105,105,110,110);
BAR (190,105,195,110);
setfillstyle(1,8);
BAR (130,100,170,140);
setfillstyle(1,15);
BAR (120,150,180,180);
setcolor (red);
outtextxy (120,160,'COS+SIN=');
outtextxy (120,190,'SUMSUNG');
{------------------------------------------------------------------}
setcolor (black);
outtextxy (200,120,'---->A R C T G X');
outtextxy (200,140,'---->A R C C T G X');
outtextxy (200,160,'---->A R C S I N X');
outtextxy (200,180,'---->A R C C O S X');
setfillstyle(1,4);
setfillstyle(1,yellow);
setcolor(blue);
bar3d(30,215,150,235,0,topoff);
outtextXY(40,220,'√ Информация');
setcolor(red);
outtextXY(50,250,'√ Справка');
outtextXY(60,280,'√ Разработчик');
outtextXY(70,310,'√ Выход');
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,'Enter-Выбор');
setfillstyle(1,yellow);
setcolor(12);
com:=#125;
move;
if (com=#13)and(i=3) then
begin
greator;
eadkey;
main;
end;
if (com=#13)and(i=1) then
begin
help;
main;
end;
if (com=#13)and(i=2) then
begin
readf('help.txt',false);
main;
end;
end;
{--------------------КОНЕЦ ПРОЦЕДУРЫ---------------------------}
begin
initgr;
for y:=1 to 750 do
new(txt[y]);
main;
for y:=1 to 750 do
dispose(txt[y]);
End.
Приложение Г
Экранные формы
Рисунок Б.1 Экран приветствия
Рисунок Б.2 Вид главного меню
Рисунок Б.3 Вид окна о программе
Рисунок Б.4 Вид окна наглядного представления персонального компьютера
Рисунок Б.5 Вид окна информационно-справочного материала
Дата: 2019-12-22, просмотров: 249.