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

下载本文档

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

文档简介

精品资料实训报告题目:文本编辑器专业:电子信息工程姓名:学号:指导教师:李登辉、赵志鹏、韩桂明、张锟日 期: 2015年1月16日可编辑精品资料桂林电子科技大学信息科技学院目 录1任务⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 32方案设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 33软件设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 34制作与调试过程⋯⋯⋯⋯⋯⋯⋯⋯⋯ 85心得体会⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 116参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 12可编辑精品资料文本编辑器任务1.1基本任务设计一个基于对话框的文本编辑器,实现文本的创建、编辑、显示及保存功能。1.2基本要求1)按照题目要求独立设计文本编辑器所需的所有按钮,并完成程序源码编写、调试及关键代码注释。2)能够实现文本文档的创建与保存。(3)能够实现文本信息的编辑。方案设计1.1总体设计框图采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的文本编辑器CMy1152100216Dlg打开模块保存模块清除模块逐步细化描述。OnButtonSave:OnButtonClearOnButtonOpen首先建立一个基于对话框的应用程序,然后添加文本编辑框和三个按钮:打开、保存、清除按钮。双击该按钮系统自动生成该类的函数。1.2各个模块函数说明第一,打开函数。实现文件夹的打开,选择打开路径打开相应的的 txt文件。第二,保存函数。实现文件的保存,选择保存的路径和保存的文件名。第三,清除函数。实现文档的清除功能。可编辑精品资料软件设计详细设计过程如下,先创建一个基于对话框的应用程序,取工程文件名为:1152100216缪宇。即在新建文件的 New对话框中,选中 Project,然后选择MFCAppWizard(exe)选项,在Projectname框中输入:1152100216缪宇。在生成的对话框中删除[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()函数,并加入如下代码:voidCShixunDlg::OnButtonOpen()//在类外定义函数{TODO:Addyourcontrolnotificationhandlercodeherechartemp;CFilecfi;可编辑精品资料intlen;CFileDialogopendlg(TRUE,"txt",NULL,OFN_HIDEREADONLY," 纯文本(*.txt)|*.txt|ChartFiles(*.xlc)|*.xlc|WorksheetFiles(*.xls)|*.xls||");//(true就打开,文件扩展名,指定默认文件名,特定风格,可供选择文件类型和相应扩展名以//结尾)弹出路径选择对话框,默认纯文本格式,对话框为TRUE则显示打开对话框,if(opendlg.DoModal()==IDOK)// 根据对话框返回值,判断用户是否按下 OK键{path=opendlg.GetPathName();//获得用户选择的路径cfi.Open(path,CFile::modeRead);//用读方式打开指定的文件(文件流对象.open(磁盘文件名,输入输出流方式))len=cfi.GetLength();//获得文件字节数并保存cfi.Close();//关闭文件ifstreamin(path,ios::in);//再以流输入方式打开刚才的文件(文件流对象(磁盘文件名,输入输出方式))if(in)//如果返回值非零说明打开成功{m_edit="";//清空现有缓存中的内容for(inti=0;i<len;i++)// 一个字接一个字节的读取到缓存 ,并在到达文件末尾时停止{in.get(temp);m_edit+=temp;}UpdateData(FALSE);//更新文本框内容in.close();//关闭文件AfxMessageBox("文件打开OK",MB_ICONASTERISK,0);// 提示消息给用户}elseAfxMessageBox("文件打开失败 ",MB_ICONSTOP,0);//文件打开失败,提示用户错误可编辑精品资料}}(2)在项目管理工作区中展开 CCShixunApp类,双击该类OnButtonSave()函数,将代码区光标移至 OnButtonSave(函)数,并加入如下代码:voidCShixunDlg::OnButtonSave(){if(path=="")// 判断path是否为空{CFileDialogsavedlg(FALSE,"txt",NULL,OFN_HIDEREADONLY,"纯文本(*.txt)|*.txt||");//如果是,弹出路径选择为FALSE则显示保存对话文件对话框。if(savedlg.DoModal()==IDOK) //用户是否按下OK{path=savedlg.GetPathName();//获得路径并保存至 pathofstreamout(path);//打开文件UpdateData(TRUE);//将文本框中的内容更新到 m_edit变量out.write(m_edit,strlen(m_edit));//将m_edit中内容保存到文件中out.close();//关闭文件AfxMessageBox("文件保存OK",MB_ICONASTERISK,0);// 提示用户保存完毕}}else//若path不为空,则直接保存文件到 path中指定位置{ofstreamout(path);UpdateData(TRUE);out.write(m_edit,strlen(m_edit));out.close();AfxMessageBox("文件保存OK",MB_ICONASTERISK,0);}}(3)在项目管理工作区中展开CCShixunApp类,双击该类OnButtonClear()函数,将代码区光标移至OnButtonClear()函数,并加入如下代码:voidCShixunDlg::OnButtonClear(){可编辑精品资料m_edit="";//将缓存内容清空UpdateData(FALSE);//将缓存内容更新到文本框//AfxMessageBox("成功清空文档内容 ",MB_ICONASTERISK,0);//提示消息给用户}将其编译链接后运行结果如下:4.制作与调试过程4.1打开模块编译运行后点击打开按钮,效果图分别如下所示。可编辑精品资料4.2保存模块点击保存按钮,各步骤效果图分别如下所示。可编辑精品资料4.3清除模块在编辑窗口输入任意字符,点击清除按钮,各步骤效果图分别如下所示。可编辑精品资料心得体会每一次实训都会有新的收获,这次实训也不例外。我想从两方面总结下这次实训。一是自己,尽管实训的过程也收获一个新的东西,但是模仿的多,创新的少,不如其他实训做的认真。实训时间从1.1到1.14,15、16号验收,可以说的是给的时间充裕,但是我还是老样子,前期不慌不忙,不抓紧,拖到后期,觉得时间不够了,做的简单,浅尝辄止。这样的

温馨提示

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

评论

0/150

提交评论