文本编辑器设计_第1页
文本编辑器设计_第2页
文本编辑器设计_第3页
文本编辑器设计_第4页
文本编辑器设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、四川师范大学成都学院高级语言程序课程设计文本编辑器设计 学生姓名xxx学 号x所在学院x专业名称x班 级x级x班指导教师x成 绩 x学院二一四年十二月课程设计任务书学生姓名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.82 钱能.c+程序设计教程.北京:清华大学出版社,20053 严蔚敏

3、等编.数据结构(c语言版).北京:清华大学出版社,2008.34 任哲.mfc windows应用程序设计(第3版).北京:清华大学出版社,2013.35 欧阳志宏等编.mfc程序设计轻松入门.北京:人民邮电出版社.2009.4指导教师签字院长审核签字文本编辑器设计内容摘要:当今,计算机以及网络技术的飞速发展,社会正快速向信息化社会前进,我们需要更智能,更专业的软件帮助我们完成工作,从而提高了工作效率。目前文本编辑器种类很多,所提供的功能也很多,但是能满足用户实现多种功能和进行c+程序语言的编译与运行很少,不能更好的适应当前用户的要求。本设计所完成的文本编辑器功能是针对学习c+程序语言,因此我

4、们利用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 information society, we need a more intell

5、igent, 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+ programming language is very few,

6、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 of form a complete set of code, comp

7、ile, 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 operating system is window 7.keywords:the t

8、ext 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在编辑里选择粘贴145.7再次选中文本内容,剪切145.8再粘贴15结束

9、语16附录17文本编辑器前 言在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。文字存放于一个装着这样的薄卡片的盒子里,可以用读卡器来阅读它。第一个文本编辑器是一种行编辑器,它运行在打字机型的终端上,这种编辑器并不具备在窗口和屏幕中显示的功能。它包含了一些非常短的命令(为了减少打字量)。其中一个命令能够把文件的指定部分通过打字机打印出来。编辑光标是想象中的一个插入点,通过特殊命令,可以把它移动到特定内容字符串所在的行。随后,内容字符串又被扩展成正则表达式。如果想看到文件的变化,你需要把它打印出来。相对于穿孔机来说,人们认为这种基于行的文本编辑器具有革命性的进步。如果没有它,用户就需要

10、把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。最早的全屏编辑器中,有一种叫做o26,它是于1967年为cdc 6000系列机器的操作控制台而作的。另外一个早期的全屏编辑器是vi。vi诞生于20世纪70年代,至今,它仍是unix和linux的标准编辑器。全屏编辑器对视频终端的销售起到了促进的作用。文本编辑器在windows的应用中是一个非常重要的项目,在过去十数年中,微软对windows文本编辑器有多个版本的升级改进,而基于其他的编程环境的文本编辑器也是多如牛毛,今天我们用mfc可视化编译环境做一个简易的文本编

11、辑器。1 课程设计的意义及目的为了满足普通用户对文本文档进行一般的简单操作,设计文本编辑器,用户可以对文本进行如下的基本操作。通过该课程设计,锻炼学生的基本编程技能,基于c语言基本知识,进一步扩展c+和windows界面编程的知识和应用;培养学生分析问题和解决问题的能力;促进把所学知识灵活应用到具体实践中。该课程设计要求学生综合运用在课程中学到的技术与实际编程相结合,独立完成一项较为完整、并具有一定实际功能的课程设计任务,同时加深学生对面向对象和c+编程技术的理解和掌握,培养实际的应用程序开发能力。在课程设计过程中,使学生养成良好的程序设计风格,并掌握c+应用程序的设计开发过程和编程方法、测试

12、方法。2 文本编辑器总体结构设计21 文本编辑器功能211 文本编辑器的基本功能该文本编辑器是用windows编写的一个程序,运行后弹出文本编辑器 的主界面,由键盘输入或以打开的方式输入或显示文本文件内容。其中程序的编辑项可对当前的文本进行撤销、删除、剪切、复制、粘贴、在文本里显示当前时间、全选、清除、查找、替换、统计等功能。程序的文件项可以对电脑上txt,c+等可以发出不同的报警声。格式文件的打开、对当前文本的保存和另存、对当前文本的的新建以及退出文本编辑系统。输入形式: 直接在文本编辑框中输入文本内容 以打开的方式打开并在文本框中显示电脑的上文本输出形式: 对编辑框中尚无文本内容时进行查找

13、、替换、统计等,程序会弹出一个提示尚无文本信息的小对话框,需输入文本后再进行以上操作 对编辑框中已有文本内容后进行查找、替换、统计操作,程序将弹出3与之对应的对话框,根据所弹出的对话框的按键要求进行之后的操作就可以。保存文件,另存为等功能都异曲同工,撤销、删除、剪切、复制、粘贴、等就直接在主文本编辑框中操作,直接在其显示操作后的文本信息。22 总体结构该程序是用c+语言编译成的,编辑中主要能够实现撤销功能、复制功能、粘贴功能、删除功能和剪切功能。删除文件打开保存剪切退出复制文本编辑器编辑粘贴查找查找撤销替换字体格式帮助图2-1 系统功能图开始打开记事本打开帮助菜单项打开文件菜单项打开编辑框显示

14、在各自功能中切换退出结束图2-2 系统流程图3 文本编辑器各功能模块文本编辑器主要由五大功能构成,他们分别是文件操作模块,文本编辑模块,剪切操作模块,菜单控制模块和帮助及其他模块。在文本编辑模块中,主要完成文件的撤销、删除操作。剪切操作模块主要完成剪切、复制、粘贴操作。3.1需求分析文本编辑器的设计是基于microsoft visual studio 2008开发的一款小型的软件,主要的设计是为了满足普通用户对文本文档进行一般的简单操作,通过mfc可视化编程环境,直接生成一个友好的用户操作界面,通过这个窗口,用户可以对文本进行如下的基本操作。文本编辑器主要由五大功能构成,他们分别是文件操作模块

15、,文本编辑模块,剪切操作模块,菜单控制模块和帮助及其他模块。在文件操作模块中,主要完成文件的创建,打开,保存和另存操作。用户可以选择文件菜单上的新建子菜单来完成新建文本文件操作;选择文件菜单上的保存子菜单来完成保存文件操作选择文件菜单上的打开子菜单来完成打开文件操作。在文件的打开,保存和另存为操作中,系统会提示用户输入文件路径及文件名。值得一提的是,当用户打开一个文件时,指定的文件必须存在,否则系统会报错。32 功能模块在文本编辑器模块中,主要完成在编辑窗口中以添加或插入的方式输入字符,删除光标所在当前位置的单个字符或前一个位置的单个字符,朝上下左右4个方向的光标移动操作。当光标所在位置及后面

16、的位置没有字符时,系统会以添加的方式输入字符;当光标所在位置及后面的位置有字符时,系统会已插入的方式输入字符。用户可以使用backspace键删除光标前一个字符,也可以使用del键删除当前位置的字符。 撤销:撤销前一步所进行的操作,从“编辑下拉菜单”或“右键菜单撤销 删除:删除当前选定字符(串),从“编辑下拉菜单”或“右键菜单”中删除 全选:对文本编辑框中文本全部选定,从“编辑下拉菜单”或“右键菜单”中全简易文本编辑器主要完成对已选定文本的剪切,复制,粘贴工作。如果用户要剪切文本以便可以将它移动到其他位置,可通过先选定文本,然后选择edit菜单上的cut子菜单完成剪切任务。如果用户要复制文本以

17、便可以将它黏贴到其他位置,必须先选定文本,然后选择edit菜单上的copy子菜单来完成复制任务。如果用户要粘贴剪切或复制的文本,必须将光标置于要粘贴文本的位置,然后选择edit菜单上的paste子菜单来完成粘贴任务。 剪切:复制并删除选定字符(串),从“编辑下拉菜单”或“右键菜单”中剪切 复制:复制选定字符(串),“编辑下拉菜单”或“右键菜单”中复制 粘贴:对粘贴内容进行粘贴,从“编辑下拉菜单”或“右键菜单”中粘贴4 软件结构设计41 撤销撤销命令是系统自带的函数,使用是调用onmenuundo函数命令,详细代码如下所示:void ctxteditdlg:oneditundo() / todo

18、: add your command handler code here/直接调用类cedit的成员函数undocedit*pedit=(cedit*)getdlgitem(idc_edit1);pedit-undo();开始撤销选中撤销的存放在缓存中结束图4-1 撤销流程图42 删除删除命令调用的是系统自带函数,使用的是onmenudelete函数命令,详细代码如下所示:void ctxteditdlg:oneditdelete()cedit*pedit=(cedit*)getdlgitem(idc_edit1);pedit-delete();开始删除选中删除的存放在缓存中结束图4-2 删除

19、流程图43 剪切剪切命令调用的是系统自带函数,使用的是onmenuecut函数命令,详细代码如下所示:void ctxteditdlg:onmenucut() / todo: add your command handler code herecedit *pedit=(cedit*)getdlgitem(idc_edit1);pedit-cut();/删除编辑控件中当前选中的文本,并将删除的文本拷贝到剪贴板中开始剪切选中剪切的存放在缓存中结束图4-3 剪切流程图44 复制复制命令调用的是系统自带函数,使用的是onmenucopy函数命令,详细代码如下所示:void ctxteditdlg:o

20、nmenucopy() / todo: add your command handler code herecedit *pedit=(cedit*)getdlgitem(idc_edit1);pedit-copy();/删除编辑控件中当前选中的文本,并将删除的文本拷贝到剪贴板中开始复制选中复制的存放在缓存中结束图4-4 复制流程图45 粘贴粘贴命令调用的是系统自带函数,使用的是onmenupaste函数命令,详细代码如下所示:void ctxteditdlg:onmenupast() / todo: add your command handler code herecedit *pedit

21、=(cedit*)getdlgitem(idc_edit1);pedit-paste();/删除编辑控件中当前选中的文本,并将删除的文本拷贝到剪贴板中开始粘贴选中粘贴位置存放在缓存中结束图4-4 粘贴流程图5 操作步骤5.1打开文本编辑窗口5.2输入文本5.3删除文本内容5.4在编辑里选择撤销5.5选中文本,编辑里选复制5.6在编辑里选择粘贴5.7再次选中文本内容,剪切5.8再粘贴结束语步入大学,我们接触到了更多的计算机专业知识。在大一第二学期,学习了c+程序设计,大二的时候又学习了数据结构课程。而这学期的课程设计,对我来说是一个新的挑战。从开始到现在,课程设计的每一个环节,我自己都精心准备,

22、让我对编程有了更深刻的认识,也是我知道了自己的不足之处。在老师刚布置下来任务之后,我便开始在网上和图书管理搜集资料,虽然关于这方面的资料很多,但是好多都和我的不相匹配。于是我每一本书都仔细阅读,筛选出了对我的程序设计有用的信息。然后,看懂了是一方面,自己动手做,又是另一个挑战。我发现如果不是透彻的弄懂了,在实际操作的时候,根本实现不了结果。于是,我又把资料仔细的阅读,并询问老师和同学们,再加上自己的摸索,最终提早完成了任务。我设计的是简易文本编辑器,要求有查找,插入,替换,块移动,删除功能,在这次课程设计作业的过程中,虽然课程设计有明确的目的及要求,但由于在设计方面我们没有经验,理论基础知识掌

23、握得不牢固,在设计中难免会出现这样那样的问题。在编写过程中也有许多小问题,比如没有定义,缺少符号等等,但经过仔细的修改以及寻求别人的帮助把问题也改正了,大多数是因为自己的粗心而引起的。在设计过程中,要独立的完成自己的设计思路。在学习理论知识的同时也要参加实践活动,把课本上的知识运动到实践当中去,也是我们学习专业理论知识的最终目的。本次的课程设计,培养了我c+语言,c语言及其他课程的理论知识和理论联系实际,应用生产实际知识解决实际问题的能力;在设计的过程中还培养独立自主的能力。在今后的学习过程中我们会更加努力。经过了连续两周的不懈努力,我终于完整的完成了文本编辑器的课程设计。在做此实验中虽然碰到

24、了很多困难,但是在克服困难的同时我们获益良多。巩固书本上的知识,对书上的知识能更透彻地了解。通过自己设计程序积累调试数据结构经验,培养了我的编程能力。巩固我们所学的c+编程知识,消化课堂所讲解的内容。对所学课程及其知识的一种整理,将原本在我们脑中比较混乱的课程设计重新梳理。1)通过课程设计我更好的掌握编程的基本设计思路,为以后灵活运用奠定了基础。2)相对于以前,我能够独立的完成简单的程序设计以及完成一份较为满意的程序设计报告。3)通过这次课程设计,达到了我增强巩固c+编程知识的目的,使知识全面化,系统化。4)c+程序设计在计算机学科的学习中,是一门比较重要的环节,这次的巩固与加深提高了我的实际

25、工作能力,培养科学作风,为学习后续课程和今后系统开发奠定基础。5)课程设计更注重的是综合训练,做到学以致用。6)培养了分析问题与解决问题的能力。附录/ txtedit.cpp : defines the class behaviors for the application./#include stdafx.h#include txtedit.h#include txteditdlg.h#ifdef _debug#define new debug_new#undef this_filestatic char this_file = _file_;#endif/ ctxteditappbegin

26、_message_map(ctxteditapp, cwinapp)/afx_msg_map(ctxteditapp)/ note - the classwizard will add and remove mapping macros here./ do not edit what you see in these blocks of generated code!/afx_msgon_command(id_help, cwinapp:onhelp)end_message_map()/ ctxteditapp constructionctxteditapp:ctxteditapp()/ to

27、do: 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 specific ini

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论