У вас вопросы?
У нас ответы:) SamZan.net

ТЕМАТИКИ УТВЕРЖДАЮ Зав

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФГБОУ ВПО «СЫКТЫВКАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

ИНСТИТУТ ТОЧНЫХ НАУК И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ

УТВЕРЖДАЮ

Зав. кафедрой, профессор

___________ В.Л. Никитенков

.09.2012

ОТЧЕТ

об учебной практике

в СыктГУ

в период с 6.07 по 19.07 2012 года

Тема: «Реализация текстового редактора»

Научный руководитель      ______________ Н.К.Попова

к.ф.-м.н., доцент       7.09.2012

Исполнитель, студент      ______________ Г.О.Стеблецов

гр.        7.09.2012

Сыктывкар 2012

СОДЕРЖАНИЕ 

1. ВЫБОР ТЕМЫ 2

2. НАУЧНЫЙ ОБЗОР ЛИТЕРАТУРЫ 2

3. ПОСТРОЕНИЕ МОДЕЛИ 3

4. ВЫБОР И АНАЛИЗ МЕТОДА МОДЕЛИРОВАНИЯ 3

5. ПОСТРОЕНИЕ АЛГОРИТМА 4

6. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ 5

7. АНАЛИЗ И ИНТЕРПРЕТАЦИЯ РЕЗУЛЬТАТОВ 5

8. СПИСОК ЛИТЕРАТУРЫ и ИНТЕРНЕТ ИСТОЧНИКИ 7

9. ПРИЛОЖЕНИЕ 7

1. ВЫБОР ТЕМЫ

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

2. НАУЧНЫЙ ОБЗОР ЛИТЕРАТУРЫ

Для решения данной задачи я пользовался книгой "Программирование в среде Delphi", авторы Д. Дантеманн, Д. Мишел и Д. Тейлор[1]. Практическое знакомство с Delphi начинается буквально с первой страницы книги, в отличие от других изданий, сопровождаемых обширными введениями. Не вдаваясь слишком глубоко в дебри программирования, очень подробно расписано, где что надо взять, куда поставить, что нажать, а где дописать, чтобы получить на выходе желаемый результат. Изложение построено таким образом, что практические занятия перемежаются с теоретическими выкладками по основам Паскаля. От простых примеров авторы переходят к более сложным. В книге рассмотрены практически все основные направления программирования в Delphi, начиная от простого приложения типа редактора текстовых файлов и кончая базами данных.

Зато книга А. Федорова "Создание Windows-приложений в среде Delphi"[2] как раз претендует на роль справочного руководства. Кратко описывается среда разработки. Дана характеристика компонентов, их свойств, а также основных событий, управляемых ими. Рассмотрено создание прикладных программ, использование графики, принтера, средств обмена данными и т.д.

А также  мне очень помог Интернет сайт Delphiexpert.ru.[3] На этом сайте очень хорошо рассматриваются различные примеры решений задач, подробные уроки по тем или иным компонентам Delphi. Также на сайте есть форум, где любой пользователь подскажет как что нужно сделать, как легче реализовать ту или иную задачу, разобраться во многих непонятных моментах.

3. ПОСТРОЕНИЕ МОДЕЛИ

Задача практической работы  состоит в разработке на языке программирования Object Pascal программы текстового редактора, которая должна осуществлять следующие функции:

) Ввод исходного текста в заданный файл;

) Вывод содержимого файла на экран;

) Обработка файла:

 a) Создание нового файла;

 b) Открытие имеющегося файла;

 c) Сохранение файла;

 d) Печать документа;

4)Параметры для форматирования:

а) Вырезание;

b) Копирование;

c) Вставка;

d) Выделение содержимого;

e) Изменение шрифтов;

5) Поиск заданной в тексте введённой подстроки;

6) Имена всех файлов задаются пользователем в диалоговом режиме.

4. ВЫБОР И АНАЛИЗ МЕТОДА МОДЕЛИРОВАНИЯ

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

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

5. ПОСТРОЕНИЕ АЛГОРИТМА

1.Открытие программы;

2. Если не выбрано действие, ждем действий пользователя;

. Меню:

3.1. ЕСЛИ выбран пункт «Файл», то предоставляем подменю:

ИНАЧЕ ждем действий пользователя.

    ЕСЛИ в подменю выбрали:

а) Создать –то создаем новый файл;

б) Открыть –то вызываем диалоговое окно открытия файла;

в) Сохранить –то сохраняем файл;

г) Сохранить как –то вызываем диалоговое окно сохранения;    

   файла

д) Печать –то вызываем диалоговое окно настройки печати;

е) Выход  –то закрываем программу;

  ИНАЧЕ ждем действий пользователя;

3.2. ЕСЛИ выбран пункт «Правка», то предоставляем подменю:

 ИНАЧЕ ждем действий пользователя;

 ЕСЛИ в подменю выбрали:

  а) Вырезать –то вырезаем выбранный фрагмент;

б) Копировать –то копируем выбранный фрагмент;

г) Вставить –то вставляем выбранный фрагмент;

д) Найти – то вызываем диалоговое окно поиска и ищем нужное слово;

е) Выделить все –то выделяем всё содержимое файла;

ИНАЧЕ ждем действий пользователя;

3.3. ЕСЛИ выбран пункт «Формат» предоставляем подменю «Шрифт», если  

выбрано подменю «Шрифт», то вызываем диалоговое окно для изменения   

шрифта:

ИНАЧЕ ждем действий пользователя;

4. ЕСЛИ нажата клавиша с буквой, то выводим её в поле текстового редактора, иначе ждем действий пользователя.

5. Закрытие программы.

6. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Программная реализация построенного алгоритма осуществлялась на языке

программирования Object Pascal в среде программирования Borland Delphi.

Так как это наиболее выгодный вариант. Компонент Memo обладает всеми основными качествами текстового редактора.

7. АНАЛИЗ И ИНТЕРПРЕТАЦИЯ РЕЗУЛЬТАТОВ

После запуска программы появляется окно «Новый документ.txt».

Так выглядит внешний вид программы:

Меню «Файл»  имеет следующие пункты: Создать, Открыть, Сохранить, Сохранить как, Печать, Выход.

Меню «Правка»  имеет следующие пункты: Вырезать, Копировать, Вставить, Найти, Выделить все.

Выбрав подменю «Найти»  можно вызвать окно поиска, куда нужно ввести искомое слово и нажать кнопку «Найти».

Результат поиска:

Меню «Справка» содержит информацию о программе.

В ходе выполнения практической работы предоставленная программа была выполнена и работала. Конечно это простой текстовый редактор и у него мало функций по сравнению с MS WORD. Он чем-то похож на простой блокнот.

Единственное его отличие, что он был написан на языке Object Pascal. Язык Object Pascal работал без наладок, был прост в обращении, возникающие ошибки при программировании легко исправлялись. Для меня  Object Pascal зарекомендовал себя с лучшей стороны, и я бы порекомендовал его как для начинающих программистов, так и для профессионалов.

8. СПИСОК ЛИТЕРАТУРЫ и ИНТЕРНЕТ ИСТОЧНИКИ

. Федоров А. Г. Создание Windows-приложений в среде Delphi. М.: ТОО "Компьютер Пресс", 1995. 287 с.

2. Программирование в среде Delphi: Пер. С англ. /Джефф Дантеманн, Джим Мишел, Дон Тейлор. –К.: НИПФ «ДиаСофт Лтд. », 1995. –с.

. http://www.delphiexpert.ru/ - Сайт где вы найдете уроки программирования, компоненты и примеры программ написанных на языке программирования Delphi.

9. ПРИЛОЖЕНИЕ

Исходный код программы состоит из 4-х частей!

Note.dpr: - файл самого проекта

program Note;

uses

Forms,

NoteForm in 'NoteForm.pas' {Form1},

Spravka in 'Spravka.pas' {Form2},

Find in 'Find.pas' {Form3};

{$R *.res}

begin

Application.Initialize;

Application.Title := 'Текстовый редактор';

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.Run;

end.

NoteForm.pas Файл главной формы

unit NoteForm;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus, ToolWin, ComCtrls, Printers;

type

TForm1 = class(TForm)

Menu: TMainMenu;

File1: TMenuItem;

Pravka: TMenuItem;

Format: TMenuItem;

Spravka: TMenuItem;

New: TMenuItem;

Open: TMenuItem;

Save: TMenuItem;

Save_as: TMenuItem;

Print: TMenuItem;

Exit: TMenuItem;

Cut: TMenuItem;

Copy: TMenuItem;

Paste: TMenuItem;

Shrift: TMenuItem;

O_progam: TMenuItem;

Memo: TMemo;

dlgOpen1: TOpenDialog;

dlgSave1: TSaveDialog;

dlgFont1: TFontDialog;

Select_all: TMenuItem;

dlgPnt1: TPrintDialog;

N1: TMenuItem;

procedure O_progamClick(Sender: TObject);

procedure OpenClick(Sender: TObject);

procedure NewClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure SaveClick(Sender: TObject);

procedure ShriftClick(Sender: TObject);

procedure ExitClick(Sender: TObject);

procedure CutClick(Sender: TObject);

procedure CopyClick(Sender: TObject);

procedure PasteClick(Sender: TObject);

procedure PrintClick(Sender: TObject);

procedure Save_asClick(Sender: TObject);

procedure Select_allClick(Sender: TObject);

procedure N1Click(Sender: TObject);

private

filename: string;

modified: bool;

public

end;

var

Form1: TForm1;

implementation

uses Spravka, Find;

{$R *.dfm}

procedure TForm1.O_progamClick(Sender: TObject); // вывод информации о программе

begin

form2.show;

end;

procedure TForm1.OpenClick(Sender: TObject); //Открытие документа

begin

dlgOpen1.Execute;

Memo.Lines.LoadFromFile(dlgOpen1.FileName);

Form1.Caption:= dlgOpen1.FileName;

end;

procedure TForm1.NewClick(Sender: TObject); //Создание нового документа

begin

Memo.Text := '';

end;

procedure TForm1.FormCreate(Sender: TObject); //Параметры при старте программы

begin

dlgOpen1.Filter := 'Текстовый документ (*.txt)|*.txt';

dlgOpen1.DefaultExt := '.txt';

Form1.Caption:='Новый документ.txt';

end;

procedure TForm1.SaveClick(Sender: TObject); // Кнопка Сохранение 

begin

filename := Form1.Caption;

Memo.Lines.SaveToFile(filename);

end;

procedure TForm1.ShriftClick(Sender: TObject); //Кнопка Шрифт

begin

dlgFont1.Execute;

Memo.Font := dlgFont1.Font;

end;

procedure TForm1.ExitClick(Sender: TObject); //Кнопка Выход

begin

Close;

end;

procedure TForm1.CutClick(Sender: TObject); //Кнопка Вырезать

begin

Memo.CutToClipboard;

end;

procedure TForm1.CopyClick(Sender: TObject); //Кнопка Копировать

begin

Memo.CopyToClipboard;

end;

procedure TForm1.PasteClick(Sender: TObject); //Кнопка Вставить

begin

Memo.PasteFromClipboard;

end;

procedure TForm1.PrintClick(Sender: TObject); //Кнопка Печать

var

sMemo : String;

filename : TextFile;

x : Integer;

begin

dlgPnt1.Execute;

printer.canvas.font := Memo.font;

AssignPrn(filename);

Rewrite(filename);

for x := 0 to Memo.Lines.Count - 1 do

Writeln(filename, Memo.Lines[x]);

CloseFile(filename);

end;

procedure TForm1.Save_asClick(Sender: TObject); //Кнопка Сохранить как

begin

if dlgSave1.Execute then

begin

filename := dlgSave1.FileName;

Case Form1.dlgSave1.FilterIndex of

: filename:=ChangeFileExt(filename,'.txt');

end;

end;

Memo.Lines.SaveToFile(filename);

end;

procedure TForm1.Select_allClick(Sender: TObject); //Кнопка Выделить Все

begin

Memo.SelectAll;

end;

procedure TForm1.N1Click(Sender: TObject); //Кнопка Найти

begin

Form3.Show;

end;

end.

Find.pas Дополнительная форма окна поиска

unit Find;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm3 = class(TForm)

btn1: TButton;

edt1: TEdit;

lbl1: TLabel;

procedure btn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses

NoteForm;

{$R *.dfm}

procedure TForm3.btn1Click(Sender: TObject);

var // Объявляем переменные

Find:string; // Искомая строка

i:integer; // Счетчик для цикла

begin

find:=Edt1.Text; // Записываем в find текст из Edit

For i:=0 to Form1.Memo.Lines.Count-1 do // Запускаем цикл поиска строки

If Pos(FIND, Form1.Memo.Lines.Text)<>0

Then

Begin

Form1.Memo.SetFocus();

Form1.Memo.SelStart:=Pos(FIND,Form1.Memo.Lines.Text)-1;

Form1.Memo.SelLength:=Length(FIND);

End;

Close;

end;

end.

Spravka.pasдополнительная форма вывода информации о программе

unit Spravka;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm2 = class(TForm)

lbl1: TLabel;

btn1: TButton;

procedure btn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses

NoteForm;

{$R *.dfm}

procedure TForm2.btn1Click(Sender: TObject);

begin

Close;

end;

end.




1. Производственные мощности федеральной полиграфии
2. Его мать звали Феодосией.html
3. Договор аренды земельных участков
4. метилфентанил Альфа метилтиофентанил Альфапродин Альфацетилметадол Анилэридин Ацетил а1
5. Актуальность русской христианской философии
6.  Социология образования [4
7. Такими показниками екологічного навантаження потоку консервативними речовинами служать перш за все абсолю
8. Пожарная безопасность электроустановок компрессорной станции по перекачке Аммиака
9. был одним из наиболее сложных
10. Предприятия способные исполнить внешнеторговые обязательства- Metpr Prticipcoes societr
11. реферат дисертації на здобуття наукового ступеня доктора психологічних наук Дисертацією
12. РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ А
13. English lnguge for technicl colleges
14. Реферат- Роль профсоюзных органов на частных предприятиях
15. Модульний контроль 2 Білет 1 Теоретична частина Які часові параметри визначають для події та для ро
16. Реферат- Экономические теории древнего мира
17. IКіріспе II
18. Тема Значение и методы стимулирования продаж Фамилия студента Беге
19. Судебные приставы
20. Этика и психология управления