Основы технологии программирования

ВОЛЖСКИЙ УНИВЕРСИТЕТ им. В.Н. ТАТИЩЕВА

ФАКУЛЬТЕТ ИНФОРМАТИКИ И ТЕЛЕКОММУНИКАЦИЙ

Кафедра “Информатика и системы управления”























МЕТОДИЧЕСКИЕ УКАЗАНИЯ

“Основы технологии программирования”

для студентов специальности

071900 “Информационные системы”

220100 “Вычислительные машины, комплексы, системы и сети”

(для дневного отделения)















Тольятти 2006


1.ОБЩИЕ ПОЛОЖЕНИЯ О КУРСОВОЙ РАБОТЕ



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

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

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



2. ЦЕЛИ И ЗАДАЧИ КУРСОВОГО ПРОЕКТА



	Дисциплина “Основы технологии программирования” читается в течении двух семестров. Курсовая работа выполняется во втором по счету семестре и служит для закрепления пройденного материала по соответствующему курсу и приобретению практических навыков программирования с применением объектно-ориентированного языка Pascal.



3.СОДЕРЖАНИЕ КУРСОВОЙ РАБОТЫ



	Курсовая работа должна содержать следующие разделы:

	титульный лист (Приложение 1);

	оглавление;

	 рецензию (Приложение 2).

	 задание, на основании которого выполняется курсовая работа 

	(Приложение 3);

	описание предметной области;

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

	 список используемой литературы;

	 приложения;

Приложения должны включать:

	листинги программ;

	распечатку структуры базы данных;

	распечатку результатов решения задачи по данным контрольного примера.

	

	4. РЕКОМЕНДАЦИИ К СОЗДАНИЮ ПРОГРАММЫ

	

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

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

ВВОД СИМВОЛА С КЛАВИАТУРЫ.

	Функция ReadKey (читать клавишу) ожидает нажатия клавиши на клавиатуре, после чего возвращает символ (тип CHAR), соответствующий нажатой клавише. При этом символ клавиши на экран не выводится. Используя эту функцию, можно обрабатывать нажатия служебных клавиш, таких как - < F1-F12>,клавиш перемещения курсора и листания текста страницами. При нажатии служебных клавиш ReadKey возвращает 0. Чтобы получить номер служебной клавиши, нужно еще раз вызвать ReadKey.

	Ниже приведена программа, которая позволяет определить код нажатой клавиши. Программа завершает работу при нажатии клавиши <Esc>.



Program tt;

Uses crt;

Var

ch:char ;

Begin

repeat

ch:=ReadKey;

                         if ch:=chr(0) then {нажата служебная клавиша}

                                           begin

                                           writeln(‘Служебная кавиша’);

                                            ch:=ReadKey;

                                            end;

                         writeln(ord(ch));

             until  ord(ch) = 27; { пока не нажата клавиша <Esc> }

End.



ПРИМЕР ПРОГРАММЫ «МЕНЮ»



	Функция ReadKey удобна при организации меню программы. Следующая программа выводит список задач (пунктов меню), выделяет первый цветом. При нажатии клавиши “стрелка вниз” выделяет следующий пункт меню,при нажатии клавиши “стрелка вверх” – предыдущий. Нажатие клавиши <Enter> активизирует соответствующую процедуру (в данном случае – процедуру –заглушку).


Program mm;

Uses crt;

Const

norm=$17;                                        {цвет невыделенного пункта}

sel=$70;                                            {цвет выделенного пункта }

n=3;

Var

menu:array[1 .. n]  of  string[12];     {названия пунктов меню}

punkt:integer;                                    {номер веделенного пункта}

ch:char;                                              {введенный символ}

x,y:integer;                                         {координаты первой строки меню} 



Procedure Menutoscr;                                   {вывод меню на экран}

var               i:integer;

begin           clrscr;

        for i:=1 to n do     begin

                           gotoxy(x,y+i-1);

                                        write ( menu[i] );

                                                  end;

  {textattr - предопределенная переменная, отвечающая за цвет фона и символов}

                    textattr:=sel;

                    gotoxy(x,y+punkt-1);

                    write( menu[punkt] );                 {выделим строку меню}

                    textattr:=norm;

end; 



Procedure Punkt1;

begin     clrscr;

              writeln(‘Процедура 1. Нажмите <Enter> для продолжения’);  readln;

end;



Procedure Punkt2;

begin     clrscr;

              writeln(‘Процедура 2. Нажмите <Enter> для продолжения’);     readln;

end;

   {основная программа}

Begin

menu[1]:=’  Действие  1  ’;

menu[2]:=’  Действие  2  ’;

menu[3]:=’  Выход           ’;

punkt:=1;  x:=5;   y:=5;  textattr:=norm;

Menutoscr;

repeat

ch:=ReafKey;

if ch=chr(0) then

                                begin

                                ch:=ReadKey;

                                 case  ch  of

                                              chr(80)  :            {  стрелка  вниз  }

                                                        if punkt<n then  begin

                                                                         gotoxy(x,y+punkt-1);

                                                                         write(menu[punkt]);

                                                                         punkt:=punkt+1;

                                                                         textattr:=sel;

                                                                         gotoxy(x,y+punkt-1);

                                                                         write(menu[punkt]);

                                                                                     textattr:= norm;

                                                                                                 end;

                                               chr(72)  :         {  стрелка  вверх   }

                                                        if punkt<n then  begin

                                                                          gotoxy(x,y+punkt-1);

                                                                          write(menu[punkt]);

                                                                          punkt:=punkt-1;

                                                                          textattr:=sel;

                                                                          gotoxy(x,y+punkt-1);

                                                                          write(menu[punkt]);

                                                                                      textattr:= norm;

                                                                                                 end;

                                                              end;     {case …  of  }

                                            end

                                            else

                                             if ch=chr(13)  then         { нажата клавиша <Enter>}

                                                                    begin

                                                                    case  punkt  of 

	:  punkt1;

	:  punkt2;

	:   ch:=chr(27) ;       {выход}

                                                                                         end;  

                                                                     Menutoscr;

                                                                      End;

until  ch= chr(27) ;   {27  -  код <Esc>}

End.  

	
ПРИЛОЖЕНИЕ 1

	

Волжский университет имени В.Н. Татищева

Кафедра “Информатика и системы управления”



















КУРСОВАЯ РАБОТА



по дисциплине : “Основы технологии программирования”

Тема: “Регистрация участников конференции”







Выполнил: студент гр. ЭК-105

Иванов И.И.

Преподаватель: Матвеева Н.В.







Тольятти 1999


ПРИЛОЖЕНИЕ 3

	

	Волжский университет имени В.Н. Татищева

	Кафедра “Информатика и системы управления”

Специальность: 071900 “Информационные системы”

	

	

	ЗАДАНИЕ

	на курсовой проект по дисциплине

	“Основы технологии программирования”

	

	

	

	Студенту__________________________________________________________

	Группа___________________________________________________________

	Тема проекта__________________________________________________________

	Календарный график задания________________________________________

	

	СОДЕРЖАНИЕ ЗАДАНИЯ

	

	__________________________________________________________________

	

	Руководитель курсовой работы

	

	Студент