Инфоурок Информатика Другие методич. материалыПояснительная записка к курсовому проекту по программированию на Pascal (пример)

Пояснительная записка к курсовому проекту по программированию на Pascal (пример)

Скачать материал

Министерство науки и высшего образования Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего образования

«Уральский федеральный университет имени первого Президента России Б.Н. Ельцина»

 

 

 

Пояснительная записка

«Разработка проекта в среде PascalABC.Net»

Дисциплина Информатика

 

 

Дата сдачи __________________

Студент: Николаева Е. М.

Группа: СТ-170015

Вариант __

Преподаватель: Карманова М. М.

Спецификация (10)

 

 

Логическая (математическая) модель (10)

 

 

Блок-схемы (20)

 

 

Программа (35 /25)

 

 

Срок сдачи (10)

 

 

Защита (15)

 

 

 

Итого (100) _________________

Итого (30) _________________

 

 

 

                                                                              

 

Екатеринбург 2019

Оглавление

ТЕХНИЧЕСКОЕ ЗАДАНИЕ. 3

1. ПОСТАНОВКА ЗАДАЧИ.. 5

2.СПЕЦИФИКАЦИЯ.. 6

2.1. Словесный алгоритм программы.. 6

2.2. Краткое описание подпрограмм.. 7

2.3. Структура данных. 9

2.4. Логическая модель. 10

3 ЛИСТИНГ ПРОГРАММЫ.. 12

4. БЛОК-СХЕМЫ.. 18

 

 


 

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Задание. Вариант 11.

1.        Программа должна работать под управлением меню, состоящего, например, из 5 пунктов:

-       О программе                                     ‑ О программе

-       Ввод исходных данных                     ‑ 1 уровень сложности

-       Проведение расчета       или             ‑ 2 уровень сложности

-       Построение графика                         ‑ 3 уровень сложности

-       Выход                                               ‑ Выход

2.        Программа должна быть защищена от любых некорректных действий пользователя.

3.        В случае расчета значений функции программа должна работать с любыми значениями аргумента из области определения данной функции.

4.        При любых значениях исходных данных рисунок (график) должен составлять 70 % площади экрана.

5.        На свободном поле экрана должна располагаться сопроводительная информация для пользователя (способы управления и прерывания программы, счёт – для графических игр)

6.        При расчете значений функции обязательно наличие заголовка функции, расположенного над графиком (текста задания, расположенного над рисунком), координатной сетки, минимального и максимального значений аргумента и значений функции в этом интервале.

7.        К программе должна прилагаться пояснительная записка, содержащая:

-       Титульный лист

-       Техническое задание

-       Спецификацию, содержащую математическую или логическую модель решаемой задачи, графическое решение задачи, словесное описание режимов управления программой, описание входных и выходных параметров программы, возможные ошибки пользователя при работе с программой

-       Блок-схемы алгоритма решения поставленной задачи с использованием технологии последовательной детализации. Блок–схема каждого модуля должна начинаться с названия модуля и описания его входных и выходных параметров

-       Листинг (текст программ) всех модулей

Небрежно оформленные работы к рассмотрению не принимаются: не допускаются сокращения слов, графическая часть пояснительной записки должна быть распечатана на принтере или оформлена с помощью карандаша и линейки, текст всей пояснительной записки пишется на одной стороне листа формата А4.

 


 

1. ПОСТАНОВКА ЗАДАЧИ

Задание. Вариант 11.

В нижней части игрового поля движутся платформы поезда. В верхней части игрового поля располагаются два «подъемных крана, держащих элементы дома». Нажатие клавиши ENTER начинает движение элемента дома вниз. Переключение между «кранами» осуществляется нажатием клавиши TAB.

Цель игры – необходимо, как можно больше собрать домов. В игре три уровня сложности, отличающиеся скоростью движения платформ поезда.

Необходимо создать меню для выбора уровня вида:

1 уровень

2 уровень

3 уровень

О программе

Выход

 

Для выполнения проекта необходимо реализовать следующие задачи:

-          Реализовать  «движение домов» по нажатию клавиши ENTER.

-          Реализовать переключение между «кранами» c помощью клавиши TAB.

-          Организовать подсчет пойманных домов.

-          Организовать переход между пунктами меню.

-          Организовать выход из программы.


2.СПЕЦИФИКАЦИЯ

Краткая характеристика программы:

1.        Программа состоит из одного файла, имя файла: GAME11.pas, объем файла 23 Кб.

2.        Автор: Николаева Е. М., студент группы: Ст-170015

3.        Дата создания: 21 апреля 2018

4.        Программа разработана в среде Turbo Pascal 7.0

5.        Минимальные требования к системе:

-       Операционная система Windows 95/98/ME/XP/Win7.

-       Среда программирования Turbo Pascal.

-       Клавиатура.

2.1. Словесный алгоритм программы

После запуска программы на экране появляется меню, состоящее их следующих пунктов:

1 уровень

2 уровень

3 уровень

О программе

Выход

Перемещение по пунктам осуществляется с помощью клавиш ВВЕРХ и ВНИЗ, при выборе нужного пункта нажать клавишу ENTER. Активный пункт отображается зеленым цветом, неактивный – белым.

Вывод меню на экран и управление пунктами меню реализуется в главном модуле программы с помощью переменных:

-                   a – символьная переменная, считывающая нажатую клавишу;

-                   k – целое положительное число, хранящее номер активного пункта меню.

Описание пунктов меню

Название пункта

Описание

1 уровень

Запускается процедура игры с исходными данными для 1-го уровня (скорость движения поезда)

2 уровень

Запускается процедура игры с исходными данными для 2-го уровня (скорость движения поезда)

3 уровень

Запускается процедура игры с исходными данными для 3-го уровня (скорость движения поезда)

О программе

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

Выход

Программа завершает работу

2.2. Краткое описание подпрограмм

В программе используются пользовательские подпрограммы:

-          procedure menu(k:word); – процедура, очищает экран и выводит меню;

-          procedure platform(x:integer; color:byte); – процедура, рисует платформу длиной 200,белым цветом;

-          procedure train(x:integer; color:byte); – процедура, рисует пять платформ образующих поезд;

-          procedure kran(x:integer; color:byte); – процедура, рисует два крана цветов в верхней части игрового поля, переключение осуществляется клавишей Tab;

-          procedure dom (x, y) – процедура, рисует два домика на обоих кранах;

-          function complete(d,t) – функция запускает проверку условия попадания дома на платформу. Если дом упал и его левая координата, а больше левой координаты платформы, а правая координата b соответственно меньше правой координаты платформы – условие выполнено и пользователю удалось «поймать» дом на поезд;

-                   procedure play – процедура, организует движение домов вниз по нажатию клавиши ENTER, (дом, выбранный пользователем окрашен бордовым), скорость движения поезда согласно выбранному уровню, считает количество пойманных домов.

Для вывода на экран меню используется процедуры с повторяющимся выводами массива меню.

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

Для перемещения по меню используется оператор readkey, для анализа нажатой клавиши оператор case. После анализа нажатия кнопки выполняются определенные действия с переменной, используемой для выбора пункта меню (k).

Для работы необходимо включить графический модуль (uses graph), и настроить параметры режима для этого используется встроенная процедура initgraph.

Для организации движения поезда и домов используются процедуры рисование домов, поезда, и стирание домов после попадания на поезд.

Для задержки движения используется оператор delay.

Для считывания кода клавиши используется команда readkey. С помощью оператора case производится анализ и выполнение соответствующих перерасчетов координат для рисования поезда и домов.

В программе используются только клавиши ВВЕРХ, ВНИЗ, ENTER, TAB, ESCAPE. На другие клавиши программа не реагирует.


2.3. Структура данных

В программе используются переменные следующих типов:

-          для организации счетчика и циклов используются целочисленные положительные переменные типа word; (i,k,p,c:word), а также переменные логического типа (d1,d2,q: boolean) . Переменная q используется для возвращения в меню, переменные d1, d2 используются в режиме игры.

-          для рисования графических объектов необходимо указать координаты, которые должны быть целочисленными и неотрицательными, но диапазон типа byte маленький поэтому используем тип integer (x,y,t,a,b : integer);

-          для инициализации графического режима используют процедуру initgraph (gd,gm, ‘ ‘); где gd – тип графического драйвера,  gm – тип графического режима,  это переменные целочисленного типа integer (gm,gd:integer);

-          для считывания кода символа используется команду readkey, считываемую клавишу сохраняем как переменную типа – char (а:char);

-          массив заполнен текстом (пункты меню) – строковыми элементами, поэтому массив типа –  string (m:array [1..5] of string)

В различных подпрограммах также используются некоторые локальные дополнительные переменные.

В программе используется константа для  массива меню:

Const      m:array [1..5] of string[11]=('Уровень 1','Уровень 2','Уровень 3','О программе','Выход');

 

 


 

2.4. Логическая модель

На схеме представлена общая логическая модель работы программы

Запуск программы,Вывод на экран меню
Уровень 1
Уровень 2
Уровень 3
О программе
Выход
,Выбор пункта меню (клавиши ВВЕРХ, ВНИЗ, ENTER),При выборе пункта Уровень 1
происходит запуск игры с параметрами для 1-го уровня
Вернуться в меню можно с помощью нажатия клавиши ESCAPE
,При выборе пункта Уровень 2
происходит запуск игры с параметрами для 2-го уровня
Вернуться в меню можно с помощью нажатия клавиши ESCAPE
,При выборе пункта Уровень 3
происходит запуск игры с параметрами для 3-го уровня
Вернуться в меню можно с помощью нажатия клавиши ESCAPE
,При выборе пункта О программе
На экран выводится справочная информация
Вернуться в меню можно с помощью нажатия клавиши ESCAPE
,При выборе пункта Выход
происходит завершение работы программы
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 


На схеме представлена упрощенная логическая модель работы пункта Уровень 1

Запуск Уровень 1,Описание переменных,Инициализация графического режима,В процессе игры происходит анализ нажатой клавиши (цикл Repeat):
ESCAPE – возвращение в меню программы
TAB – переключение между кранами (kr1, kr2)
ENTER – управление выбранным краном
,Рисование домов (процедура dom)
Рисование платформы (процедура train)
Рисование крана (процедура kran)
,Организация движения платформы,При нажатии ENTER выбранный кран движется до платформы
Происходит сравнение координат дома и платформы. 
Если дом «помещается» на платформу, то происходит подсчет очков (p=p+1)
,Вывод счета на экран
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 


3 ЛИСТИНГ ПРОГРАММЫ

Program Game11;

Uses graph,crt;

const

     m:array [1..5] of string[11]=('Уровень 1','Уровень 2','Уровень 3','О программе','Выход');

var gd,gm,kr:integer;

    c:byte;

    d1,d2,q:boolean;

    i,k:word;

    a:char;

 

procedure menu(k:word);

          begin

               clrscr;

               for i:=1 to 5 do

                   begin

                        if i=k then textcolor(2)

                               else textcolor(7);

                        gotoxy(36,11+i);

                        write(m[i]);

                   end;

          end;

 

procedure platform(x:integer; color:byte);

begin

 setcolor(color);

 rectangle(x,420,x+200,440);

 circle(x+40,450,10);

 circle(x+160,450,10);

end;

 

procedure train(x:integer; color:byte);

var i:byte;

begin

 setcolor(color);

 for i:=1 to 5 do

   platform(x-i*(200+20),color);

end;

 

 

 

procedure kran(x:integer; color:byte);

begin

 setcolor(color);

 if x=1

  then begin

        Line(2,20,160,40);

        Line(2,60,160,40);

        Line(2,20,2,60);

       end

  else begin

        Line(638,20,480,40);

        Line(638,60,480,40);

        Line(638,20,638,60);

       end;

end;

 

procedure dom(x,y:integer; color:byte);

begin

 setcolor(color);

 if x=1

  then begin

        Line(100,y+120,160,y+40);

        Line(220,y+120,160,y+40);

        Rectangle(100,y+120,220,y+240);

       end

  else begin

        Line(540,y+120,480,y+40);

        Line(420,y+120,480,y+40);

        Rectangle(540,y+120,420,y+240);

       end;

end;

 

function complete(d,t:integer):boolean;

var i,a,b:integer;

    f:boolean;

begin

 case d of

  1: begin

      a:=100;

      b:=220;

     end;

  2: begin

      a:=420;

      b:=540;

     end;

 end;

 f:=false;

 for i:=1 to 5 do

  if ((t-i*(200+20))<a) and ((t-i*(200+20)+200)>b)

   then f:=true;

 complete:=f;

end;

 

procedure play(level:byte);

var cl1,cl2:byte;

    k:char;

    t,y1,y2,p:integer;

    s:string;

begin

 InitGraph(gd,gm,'');

 t:=0;

 y1:=0;

 y2:=0;

 p:=0;

 d1:=false;

 d2:=false;

 rectangle(1,1,639,479);

 Repeat

  if keypressed

   then begin

         k:=readkey;

         case ord(k) of

          9: if kr=1 then kr:=2 else kr:=1;

          13: begin

                case kr of

                 1: if not d1 then d1:=true;

                 2: if not d2 then d2:=true;

                end;

               end;

         end;

        end;

 

  cl1:=white;

  cl2:=white;

  case kr of

   1:cl1:=magenta;

   2:cl2:=magenta;

  end;

  dom(1,y1,black);

  dom(2,y2,black);

  train(t,black);

  t:=t+5*level;

  if d1

   then y1:=y1+10;

  if d2

   then y2:=y2+10;

  if t>900

   then t:=t-220;

  if y1>180

   then begin

         y1:=0;

         d1:=false;

         if complete(1,t)

          then begin

                cl1:=green;

                p:=p+1;

               end

          else cl1:=red;

        end;

  if y2>180

   then begin

         y2:=0;

         d2:=false;

         if complete(2,t)

          then begin

                cl2:=green;

                p:=p+1;

               end

          else cl2:=red;

        end;

  kran(1,cl1);

  kran(2,cl2);

  dom(1,y1,cl1);

  dom(2,y2,cl2);

  train(t,white);

  setcolor(black);

  OuttextXY(310,20,s);

  setcolor(white);

  str(p,s);

  OuttextXY(310,20,s);

  delay(5000);

 Until ord(k)=27;

 readkey;

 CloseGraph;

end;

 

Begin

 clrscr;

 kr:=1;

 menu(1);

 k:=1;

 q:=true;

 while q=true do

       begin

            a:=readkey;

            case ord(a) of

                 27:q:=false;

                 13:case k of

                         1:play(1);

                         2:play(2);

                         3:play(3);

                         4:begin

                                clrscr;

                                gotoxy(13,2);

                                write('…………………………….» ');

                                gotoxy(35,10);

                                write('Разработка проекта на языке Pascal');

                                gotoxy(37,11);

                                write('Вариант 11');

                                gotoxy(45,20);

                                write('Студент ____________.');

                                gotoxy(45,21);

                                write('Группа Ст-__________');

                                gotoxy(41,24);

                                write('2018');

                                readln;

                           end;

                         5:q:=false;

                    end;

            end;

       menu(k);

       if ord(a)=0 then begin

                        a:=readkey;

                        case ord(a) of

                             72:begin

                                     k:=k-1;

                                     if k=0 then k:=5;

                                     menu(k);

                                end;

                             80:begin

                                     k:=k+1;

                                     if k>5 then k:=1;

                                     menu(k);

                                end;

                        end;

       end;

end;

end.


4. БЛОК-СХЕМЫ

 

Здесь должны располагаться блок-схемы для ВСЕХ модулей программы (подпрограммы и основная программа).

Блок-схема должна быть подписана сверху схемы (название модуля, перечень используемых переменных  и краткое описание, что  выполняет модуль)

Как оформлять блок-схемы читайте в лекции!

 

 

 

 

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Пояснительная записка к курсовому проекту по программированию на Pascal (пример)"

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Директор детского оздоровительного лагеря

Получите профессию

HR-менеджер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 662 865 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 19.01.2020 2006
    • DOCX 83.5 кбайт
    • 20 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Карманова Марина Михайловна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Карманова Марина Михайловна
    Карманова Марина Михайловна
    • На сайте: 7 лет
    • Подписчики: 5
    • Всего просмотров: 405785
    • Всего материалов: 106

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

HR-менеджер

Специалист по управлению персоналом (HR- менеджер)

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Теория и методика обучения информатике в начальной школе

Учитель информатики в начальной школе

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 96 человек из 34 регионов
  • Этот курс уже прошли 222 человека

Курс профессиональной переподготовки

Информатика: теория и методика преподавания с применением дистанционных технологий

Учитель информатики

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 18 человек

Курс профессиональной переподготовки

Управление сервисами информационных технологий

Менеджер по управлению сервисами ИТ

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Сейчас обучается 26 человек из 19 регионов
  • Этот курс уже прошли 34 человека

Мини-курс

Эффективное взаимодействие с детьми: стратегии общения и воспитания

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 661 человек из 74 регионов
  • Этот курс уже прошли 543 человека

Мини-курс

Стратегии B2B маркетинга: от анализа до продаж

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Основы психологических трансформационных игр

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 55 человек из 33 регионов
  • Этот курс уже прошли 32 человека