课程设计文本编辑器的设计(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《高级语言程序设计》

课程设计报告

题目: 文本编辑器的设计 专业: 计算机科学与技术 班级: 14计科一班

**: ** 指导教师: **

成绩:

计算机学院 2015年4月24日

2014-2015学年 第2学期

目录

1 设计内容及要求................................... 错误!未定义书签。

1.1设计内容..................................... 错误!未定义书签。

1.2具体要求 (2)

2 概要设计 (2)

2.1系统的功能简介 (2)

2.2系统功能模块图............................... 错误!未定义书签。

2.3各个模块之间的主要关系 (3)

3 详细设计 (4)

3.1文件操作 (4)

3.2编辑操作 (9)

3.3工具操作 (17)

4 程序运行结果与调试 (19)

4.1 在调试过程中出现的一些问题 (19)

4.2 实验结果 (20)

5 课程设计总结与感想 (24)

参考文献 (24)

源代码 (25)

1 设计内容及要求

1.1设计内容

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

1.2具体要求

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

2 概要设计

2.1系统的功能简介

输入一页文字,程序实现文字、数字、空格的统计;可以删除一行信息;查找定位单词;定行位置插入;文件存盘;装入文件;并能显示输入及其他功能。

2.2系统功能模块图

运行所需环境:win7及以下各版本windows,visual C++6.0。

2.3各个模块之间的主要关系

该系统的功能主要是实现文本的输入,并对文本的相应信息进行的操作。各个模块之间的关系是相互联系的。首先,主函数包含了所有的子函数。主函数是整个系统的核心。子函数之间也是有联系的,对文本信息的显示、删除、统计、查找、插入,存储,装入,必须是在文本信息输入的情况下进行的。因此对文本的输入是非常重要的。在文本的删除、统计、查找、插入、存储、装入、保存所有的子函数之间是没有多大联系的。

3 详细设计

3.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;

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,"");

}

(2)文件打开的实现:

case ID_MENUITEMOPEN: //文本的打开

{

OPENFILENAME ofn;

char szFile[MAX_PATH]; //保存路径变量

ZeroMemory(&ofn,sizeof(ofn));

在这里我们使用ZeroMemory“函数”,ZeroMemory其实并不是函数,看一下ZeroMemory的定义:

ofn.lStructSize = sizeof(ofn);

ofn.lpstrFile = szFile;

//szFile是一个字符数组,那么szFile这个名字就代表这个字符数组的首地址

这是一个指针的应用,把接收选择文件名的数组的地址传递到GetOpenFileName函数中。

ofn.lpstrFile[0] = TEXT('\0');

ofn.lpstrFile[0] = TEXT('\0');效果等价于ZeroMemory(szFile,sizeof(szFile)/sizeof(char));

ofn.nMaxFile = sizeof(szFile);

ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.txt\0");

文件过滤器

*.*就表示所有文件*.txt就表示所有文本文件abc*.*就表示所有以abc开头的文件

相关文档
最新文档