Текстовий редактор з обробкою математичних формул

Інформація про навчальний заклад

ВУЗ:
Технічний коледж Тернопільського національного технічного університету ім Івана Пулюя
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2015
Тип роботи:
Курсова робота
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Технічний коледж Тернопільського Національного технічного університету ім. Івана Пулюя Курсова работа Тема: Текстовий редактор з обробкою математичних формул Зміст Зміст………………………………………………………………………………2 Вступ……………………………………………………………………………....3 1. Розрахункова частина………………………………………………………..4 1.1. Завдання на курсову роботу…………………………………………… 4 1.2. Вимоги до програми…………………………………………………….. 4 1.2.1. Вимоги до функціональних характеристик програми…………… 4 1.2.2. Вимоги до надійності…………………………………………………5 1.2.3. Вимоги до умов експлуатації…………………………………………5 1.2.4. Вимоги до сумісності…………………………………………………5 1.3. Вимоги до складу і параметрів технічних засобів ЕОМ………………. 5 1.4. Інформаційне забезпечення задачі………………………………………. 6 1.4.1. Опис вхідних даних……………………………………………………6 1.4.2. Опис нормативно-довідкових даних…………………………………6 1.4.3. Опис вихідних даних………………………………………………...6 1.5. Характеристика операційної системи……………………………………6 1.6. Характеристика мови програмування……………………………………7 2. Описова частина………………………………………………………………. 7 2.1. Алгоритм розв'язання задачі……………………………………………7 2.2. Керівництво програміста…………………………………………………7 2.2.1. Змінні, що застосовуються в програмі………………………………8 2.2.2. Процедури і функції програми………………………………………8 2.2.3. Схема взаємозв'язку програмних модулів…………………………9 2.3. Керівництво користувача………………………………………………10 2.4. Контрольний приклад……………………………………………………12 ВИСНОВОК………………………………………………………………….... 14 СПИСОК ЛІТЕРАТУРИ………………………………………………………. 15 Додаток 1. Текст програми…………………………………………………… 16 Вступ В даний час для розробки програмних продуктів для платформи Windows застосовуються різні середовища розробки - як візуальні, так і невізуальні. Середовища візуальної розробки відрізняються більш швидким і наочним для програміста створенням інтерфейсної частини програми, обробників подій і т.д. У той же час програми, розроблені за допомогою невізуальних засобів мають менший обсяг, більшу швидкодію за рахунок відсутнього в них зайвого коду, створюваного засобами візуального програмування. Однак для розробки таких програм потрібні великі витрати часу на розробку і більш глибоке знання мови програмування і операційної системи програмістом, так як багато дій доводиться виконувати «вручну». У зв'язку з цим вибір середовища розробки лежить на програмістові і залежить від вимог до розробляємого програмного продукту. Так як оптимізація по швидкодії і обсягом програми в даному випадку не є критичною, а більш важливою була простота і наочність розробки, то було обрано середовище візуального програмування Borland C ++ Builder 6. Даний вибір обумовлений тим, що мовою програмування в ньому є C++, яка є об'єктно-орієнтованою, що відповідає сучасним вимогам до мови розробки програмного продукту, а також є необхідні візуальні компоненти для побудови інтерфейсу і підтримує технологію зв'язування та впровадження об'єктів в інші документи (OLE). 1. Розрахункова частина 1.1. Завдання на курсову роботу Найменування програми - «Текстовий редактор з обробкою математичних формул» Підстава для розробки - виконання курсової роботи відповідно до навчального плану. Призначення розробки - створення текстового редактора (аналогічного програмі «блокнот») з підтримкою введення і редагування математичних виразів (формул). Вхідні дані для роботи програми. Програма повинна: 1. забезпечувати можливість введення і редагування тексту; 2. забезпечувати збереження і відкриття текстових файлів; 3. вести історію відкритих файлів; 4. забезпечувати введення і редагування математичних формул; 1.2. Вимоги до програми 1.2.1. Вимоги до функціональних характеристик програми. Програма повинна забезпечувати підтримку наступних можливостей обробки інформації: 1. забезпечувати можливість введення і редагування тексту; 2. забезпечувати збереження і відкриття текстових файлів; 3. вести історію відкритих файлів; 4. забезпечувати введення і редагування математичних формул; 5. забезпечувати роботу з буфером обміну; 6. забезпечувати можливість вибору накреслення і розміру тексту. Програма повинна підтримувати інтерфейс користувача на основі меню, орієнтованого на використання як миші, так і клавіатури. 1.2.2. Вимоги до надійності Програма повинна надійно функціонувати при неправильних діях користувача. Виникнення перерахованих помилок не повинно призводити до втрати інформації в редагованому файлі. Програма повинна бути розрахована на експлуатацію користувачами, які не мають спеціальної підготовки в галузі програмного забезпечення ЕОМ. 1.2.3. Вимоги до умов експлуатації Програма призначена для роботи одного користувача. У разі виявлення неполадок слід звертатися до розробника програми або системного адміністратора. Система повинна експлуатуватися в умовах прийнятих для експлуатації технічних засобів: • температура навколишнього середовища (не вище 30 ° С); • відстань між комп'ютерами (близько 3 м). 1.2.4. Вимоги до сумісності Для роботи програми необхідна наявність операційної системи Windows версій XР / Vista / 7. Для модифікації програми необхідне середовище розробки Borland С ++ Builder 6 з встановленим пакетом додаткових компонентів RxLib весрсіі 2.75. Для забезпечення роботи редактора формул необхідно наявність встановленого в системі редактора Microsoft Equation 3.0. 1.3. Вимоги до складу і параметрів технічних засобів ЕОМ До складу технічних засобів повинен входити IВМ-сумісний персональний комп'ютер (ПЕОМ) з процесором тактовою частотою не нижче 1700 МГц, що має від 512 Мбайт оперативної пам'яті і операційну систему типу WINDOWS версій ХР /Vista / 7. 1.4. Інформаційне забезпечення задачі 1.4.1. Опис вхідних даних Вхідними даними програми є інформація, що вводиться користувачем з клавіатури при створенні текстового документа. 1.4.2. Опис нормативно-довідкових даних Нормативно-довідкові дані в програмі не передбачено. 1.4.3. Опис вихідних даних Вихідними даними програми є документ у форматі Rich Text Format (RTF), що містить введену користувачем текстову інформацію з інтегрованими математичними виразами у форматі Microsoft Еquation 3.0. 1.5. Характеристика операційної системи В якості операційної системи обрана Windows XP, так як дана ОС: • має широке поширення; • має зручний, інтуїтивно-зрозумілий інтерфейс; • є однією з найбільш простих в установці і налаштуванні; • володіє широкими графічними можливостями і зручним інтерфейсом; • має вбудовані засоби графічного друку і роботи з документами; • підтримує великий набір офісних програм; • дозволяє легко підключатися до локальної мережі, підтримує поширені мережеві протоколи. 1.6. Характеристика мови програмування При вирішенні поставленого завдання оптимально використовувати для подання інформаційних матеріалів мову C++ Builder, яка є мовою високого рівня і дозволяє швидко і ефективно створювати додатки. Для реалізації бази даних була обрана система програмування Builder версії 6 фірми Borland, так як вона надає найбільш широкі можливості для програмування додатків ОС Windows. Builder - це продукт Borland International для швидкого створення додатків. Високопродуктивний інструмент візуальної побудови додатків включає в себе справжній компілятор коду і надає засоби візуального програмування, дещо схожі на ті, що можна виявити в Microsoft Visual Basic або в інших інструментах візуального проектування. В основі лежить мова Object C++, яка є розширенням об'єктно-орієнтованої мови C. У Delphi також входять бібліотеки візуальних і невізуальних компонентів, необхідних при розробці даного редактора. 2. Описова частина 2.1. Алгоритм вирішення задачі 1. Ініціалізація 2. Створення нового документа або відкриття існуючого 3. Введення тексту 4. Відкриття редактора формул, введення формул 5. Збереження результату роботи 6. Вихід 2.2. Керівництво програміста Для даної програми було вирішено використовувати 2 модуля - основний модуль редактора і модуль редактора формул. Перший модуль (основна програма) містить всі процедури і функції обробки тексту (введення, редагування, робота з буфером обміну і т.д.) і роботи з файлами (відкрити, зберегти, історія файлів). Другий модуль - робота з редактором формул, інтегрованим в програму у вигляді OLE-об'єкта. При розробці програми застосовувався нестандартний компонент RxRichEdit з бібліотеки RxLib, тому для зміни програми потрібна установка даної бібліотеки. 2.2.1. Змінні, що застосовуються в програмі Таблиця 1.Змінні програми Імя змінної Тип Опис  FilesName AnsiString[4] Масив для зберігання історії відкритих файлів   2.2.2. Процедури і функції програми Таблиця 2. Процедури і функції основного модуля Імя Вхідні параметри Вихідні параметри Опис  EditCutClick TObject *Sender  Вирізання виділеного фрагмента в буфер обміну  EditCopyClick TObject *Sender  Копіювання виділеного фрагмента в буфер обміну  EditPasteClick TObject *Sender  Вставка з буфера обміну  EditSelectAllClick TObject *Sender  Виділення всього тексту  FileNewClick TObject *Sender  Створення нового файлу  FileOpenClick TObject *Sender  Відкриття файлу і створення історії роботи з файлами  FileSaveClick TObject *Sender  збереження файлу  FileSaveAsClick TObject *Sender  Збереження файлу під новим ім'ям  EditUndoClick TObject *Sender  Скасування дії при редагуванні   TObject *Sender    EditWordWrapClick TObject *Sender  Включення / вимикання переносу слів  PrintButtonClick TObject *Sender  Виклик діалогу друку  FontDClick TObject *Sender  Виклик діалогу вибору шрифту  OnHint TObject *Sender  Обробка спливаючих підказок  FormCreate TObject *Sender  Обробка при створенні форми  F4Click TObject *Sender  Відкриття файлів з "історії"  FormActivate TObject *Sender  ініціалізація програми  FormClose TObject *Sender, TCloseAction &Action  Вихід з програми  FormulaButtonClick TObject *Sender  Виклик вікна редактора формул  HelpAboutClick TObject *Sender  Вивід вікна «Про програму»  FormCloseQuery TObject *Sender    FormCloseQuery TObject *Sender, bool &CanClose bool &CanClose Запит при виході з програми  FileExitClick TObject *Sender  Виклик виходу з програми   Таблиця 2. Процедури і функції модуля введення формул BitBtn1Click TObject *Sender  Підтвердження закінчення редагування формули  BitBtn2Click TObject *Sender  Скасування редагування формули  FormActivate TObject *Sender  ініціалізація форми  FormClose TObject *Sender, TCloseAction &Action  Вихід з редагування   2.2.3. Схема взаємозв'язку програмних модулів Дана програма складається з двох модулів, взаємозв'язок яких приведено на малюнку 1.  Мал. 1. Зв'язок модулів програми 2.3. Керівництво користувача Програма «Блокнот» є текстовим редактором з підтримкою введення і редагування математичних формул. Запуск програми здійснюється за допомогою файлу «Blocknot.exe». При запуску програми відбувається відображення основного вікна програми, показаного на малюнку 2 Мал 2. Основне вікно програми Основне вікно програми функціонально розділене на 3 частини - вікно введення тексту, блок командних клавіш, меню. В основному вікні виробляється введення і редагування тексту, відображення введених формул і їх редагування (редагування викликається подвійним клацанням лівою кнопкою миші на формулі). Меню програми має ієрархічну структуру і містить наступні пункти: 1. Файл • Новий • Відкрити • Зберегти • Зберегти як • Останній відкритий файл 1 • Останній відкритий файл 2 • Останній відкритий файл 3 • Останній відкритий файл 4 • Вихід 2. Правка • Скасувати • Вирізати • Копіювати • Вставити • Виділити все • Шрифт • Перенесення слів 3. Довідка • Про програму • Зміст Блок командних клавіш частково дублює пункти меню і містить наступні пункти: 1. Створити документ 2. Відкрити документ 3. Зберегти документ 4. Зберегти документ як 5. Друк документа 6. Вирізати виділений фрагмент в буфер обміну 7. Копіювати виділений фрагмент в буфер обміну 8. Вставити фрагмент з буфера обміну 9. Виклик редактора формул При виборі команди «Виклик редактора формул» відкривається вікно редактора, показане на малюнку 3.  Мал. 3. Вікно редактора формул Вікно редактора формул призначене для введення і редагування формул. Як компонент для редагування використовується редактор Microsoft Equation 3.0 з використанням його панелі інструментів для введення математичних символів. 2.4. Контрольний приклад В якості контрольного прикладу введемо текст і 2 формули. Результат введення контрольного прикладу показаний на малюнку 4.  Мал. 4. Результат введення контрольного прикладу ВИСНОВОК У процесі розробки даної програми була освоєна середовище розробки Borland С ++ Builder, вивчені прийоми роботи з візуальними і невізуальними компонентами цього середовища розробки, прийоми встановлення і використання нестандартних компонент, а також інтеграції об'єктів в розроблювану програму з використанням технології OLE. Була розроблена програма «Блокнот», що має стандартний інтерфейс в стилі Windows, що дозволяє здійснювати введення, редагування як тексту, так і математічекіх виразів. За результатами роботи над програмою написаний і оформлений звіт. СПИСОК ЛІТЕРАТУРИ Шамис В.А, Borland C++ Builder 6 Для профессионалов. СПб.: Питер, 2005. – 798 с. Архангельский А.Я. Программирование в C++ Builder 6. М.:Бином, 2003. – 1152 с. Додаток 1 Текст програмИ Основний модуль програми //--------------------------------------------------------------------------- #include <vcl\vcl.h> #include <Clipbrd.hpp> #include <IniFiles.hpp> #pragma hdrstop #include "BlMain.h" #include "BlFormula.h" #include "blAbout.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "RxRichEd" #pragma resource "*.dfm" TBlock *Block; AnsiString FilesName[4]; TOleContainer *Formula[4]; //--------------------------------------------------------------------------- __fastcall TBlock::TBlock(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TBlock::EditCutClick(TObject *Sender) { Memo->CutToClipboard(); } //--------------------------------------------------------------------------- void __fastcall TBlock::EditCopyClick(TObject *Sender) { Memo->CopyToClipboard(); } //--------------------------------------------------------------------------- void __fastcall TBlock::EditPasteClick(TObject *Sender) { Memo->PasteFromClipboard(); } //--------------------------------------------------------------------------- void __fastcall TBlock::EditSelectAllClick(TObject *Sender) { Memo->SelectAll(); } //--------------------------------------------------------------------------- void __fastcall TBlock::FileNewClick(TObject *Sender) { if (Memo->Modified) { int Res = Application->MessageBox( "Текущий файл изменен. Сохранить изменения?","Блокнот: Предупреждение", MB_YESNOCANCEL); if (Res == IDCANCEL) return; if (Res == IDYES) FileSaveClick(Sender); } if (Memo->Lines->Count > 0) Memo->Clear(); SaveDialog->FileName = ""; } //--------------------------------------------------------------------------- void __fastcall TBlock::FileOpenClick(TObject *Sender) { if (Memo->Modified) { int Res = Application->MessageBox( "Текущий файл изменен. Сохранить изменения?","Блокнот: Предупреждение", MB_YESNOCANCEL); if (Res == IDCANCEL) return; if (Res == IDYES) FileSaveClick(0); } OpenDialog->FileName = ""; OpenDialog->Title = "Открыть"; if (OpenDialog->Execute()) { if (Memo->Lines->Count > 0) Memo->Clear(); Memo->Lines->LoadFromFile(OpenDialog->FileName); SaveDialog->FileName = OpenDialog->FileName; int i; for (i = 0; i< 4; i++) if (FilesName[i] == "<empty>") { FilesName[i] = OpenDialog->FileName; break; } if (i == 4) { FilesName[3] = FilesName[2]; FilesName[2] = FilesName[1]; FilesName[1] = FilesName[0]; FilesName[0] = OpenDialog->FileName; } F1->Caption = FilesName[0]; F2->Caption = FilesName[1]; F3->Caption = FilesName[2]; F4->Caption = FilesName[3]; } } //--------------------------------------------------------------------------- void __fastcall TBlock::FileSaveClick(TObject *Sender) { SaveDialog->Title = "Сохранить"; if (SaveDialog->FileName != "") { Memo->Lines->SaveToFile(SaveDialog->FileName); Memo->Modified = false; } else FileSaveAsClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TBlock::FileSaveAsClick(TObject *Sender) { SaveDialog->Title = "Сохранить как"; if (SaveDialog->Execute()) { Memo->Lines->SaveToFile(SaveDialog->FileName); Memo->Modified = false; } } //--------------------------------------------------------------------------- void __fastcall TBlock::EditUndoClick(TObject *Sender) { SendMessage(Memo->Handle, WM_UNDO, 0, 0); } //--------------------------------------------------------------------------- void __fastcall TBlock::EditWordWrapClick(TObject *Sender) { Memo->WordWrap = !Memo->WordWrap; EditWordWrap->Checked = Memo->WordWrap; if (Memo->WordWrap) Memo->ScrollBars = ssVertical; else Memo->ScrollBars = ssBoth; } //--------------------------------------------------------------------------- void __fastcall TBlock::PrintButtonClick(TObject *Sender) { if (PrintDialog1->Execute()) Memo->Print(Block->Caption); } //--------------------------------------------------------------------------- void __fastcall TBlock::FontDClick(TObject *Sender) { if (FontDialog1->Execute()) Memo->Font = FontDialog1->Font; } //--------------------------------------------------------------------------- void __fastcall TBlock::OnHint(TObject* Sender) { StatusBar->SimpleText = Application->Hint; } //--------------------------------------------------------------------------- void __fastcall TBlock::FormCreate(TObject *Sender) { Application->OnHint = OnHint; } //--------------------------------------------------------------------------- void __fastcall TBlock::F4Click(TObject *Sender) { int n; if (Sender == F1) n = 0; if (Sender == F2) n = 1; if (Sender == F3) n = 2; if (Sender == F4) n = 3; if (FilesName[n] != "<empty>") { if (Memo->Modified) { int Res = Application->MessageBox( "Текущий файл изменен. Сохранить изменения?","Блокнот: Предупреждение", MB_YESNOCANCEL); if (Res == IDCANCEL) return; if (Res == IDYES) FileSaveClick(0); } Memo->Lines->LoadFromFile(FilesName[n]); } } //--------------------------------------------------------------------------- void __fastcall TBlock::FormActivate(TObject *Sender) { TIniFile *RegFile; RegFile = new TIniFile(ExtractFilePath(Application->ExeName) + "prog.ini FilesName[0] = RegFile->ReadString("Names", "1", "<empty>"); FilesName[1] = RegFile->ReadString("Names", "2", "<empty>"); FilesName[2] = RegFile->ReadString("Names", "3", "<empty>"); FilesName[3] = RegFile->ReadString("Names", "4", "<empty>"); RegFile->Free(); F1->Caption = FilesName[0]; F2->Caption = FilesName[1]; F3->Caption = FilesName[2]; F4->Caption = FilesName[3]; } //--------------------------------------------------------------------------- void __fastcall TBlock::FormClose(TObject *Sender, TCloseAction &Action) { TIniFile *RegFile; RegFile = new TIniFile(ExtractFilePath(Application->ExeName)+ "prog.ini"); RegFile->WriteString("Names", "1", FilesName[0]); RegFile->WriteString("Names", "2", FilesName[1]); RegFile->WriteString("Names", "3", FilesName[2]); RegFile->WriteString("Names", "4", FilesName[3]); RegFile->Free(); } //--------------------------------------------------------------------------- void __fastcall TBlock::FormulaButtonClick(TObject *Sender) { if (FormulaForm->ShowModal() == mrOk) Memo->PasteFromClipboard(); } //--------------------------------------------------------------------------- void __fastcall TBlock::HelpAboutClick(TObject *Sender) { AboutBox->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TBlock::FormCloseQuery(TObject *Sender, bool &CanClose) { if (Memo->Modified) { int Res = Application->MessageBox( "Текущий файл изменен. Сохранить изменения?", "Блокнот: Предупреждение", MB_YESNOCANCEL); if (Res == IDCANCEL) { CanClose = false; return; } if (Res == IDYES) FileSaveClick(0); } } //--------------------------------------------------------------------------- void __fastcall TBlock::FileExitClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "BlFormula.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TFormulaForm *FormulaForm; //--------------------------------------------------------------------------- __fastcall TFormulaForm::TFormulaForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TFormulaForm::BitBtn1Click(TObject *Sender) { OleContainer1->Copy(); ModalResult = mrOk; } //--------------------------------------------------------------------------- void __fastcall TFormulaForm::BitBtn2Click(TObject *Sender) { ModalResult = mrCancel; } //--------------------------------------------------------------------------- void __fastcall TFormulaForm::FormClose(TObject *Sender, TCloseAction &Action) { OleContainer1->Close(); } //--------------------------------------------------------------------------- void __fastcall TFormulaForm::FormActivate(TObject *Sender) { OleContainer1->SetFocus(); } //---------------------------------------------------------------------------
Антиботан аватар за замовчуванням

12.05.2015 15:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!