文本编辑器课程设计报告

  • 格式:doc
  • 大小:307.00 KB
  • 文档页数:28

1 目录 一、问题描述-------------------------------------------------------------------------2 1、基本要求----------------------------------------------------------------------2 2、提高要求----------------------------------------------------------------------2 二、需求分析-------------------------------------------------------------------------2 三、概要设计-------------------------------------------------------------------------3 四、详细设计-------------------------------------------------------------------------5 1、文件操作----------------------------------------------------------------------5 2、编辑操作----------------------------------------------------------------------10 3、工具操作----------------------------------------------------------------------19 4、关于操作----------------------------------------------------------------------20 五、编码与调试分析----------------------------------------------------------------20 六、使用说明-------------------------------------------------------------------------22 七、测试结果-------------------------------------------------------------------------22 八、自学知识-------------------------------------------------------------------------26 九、课程设计心得体会-------------------------------------------------------------27 2

一、问题的描述 设计并编写一个小型文本编辑器,使其具有通常文本编辑器(如Vi、Edlin)应具备的基本功能。

1.基本要求:编辑器应具备对文本文件的打开、保存、新建、查找、插人、删除、修改、字符串替换、统计字数,统计行数等功能,对于超过一屏的长文件,应能够分页显示。设计用户接口命令,实现对文本的编辑。

2.提高要求:可以支持“* ”、“? ”等通配符,支持复制、粘贴等功能,支持多文档同时编辑。设计用户接口命令,实现对文本的编辑。

二、需求分析 文本编辑器的基本功能: 该文本编辑器是用windows编写的一个程序,运行后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文件内容。其中程序的编辑项可对当前的文本进行撤销、删除、剪切、复制、粘贴、在文本里显示当前时间、全选、清除、查找、替换、统计等功能。程序的文件项可以对电脑上txt,c++等格式文件的打开、对当前文本的保存和另存、对当前文本的的新建以及退出文本编辑系统。程序的工具项为背景音乐,为用户提供了优美动听的音乐,仅在用户编辑疲惫乏力的时候尽情的享用。最后在程序的帮助项有对该小型文本编辑器的关于,用来介绍该程序,还有访问链接百度,访问114网页大全,为用户提供查找资料等功能服务。 输入形式: ①直接在文本编辑框中输入文本内容; ②以打开的方式打开并在文本框中显示电脑的上文本。 输出形式: ①对编辑框中尚无文本内容时进行查找、替换、统计等,程序会弹出一个提示尚无文本信息的小对话框,需输入文本后再进行以上操作。 ②对编辑框中已有文本内容后进行查找、替换、统计操作,程序将弹出3

与之对应的对话框,根据所弹出的对话框的按键要求进行之后的操作就可以。保存文件,另存为等功能都异曲同工,撤销、删除、剪切、复制、 粘贴、等就直接在主文本编辑框中操作,直接在其显示操作后的文本信 息。 测试数据要求:任意一文本文件。 三、概要设计

(1) 抽象数据类型: 直接运用windows中的的窗口类,通过消息响应,调用API函数实现有关对话框的操作功能,以及自己定义一个仅含有成员函数的普通类对文本字符进行查找、替换、统计的辅助操作,对主对话框和副对话框中函数的回调和参数的回显功能。 4

(2) 主程序流程图

(3)模块调用关系: 该文本编辑器函数括:WINAPI Main_Proc(), WINAPI Change_Proc(), WINAPI Find_Proc(), WINAPI Total_Proc(), Main_OnInitDialog(); Change _OnInitDialog(); Find_OnInitDialog(); Total_ OnInitDialog(); Main_OnCommand(); Change_ OnCommand(); Find_ OnCommand(); Total_ OnCommand(),Main_OnClose(),Change_ Main_OnClose(); Find__OnClose(); Total _OnClose(); Main_OnSize(), TCHAR * temp(),D_change()等函数;其中每个对话框对应一组函数例如主对话框包括WINAPI Main_Proc(), Main_OnInitDialog(),Main_OnCommand(),Main_OnClose()函数,Main_Proc()函数通过消息响应调用

文本编辑器 文件 编辑 工具 帮助 新建 打开 保存 另存 退出 复制 粘贴 剪切 清空 删除 清空 撤销 查找 替换 统计 全选

背景音乐 关于

连接百度 连接114 5

Main_OnInitDialog()完成对话框的初始化,通过调用Main_OnCommand()函数完成对对话框中控件以其菜单项的响应,通过调用Main_OnClose()关闭对话框。其它的如查找,替换等副窗口也一样。TCHAR * temp(),函数做回调函数用,返回副对话框中已经改变后的主对话框文本框中的文本内容。D_change()是实现替换功能的函数 其函数调用关系如下:

四、详细设计 〔1〕、文件操作: 1、文件的新建的实现: int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文本文档"),TEXT("温馨提示"),MB_YESNO | MB_ICONQUESTION); if(ret==IDYES) //根据选择如果保存 { OPENFILENAME ofn; //文件对象 char szFile[MAX_PATH]; //文件的大小,最大 ZeroMemory(&ofn,sizeof(ofn)); //文件的初始化 ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szFile;

Main_Proc(), Main_OnInitDialog() Main_OnCommand() Main_OnCommand()

Change_Proc() Find_Proc() Total_Proc() 6

ofn.lpstrFile[0] = TEXT('\0'); ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0C++\0*.cpp\0"); //保存的文件类型 ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.hwndOwner = hwnd; ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; ofn.lpstrTitle=TEXT("保存"); if (GetSaveFileName(&ofn)) { FILE *fp; fp=fopen(szFile,"w"); //打开文件 if(fp==NULL) { MessageBox(NULL,TEXT("文件无法保存"),TEXT("呜呜"),MB_OK); } TCHAR str[10000]; TCHAR end[10000]; memset(end,0,10000); GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str)); fputs(str,fp); fclose(fp); } SetDlgItemText(hwnd,IDC_EDIT1,""); } else { SetDlgItemText(hwnd,IDC_EDIT1,""); }