四川师范大学成都学院高级语言程序课程设计文本编辑器设计学生姓名xxx学号x所在学院x专业名称x班级x级x班指导教师x成绩x学院二○一四年十二月课程设计任务书文本编辑器设计内容摘要:当今,计算机以及网络技术的飞速发展,社会正快速向信息化社会前进,我们需要更智能,更专业的软件帮助我们完成工作,从而提高了工作效率。
目前文本编辑器种类很多,所提供的功能也很多,但是能满足用户实现多种功能和进行C++程序语言的编译与运行很少,不能更好的适应当前用户的要求。
本设计所完成的文本编辑器功能是针对学习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 information 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++ 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 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++ as the development tool, and the operating system is Window 7.Keywords:The text editor C + + programming language compile function目录前言 01 课程设计的意义及目的 02 文本编辑器总体结构设计 (1)2.1 文本编辑器功能 (1)2.1.1 文本编辑器的基本功能 (1)2.2 总体结构 (1)3 文本编辑器各功能模块 (3)需求分析 (3)3.2 功能模块 (3)4 软件结构设计 (4)4.1 撤销 (4)4.2 删除 (4)4.3 剪切 (4)4.4 复制 (4)4.5 粘贴 (4)5 操作步骤 (4)打开文本编辑窗口 (4)输入文本 (4)删除文本内容 (4)在编辑里选择撤销 (4)选中文本,编辑里选复制 (4)在编辑里选择粘贴 (4)再次选中文本内容,剪切 (4)再粘贴 (4)结束语 (4)附录 (4)文本编辑器前言在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。
文字存放于一个装着这样的薄卡片的盒子里,可以用读卡器来阅读它。
第一个文本编辑器是一种行编辑器,它运行在打字机型的终端上,这种编辑器并不具备在窗口和屏幕中显示的功能。
它包含了一些非常短的命令(为了减少打字量)。
其中一个命令能够把文件的指定部分通过打字机打印出来。
编辑光标是想象中的一个插入点,通过特殊命令,可以把它移动到特定内容字符串所在的行。
随后,内容字符串又被扩展成正则表达式。
如果想看到文件的变化,你需要把它打印出来。
相对于穿孔机来说,人们认为这种基于行的文本编辑器具有革命性的进步。
如果没有它,用户就需要把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。
当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。
最早的全屏编辑器中,有一种叫做O26,它是于1967年为CDC 6000系列机器的操作控制台而作的。
另外一个早期的全屏编辑器是vi。
vi诞生于20世纪70年代,至今,它仍是Unix和Linux的标准编辑器。
全屏编辑器对视频终端的销售起到了促进的作用。
文本编辑器在Windows的应用中是一个非常重要的项目,在过去十数年中,微软对windows文本编辑器有多个版本的升级改进,而基于其他的编程环境的文本编辑器也是多如牛毛,今天我们用MFC可视化编译环境做一个简易的文本编辑器。
1 课程设计的意义及目的为了满足普通用户对文本文档进行一般的简单操作,设计文本编辑器,用户可以对文本进行如下的基本操作。
通过该课程设计,锻炼学生的基本编程技能,基于C语言基本知识,进一步扩展C++和windows界面编程的知识和应用;培养学生分析问题和解决问题的能力;促进把所学知识灵活应用到具体实践中。
该课程设计要求学生综合运用在课程中学到的技术与实际编程相结合,独立完成一项较为完整、并具有一定实际功能的课程设计任务,同时加深学生对面向对象和C++编程技术的理解和掌握,培养实际的应用程序开发能力。
在课程设计过程中,使学生养成良好的程序设计风格,并掌握C++应用程序的设计开发过程和编程方法、测试方法。
2 文本编辑器总体结构设计2.1 文本编辑器功能2.1.1 文本编辑器的基本功能该文本编辑器是用windows编写的一个程序,运行后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文件内容。
其中程序的编辑项可对当前的文本进行撤销、删除、剪切、复制、粘贴、在文本里显示当前时间、全选、清除、查找、替换、统计等功能。
程序的文件项可以对电脑上txt,c++等可以发出不同的报警声。
格式文件的打开、对当前文本的保存和另存、对当前文本的的新建以及退出文本编辑系统。
输入形式:直接在文本编辑框中输入文本内容以打开的方式打开并在文本框中显示电脑的上文本输出形式:对编辑框中尚无文本内容时进行查找、替换、统计等,程序会弹出一个提示尚无文本信息的小对话框,需输入文本后再进行以上操作对编辑框中已有文本内容后进行查找、替换、统计操作,程序将弹出3与之对应的对话框,根据所弹出的对话框的按键要求进行之后的操作就可以。
保存文件,另存为等功能都异曲同工,撤销、删除、剪切、复制、粘贴、等就直接在主文本编辑框中操作,直接在其显示操作后的文本信息。
2.2 总体结构该程序是用C++语言编译成的,编辑中主要能够实现撤销功能、复制功能、粘贴功能、删除功能和剪切功能。
图2-1 系统功能图图2-2 系统流程图3 文本编辑器各功能模块文本编辑器主要由五大功能构成,他们分别是文件操作模块,文本编辑模块,剪切操作模块,菜单控制模块和帮助及其他模块。
在文本编辑模块中,主要完成文件的撤销、删除操作。
剪切操作模块主要完成剪切、复制、粘贴操作。
需求分析文本编辑器的设计是基于Microsoft Visual Studio 2008开发的一款小型的软件,主要的设计是为了满足普通用户对文本文档进行一般的简单操作,通过MFC 可视化编程环境,直接生成一个友好的用户操作界面,通过这个窗口,用户可以对文本进行如下的基本操作。
文本编辑器主要由五大功能构成,他们分别是文件操作模块,文本编辑模块,剪切操作模块,菜单控制模块和帮助及其他模块。
在文件操作模块中,主要完成文件的创建,打开,保存和另存操作。
用户可以选择文件菜单上的新建子菜单来完成新建文本文件操作;选择文件菜单上的保存子菜单来完成保存文件操作选择文件菜单上的打开子菜单来完成打开文件操作。
在文件的打开,保存和另存为操作中,系统会提示用户输入文件路径及文件名。
值得一提的是,当用户打开一个文件时,指定的文件必须存在,否则系统会报错。
3.2 功能模块在文本编辑器模块中,主要完成在编辑窗口中以添加或插入的方式输入字符,删除光标所在当前位置的单个字符或前一个位置的单个字符,朝上下左右4个方向的光标移动操作。
当光标所在位置及后面的位置没有字符时,系统会以添加的方式输入字符;当光标所在位置及后面的位置有字符时,系统会已插入的方式输入字符。
用户可以使用BackSpace键删除光标前一个字符,也可以使用Del键删除当前位置的字符。
撤销:撤销前一步所进行的操作,从“编辑下拉菜单”或“右键菜单撤销删除:删除当前选定字符(串),从“编辑下拉菜单”或“右键菜单”中删除全选:对文本编辑框中文本全部选定,从“编辑下拉菜单”或“右键菜单”中全简易文本编辑器主要完成对已选定文本的剪切,复制,粘贴工作。
如果用户要剪切文本以便可以将它移动到其他位置,可通过先选定文本,然后选择Edit菜单上的Cut子菜单完成剪切任务。
如果用户要复制文本以便可以将它黏贴到其他位置,必须先选定文本,然后选择Edit菜单上的Copy子菜单来完成复制任务。
如果用户要粘贴剪切或复制的文本,必须将光标置于要粘贴文本的位置,然后选择Edit菜单上的Paste子菜单来完成粘贴任务。
剪切:复制并删除选定字符(串),从“编辑下拉菜单”或“右键菜单”中剪切复制:复制选定字符(串),“编辑下拉菜单”或“右键菜单”中复制粘贴:对粘贴内容进行粘贴,从“编辑下拉菜单”或“右键菜单”中粘贴4 软件结构设计4.1 撤销撤销命令是系统自带的函数,使用是调用OnMenuUndo函数命令,详细代码如下所示:void CTxteditDlg::OnEditundo(){#ifdef _AFXDLL }开始撤销选中撤销的存放在缓存中结束开始结束删除选中删除的存放在缓存中开始结束剪切选中剪切的存放在缓存中开始结束复制选中复制的开始结束粘贴选中粘贴位置存放在缓存中参考文献[1] 仇芒仙等编.C/C++程序设计案例教程.北京:清华大学出版社,[2] 钱能.C++程序设计教程.北京:清华大学出版社,2005[3] 严蔚敏等编.数据结构(C语言版).北京:清华大学出版社,[4] 任哲.MFC Windows应用程序设计(第3版).北京:清华大学出版社,[5] 欧阳志宏等编.MFC程序设计轻松入门.北京:人民邮电出版社.成绩评定表说明:分数采用百分制,相应的等级为:优:90~100:良:80~89;中:70~79;及格:60~69;不及格:60分以下。