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

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

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

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

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

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

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

       writeln('╔══════════════════════════════════════════════════╗':65);

       Writeln('║   Введите данные о ':34,i,'-ом студенте                 ║':25);

       writeln('╚══════════════════════════════════════════════════╝':65);

       with lineFile do

       Begin

             writeln('╔══════════════════════════════════════════════════╗':65);

             writeln('║ Ф.И.О:                                           ║':65);

             writeln('╠══════════════════════════════════════════════════╣':65);

             writeln('║ Специальность:                                   ║':65);

             writeln('╠══════════════════════════════════════════════════╣':65);

             Writeln('║ Стипендия:                                       ║':65);

             writeln('╠══════════════════════════════════════════════════╣':65);

             Writeln('║ Льготы:                                          ║':65);

             writeln('╚══════════════════════════════════════════════════╝':65);

             russ;

             GotoXy(30,5);

             Readln(fam);

             GotoXy(30,7);

             Readln(spec);

             GotoXy(34,9);

             Readln(stip);

             GotoXy(30,11);

             Readln(lgot);

 

       End;

     Write(Ft,lineFile);

     writeln;

     clrscr;

    End;

    clrscr;

    MSOK;

    close(ft);

   End;

End.

 

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

{*  Модуль  EDITSTR предназначен для редактировании строки                                       *}

{*    Процедура editstring является основной и используется в главной программе            *}

{*      входным параметром является n  он определяет в какой таблице менять строку   *}

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

 

unit EditStr;

Interface

   Procedure EditString(n:integer);

Implementation

Uses crt;

Type

    stud=record

     fam:string[21];

     grup:string[13];

     inf:string[22];

     spec:string[7];

    end;

     st=record

     fam:string[80];

     spec:string[30];

     stip:string[50];

     lgot:string[30];

     end;

 

 

Procedure Russ;

   begin

      textbackground(11);

      GotoXY(2,25);

      write(' Для переключения на русский язык используйте клавиши Shift+"Контекстное меню"');

      textbackground(7);

   end;

 

Procedure MessageVopros;

  var

    i:integer;

  begin

    textcolor(0);

    for i:=1 to 6 do

      writeln('');

    writeln('╔══════════════════════════════════════════════════╗':65);

    writeln('║       Вы действительно хотите изменть строку?    ║':65);

    writeln('╠══════════════════════════════════════════════════╣':65);

    writeln('║ Нажмите  Enter для  продолжения и ESC для отмены  ║':65);

    writeln('╚══════════════════════════════════════════════════╝':65);

  end;

Procedure Okiz;

  begin

     writeln;

     writeln;

     writeln('╔══════════════════════════════════════════════════╗':65);

     writeln('║           Строка успешно изменена!               ║':65);

     writeln('╠══════════════════════════════════════════════════╣':65);

     writeln('║        Для продолжения нажмите любую  клавишу     ║':65);

     writeln('╚══════════════════════════════════════════════════╝':65);

     readkey;

  end;

 Procedure EditString(n:integer);

   Var

     i,r,p:integer;

     newStr1:stud;

     newStr2:st;

 

     f1:file of stud;

     f2:file of st;

 

     key:char;

   Begin

     clrscr;

     MessageVopros;

     key:=readkey;

     if key=#13 then begin

     clrscr;

     repeat

              writeln('╔══════════════════════════════════════════════════╗':65);

              writeln('║        Введите номер изменяемой строки:          ║':65);

              writeln('╠══════════════════════════════════════════════════╣':65);

              writeln('║                                                  ║':65);

              writeln('╚══════════════════════════════════════════════════╝':65);

              gotoXY(45,4);

              {$I-}

              read(r);

              p:=IOResult;

              if p<>0 then

                            begin

                               writeln;

                               writeln('╔══════════════════════════════════════════════════╗':65);

                               writeln('║        Неверный формат ввода! Вводите цифры!     ║':65);

                               writeln('╚══════════════════════════════════════════════════╝':65);

                               delay(1000);

                            end;

              clrscr;

     until (p=0);

     {$I+}

     readln;

     if n=1

     then

       begin

         with NewStr1 do

           begin

             writeln('╔══════════════════════════════════════════════════╗':65);

             writeln('║ Ф.И.О.:                                          ║':65);

             writeln('╠══════════════════════════════════════════════════╣':65);

             writeln('║ Группа:                                          ║':65);

             writeln('╠══════════════════════════════════════════════════╣':65);

             Writeln('║ Информация:                                      ║':65);

             writeln('╠══════════════════════════════════════════════════╣':65);

             Writeln('║ Специальность:                                   ║':65);

             writeln('╚══════════════════════════════════════════════════╝':65);

             russ;

             GotoXY(30,2);

             Readln(fam);

             GotoXY(30,4);

             Readln(grup);

             GotoXY(30,6);

             Readln(inf);

             GotoXY(30,8);

             Readln(spec);

             GotoXY(30,10);

             okiz;

          end;

        assign(f1,'studentinf.txt');

        reset(f1);

        seek(f1,r-1);

        write(f1,NewStr1);

        close(f1);

     end;

     if n=2

     then

       begin

         with NewStr2 do

           Begin

             writeln('╔══════════════════════════════════════════════════╗':65);

             writeln('║ Ф.И.О.:                                          ║':65);

             writeln('╠══════════════════════════════════════════════════╣':65);

             writeln('║ Специальность:                                   ║':65);

             writeln('╠══════════════════════════════════════════════════╣':65);

             Writeln('║ Стипендия:                                       ║':65);

             writeln('╠══════════════════════════════════════════════════╣':65);

             Writeln('║ Льготы:                                          ║':65);

             writeln('╚══════════════════════════════════════════════════╝':65);

             russ;

             GotoXy(30,2);

             Readln(fam);

             GotoXy(30,4);

             Readln(spec);

             GotoXy(34,6);

             Readln(stip);

             GotoXy(30,8);

             Readln(lgot);

             okiz;

           End;

         assign(f2,'stip.txt');

         reset(f2);

         seek(f2,r-1);

         write(f2,NewStr2);

         close(f2);

       end;

     end

     else exit;

     if key=#27 then exit;

 end;

end.

 

 

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

{* Модуль GLMENU предназначен для вывода интерфеса меню                                       *}

{*    Процедура CursorOff – отключает курсор                                                                        *}

{*    Процедура PODMen- прорисовывает надписи подменю                                              *}

{*    Процедура GlMen – прорисовывает надписи подменю                                                   *}

{*    Процедура Scr – заливает фон голубым цветом                                                               *}

{*    Процедура Fon- заливает область под надписью серым цветом                                    *}

{*    Процедура Activ- выделяет активный пункт меню желтым цветом                             *}

{*    Процедура  Text – делает цвет надписей  черными                                                         *}

{*    Процедура  DrawMenu –прорисовывает структуру главного меню                               *}

{*    Процедура DrawPMenu- прорисовывает структуру подменю                                        *}

{*    Процедура Vbr- двигает активную область в меню                                                        *}

{* ПроцедураVbrPM1-двигает активную обл. в подменю и рисует таблицу студенты     *}

{* Процедура VbrPM2- двигает активную обл. в подменю и рисует таблицу стипендия  *}

{*      входным параметром является n   он определяет пункт меню                                 *}

{*      выходным параметром является K    он определяет пункт подменю                       *}

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

 

Unit GlMenu;{модуль прорисовки главного  меню}

interface

  Procedure CursorOff;{процедура отключения  курсора(ассемблерная вставка) }

  Procedure PODMen;{прорисовка пунктов  подменю}

  Procedure GlMen;{прорисовка пунктов  главного меню}

  Procedure Scr;{процедура закраски  фона голубым цветом}

  Procedure Fon;{процедура закраски  области подтекста серым цветом}

  Procedure Activ;{процедура закраски  выбранного пунка желтым цветом}

  Procedure Text;{процедура текста}

  procedure DrawMenu(n: integer);{рисование главного  меню}

  procedure DrawPMenu(n: integer);{рисование подменю}

  Procedure VbrPM1(var k:integer);{передвижение активного курсора по подменю}

  Procedure VbrPM2(var k:integer);{передвижение активного курсора по подменю}

  Procedure Vbr(var k:integer);{передвижение  активного курсора по меню}

 

implementation

 

uses crt,hat;

var  C:char;

      n,i,w,z:integer;

      GM:array[1..5] of string;{массив строк для главного меню}

      PM:array[1..7] of string;{массив строк для подменю}

      pr:string;

      FileName:string;

 

Procedure CursorOff;Assembler;  { Процедура отключения курсора}

     Asm

      mov ah,1

      mov ch,$20

      int $10

     end;

 

Procedure PODMen;{процедура прорисовки пунктов подменю}

  begin

    PM[1]:='  Добавить  ';

    PM[2]:='  Изменить ';

    PM[3]:='  Удалить  ';

    PM[4]:='  Поиск  ';

    PM[5]:='  Сортировать ';

    PM[6]:='  Распечатать  ';

    PM[7]:='  Назад ';

  end;

 

Procedure GlMen;{процедура прорисовки пунктов главного меню}

  begin

   GM[1]:='     СТУДЕНТЫ       ';

   GM[2]:='     СТИПЕНДИЯ      ';

   GM[3]:='     СОЗДАТЬ  БД     ';

   GM[4]:='     УДАЛИТЬ  БД     ';

   GM[5]:='       ВЫХОД        ';

  end;

Procedure Scr;{процедура закраски фона  голубым цветом}

  begin

   textbackground(11);{смена цвета на  голубой}

  end;

Procedure Fon;

  begin

   textbackground(7);{серый цвет}

  end;

Procedure Activ;

  begin

   textbackground(14);{желтый цвет}

  end;

Procedure Text;

  begin

   textcolor(0);{текст черный}

  end;

 

procedure DrawMenu;

var

   i:integer;

 begin

  clrscr;

  scr;

  fon;

  {перемещение главного меню  на центр экрана}

  for i:=1 to n-1 do

   begin

    GotoXY(30,10+i);{перемещение на заданную позицию}

    Writeln(GM[i]);{вывод массива  строк}

   end;

  Activ;

  gotoXY(30,10+n);

  writeln(GM[n]);

  scr;

  fon;

  for i:=n+1 to 5 do

     begin

      GotoXY(30,10+i);

      writeln(Gm[i]);

     end;

     {вывод подсказки  на экран}

  scr;

  fon;

  gotoXY(2,25);

  write('        Для  перемещениями между пунктами меню используйте клавиши ',#24,#25,'          ');

end;

 

Procedure Vbr(var k:integer);{процедура выбора  пунктов меню}

 var

  Counter: integer;

  begin

   clrscr;

   GlMen;

   n:=1;

   c:=#2;

   w:=0;

   scr;

   text;

   DrawMenu(1);

   {если не нажат enter}

   while c<>#13{обозначение клавиши enter} do

    begin

     repeat

       c:=readkey;

     until (c=#13) or (c=#72) or (c=#80);

     scr;

     clrscr;

     fon;

     scr;

 

     if (n=1) and (c=#72)

                then n:=2;

     if (n=5) and (c=#80)

                then n:=4;

     if c=#80 then

               begin

                n:=n+1;

                if n=7 then n:=1;

                DrawMenu(n);

               end;

     if c=#72 then

              begin

                dec(n);

                if n=0 then n:=6;

                DrawMenu(n);

               end;

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