MFC简易文章编辑器(Brute Froce算法)(符源码) -

来源:百度文库 编辑:神马文学网 时间:2024/04/25 18:40:43
∪∩deniable Design
Undeniable:<能力一>:专业. <能力二>:英语. <能力三>:信息.(2008 07 13)
BlogJava ::首页 ::新随笔 ::联系 ::聚合 ::管理
留言簿(4)
给我留言查看公开留言查看私人留言
我参与的团队
深圳Java俱乐部(0/0)
随笔分类(35)
Database学习笔记(2)Hibernate学习笔记(5)JavaScript学习笔记Java学习笔记(3)JSP学习笔记(5)Struts1.X学习笔记Struts2学习笔记(9)VC++/MFC学习笔记(5)程序员必学英语(6)
随笔档案(35)
2009年4月 (1)2008年9月 (6)2008年8月 (23)2008年7月 (5)
搜索
最新评论
1. re: 英语之路(1)—3000个USA最常用英语口语单词 Tanks --112. re: Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来 太棒了~~~ --NDE3. re: 《JAVA2简明教程》课后习题答案及实验源码详解[未登录] 评论内容较长,点击标题查看 --a4. re: Hibernate学习笔记(二)-- 实体映射 hao --jb5. re: 《JAVA2简明教程》课后习题答案及实验源码详解[未登录] 有后面的答案吗
好急的啊 --王
阅读排行榜
1. 英语之路(1)—3000个USA最常用英语口语单词(3846)
MFC简易文章编辑器(Brute Froce算法)(符源码)
Posted on 2008-08-19 17:44∪∩BUG 阅读(460)评论(0)  编辑  收藏 所属分类:VC++/MFC学习笔记
《数据结构》实训报告
文章编辑器
NoteLite

姓名:∪∩BUG
学号:                                                                        指导老师:
目 录
实训目的    ………………………………………….. ………………………………………….. ……….. ….1
需求分析    ………………………………………….. ………………………………………….. ……….. ….1
文章编辑器NoteLite简介    ………………………………………………………….. ……….. …1
设计概要
主要控件    ………………………………………….. ………………………………………….. ……….. ….1
流程图        ………………………………………….. ………………………………………….. ……….. ….2
详细设计    ………………………………………….. ………………………………………….. ……….. ….3
使用说明    ………………………………………….. ………………………………………….. ……….. ….17
心得        ………………………………………….. ………………………………………….. ……….. ….21
参考书目    ………………………………………….. ………………………………………….. ……….. ….21
(CTRL+左键可快速转到相应的页码)
文章编辑器NoteLite
实训目的
运用VC++6.0 通过MFC开发基于对话框的文章编辑器NoteLite,其中运用数据结构中的模式匹配Brute Froce算法来实现匹配,删除和替换功能。并实现文章编辑器NoteLite的数字及字符的统计等一般的操作。
需求分析
本程序演示用C++编写,完成MFC创建的文章编辑器NoteLite,用Brute Froce算法来实现匹配,删除和替换功能。并统计主编辑框的字符总数,数字总数,空格总数,字母个数及与测试编辑框的内容匹配的总数和文章的总行数,能对相应的操作进行无限撤消和无限重做。
输入值的范围:主编辑框,测试编辑框,替换编辑框均可输入任意字符。在插入字符时要求测试编辑框的内容的长度加上主编辑框的内容的长度不超过主编辑框长度的允许范围。在替换字符时要求替换后主编辑框的内容长度不能超过主编辑框长度的允许范围。
输出形式:统计的结果会在相应的编辑框显示,其中行数和字符个数即时显示。
测试数据
A    要主编辑框中输入:文章编辑器 V1.0 Beta
得到字符总数20,行数1.统计后得到字母个数5,空格个数2,数字个数2.
B    在测试编辑框中输入:文章编辑器
单击匹配得匹配次数1,单击删除主编辑框的内容变为"V1.0 Beta",单击插入主编辑框恢复"文章编辑器 V1.0 Beta"。
C    在替换编辑框中输入:NoteLite
单击替换主编辑框的内容变为"NoteLite V1.0 Beta"
D    单击清空主编辑框的内容被清空,单击撤消变为"文章编辑器 V1.0 Beta",单击重做主编辑框的内容再被清空。
文章编辑器NoteLite简介
文章编辑器NoteLite运行于Windows下,主要实现文本的输入,一般的编辑操作,如:插入,删除,撤消,重做。能查找特定字符在文本中出现的字数,并能批量删除或替换特定的字符串,能对输入的文本进行字符总数,行数,字母个数,数字个数,空格个数。
设计概要
(1)为了实现文章编辑器NoteLite上述的功能,需要建立的控件有:
1.    编辑框控件(共10个):
主编辑框            IDC_EDIT2;
测试编辑框        IDC_EDIT1;
替换编辑框        IDC_EDIT4;
显示行数            IDC_EDIT3;
显示字符总数        IDC_EDIT5;
显示字母个数        IDC_EDIT6;
显示数字个数        IDC_EDIT7;
显示空格个数        IDC_EDIT8;
显示匹配次数        IDC_EDIT9;
显示匹配次数        IDC_EDIT10;
2.    按扭控件(共9个)
插入                IDC_INSERT_BUTTON
删除                IDC_DEL_BUTTON
匹配                IDC_MATCH_BUTTON
替换                 IDC_REPLACE_BUTTON
统计                IDC_COUNT_BUTTON
清空                 IDC_CLEAR_BUTTON
撤消                 IDC_UNDO_BUTTON
重做                 IDC_REDO_BUTTON
退出                 IDC_CANCEL_BUTTON2
3.    静态编辑框若干个
(2) 流程图
1.    匹配算法(Brute Froce算法)

详细设计
使用说明
程序名为NoteLite.exe,运行后如图:

在主编辑框中输入一些文字得:

单击统计得:

在测试编辑框中输入:桂林电子科技大学,单击插入三次得

单击删除两次得:

单击撤消两次得:

单击重做两次得

单击匹配得

在替换编辑框中输入:06050303,然后单击替换得

单击清空得

按退出,关闭程序.
心得
本次实训初始使用MFC来开发一个文章编辑器,首先去了解了相关的类,当开始发现CEditeView类建立的单文档已经实现的一个文章编辑器的大部分功能,只需要做的是重写里边的函数达到实训的目的.但由于对单文档的运用过于生疏,由于时间不允许只能换回比较上手的基于对话框的开发,也只用CEdit类.先写了一个开发的计划,要实现的功能有两个亮点:1是能按列选择并删除或替换;2是能实现无限撤消和删除.最后才考虑用KMP算法实现查找匹配等功能.在开发过程中发现要实现第一点并非一件容易的事,要使用到的知识远远超出我的知识范围,只能开始第二点,首先想到的是用栈来实现,但在MFC里这也不是件容易的事,因为如何捕获文本框的即时内容变化呢?换成数组就好办多了,可以在文本框焦点得失时保存入相应的数组里,这里设两个数组,一个用于撤消,一个用于重做,最后完美的实现了第二点.在第三点中算法是没有问题,但在运行时出现一个系统的错误,这个常见的错误一般是空指针,下标越界等引起,但在调试过程中并未找到出错的下标.最后改成Brute Froce算法才得以实现删除,替换,匹配的功能.当然这个算法效率不佳,但对于这个小程序足矣.其实在实现删除,替换功能时一定要注意的一点是在文本框的内容改变时要重新获取内容才能有达到目的.这一点也是我在调试过程中发现的,很多问题总是在调试过程中得以解决.
另外有一点我始终不明白,本想统计汉字的个数,由于用平常的方法无法实现,就想到用总字符减去空格,数字,字母,标点余下的应该就是汉字了,可以系统却把一个汉字当成了两个标点符号了,而我的标点符号集里并没有汉字.这一点会在今后的学习中多加了解,因为一个要国际化的软件总是应该要支持多国语言的.
这次实训锻炼了我几个方面的功能:1. 规划能力;2. 自学、独立解决问题能力;3. 知识捕获、信息整理能力;4. 美工设计、排版能力;5. 综合运用知识能力
参考书目
《数据结构习题与解答》                        (冶金工业出版社)
《数据结构C++实现》                            (科学出版社)
《数据结构(C++描述)》                            (清华大学出版社)
《C语言程序设计》                            (清华大学出版社)
《算法与数据结构—C语言描述》                (高等教育出版社)
《算法设计与分析》                            (清华大学出版社)
《Windows API函数实用手册》                    (冶金工业出版社)
《MFC程序设计Using Visual C++ 6.0》            (北京希望电子出版社)
《C++.NET MFC 类库应用详解》                    (科学出版社)
新用户注册  刷新评论列表
淘宝网诚聘资深J2ME开发工程师
IT新闻:
·百万亿次超级计算机曙光5000已经售出431台
·离婚通过短信完成?“电子离婚”令约旦人头疼
·Facebook市场占有率世界领先
·疯狂的团购
·英特尔开发出大脑扫描软件 可读取大脑意识
专题:Android iPad jQuery Chrome OS
博客园首页 IT新闻 知识库 学英语 Java程序员招聘
标题 请输入标题
姓名 请输入你的姓名
主页
请输入验证码
验证码 *  
内容(请不要发表任何与政治相关的内容) 请输入评论内容
Remember Me?
登录
[使用Ctrl+Enter键可以直接提交]
每天10分钟,轻松学英语
推荐职位:
·飞信服务器端高级.NET开发工程师(新媒传信)
·.NET飞信官网开发工程师(新媒传信)
·Web前端研发工程师(百度)
·C++开发工程师(沪江网)
·前端开发工程师(沪江网)
·产品经理(沪江网)
·运维工程师(沪江网)
博客园首页随笔:
·JSON序列化与反序列化
·博客园上海俱乐部四月份活动通知(2010-04-17)
·PHP Socket 编程
·群发“站内信”的实现(续)
·数据库索引白话篇
知识库:
·如何做网页设计的10个小窍门
·社区媒体和网站的九个关键性界面特征
·从零到十亿,创业企业家如何迈向成功?
·如何精简用户界面
·每天进步一点点,一个月后,一年后,十年后,百年后...
网站导航:博客园  IT新闻  个人主页  博客生活  IT博客网  C++博客  博客园社区管理
相关文章:MFC简易文章编辑器(Brute Froce算法)(符源码)Visual C++ 6.0调试功能 图解教程(4)--实例三Visual C++ 6.0调试功能 图解教程(3)--实例二Visual C++ 6.0调试功能 图解教程(2)--实例一Visual C++ 6.0调试功能 图解教程(1)--快速入门
Powered by:
Copyright © ∪∩BUG