ВОЛЖСКИЙ УНИВЕРСИТЕТ им. В.Н. ТАТИЩЕВА
ФАКУЛЬТЕТ ИНФОРМАТИКИ И ТЕЛЕКОММУНИКАЦИЙ
Кафедра “Информатика и системы управления”
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
“Основы технологии программирования”
для студентов специальности
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 “Информационные системы”
ЗАДАНИЕ
на курсовой проект по дисциплине
“Основы технологии программирования”
Студенту__________________________________________________________
Группа___________________________________________________________
Тема проекта__________________________________________________________
Календарный график задания________________________________________
СОДЕРЖАНИЕ ЗАДАНИЯ
__________________________________________________________________
Руководитель курсовой работы
Студент