на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: Создание текстового редактора


Реферат: Создание текстового редактора

Министерство энергетики РФ

Уфимский Энергетический Колледж

Курсовая работа

по Основам алгоритмизации и программирования

на тему “Создание текстового редактора”

Выполнил:    студент группы  2 – АС – 3   ____________ Тимофеев Т.П.

Проверил:                                                       ____________ Ганиев А.Э.

Уфа – 2001г.

Содержание

Задание ……………………………………………………… стр. 3

Описание программы ………………………………………. стр. 4

Листинг ……………………………………………………… стр. 5

Исходный текст программы .…………………………. стр. 5

Текст модуля ……………….………………………….. стр.10

Заключение ………………………………………………….. стр.18

Список использованной литературы ……………………… стр.19

Задание.

Создать программу, обеспечивающую:

Cоздание файлов.

Переименование файлов.

Удаление файлов.

Копирование файла в другой файл.

Открытие файла для просмотра.

Программа должна быть написана на Turbo Pascal в текстовом режиме с использованием любых модулей, которые необходимы для её реализации (допускаются также модули пользователя).

Описание программы.

Timofeev Word v.1.0 – это программа для работы с текстом. С её помощью можно создавать, удалять, переименовывать, открывать, копировать файлы друг в друга. Конечно, всё это можно проделать и в MS-DOS, но преимущество этой программы в том, что все эти команды тщательно спрятаны под красивым и дружественным интерфейсом моей программы.

Так как в программе Timofeev Word v.1.0 много процедур, я создал собственный модуль Tim.tpu, куда их (процедуры) и отправил.

Процедуры:

Table – рисует оболочку программы.

Enter_Sandman – происходит проигрывание музыки на песню группы Metallica - “Enter Sandman”. Я не стал делать так, чтобы при нажатии какой-либо клавиши она прекращала играть, потому что для меня (не знаю как для других) это свято.

Menu – эта процедура вызывает меню, где содержится информация о программе и помощь (если её так можно назвать).

Keys – процедура, считывающая код нажатой клавиши.

В этой программе, конечно много недоработок, но я надеюсь, что вскоре появятся дополненные версии 1.2, 1.3, 2.0,2.1,……, n.m.

Эта программа может использоваться в о-о-о-о-о-очень маленьких офисах, которые не имеют возможности приобрести качественный лицензионный продукт, к примеру Microsoft Office’9x, ’2000 (если кто-то имеет на примете такой офис, я с удовольствием продам, за символическую цену, свой программный  продукт). Также программа может использоваться для обучения детей в детских садах работе на персональных компьютерах. И, наконец, ей могут воспользоваться студенты I курса для сдачи её как Курсовой работы на следующем курсе. 


Листинг.

Исходный текст программы.

Program Redaktor;

  Uses Crt,Tim; {использовать модули Crt и Tim}

  Label b; {метка}

  Var  {тело}

    Programname,Cmdline:string; 

    nn,i,x,y:integer;

    f1,f1_new:text;

    Name,New_name:string[12];

    txt,text:string; 

    ch:char;

begin

  i:=1;

  textbackground(red);

  clrscr;

textcolor(yellow);

gotoxy(22,10);

writeln('Текстовый процессор Timofeev Word');

gotoxy(22,11);

writeln('      Версия 1.0 (2001 год)');

gotoxy(40,15);

writeln('Составил Тимофеев Тимур (2-АС-3)');

textcolor(green);

gotoxy(40,16);

writeln('Все права защищены.');

gotoxy(40,17);

writeln('Незаконное копирование');

gotoxy(40,18);

writeln('или подделка без согласия автора');

gotoxy(40,19);

writeln('преследуется по понятиям !!!');

delay(5000);

textcolor(yellow);

table;

gotoxy(2,21);

write('Введите имя:');

readln(name);

assign(f1,name);

rewrite(f1);

gotoxy(2,21);

write('Вводите текст !!!          ');

gotoxy(1,2);

      repeat

      write(chr(179),':>');

      readln(txt);

      writeln(f1,txt);

    until txt='';

  close(f1);

  gotoxy(2,21);

  writeln('Ввод окончен, нажмите чего-нибудь ...');

    repeat

      readkey;

      keys(nn);

      case nn of {определяет нажатие функциональных клавиш}

        59:menu; {F1}

        60:begin {F2}

table;

gotoxy(2,21);

write('                                      ');

gotoxy(2,21);

write('Введите имя:');

readln(name);

assign(f1,name);

rewrite(f1);

gotoxy(2,21);

write('Вводите текст !!!          ');

gotoxy(1,2);

          repeat

write(chr(179),':>');

readln(txt);

writeln(f1,txt);

until txt='';

        close(f1);

        gotoxy(2,21);

        writeln('Ввод окончен, нажмите чего-нибудь ...');

        end;

61:begin  {F3}

gotoxy(2,21);

write('Введите имя файла, в который копир-я файл ',name,'->');

readln(new_name);

reset(f1);

assign(f1_new,new_name);

append(f1_new);

  while not eof(f1) do

    begin

      readln(f1,txt);

      writeln(f1_new,txt);

    end;

close(f1);

close(f1_new);

gotoxy(2,21);

writeln('Файл ',name,' скопирован в ',new_name,' нажмите

чего-нибудь ...');

end;

62:begin {F4}

gotoxy(2,21);

write('                                       ');

gotoxy(2,21);

write('Введите новое имя файла:');

readln(new_name);

assign(f1,name);

rename(f1,new_name);

gotoxy(2,21);

writeln('Файл ',name,' перименован в ',new_name,' нажмите

чего-нибудь ... ');

end;

63:begin  {F5}

erase(f1);

gotoxy(2,21);

writeln('Файл ',name,' удалён с диска, нажмите чего-нибудь ...');

end;

64:begin     {F6}

{$I-}

          repeat

gotoxy(2,21);

write('Введите имя файла для считывания текста ->');

readln(name);

assign(f1,name);

reset(f1);

              if ioresult<>0 then

begin

gotoxy(2,21);

writeln('Файл не найден ...                       ');

close(f1);

end;

          until ioresult=0;

{$I+}

table;

gotoxy(1,2);

while not eof(f1) do

begin

readln(f1,txt);

writeln(chr(179),txt);

end;

close(f1);

gotoxy(2,21);

write('Файл считан, нажмите чего-нибудь ...             ');

end;

68:goto b;   {F10} {Происходит выход на метку}

end;

until i<0;   {считывай функциональные клавиши пока i<0,

                    а т.к. i=1 и не изменяется, то этот процесс бесконечен}

b:end.


Текст модуля.

Unit Tim;

Interface

Uses Crt,Dos;

Procedure keys(var n:integer);

Procedure table;

Procedure Enter_sandman;

Procedure menu;

Implementation

Procedure keys(var n:integer);{процедура нажатия клавиши}

var c:char;

begin

  if keypressed then

    begin

    c:=readkey;

       if c=#0 then c:=readkey;

    n:=ord(c);

    end;

end;

Procedure Enter_sandman; {музыка}

Const

  m:array [1..6] of integer=(165,330,392,233,220,330);

  t:array [1..6] of integer=(1100,600,600,600,1100,600);

  e:array [1..7] of integer=(165,165,165,165,165,165,170);

  r:array [1..7] of integer=(600,600,600,600,600,600,1100);

  w:array [1..5] of integer=(167,167,167,294,233);

  q:array [1..5] of integer=(1100,600,600,600,1100);

  o:array [1..9] of integer=(165,182,165,182,165,196,165,182,165);

  b:array [1..9] of integer=(600,1100,600,600,600,600,600,600,3000);

  var a,u,z,x:integer; i:byte;

begin

  for a:=1 to 4 do

    begin

       for i:=1 to 6 do

          begin

  sound(m[i]);

  delay(t[i]);

  nosound;

end;

 end;

     for u:=1 to 3 do

        begin

           for i:=1 to 7 do

              begin

  sound(e[i]);

  delay(r[i]);

  nosound;

  end;

        end;

     for z:=1 to 3 do

        begin

           for i:=1 to 5 do

              begin

  sound(w[i]);

  delay(q[i]);

  nosound;

  end;

       end;

     for i:=1 to 9 do

        begin

  sound(o[i]);

  delay(b[i]);

  nosound;

  end;

end;

Procedure table; {рисует таблицу}

  var

  w,h:integer;

  c1,c2,c3,c4,c7,c5,c6,c8,c9,c10:char;

begin

  textbackground(blue);

  clrscr;

  textcolor(yellow);

w:=1;

h:=1;

c1:=chr(218);

c2:=chr(196);

c3:=chr(191);

c4:=chr(179);

c5:=chr(192);

c6:=chr(217);

c7:=chr(195);

c8:=chr(180);

c9:=chr(193);

c10:=chr(194);

      for h:=2 to 25 do

         begin

gotoxy(w,h);

write(c4);

end;

gotoxy(w,h);

write(c5);

for w:=2 to 79 do

begin

gotoxy(w,h);

write(c2);

end;

gotoxy(w,h);

write(c6);

for h:=24 downto 1 do

begin

gotoxy(w,h);

write(c4);

end;

gotoxy(w,h);

write(c3);

for w:=78 downto 1 do

begin

gotoxy(w,h);

write(c2);

end;

gotoxy(w,h);

write(c1);

gotoxy(1,20);

write(c7);

for w:=2 to 59 do

begin

gotoxy(w,20);

write(c2);

end;

gotoxy(w,1);

write(c10);

for h:=2 to 24 do

begin

gotoxy(w,h);

write(chr(179));

end;

gotoxy(w,20);

write(c8);

gotoxy(59,25);

write(c9);

gotoxy(62,4);

writeln('F1-Помошь');

gotoxy(62,5);

writeln('F2-Новый');

gotoxy(62,6);

writeln('F3-Копировать');

gotoxy(62,7);

writeln('F4-Переименовать');

gotoxy(62,8);

writeln('F5-Удалить');

gotoxy(62,9);

writeln('F6-Просмотреть');

gotoxy(62,10);

writeln('F10-Выход');

end;

Procedure menu;

Const

     NORM=$17;{ цвет невыделеного пункта }

     SEL=$70;{ цвет выделенного пункта }

     N=3;

var

     menu:array[1..N] of string[12];{ названия пунктов меню }

     punkt:integer;{ номер выделенного пункта }

     ch:char;{ введенный символ }

     x,y,i:integer;{ координаты первой строки меню }

Procedure punkt1;

begin

     ClrScr;

     writeln('Выполнил студент гр. 2-АС-3 Тимофеев Т.П. (2001 г.)');

     writeln('Курсовая работа-а-а-а-а-а-а-а !!!!!!!!!!!!!!!!!');

     readln;

end;

Procedure punkt2;

begin

     ClrScr;

     writeln('Тута всё понятно даже ребёнку.');

     readln;

end;

Procedure MenuToScr;{ вывод меню на экран }

var i:integer;

begin

     ClrScr;

     for i:=1 to N do begin

          GoToXY(x,y+i-1);

          write(menu[i]);

     end;

     TextAttr:=SEL;

     GoToXY(x,y+punkt-1);

     write(menu[punkt]);{ выделим строку меню }

     TextAttr:=NORM;

end;

begin

     menu[1]:=' О программе ';

     menu[2]:=' Помощь      ';

     menu[3]:=' Выход       ';

     punkt:=1;

     x:=5;

     y:=5; TextAttr:=NORM;

     MenuToScr;

     repeat

          ch:=ReadKey;

          if ch=char(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>1 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;

              end

          else

               if ch=chr(13) then begin { нажата клавиша <Enter> }

                    case punkt of

                         1:punkt1;

                         2:punkt2;

                         3:i:=2;{ выход }

                    end;

                    MenuToScr;

               end;

     until i=2;

end;

end.

Заключение.

В результате проделанной работы я написал прекрасную программу за 4 часа свободного от учёбы времени практически без помощи литературы и других источников.

Программа основана на стандартных процедурах и функциях модуля Crt: Rename, Erase, Append, Rewrite, Reset, Assign и др.

Список использованной литературы.

Попов В.Б. “Turbo Pascal для школьников”:

Учеб.пособие. – 3-е доп. изд. – М.: Финансы и статистика, 2001г.

Вирт Н. “Алгоритмы и структуры данных”:

Пер. с англ. – М.: Мир, 1989г.

Прайс Д. “Программирование на языке Паскаль: Практическое руководство”.

Пер. с англ. – М.: Мир, 1987г.




на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.