课程设计文本编辑器的设计

合集下载

VB课程设计报告---文本编辑器

VB课程设计报告---文本编辑器

VB课程设计报告——文本编辑器学院名称:计算机学院学生姓名:专业名称:计算机科学与技术班级:一、课程设计题目用Visual Basic程序设计语言编写一个简易的文本编辑器要求:有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。

二、课程设计目的(1)目标:实现类似与WINDOWS平台下的记事本程序。

(2)涉及功能:新建、打开、保存、另存为、退出、编辑、撤销、复制、粘贴、剪切、删除、查找、全选、打印、格式、字体、颜色、查看、状态栏、帮助、关于等三、课程设计说明1创建应用程序界面2设置属性3编写代码4保存应用程序5调试,运行应用程序6生成可执行文件四、源代码Dim filecount As IntegerDim inputdata As StringDim TargetPosition As IntegerDim pos As IntegerDim targey As StringDim neirong As StringPrivate Sub A_Click()On Error Resume Nextcmndlg1.Filter = "文本文件|*.txt"cmndlg1.CancelError = Truecmndlg1.Action = 2Open cmndlg1.FileName For Output As #1Print #1, Text1.TextClose #1End SubPrivate Sub C_Click()End SubPrivate Sub D_Click()End SubPrivate Sub Form_Load()Text1.Text = ""Text1.Left = 0Text1.Top = 550Text1.Width = Form1.ScaleWidthText1.Height = Form1.ScaleHeightmnucut.Enabled = Falsemnucopy.Enabled = Falsemnudelete.Enabled = Falsemnuselectall.Enabled = Falsemnupaste.Enabled = Truemnuleft.Checked = TrueEnd SubPrivate Sub Form_Resize()'如果窗体不处于最小化text1状态,改变text1大小以适应窗体大小变化If Form1.WindowState <> 1 ThenText1.Width = Form1.Width - 120If Form1.Height < 1200 ThenForm1.Height = 1200End IfText1.Height = Form1.Height - 1350End IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)Dim msg As IntegerIf Text1.Text <> neirong Thenmsg = MsgBox(" 内容已被修改,是否保存文件", 48 + vbYesNoCancel, "提示")If msg = vbYes ThenOn Error GoTo Errcmndlg1.DialogTitle = "保存文件"cmndlg1.Filter = "文本文件|*.txt"cmndlg1.CancelError = Truecmndlg1.ShowSaveOpen cmndlg1.FileName For Output As #1Print #1, Text1.TextClose #1Err:If Err.Number = cdlCancel ThenCancel = TrueEnd IfElseIf msg = vbNo ThenEndElseIf msg = vbCancel ThenCancel = TrueEnd IfElseEndEnd IfEnd SubPrivate Sub mnucopy_Click() '复制利用SetText 方法,将选中的文本放入剪贴板上Clipboard.SetText Text1.SelTextPrivate Sub mnucut_Click() '剪切Clipboard.SetText Text1.SelTextText1.SelText = ""End SubPrivate Sub mnudelete_Click() '删除Text1.SelText = ""End SubPrivate Sub mnuedit_Click() '编辑菜单项代码' 如果文本框中没有选中的内容,则剪切\复制\删除和粘贴菜单无效,否则有效If Text1.SelLength <> 0 Thenmnucut.Enabled = Truemnucopy.Enabled = Truemnudelete.Enabled = Truemnupaste.Enabled = TrueElsemnucut.Enabled = Falsemnucopy.Enabled = Falsemnudelete.Enabled = FalseEnd IfEnd SubPrivate Sub mnuexit_Click() '退出EndEnd SubPrivate Sub mnufind_Click() '查找FindText 1mnuNext.Enabled = TrueEnd SubPrivate Sub mnufont_Click() '字体On Error GoTo A:cmndlg1.Flags = cdlCFBoth Or cdlCFEffectscmndlg1.ShowFontIf cmndlg1.FontName > "" ThenText1.FontName = cmndlg1.FontNameText1.FontSize = cmndlg1.FontSizeText1.FontBold = cmndlg1.FontBoldText1.FontItalic = cmndlg1.FontItalicText1.FontStrikethru = cmndlg1.FontStrikethru Text1.FontUnderline = cmndlg1.FontUnderline Text1.FontBold = cmndlg1.FontBoldText1.ForeColor = cmndlg1.ColorA:If Err.Number < 0 ThenExit SubEnd IfEnd SubPrivate Sub mnufontcolor_Click() '字体颜色cmndlg1.ShowColorText1.ForeColor = cmndlg1.ColorEnd SubPrivate Sub mnuleft_Click() '左对齐Text1.Alignment = 0mnuleft.Checked = Truemnuright(1).Checked = Falsemnuright(2).Checked = FalseEnd SubPrivate Sub mnunew_Click() '新建Text1.Text = ""End SubPrivate Sub FindTex(ByVal start_at As Integer) targey = targeypos = InStr(start_at, Text1.Text, targey)If pos > 0 Then '找到了匹配字符串TargetPosition = posText1.SelStart = TargetPosition - 1'选中找到的字符串Text1.SelLength = Len(targey)Text1.SetFocusElse '没有找到匹配的字符串MsgBox "没找到匹配的字符串", 48, "提示"Text1.SetFocusEnd IfEnd SubPrivate Sub mnuNext_Click() '查找下一个FindTex TargetPosition + 1End SubPrivate Sub mnuopen_Click() '打开Dim inputdata As StringOn Error GoTo nofilecmndlg1.Filter = "文本文件|*.txt"cmndlg1.CancelError = Truecmndlg1.ShowOpenText1.Text = ""If cmndlg1.FileName <> "" ThenOpen cmndlg1.FileName For Input As #1Do While Not EOF(1)Line Input #1, inputdataText1.Text = Text1.Text & inputdata & vbCrLoopClose #1End IfExit Subnofile:If Err.Number = 32755 Then Exit SubEnd SubPrivate Sub FindText(ByVal start_at As Integer)'获取用户输入的要查找的字符串targey = InputBox("请输入要查找的内容", "查找")pos = InStr(start_at, Text1.Text, targey)If pos > 0 Then '找到了匹配字符串TargetPosition = posForm1.Text1.SelStart = TargetPosition - 1'选中找到的字符串Form1.Text1.SelLength = Len(targey)Form1.Text1.SetFocusElse '没有找到匹配的字符串MsgBox "没找到匹配的字符串", 48, "提示"Form1.Text1.SetFocusEnd IfEnd SubPrivate Sub mnupaste_Click() '粘贴用GetText1 方法,将剪切板中的内容粘贴到光标所在位置Text1.SelText = Clipboard.GetText()End SubPrivate Sub mnuprint_Click() '打印On Error Resume Nextcmndlg1.ShowPrinterPrinter.Copies = cmndlg1.CopiesPrinter.Print Text1.TextEnd SubPrivate Sub mnuright_Click(Index As Integer) '右对齐\居中菜单代码Select Case IndexCase 1Text1.Alignment = 1mnuleft.Checked = Falsemnuright(1).Checked = Truemnuright(2).Checked = FalseCase 2Text1.Alignment = 2mnuleft.Checked = Falsemnuright(1).Checked = Falsemnuright(2).Checked = TrueEnd SelectEnd SubPrivate Sub mnusave_Click() '保存On Error Resume Nextcmndlg1.DialogTitle = "保存文件"cmndlg1.Filter = "文本文件|*.txt"cmndlg1.CancelError = Truecmndlg1.ShowSaveOpen cmndlg1.FileName For Output As #1Print #1, Text1.TextClose #1End SubPrivate Sub mnuselectall_Click() '全选Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End SubPrivate Sub Text1_Change()If Text1.Text = "" Thenmnufind.Enabled = FalsemnuNext.Enabled = FalseElsemnufind.Enabled = Truemnuselectall.Enabled = TrueEnd IfEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case ButtonCase "新建"Call mnunew_ClickCase "打开"Call mnuopen_ClickCase "剪切"Call mnucut_ClickCase "复制"Call mnucopy_ClickCase "粘贴"Call mnupaste_ClickCase "保存"Call mnusave_ClickCase "查找"Call mnufind_ClickEnd SelectEnd SubPrivate Sub tre_Click()Shell ("notepad 使用说明.txt")End SubPrivate Sub xufeng_Click()Form2.Visible = TrueEnd Sub五、运行结果保存功能查找功能打开功能颜色修改功能字体修改功能七、心得体会作为一名计算机专业的学生,在接触了C语言、数据结构与C++课程后,对计算机语言有了一定的兴趣,于是在这个学期我毫不犹豫的选择了VB课程(算法与程序设计)。

文本编辑器课程设计

文本编辑器课程设计

文本编辑器课程设计一、课程目标知识目标:1. 理解文本编辑器的基本功能与操作,掌握常见的文本编辑命令;2. 学会使用文本编辑器进行文档的创建、编辑、保存和打印;3. 了解文本编辑器的不同类型,如记事本、Word等,并掌握它们的特点与适用场景。

技能目标:1. 能够熟练运用文本编辑器进行文字输入、排版和格式设置;2. 学会使用文本编辑器的查找与替换功能,提高文本处理效率;3. 掌握文本编辑器的拼写检查、语法检查功能,提升写作质量。

情感态度价值观目标:1. 培养学生对文本编辑器的兴趣,激发他们主动探索和使用新工具的积极性;2. 培养学生的信息素养,使他们认识到文本编辑器在日常生活和学习中的重要性;3. 引导学生养成良好的文本编辑习惯,注重文档的美观与规范,提升个人形象。

本课程针对年级:小学四年级课程性质:信息技术课程学生特点:四年级学生对电脑操作已有一定的基础,对新事物充满好奇心,但操作熟练程度和文本编辑能力有限。

教学要求:1. 结合学生特点,课程内容应以实践操作为主,注重培养学生的动手能力;2. 教学过程中,教师应充分调动学生的积极性,鼓励他们主动探索和尝试;3. 教学评价应以学生实际操作能力和学习态度为主要标准,关注学生的学习过程和成果。

二、教学内容1. 文本编辑器简介:介绍文本编辑器的概念、作用和常见类型,如记事本、Word等。

- 教材章节:第一章 认识文本编辑器- 内容列举:文本编辑器的定义、功能、分类及其适用场景。

2. 文本编辑器基本操作:学习文本输入、选取、删除、复制、粘贴等基本操作。

- 教材章节:第二章 文本编辑器的基本操作- 内容列举:文字输入、基本编辑命令、撤销与重做。

3. 文档格式设置:学习字体、字号、颜色、对齐方式等格式设置。

- 教材章节:第三章 文档格式设置- 内容列举:字体设置、段落设置、页面布局。

4. 文档高级功能:掌握查找与替换、拼写检查、语法检查等功能。

- 教材章节:第四章 文档高级功能- 内容列举:查找与替换、拼写检查、语法检查。

文本编辑器的设计与实现

文本编辑器的设计与实现

软件学院课程设计报告书课程名称设计题目文本编辑器的设计与实现专业班级 XXXXXXXXXXX 学号 xxxxxxxxxx 姓名 xxx 指导教师2011 年11月1 设计时间2011年11月2 设计目的《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。

其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。

目前文本编辑器种类很多,所提供的功能也很多,但是能满足用户实现多种功能和进行Java的编译与运行很少,不能更好的适应当前用户的要求。

本设计所完成的文本编辑器功能是针对学习Java程序语言,因此我们利用Java程序设计虚拟机和软件对用户及使用者的应用过程形成一整套完整的编写代码,编译,运行。

3设计任务文本编辑器的设计与实现:设计一个类似于Windows记事本(Notepad)的Java程序。

可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。

4 设计内容4.1需求分析需求分析的任务是确定功能必须完成的工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。

能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。

文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能。

4.2概要设计4.2.1程序基本功能概括图4.2.1 功能架构图4.2.2程序主要组件概括1.基本的Frame框架;2.菜单;3.打开文件对话框;4.保存文件对话框;5.颜色对话框;6.Choice下拉列表,运来实现字体设置;7.简单的帮助框架。

文本编辑课程设计

文本编辑课程设计

文本编辑课程设计一、教学目标本课程旨在让学生掌握文本编辑的基本知识和技能,能够熟练使用文本编辑软件进行文字处理,具备一定的文本编辑和排版能力。

通过本课程的学习,学生将能够理解文本编辑的基本概念,熟悉文本编辑软件的操作界面和功能,掌握文本编辑的基本技巧,提高文字处理效率。

同时,通过文本编辑的实际操作,培养学生的耐心和细心,提高他们的文字表达能力和审美能力,培养他们的创新意识和团队协作精神。

二、教学内容本课程的教学内容主要包括文本编辑的基本概念、文本编辑软件的操作方法和技巧、文本编辑的实际应用等。

具体包括:文本编辑的基本概念,如文本、字体、段落等;文本编辑软件的操作方法,如输入文字、编辑文字、设置字体和段落等;文本编辑的技巧,如查找和替换、撤销和重做等;文本编辑的实际应用,如撰写文章、排版文档等。

三、教学方法本课程将采用讲授法、实践法和讨论法进行教学。

首先,通过讲授法向学生介绍文本编辑的基本概念和理论知识;然后,通过实践法让学生实际操作文本编辑软件,掌握文本编辑的技巧和方法;最后,通过讨论法让学生分享自己的学习心得和经验,互相学习和提高。

四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。

教材将为学生提供文本编辑的基本知识和技能的学习;多媒体资料将帮助学生更直观地理解和掌握文本编辑的方法和技巧;实验设备将让学生能够实际操作文本编辑软件,提高他们的实践能力。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生的课堂参与度和团队合作能力,通过观察和记录学生在课堂上的表现来进行评估。

作业评估学生的文本编辑技能和知识掌握程度,通过学生提交的作业来评价其学习成果。

考试则是对学生文本编辑知识和技能的综合评估,通过考试来检查学生对文本编辑的掌握情况。

六、教学安排本课程的教学安排将根据课程内容和学生的实际情况进行制定。

教学进度将按照教材的章节进行,确保学生在有限的时间内掌握文本编辑的知识和技能。

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

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

《高级语言程序设计》课程设计报告题目: 文本编辑器的设计 专业: 计算机科学与技术 班级: 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具体要求基本要求:编辑器应具备对文本文件的打开、保存、新建、查找、插人、删除、修改、字符串替换、统计字数,统计行数等功能,对于超过一屏的长文件,应能够分页显示。

文本编辑系统课程设计

文本编辑系统课程设计

文本编辑系统课程设计一、课程目标知识目标:1. 学生能理解文本编辑系统的基本概念,掌握常见的文本编辑操作。

2. 学生能掌握文本格式化、排版和美化的基本方法,提高文档编辑效率。

3. 学生了解文本编辑软件的基本功能,如查找与替换、拼写检查等。

技能目标:1. 学生能熟练使用文本编辑软件进行文档创建、编辑和保存。

2. 学生具备文本排版和格式化的能力,能根据需求调整字体、段落和页面布局。

3. 学生能够运用软件的辅助功能,如模板、样式等,提高文档编辑速度。

情感态度价值观目标:1. 学生培养良好的文本编辑习惯,注重文档的整洁与美观。

2. 学生在团队协作中,学会尊重他人意见,提高沟通与表达能力。

3. 学生通过文本编辑,培养审美意识,提高对文本信息的敏感度。

本课程针对初中年级学生,结合学科要求和学生学习特点,设计实用、操作性强的教学内容。

课程注重培养学生的实际操作能力,使学生在掌握基本知识的同时,提高文本编辑技能。

通过本课程的学习,学生能够更好地应对日常学习、生活中的文本编辑需求,提升个人综合素质。

二、教学内容1. 文本编辑系统简介:介绍文本编辑软件的发展历程、常见文本编辑软件及其特点。

- 教材章节:第一章,第一节2. 文档基本操作:创建、打开、保存、关闭文档,复制、剪切、粘贴文本。

- 教材章节:第一章,第二节3. 文本格式设置:设置字体、字号、颜色,调整段落格式、行间距、首行缩进等。

- 教材章节:第二章,第一节4. 文档排版与美化:使用项目符号、编号,调整页面边距、纸张方向,插入图片、图表等。

- 教材章节:第二章,第二节5. 高级功能应用:查找与替换、拼写检查、语法检查、使用模板与样式。

- 教材章节:第三章,第一节6. 文档编辑实践:结合实际案例,进行文档编辑、排版和美化操作。

- 教材章节:第三章,第二节教学内容按照由浅入深的原则进行安排,使学生能够逐步掌握文本编辑的基本技能。

教学进度根据学生的学习情况和掌握程度进行调整,确保学生能够扎实掌握各个知识点。

文本编辑器课程设计报告

文本编辑器课程设计报告

青岛农业大学理学与信息科学学院高级语言课程设计报告设计题目文本编辑器学生专业班级计算机科学与技术学生姓名(学号)设计小组其他同学姓名(学号)指导教师完成时间 2011-11-03 设计地点信息楼机房2011年 11 月 05 日一、课程设计目的和任务为了方便处理文本内容,减少在处理文本时的额外活动,设计了本程序。

比如在统计文本中的中英文字母数和空格数以及整篇文章的总字数时,可以利用本程序,这样比较方便、省时。

又比如统计某一字符串在文章中出现的次数,并输出该次数,也可利用本程序。

还可以利用本程序将文本的某一子串删除并将后面的字符前移。

二、分析与设计1.程序的基本功能:(1)分别统计出其中英文字母数和空格数以及整篇文章的总字数。

(2)统计某一字符串在文章中出现的次数,并输出该次数。

(3)删除某一子串,并将后面的字符前移。

2.系统总框图:(1)、统计字符个数算法流程图(2)、删除某一字符串算法流程图(3)、查找某一字符串出现的次数算法流程图3.定义的函数及说明:此程序由12个函数构成。

(1)存储结构:char wz[N][80]存储文章的字符数组,为全局变量(2)输入函数:readdat()通过此函数从文件中读取文本(3)输出函数:out()将文本内容输出(4)字符数统计函数:int countword(int n1,int n2)统计ASC 码在n1与n2之间的字符(5)字符串出现次数统计函数:int cz(char *s)查找某一字符串出现的次数(6)字符删除函数:void del(char *s)删除要删除的字符串(7)主函数:void main()通过主函数调用各个子函数完成程序功能(8)文件函数open("E:/yy/wzin.dat","r+")打开文件(9) 字符串位置函数strstr(wz[i],s);字符串s 在文章第i行首次出现的位置(10) 字符串长度函数strlen(wz[i]);文章第i 行的长度(11) 字符串比较函数strcmp(s1,"@@")比较字符串内容当为@@时停止输入(12) 字符串复制函数strcpy(wz[i],s1);/*将s1中的内容复制到wz[i]中4.算法设计:本程序要求储存结构为线性表结构,可以输入大小写的英文字母,任何数字和标点符号。

文本编辑器课程设计报告

文本编辑器课程设计报告

目录一、问题描述-------------------------------------------------------------------------21、基本要求----------------------------------------------------------------------22、提高要求----------------------------------------------------------------------2二、需求分析-------------------------------------------------------------------------2三、概要设计-------------------------------------------------------------------------3四、详细设计-------------------------------------------------------------------------51、文件操作----------------------------------------------------------------------52、编辑操作----------------------------------------------------------------------103、工具操作----------------------------------------------------------------------194、关于操作----------------------------------------------------------------------20五、编码与调试分析----------------------------------------------------------------20六、使用说明-------------------------------------------------------------------------22七、测试结果-------------------------------------------------------------------------22八、自学知识-------------------------------------------------------------------------26九、课程设计心得体会-------------------------------------------------------------27一、问题的描述设计并编写一个小型文本编辑器,使其具有通常文本编辑器(如Vi、Edlin)应具备的基本功能。

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

.《高级语言程序设计》课程设计报告题目: 文本编辑器的设计 专业: 计算机科学与技术 班级:14计科一班: 彭鑫 指导教师: 王峻成绩:计算机学院 2015年4月24日2014-2015学年 第2学期目录1 设计内容及要求 (2)1.1设计内容 ..................................................................................... 错误!未定义书签。

1.2具体要求 (2)2 概要设计 (2)2.1系统的功能简介 (3)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开头的文件abc*.txt就表示所有以abc开头的文本文件(txt)ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0");用“\0”分割出几个段,每两段是一组过滤器,每组的第一个段代表过滤器的显示的值,而第二段表示真正的过滤器ofn.nFilterIndex = 1; //选择一个过滤器ofn.lpstrFileTitle = NULL;windows的一个惯例:结构体的指针类型别名一般是LP+结构体的名字GetOpenFileName(&ofn)而不是GetOpenFileName(ofn),因为GetOpenFileName函数要的是OPENFILENAME的指针(8)只要用户还没关闭对话框,那么GetOpenFileName函数是停住的,同步模式的PlaySound 以及getchar、scanf是一样的。

用户关闭对话框,GetOpenFileName函数返回,返回值是BOOL,等于TRUE表示用户选择了文件,如果等于FALSE就表示用户选择了【取消】按钮ofn.nMaxFileTitle = 0;ofn.lpstrInitialDir = NULL;ofn.hwndOwner = hwnd;ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;if(GetOpenFileName(&ofn)){FILE *fp;fp=fopen(szFile,"r");if(fp==NULL){MessageBox(NULL,TEXT("文件打开错误!"),TEXT("记事本"),MB_OK);}TCHAR line[256];TCHAR end[10000];memset(line,0,256);memset(end,0,256);while(!feof(fp)){fgets(line,sizeof(line),fp);lstrcat(end,line);int w=strlen(end);end[w-1]='\0';lstrcat(end,"\r\n");}SetDlgItemText(hwnd,IDC_RICHEDIT1,end);fclose(fp); //关闭文件}break;}break;(3)文件保存的实现:case ID_MENUITEMSAVE: //文本的保存{OPENFILENAME ofnb;char bcFile[MAX_PATH];ZeroMemory(&ofnb,sizeof(ofnb));ofnb.lStructSize = sizeof(ofnb);ofnb.lpstrFile = bcFile;ofnb.lpstrFile[0] = TEXT('\0');ofnb.nMaxFile = sizeof(bcFile);ofnb.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.txt\0");ofnb.nFilterIndex = 1;ofnb.lpstrFileTitle = NULL;ofnb.nMaxFileTitle = 0;ofnb.lpstrInitialDir = NULL;ofnb.hwndOwner = hwnd;ofnb.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST|OFN_OVERWRITEPROMPT;if (GetSaveFileName(&ofnb)){FILE * fp = fopen (".txt","w"); //保存所有文件都为txt格式TCHAR baoc [100000]; //保存的最大容量为100000GetDlgItemText(hwnd,IDC_RICHEDIT1,baoc,sizeof(baoc));fputs(baoc,fp);fclose(fp);}}break;(4)退出文本编辑器的实现: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);}MessageBox(NULL,TEXT("文件保存成功!放心关闭!!!"),TEXT("嘻嘻"),MB_OK);}EndDialog(hwnd, 0);3.2编辑操作:(1)剪切的实现:case ID_MENUITEMCUT: //剪切{ SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_CUT,0,0);//传递对话框中的内容首先获取RichEdit中的内容,WM_CUT,传递要进行操作的内容,0,0为两个WPARAM和LPARAM是约定的消息参数类型。

相关文档
最新文档