面向对象程序设计文本编辑器_第1页
面向对象程序设计文本编辑器_第2页
面向对象程序设计文本编辑器_第3页
面向对象程序设计文本编辑器_第4页
面向对象程序设计文本编辑器_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

实训报告 题 目: 文本编辑器 专 业: 电子信息工程 姓 名: 学 号: 指导教师:李登辉、赵志鹏、韩桂明、张锟 日 期: 2015年1月16日 桂林电子科技大学信息科技学院目 录1 任务32 方案设计33 软件设计34 制作与调试过程85 心得体会116 参考文献12文本编辑器1. 任务1.1基本任务设计一个基于对话框的文本编辑器,实现文本的创建、编辑、显示及保存功能。1.2基本要求 (1) 按照题目要求独立设计文本编辑器所需的所有按钮,并完成程序源码编写、调试及关键代码注释。 (2)能够实现文本文档的创建与保存。 (3)能够实现文本信息的编辑。2. 方案设计 1.1总体设计框图采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。文本编辑器CMyDlg打开模块OnButtonOpen保存模块OnButtonSave清除模块:OnButtonClear 首先建立一个基于对话框的应用程序,然后添加文本编辑框和三个按钮:打开、保存、清除按钮。双击该按钮系统自动生成该类的函数。 1.2各个模块函数说明第一,打开函数。实现文件夹的打开,选择打开路径打开相应的的txt文件。第二,保存函数。实现文件的保存,选择保存的路径和保存的文件名。第三,清除函数。实现文档的清除功能。3. 软件设计详细设计过程如下,先创建一个基于对话框的应用程序,取工程文件名为:缪宇。即在新建文件的New对话框中,选中Project,然后选择MFCAppWizard(exe)选项,在Projectname框中输入:缪宇。在生成的对话框中删除TODO:在这里设置对话控制。静态框和取消、确定按钮。如图所示。 3.1对话框界面设计 1添加文本编辑框 文本编辑框操作步骤如下:(1)添加文本编辑框,用于输入文件名。选定控件工具栏中文本编辑按钮(EditBox),本编辑框,并调整至合适的大小;历史老照片不能说的秘密慈禧军阀明末清初文革晚清 (2)设置文本编辑框属性。用鼠标右击该文本编辑框,在出现的菜单中选择属性(Properyies)菜单项,弹出属性对话框; (3)选择控件的标识符。在属性对话框中选择General页,并确认ID框中的标识符为:IDC_EDIT,其余属性均维持默认状态; (4)单击属性对话框右上角的关闭按钮,关闭属性对话框;2添加按钮和静态框给对话框添加打开、保存、清除3个按钮,它们的标识符分别为:IDC_BUTTON_open、IDC_BUTTON_save、IDC_BUTTON_clear、。通过类向导或双击3个按钮的图标,为CShixunDlg类加载OnButtonsave()、OnButtonopen()、OnButtonclear()3个函数,分别完成打开文件、保存文件和查找字符串、清除文档的字和字体设置功能。最后,添加两个位图装饰窗口。适当调整各控件位置,使整个界面外观协调一致。如图所示。 3.2 代码设计1.添加成员变量。通过类向导,为CShixunDlg添加一个成员变量m_edit。查找框添加一个成员变量m_FindText。2.添加程序代码 (1)在项目管理工作区中展开CCShixunApp类,双击该类OnButtonOpen()函数,将代码区光标移至OnButtonOpen()函数,并加入如下代码:void CShixunDlg:OnButtonOpen() /在类外定义函数/ TODO: Add your control notification handler code herechar temp;CFile cfi;int len;CFileDialog opendlg (TRUE,txt,NULL,OFN_HIDEREADONLY, 纯文本 (*.txt)|*.txt|Chart Files (*.xlc)|*.xlc| Worksheet Files (*.xls)|*.xls|); /(true就打开,文件扩展名,指定默认文件名,特定风格,可供选择文件类型和相应扩展名以/结尾)弹出路径选择对话框,默认纯文本格式,对话框为TRUE则显示打开对话框,if(opendlg.DoModal() =IDOK) /根据对话框返回值,判断用户是否按下OK键path=opendlg.GetPathName();/获得用户选择的路径cfi.Open(path,CFile:modeRead);/用读方式打开指定的文件(文件流对象.open(磁盘文件名,输入输出流方式))len=cfi.GetLength();/获得文件字节数并保存cfi.Close();/关闭文件ifstream in(path,ios:in); /再以流输入方式打开刚才的文件(文件流对象(磁盘文件名,输入输出方式)if(in) /如果返回值非零说明打开成功m_edit=; /清空现有缓存中的内容for(int i=0;ilen;i+) /一个字接一个字节的读取到缓存,并在到达文件末尾时停止in.get(temp);m_edit+=temp; UpdateData(FALSE);/更新文本框内容in.close();/关闭文件AfxMessageBox(文件打开OK ,MB_ICONASTERISK,0);/提示消息给用户else AfxMessageBox(文件打开失败 ,MB_ICONSTOP,0);/文件打开失败,提示用户错误 (2)在项目管理工作区中展开CCShixunApp类,双击该类OnButtonSave()函数,将代码区光标移至OnButtonSave()函数,并加入如下代码:void CShixunDlg:OnButtonSave() if(path=) /判断path是否为空CFileDialog savedlg (FALSE,txt,NULL,OFN_HIDEREADONLY, 纯文本 (*.txt)|*.txt|); /如果是,弹出路径选择为FALSE则显示保存对话文件对话框。if(savedlg.DoModal() =IDOK)/用户是否按下OKpath=savedlg.GetPathName(); /获得路径并保存至pathofstream out(path); /打开文件UpdateData(TRUE); /将文本框中的内容更新到m_edit变量out.write(m_edit,strlen(m_edit); /将m_edit中内容保存到文件中out.close(); /关闭文件AfxMessageBox(文件保存OK ,MB_ICONASTERISK,0); /提示用户保存完毕else /若path不为空,则直接保存文件到path中指定位置ofstream out(path);UpdateData(TRUE);out.write(m_edit,strlen(m_edit);out.close();AfxMessageBox(文件保存OK ,MB_ICONASTERISK,0); (3)在项目管理工作区中展开CCShixunApp类,双击该类OnButtonClear()函数,将代码区光标移至OnButtonClear()函数,并加入如下代码:void CShixunDlg:OnButtonClear() m_edit=; /将缓存内容清空UpdateData(FALSE); /将缓存内容更新到文本框/AfxMessageBox(成功清空文档内容 ,MB_ICONASTERISK,0);/提示消息给用户 将其编译链接后运行结果如下:4.制作与调试过程4.1 打开模块 编译运行后点击打开按钮,效果图分别如下所示。4.2 保存模块点击保存按钮,各步骤效果图分别如下所示。4.3 清除模块在编辑窗口输入任意字符,点击清除按钮,各步骤效果图分别如下所示。4. 心得体会 每一次实训都会有新的收获,这次实训也不例外。我想从两方面总结下这次实训。一是自己,尽管实训的过程也收获一个新的东西,但是模仿的多,创新的少,不如其他实训做的认真。实训时间从1.1到1.14,15、16号验收,可以说的是给的时间充裕,但是我还是老样子,前期不慌不忙,不抓紧,拖到后期,觉得时间不够了,做的简单,浅尝辄止。这样的坏毛病

温馨提示

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

评论

0/150

提交评论