文本編輯器設計_第1頁
文本編輯器設計_第2頁
文本編輯器設計_第3頁
文本編輯器設計_第4頁
文本編輯器設計_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、四川師范大學成都學院課程設計報告四川師范大學成都學院高級語言程序課程設計文本編輯器設計 學生姓名xxx學 號x所在學院x專業名稱x班 級x級x班指導教師x成 績 x學院二一四年十二月I課程設計任務書學生姓名x學生學號x學生專業x學生班級x指導教師x職 稱x發題日期2014 年10月15 日完成日期 2014 年12 月 19 日設計題目文本編輯器設計設計目的:為了滿足普通用戶對文本文檔進行一般的簡單操作,設計文本編輯器,用戶可以對文本進行如下的基本操作。通過該課程設計,鍛煉學生的基本編程技能,基于C語言基本知識,進一步擴展C+和windows界面編程的知識和應用;培養學生分析問題和解決問題的能

2、力;促進把所學知識靈活應用到具體實踐中。具體任務及要求:2. 撤銷:撤銷前一步所進行的操作;2. 刪除:刪除當前選定字符(串); 3. 剪切:復制并刪除選定字符(串); 4. 復制:復制選定字符(串); 5. 粘貼:對粘貼內容進行粘貼。課程設計進度安排:序號內容安排時間1收集課程設計相關資料10.1510.262學習MFC相關知識10.2710.313需求分析、澄清和軟件概要設計11.111.34軟件詳細設計及功能驗證11.412.45提交論文、總結、答辯12.512.19課程設計參考文獻:1 仇芒仙等編.C/C+程序設計案例教程.北京:清華大學出版社,2012.

3、82 錢能.C+程序設計教程.北京:清華大學出版社,20053 嚴蔚敏等編.數據結構(C語言版).北京:清華大學出版社,2008.34 任哲.MFC Windows應用程序設計(第3版).北京:清華大學出版社,2013.35 歐陽志宏等編.MFC程序設計輕松入門.北京:人民郵電出版社.2009.4指導教師簽字院長審核簽字 文本編輯器設計內容摘要:當今,計算機以及網絡技術的飛速發展,社會正快速向信息化社會前進,我們需要更智能,更專業的軟件幫助我們完成工作,從而提高了工作效率。目前文本編輯器種類很多,所提供的功能也很多,但是能滿足用戶實現多種功能和進行C+程序語言的編譯與運行很少,不能更好的適應當

4、前用戶的要求。本設計所完成的文本編輯器功能是針對學習C+程序語言,因此我們利用C+程序設計虛擬機和軟件用戶以及使用者的應用過程形成一整套完整的編寫代碼,編譯,運行。本文本編輯器的開發主要包括界面窗口的菜單欄和工具欄,還有鏈接C語言虛擬機實現編譯與運行。操作系統為Windows 7。關鍵詞:文本編輯器C程序語言編譯運行The design of text editorAbstract:Today, the rapid development of computer and network technology, society is rapidly advancing to the inform

5、ation society, we need a more intelligent, more professional software to help us to finish the work, so as to improve work efficiency.At present, many text editors species, to provide the function of many, but can satisfy the compiling and running the user to achieve a variety of functions and the C

6、+ programming language is very few, can better adapt to the requirements of the current user. The completion of the design of the text editor function is for learning C+ programming language, so we use the C+ program design of virtual machines and software users and users of the application process

7、of form a complete set of code, compile, run. The development of the text editor includes interface window menus and toolbars, and link the C + + programming language virtual machine implementation compile and run.The development of the text editor use VC+6.0 as the development tool, and the operati

8、ng system is Window 7.Keywords:The text editor C + + programming language compile function目 錄前 言11 課程設計的意義及目的12 文本編輯器總體結構設計221 文本編輯器功能2211 文本編輯器的基本功能222 總體結構23 文本編輯器各功能模塊43.1需求分析432 功能模塊44 軟件結構設計541 撤銷542 刪除643 剪切744 復制945 粘貼105 操作步驟125.1打開文本編輯窗口125.2輸入文本125.3刪除文本內容125.4在編輯里選擇撤銷135.5選中文本,編輯里選復制135.6

9、在編輯里選擇粘貼145.7再次選中文本內容,剪切145.8再粘貼15結束語16附錄17IV 文本編輯器前 言在文本編輯器出現前,人們用打孔機把計算機文字打到穿孔卡片上。文字存放于一個裝著這樣的薄卡片的盒子里,可以用讀卡器來閱讀它。第一個文本編輯器是一種行編輯器,它運行在打字機型的終端上,這種編輯器并不具備在窗口和屏幕中顯示的功能。它包含了一些非常短的命令(為了減少打字量)。其中一個命令能夠把文件的指定部分通過打字機打印出來。編輯光標是想象中的一個插入點,通過特殊命令,可以把它移動到特定內容字符串所在的行。隨后,內容字符串又被擴展成正則表達式。如果想看到文件的變化,你需要把它打印出來。相對于穿孔

10、機來說,人們認為這種基于行的文本編輯器具有革命性的進步。如果沒有它,用戶就需要把那些處理文本的命令打成專用的卡片,并在編輯文件時使用這些卡片。當帶有顯示屏的計算機終端出現后,基于顯示屏的文本編輯器開始流行起來。最早的全屏編輯器中,有一種叫做O26,它是于1967年為CDC 6000系列機器的操作控制臺而作的。另外一個早期的全屏編輯器是vi。vi誕生于20世紀70年代,至今,它仍是Unix和Linux的標準編輯器。全屏編輯器對視頻終端的銷售起到了促進的作用。文本編輯器在Windows的應用中是一個非常重要的項目,在過去十數年中,微軟對windows文本編輯器有多個版本的升級改進,而基于其他的編程

11、環境的文本編輯器也是多如牛毛,今天我們用MFC可視化編譯環境做一個簡易的文本編輯器。1 課程設計的意義及目的為了滿足普通用戶對文本文檔進行一般的簡單操作,設計文本編輯器,用戶可以對文本進行如下的基本操作。通過該課程設計,鍛煉學生的基本編程技能,基于C語言基本知識,進一步擴展C+和windows界面編程的知識和應用;培養學生分析問題和解決問題的能力;促進把所學知識靈活應用到具體實踐中。該課程設計要求學生綜合運用在課程中學到的技術與實際編程相結合,獨立完成一項較為完整、并具有一定實際功能的課程設計任務,同時加深學生對面向對象和C+編程技術的理解和掌握,培養實際的應用程序開發能力。在課程設計過程中,

12、使學生養成良好的程序設計風格,并掌握C+應用程序的設計開發過程和編程方法、測試方法。2 文本編輯器總體結構設計21 文本編輯器功能211 文本編輯器的基本功能該文本編輯器是用windows編寫的一個程序,運行后彈出文本編輯器 的主界面,由鍵盤輸入或以打開的方式輸入或顯示文本文件內容。其中程序的編輯項可對當前的文本進行撤銷、刪除、剪切、復制、粘貼、在文本里顯示當前時間、全選、清除、查找、替換、統計等功能。程序的文件項可以對電腦上txt,c+等可以發出不同的報警聲。 格式文件的打開、對當前文本的保存和另存、對當前文本的的新建以及退出文本編輯系統。輸入形式:Ø 直接在文本編輯框中

13、輸入文本內容Ø 以打開的方式打開并在文本框中顯示電腦的上文本輸出形式:Ø 對編輯框中尚無文本內容時進行查找、替換、統計等,程序會彈出一個提示尚無文本信息的小對話框,需輸入文本后再進行以上操作Ø 對編輯框中已有文本內容后進行查找、替換、統計操作,程序將彈出3與之對應的對話框,根據所彈出的對話框的按鍵要求進行之后的操作就可以。保存文件,另存為等功能都異曲同工,撤銷、刪除、剪切、復制、粘貼、等就直接在主文本編輯框中操作,直接在其顯示操作后的文本信息。22 總體結構該程序是用C+語言編譯成的,編輯中主要能夠實現撤銷功能、復制功能、粘貼功能、刪除功能和剪切功能。刪除文件打開

14、保存剪切退出復制文本編輯器編輯粘貼查找查找撤銷替換字體格式幫助圖2-1 系統功能圖開始打開記事本打開幫助菜單項打開文件菜單項打開編輯框顯示在各自功能中切換退出結束圖2-2 系統流程圖3 文本編輯器各功能模塊文本編輯器主要由五大功能構成,他們分別是文件操作模塊,文本編輯模塊,剪切操作模塊,菜單控制模塊和幫助及其他模塊。在文本編輯模塊中,主要完成文件的撤銷、刪除操作。剪切操作模塊主要完成剪切、復制、粘貼操作。3.1需求分析文本編輯器的設計是基于Microsoft Visual Studio 2008開發的一款小型的軟件,主要的設計是為了滿足普通用戶對文本文檔進行一般的簡單操作,通過MFC可視化編程

15、環境,直接生成一個友好的用戶操作界面,通過這個窗口,用戶可以對文本進行如下的基本操作。文本編輯器主要由五大功能構成,他們分別是文件操作模塊,文本編輯模塊,剪切操作模塊,菜單控制模塊和幫助及其他模塊。在文件操作模塊中,主要完成文件的創建,打開,保存和另存操作。用戶可以選擇文件菜單上的新建子菜單來完成新建文本文件操作;選擇文件菜單上的保存子菜單來完成保存文件操作選擇文件菜單上的打開子菜單來完成打開文件操作。在文件的打開,保存和另存為操作中,系統會提示用戶輸入文件路徑及文件名。值得一提的是,當用戶打開一個文件時,指定的文件必須存在,否則系統會報錯。32 功能模塊在文本編輯器模塊中,主要完成在編輯窗口

16、中以添加或插入的方式輸入字符,刪除光標所在當前位置的單個字符或前一個位置的單個字符,朝上下左右4個方向的光標移動操作。當光標所在位置及后面的位置沒有字符時,系統會以添加的方式輸入字符;當光標所在位置及后面的位置有字符時,系統會已插入的方式輸入字符。用戶可以使用BackSpace鍵刪除光標前一個字符,也可以使用Del鍵刪除當前位置的字符。Ø 撤銷:撤銷前一步所進行的操作,從“編輯下拉菜單”或“右鍵菜單撤銷Ø 刪除:刪除當前選定字符(串),從“編輯下拉菜單”或“右鍵菜單”中刪除Ø 全選:對文本編輯框中文本全部選定,從“編輯下拉菜單”或“右鍵菜單”中全簡易文本編輯器主要

17、完成對已選定文本的剪切,復制,粘貼工作。如果用戶要剪切文本以便可以將它移動到其他位置,可通過先選定文本,然后選擇Edit菜單上的Cut子菜單完成剪切任務。如果用戶要復制文本以便可以將它黏貼到其他位置,必須先選定文本,然后選擇Edit菜單上的Copy子菜單來完成復制任務。如果用戶要粘貼剪切或復制的文本,必須將光標置于要粘貼文本的位置,然后選擇Edit菜單上的Paste子菜單來完成粘貼任務。Ø 剪切:復制并刪除選定字符(串),從“編輯下拉菜單”或“右鍵菜單”中剪切Ø 復制:復制選定字符(串),“編輯下拉菜單”或“右鍵菜單”中復制Ø 粘貼:對粘貼內容進行粘貼,從“編輯下

18、拉菜單”或“右鍵菜單”中粘貼4 軟件結構設計41 撤銷撤銷命令是系統自帶的函數,使用是調用OnMenuUndo函數命令,詳細代碼如下所示:void CTxteditDlg:OnEditundo() / TODO: Add your command handler code here/直接調用類CEdit的成員函數UndoCEdit*pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);pEdit->Undo();開始撤銷選中撤銷的存放在緩存中結束圖4-1 撤銷流程圖42 刪除刪除命令調用的是系統自帶函數,使用的是OnMenuDelete函數命令,詳細代碼如下所示:voi

19、d CTxteditDlg:OnEditDelete()CEdit*pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);pEdit->Delete();開始刪除選中刪除的存放在緩存中結束圖4-2 刪除流程圖43 剪切剪切命令調用的是系統自帶函數,使用的是OnMenueCut函數命令,詳細代碼如下所示:void CTxteditDlg:OnMenucut() / TODO: Add your command handler code hereCEdit *pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);pEdit->Cut();/刪除編輯控

20、件中當前選中的文本,并將刪除的文本拷貝到剪貼板中開始剪切選中剪切的存放在緩存中結束圖4-3 剪切流程圖44 復制復制命令調用的是系統自帶函數,使用的是OnMenuCopy函數命令,詳細代碼如下所示:void CTxteditDlg:OnMenucopy() / TODO: Add your command handler code hereCEdit *pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);pEdit->Copy();/刪除編輯控件中當前選中的文本,并將刪除的文本拷貝到剪貼板中開始復制選中復制的存放在緩存中結束圖4-4 復制流程圖45 粘貼粘貼命令調用的

21、是系統自帶函數,使用的是OnMenuPaste函數命令,詳細代碼如下所示:void CTxteditDlg:OnMenupast() / TODO: Add your command handler code hereCEdit *pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);pEdit->Paste();/刪除編輯控件中當前選中的文本,并將刪除的文本拷貝到剪貼板中開始粘貼選中粘貼位置存放在緩存中結束圖4-4 粘貼流程圖5 操作步驟5.1打開文本編輯窗口5.2輸入文本5.3刪除文本內容5.4在編輯里選擇撤銷5.5選中文本,編輯里選復制5.6在編輯里選擇粘貼5.7

22、再次選中文本內容,剪切5.8再粘貼結束語步入大學,我們接觸到了更多的計算機專業知識。在大一第二學期,學習了C+程序設計,大二的時候又學習了數據結構課程。而這學期的課程設計,對我來說是一個新的挑戰。從開始到現在,課程設計的每一個環節,我自己都精心準備,讓我對編程有了更深刻的認識,也是我知道了自己的不足之處。在老師剛布置下來任務之后,我便開始在網上和圖書管理搜集資料,雖然關于這方面的資料很多,但是好多都和我的不相匹配。于是我每一本書都仔細閱讀,篩選出了對我的程序設計有用的信息。然后,看懂了是一方面,自己動手做,又是另一個挑戰。我發現如果不是透徹的弄懂了,在實際操作的時候,根本實現不了結果。于是,我

23、又把資料仔細的閱讀,并詢問老師和同學們,再加上自己的摸索,最終提早完成了任務。我設計的是簡易文本編輯器,要求有查找,插入,替換,塊移動,刪除功能,在這次課程設計作業的過程中,雖然課程設計有明確的目的及要求,但由于在設計方面我們沒有經驗,理論基礎知識掌握得不牢固,在設計中難免會出現這樣那樣的問題。在編寫過程中也有許多小問題,比如沒有定義,缺少符號等等,但經過仔細的修改以及尋求別人的幫助把問題也改正了,大多數是因為自己的粗心而引起的。在設計過程中,要獨立的完成自己的設計思路。在學習理論知識的同時也要參加實踐活動,把課本上的知識運動到實踐當中去,也是我們學習專業理論知識的最終目的。本次的課程設計,培

24、養了我C+語言,C語言及其他課程的理論知識和理論聯系實際,應用生產實際知識解決實際問題的能力;在設計的過程中還培養獨立自主的能力。在今后的學習過程中我們會更加努力。經過了連續兩周的不懈努力,我終于完整的完成了文本編輯器的課程設計。在做此實驗中雖然碰到了很多困難,但是在克服困難的同時我們獲益良多。鞏固書本上的知識,對書上的知識能更透徹地了解。通過自己設計程序積累調試數據結構經驗,培養了我的編程能力。鞏固我們所學的C+編程知識,消化課堂所講解的內容。對所學課程及其知識的一種整理,將原本在我們腦中比較混亂的課程設計重新梳理。1)通過課程設計我更好的掌握編程的基本設計思路,為以后靈活運用奠定了基礎。2

25、)相對于以前,我能夠獨立的完成簡單的程序設計以及完成一份較為滿意的程序設計報告。3)通過這次課程設計,達到了我增強鞏固C+編程知識的目的,使知識全面化,系統化。4)C+程序設計在計算機學科的學習中,是一門比較重要的環節,這次的鞏固與加深提高了我的實際工作能力,培養科學作風,為學習后續課程和今后系統開發奠定基礎。5)課程設計更注重的是綜合訓練,做到學以致用。6)培養了分析問題與解決問題的能力。附錄/ txtedit.cpp : Defines the class behaviors for the application./#include "stdafx.h"#includ

26、e "txtedit.h"#include "txteditDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CTxteditAppBEGIN_MESSAGE_MAP(CTxteditApp, CWinApp)/AFX_MSG_MAP(CTxteditApp)/ NOTE - the ClassWizard will add and remove mapping macros here./ DO NOT EDIT w

27、hat you see in these blocks of generated code!/AFX_MSGON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()/ CTxteditApp constructionCTxteditApp:CTxteditApp()/ TODO: add construction code here,/ Place all significant initialization in InitInstance/ The one and only CTxteditApp objectCTxteditApp theApp;/ CTxteditApp initializationBOOL CTxteditApp:InitInstance()AfxEnableControlContainer();/ Standard initialization/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove from the following/ the specif

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論