ВОЛЖСКИЙУНИВЕРСИТЕТ им. В.Н. ТАТИЩЕВА
ФАКУЛЬТЕТИНФОРМАТИКИ И ТЕЛЕКОММУНИКАЦИЙ
Кафедра“Информатика и системы управления”
МЕТОДИЧЕСКИЕУКАЗАНИЯ
“Основытехнологии программирования”
для студентовспециальности
071900“Информационные системы”
220100“Вычислительные машины, комплексы, системы и сети”
(для дневногоотделения)
Тольятти 2006
1.ОБЩИЕ ПОЛОЖЕНИЯ ОКУРСОВОЙ РАБОТЕ
Курсовая работаразрабатывается и решается на компьютере. По результатам курсовой работысоставляется отчет, который включает описание всех этапов работы и приложения,включающие распечатки машинной реализации задачи.
Получив заданиена курсовую работу, необходимо разбить задачу на отдельные модули (процедуры,функции).
Программадолжна быть оформлена в диалоговом режиме. Работу с отдельными модулями программыреализовать через доступное “меню”. Пример программы “Меню” приведен в концеданного пособия.
2. ЦЕЛИ И ЗАДАЧИКУРСОВОГО ПРОЕКТА
Дисциплина“Основы технологии программирования” читается в течении двух семестров. Курсоваяработа выполняется во втором по счету семестре и служит для закрепленияпройденного материала по соответствующему курсу и приобретению практическихнавыков программирования с применением объектно-ориентированного языка Pascal.
3.СОДЕРЖАНИЕ КУРСОВОЙРАБОТЫ
Курсовая работадолжна содержать следующие разделы:
1. титульный лист (Приложение 1);
2. оглавление;
3. рецензию (Приложение 2).
4. задание, на основании котороговыполняется курсовая работа
(Приложение 3);
5. описание предметной области;
6. описание алгоритма задачи;
7. список используемой литературы;
8. приложения;
Приложениядолжны включать:
· листинги программ;
· распечатку структуры базы данных;
· распечатку результатов решения задачипо данным контрольного примера.
4. РЕКОМЕНДАЦИИ КСОЗДАНИЮ ПРОГРАММЫ
Курсовая работаразрабатывается на базе полученного задания.
Практическая частькурсовой работы должна состоять из головной программы и подпрограмм илимодулей, детализирующих весь вычислительный процесс. Для демонстрации работыпрограммы необходимо создать небольшую базу данных (файл данных). Программурекомендуется организовать в режиме диалога. Для этого необходимо создать менюпрограммы, с помощью которого обращаться к отдельным подпрограммам или модулям.Пример использования программы “Меню” приведен ниже.
ВВОД СИМВОЛА СКЛАВИАТУРЫ.
Функция ReadKey (читать клавишу) ожидает нажатияклавиши на клавиатуре, после чего возвращает символ (тип CHAR), соответствующий нажатой клавише.При этом символ клавиши на экран не выводится. Используя эту функцию, можнообрабатывать нажатия служебных клавиш, таких как — , клавиш перемещения курсора и листания текстастраницами. При нажатии служебных клавиш ReadKey возвращает 0. Чтобы получить номер служебной клавиши,нужно еще раз вызвать ReadKey.
Ниже приведенапрограмма, которая позволяет определить код нажатой клавиши. Программазавершает работу при нажатии клавиши .
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; { пока не нажата клавиша }
End.
ПРИМЕР ПРОГРАММЫ «МЕНЮ»
Функция ReadKey удобна при организации менюпрограммы. Следующая программа выводит список задач (пунктов меню), выделяетпервый цветом. При нажатии клавиши “стрелка вниз” выделяет следующий пунктменю, при нажатии клавиши “стрелка вверх” – предыдущий. Нажатие клавиши активизирует соответствующуюпроцедуру (в данном случае – процедуру –заглушку).
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; {координаты первой строки меню}
ProcedureMenutoscr; {вывод меню на экран}
var i:integer;
begin clrscr;
for i:=1 to ndo 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. Нажмите для продолжения’); readln;
end;
Procedure Punkt2;
begin clrscr;
writeln(‘Процедура 2. Нажмите для продолжения’); 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) : { стрелка вниз }
ifpunkt
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
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 { нажата клавиша }
begin
case punkt of
1 : punkt1;
2 : punkt2;
3 : ch:=chr(27) ; {выход}
end;
Menutoscr;
End;
until ch= chr(27) ; {27 - код }
End.
ПРИЛОЖЕНИЕ 1
Волжскийуниверситет имени В.Н. Татищева
Кафедра“Информатика и системы управления”
КУРСОВАЯРАБОТА
по дисциплине: “Основы технологии программирования”
Тема:“Регистрация участников конференции”
Выполнил: студент гр. ЭК-105
Иванов И.И.
Преподаватель: Матвеева Н.В.
Тольятти 1999
ПРИЛОЖЕНИЕ 3
Волжский университет имени В.Н. Татищева
Кафедра “Информатика и системыуправления”
Специальность: 071900 “Информационныесистемы”
ЗАДАНИЕ
на курсовой проект по дисциплине
“Основы технологии программирования”
Студенту__________________________________________________________
Группа___________________________________________________________
Темапроекта__________________________________________________________
Календарный график задания________________________________________
СОДЕРЖАНИЕЗАДАНИЯ
__________________________________________________________________
Руководитель курсовойработы
Студент