Программирование на языках высокого уровня "Стипендия"

Автор: Пользователь скрыл имя, 13 Декабря 2012 в 12:20, курсовая работа

Описание работы

Современная вычислительная техника позволяет решать большое количество различных задач. Пожалуй, наиболее важным применением ЭВМ стало хранение информации. Удобные и разнообразные средства для этой цели предоставляют технологии баз данных и информационно-справочных систем. Целью данной курсовой работы является приобретение опыта алгоритмизации, конструирования, практической реализации программ и широкого применения ЭВМ, на примере программирования информационно-справочной системы. В качестве языка программирования выбран язык TURBO PASCAL, изучаемый на занятиях по дисциплине “Программирование на языках высокого уровня”.

Работа содержит 1 файл

Пояснительная Записка.doc

— 780.00 Кб (Скачать)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Системные требования

  • Операционная система: Dos 6.0/ Windows 98/00/XP
  • Процессор: Pentium II 300 МГц и выше
  • ОЗУ: 1 Мб
  • Видеоадаптер: VGA
  • Монитор с поддержкой графического режима 16 цветов с разрешением 640х480 точек
  • 500 Кбайт свободного места на жёстком диске
  • Наличие START.BAT файла запуска.
  • Так же наличие некоторых файлов с расширением TPU

ИНСТРУКЦИЯ ПО ИСПОЛЬЗОВАНИЮ РАЗРАБОТАННОЙ ПРОГРАММЫ.

 

Файл разработанной  программы называется start.bat. Программа запускается под управлением операционной системы MS-DOS и требует, загруженного до нее драйвера русской раскладки клавиатуры.

Для компиляции исходного  кода в программу помимо файлов shap.pas, tablic.pas, add.pas, glmeny.pas, ps.pas, требуются также объектные файлы egavga.obj и tripfont.obj, содержащие объектный эквивалент бинарного файла egavga.bgi и файла векторного шрифта trip.chr. Кроме того для просмотра содержания имеющихся информационно-справочных таблиц необходимо наличие файлов соответствующих БД.

Во время выполнения роботы программы на диске, в текущей  директории  могут создаваться  файлы БД (расширение .txt) или файлы отчетов. Количество и размер данных файлов ограничены размером свободного мета на диске.

Для запуска программы необходимо запустить START.BAT. После запуска программы « СТИПЕНДИЯ » на экране появится заставка с названием программы. Заставка отключается при нажатии клавиши Enter.  После чего следует пройти процедуру входа в систему. Для этого необходимо набрать пароль в окне «Введите пароль». Пароль необходимо вводить осторожно, в случае неверного ввода программа может закрыться. Если вы являетесь бухгалтером, то необходимо ввести «123456», если вы являетесь гостем, то пароль не нужен, если вы являетесь администратором, то необходимо ввести «324657». При трехкратном неправильном вводе пароля, происходит автоматический выход из программы. При вводе неправильного пароля система информирует пользователя об ошибке и сообщает количество оставшихся попыток.

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

 

  1. Файл БД. Данный пункт содержит основные действие с файлом информационно-справочных таблиц. Содержит следующие подпункты:
  2. Создание. Этот пункт предполагает создание файла БД и его заполнение. Доступен только для администратора.
  3. Просмотр БД. Доступен всем пользователям.
  4. Удаление БД. Данный подпункт доступен только для администратора.
  5. Ведение БД. Доступ к этому пункту меню имеют только администратор  и модератор. Содержание данного пункта меню:
  6. Добавить строку.
  7. Удалить строку.
  8. Сортировать по алфавиту.
  9. Сортировать против алфавита.
  10. Студенты. В этом пункте содержатся действия с файлами, содержащими информацию о студентах, а именно:
  11. Создать ИНФО. Этот подпункт доступен только для администратора и бухгалтера.
  12. Просмотреть ИНФО. Общедоступный подпункт меню.
  13. Удалить ИНФО. Этот подпункт доступен только для администратора и бухгалтера.
  14. Стипендия. В этом пункте меню содержатся все действия с файлами, содержащими дополнительную информацию о студентах, а именно:
  15. Создать ИНФО. Эта процедура доступна только для администратора.
  16. Просмотреть ИНФО.
  17. Добавить строку. Доступ к данному действию имеют администратор и  бухгалтера.
  18. Удалить строку. Доступ к данному действию также имеют администратор и бухгалтер.
  19. Распечатка. Этот пункт меню доступен всем пользователям,
  20. меню позволяет закончить работу с программой после подтверждения выхода.

В верхней части экрана находится  информация о текущем пользователе, т.е. его ранг, в соответствии с которым он наделен теми или иными правами.

Перемещение между пунктами подменю осуществляется по средствам нажатия клавиш «←» - влево и «→» - вправо. Перемещение между пунктами  главного меню осуществляется с помощью клавиш: «↑» - вверх и «↓» - вниз. Выбор нужного пункта меню осуществляется клавишей «ENTER». Выход из пункта меню и из программы осуществляет клавиша «ESC». Для удобства внизу экрана располагаются подсказки пользователю о функциональных клавишах.

При работе с программой в текстовом  режиме следует следовать инструкциям, выводимым на экран.

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

 

 

РЕЗУЛЬТАТЫ ОТЛАДКИ.

 

В процессе написания и отладки программы появлялись следующие ошибки:

 

 

  • Unknoun identifier (Неизвестный идентификатор)
  • Type mismatch (Несоответствие типов)
  • “;” expected (Нужно указать «;»)
  • File access denied (Нет доступа к файлу)
  • File not found (Файл не найден)
  • Path not found (Путь не найден)
  • Прерывание программы при попытке открыть файл с пустым именем. Ошибка была устранена путем добавления условия ввода информации, длина которой должна содержать по меньшей мере хотя бы один значащий символ. Кроме того была предусмотрена отмена ввода информации и возможность выхода из режима.
  • Возникала проблема вывода баз данных, целиком не помещающихся на экране. В результате модернизации программы эта проблема была решена.
  • Неправильно работала процедура поиска строк при вводе недопустимых критериев поиска и при неполном наборе введенных данных. Ошибка была устранена введением ограничением на вводимую информацию, т.е необходимости её соответствия конкретным критериям поиска.
  • Переход курсора выделения в главном меню на несуществующий пункт меню. При доработке программы ошибка была устранена.
  • Неправильно работала подсветка выбранного пункта меню. После корректировки ошибка была устранена.

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

РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ ПРОГРАММЫ.

1.Главная заставка

 

 

 

 

                                                               2.Заставка с указание названия и программиста

 

 

 

3.Ввод пароля

 

      

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

 

 

 

 

 

                                                               5.При случае правильного ввода пароля

 

 

 

 

                                                   6.При случае неверного ввода пароля

 

 

 

 

 

 

 

                                                                              7.Главное меню

 

 

 

 

                                                                         8.БД студенты

 

 

 

 

 

 

 

 

                                                                             

 

 

 

 

 

 

                                                                     9.Создание БД

 

 

 

 

 

 

 

                                                                           10.Создание БД Студенты

 

 

 

 

                                                   ТЕКСТ ПРОГРАММЫ

 

 

{****************************************************************************}

{*    Основная программа, которая содержит модули, нужные для работы программы     *}

{* необходимые модули :crt,graph,zastav  ,glmenu,                            *}

{*   parol,cozdan,shap,addStr,delStr,editStr,help,poiskovik,printer        *}

{*        n-переменная для работы с основным меню                                                                *}

{*        k-переменная для работы с подменю                                                                           *}

{*         pol-переменная для работы с рангом вошедшего                                                       *}

{*           x,i- переменные для работы в создании интерфейса                                                *}

{****************************************************************************}

 

Program Kyrs;

  Uses crt,graph,ps,glmenu,parol,cozdan,hat,addStr,delStr,editStr,zastavka,help,poiskovik,printer;

  Const MaxSize=8;

  Var

    s:string;

    key:char;

    n,k,x,i,pol:integer;

  Begin

   CursorOff;

   zastavka_crt;

   textbackground(11);

   InputParol(pol);

   if pol=1 then begin

   n:=1;

   while n<>5 do

     begin

       vbr(n);

       k:=1;

       if n=1

       then

         while k<>7 do

           begin

             VbrPM1(k);

             if (k=1)

             then

                 AddString(1);

             if (k=2)

             then

               EditString(1);

             if (k=3)

             then

               DelString(1);

             if (k=6)

             then

               Pechat;

             If (k=4)

             then

               p_fam;

             If (k=5)

             then Search;

           end;

       if n=2

       then

         while k<>7 do

           begin

             VbrPM2(k);

             if (k=1)

             then

                 AddString(2);

             if (k=2)

             then

               EditString(2);

             if (k=3)

             then

               DelString(2);

             if (k=6)

             then

                Pechat;

             If (k=4)

             then

                 p_fmo;

             if (k=5)

             then

                Search2;

           end;

       if n=3

       then

          AddBD;

       if n=4 then del;

   end;

   end;

   if pol=2 then begin

   n:=1;

   while n<>5 do

     begin

       vbr(n);

       k:=1;

       if n=1

       then

         while k<>7 do

           begin

             VbrPM1(k);

             if (k=1)

             then

                 AddString(1);

             if (k=2)

             then

               EditString(1);

             if (k=3)

             then

               Delstring(1);

             if (k=6)

             then

               Pechat;

             If (k=4)

             then

               p_fam;

             If (k=5)

             then  Search;

           end;

       if n=2

       then

         while k<>7 do

           begin

             VbrPM2(k);

             if (k=1)

             then

                 AddString(2);

             if (k=2)

             then

               EditString(2);

             if (k=3)

             then

               Delstring(2);

             if (k=6)

             then

                Pechat;

             If (k=4)

             then

                 p_fmo;

             if (k=5)

             then

               Search2;

           end;

       if n=3

       then

          SMS;

       if n=4

       then

          sms;

     end;

 

    end;

   if pol=3 then begin

  n:=1;

   while n<>5 do

     begin

       vbr(n);

       k:=1;

       if n=1

       THEN

          net;

       if n=2

       then

         while k<>7 do

           begin

             VbrPM2(k);

             if (k=1)

             then

                SMS;

             if (k=2)

             then

                SMS;

             if (k=3)

             then

               SMS;

             if (k=6)

             then

                Pechat;

             If (k=4)

             then

                 p_fmo;

             if (k=5)

             then

             Search2;

           end;

       if n=3

       then

          SMS;

       if n=4

       then

          SMS;

       end;

     end;

  End.

 

12

 

{****************************************************************************}

{*  Модуль  ZASTAV     реализует вывод начальной заставки в графическом режиме    *}

{*    Содержит процедуру ZASTAV                                             *}

{*    сh-переменная считывания нажатой клавиши                             *}

{*     не имеет входных и выходных параметров                                                                     *}

{****************************************************************************}

 

unit  zastav;{модуль заставка,работает с графическим режимом}

interface

  uses crt,graph;{граф-стандартный  модуль для графического режима}

  var a,b:integer;{переменные,используемые  в циклах}

  Procedure Zastava;{процедура  ,для рисования заставки}

 implementation

procedure zastava;

   var i:integer;

       col:boolean;

   begin

     SetBKcolor(14);{закраска фона желтым цветом}

     setcolor(1);{задание синего цвета для текста }

     SetTextStyle(7,0,9);{определение  стиля шрифта,расположение,размера  текста}

     outtextxy(5,20,'Стипендия');{вывод текста на определенные координаты}

     setcolor(2);{зеленый текст}

     {рисование поверхности  банкомата}

     for a:=200 to 420  do

      for b:=200 to 500   do

        line(a,b,a,b);{прорисовка линии с заданными координатами}

     bar(250,250,360,380);{прорисовка  прямоугольников с заданными размерами}

     bar(270,420,330,460);

     {прорисовка клавиатуры  банкомата}

     SeTCOLOR(1);{синий  текст}

     SeTTeXTSTYLe(1,0,1);

     OUTTeXTXY(275,420,'12345');

     OUTTeXTXY(275,440,'67890');

     OUTTeXTXY(260,210,'Банкомат');

     {анимация  падения купюр}

     SeTCOLOR(2);

     SettextStyle(1,0,1);

     outtextxy(260,260,'$   $   $   $  ');

     DeLAY(500);{задержка времени}

     outtextxy(260,280,'$   $   $   $  ');

     DeLAY(500);

     outtextxy(260,300,'$   $   $   $  ');

     DeLAY(500);

     outtextxy(260,320,'$   $   $   $  ');

     DeLAY(500);

     outtextxy(260,340,'$   $   $   $  ');

     DeLAY(500);

     outtextxy(260,360,'$   $   $   $  ');

     DeLAY(500);

     outtextxy(260,380,'$   $   $  $  ');

     DeLAY(500);

     outtextxy(260,400,'$   $   $   $  ');

     {анимация смены цвета надписи стипендия}

     repeat

       i:=random(256);{случайный  выбор цвета}

       setcolor(i);

       SetTextStyle(7,0,9);

       outtextxy(5,20,'Стипендия');

Информация о работе Программирование на языках высокого уровня "Стипендия"