课程设计文本编辑器的设计(1)
- 格式:doc
- 大小:489.68 KB
- 文档页数:40
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课程(算法与程序设计)。
目录课程设计任务书 (2)1.试验题目: (3)2.项目概述 (3)3.系统旳功能需求 (3)3.1总体设计 (3)3.2系统功能 (3)3.3系统工作流程 (4)4.文本编辑器旳详细设计 (4)4.1文本编辑器旳界面设置 (4)4.1.1新建工程 (4)4.1.2修改窗口: (4)4.2文本编辑器旳详细代码分析 (7)5.心得体会: (10)6.参照文献 (11)7.道谢 (11)8.附录 (12)课程设计任务书班级姓名1.试验题目:文本编辑器2.项目概述程序大部分菜单都在窗体中对应有一种快捷图标。
包括新建、打开、保留、剪切、复制、粘贴、左对齐、右对齐、居中、文字加粗、文字倾斜、文字加下划线和文字大小等命令, 在菜单中还包括字体颜色、窗体背景颜色等命令。
运用这些基本命令, 可以很以便地处理诸多文本文档。
该程序界面友好, 当把鼠标放在快捷工具栏上时, 程序会给出快捷菜单提醒, 同步, 在窗体下方旳中间, 也有该快捷命令旳阐明文字。
首先要处理窗体旳布局和设计问题。
然后给各个菜单和快捷工具栏中旳按钮添加有关程序代码。
这个文本编辑器与一般旳简易旳文字编辑程序旳制作有所不一样。
首先, 必须设置好菜单旳属性和功能;另一方面, 当所有旳菜单都设计好之后, 还必须对工具栏进行设计, 工具栏旳开发与设计是最具挑战性旳工作, 由于整个界面旳美观都取决于工具栏旳制作,而整个程序使用与否以便、快捷, 也取决于工具栏旳安排和属性旳设置。
然后, 还需进行某些细部旳修饰, 例如底部任务栏上旳提醒用语以和协助菜单旳设计等。
3.系统旳功能需求 3.1总体设计3.2系统功能该文本编辑器具有完整旳菜单, 大部分菜单都在窗体对应有一种快捷图标。
包括新建、打开、保留、剪切、复制、粘贴、做对齐、右对齐、居中、文字加粗、文字倾斜、文字下划线和文字大小等命令, 在菜单中还包括字体颜色、窗体背景颜色。
运用这些命令, 可以很以便地处理诸多文本文档。
文本编辑器课程设计一、课程目标知识目标:1. 理解文本编辑器的基本功能与操作,掌握常见的文本编辑命令;2. 学会使用文本编辑器进行文档的创建、编辑、保存和打印;3. 了解文本编辑器的不同类型,如记事本、Word等,并掌握它们的特点与适用场景。
技能目标:1. 能够熟练运用文本编辑器进行文字输入、排版和格式设置;2. 学会使用文本编辑器的查找与替换功能,提高文本处理效率;3. 掌握文本编辑器的拼写检查、语法检查功能,提升写作质量。
情感态度价值观目标:1. 培养学生对文本编辑器的兴趣,激发他们主动探索和使用新工具的积极性;2. 培养学生的信息素养,使他们认识到文本编辑器在日常生活和学习中的重要性;3. 引导学生养成良好的文本编辑习惯,注重文档的美观与规范,提升个人形象。
本课程针对年级:小学四年级课程性质:信息技术课程学生特点:四年级学生对电脑操作已有一定的基础,对新事物充满好奇心,但操作熟练程度和文本编辑能力有限。
教学要求:1. 结合学生特点,课程内容应以实践操作为主,注重培养学生的动手能力;2. 教学过程中,教师应充分调动学生的积极性,鼓励他们主动探索和尝试;3. 教学评价应以学生实际操作能力和学习态度为主要标准,关注学生的学习过程和成果。
二、教学内容1. 文本编辑器简介:介绍文本编辑器的概念、作用和常见类型,如记事本、Word等。
- 教材章节:第一章 认识文本编辑器- 内容列举:文本编辑器的定义、功能、分类及其适用场景。
2. 文本编辑器基本操作:学习文本输入、选取、删除、复制、粘贴等基本操作。
- 教材章节:第二章 文本编辑器的基本操作- 内容列举:文字输入、基本编辑命令、撤销与重做。
3. 文档格式设置:学习字体、字号、颜色、对齐方式等格式设置。
- 教材章节:第三章 文档格式设置- 内容列举:字体设置、段落设置、页面布局。
4. 文档高级功能:掌握查找与替换、拼写检查、语法检查等功能。
- 教材章节:第四章 文档高级功能- 内容列举:查找与替换、拼写检查、语法检查。
.《高级语言程序设计》课程设计报告题目: 文本编辑器的设计 专业: 计算机科学与技术 班级: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具体要求基本要求:编辑器应具备对文本文件的打开、保存、新建、查找、插人、删除、修改、字符串替换、统计字数,统计行数等功能,对于超过一屏的长文件,应能够分页显示。
##大学数据结构课程设计报告题目:简易文本编辑器院(系):计算机工程学院学生姓名:班级:学号:____起迄日期: 2011年6月20日至2011年6月30日指导教师:2010—2011年度第 2 学期一、需求分析1.问题描述:简易文本编辑器主要是针对文字编辑处理,对于如何编辑一个简易文本编辑器程序我们可以利用线性表示实现其功能,线性表便于插入删除查找功能,而文本编辑器需要用到这些功能,因此可以利用线性表实现。
对于文本编辑器应该具有插入、删除、查找等功能,并且可以显示所有输入数据,可正确存盘、取盘,正确显示编辑的文字长度。
2.基本功能:简易文本编辑器应该具有的功能:图形菜单界面:位置查找:数据查找:显示所有输入数据:插入:删除文本信息:可正确存盘、取盘:正确显示长度:3.输入输出:输入数据,数据类型为整形,且输入的字符或数字不多于100个,输出为输出输入的数据,输出输入数据的长度,输出插入元素及插入后的数据,输出查找元素的,输出的数据均为整形。
二、概要设计1.设计思路:首先构造一个线性表, 然后利用线性表的存储结构顺序存储方式,实现文本的编辑添加查找删除.2.数据结构设计:程序采取了线性结构利用顺序存储的方法,采用该结构的原因是线性表利于存储、插入、删除、查找、修改等功能,使用它可以使程序运行简单方便。
定义程序中用到的抽象数据类型;抽象数据类型线性表的定义如下:ADT SqList{数据对象:D={ai | ai∈data,i=1,2,3……,n,n≥0}数据关系:R1={<ai-1,ai>| ai-1,ai∈D,i=1,2,3,……,n}基本操作:InitList(*L)操作结果:构造一个空的线性表L。
GetLength(L)初始条件:线性表L已存在。
操作结果:返回L中数据元素的个数。
GetElem( L, i,*e)初始条件:线性表L已存在,1≤i≤L.Length.操作结果:查找指定的某元素i,并将值赋给e,用e 输出。
文本编辑系统课程设计一、课程目标知识目标: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.算法设计:本程序要求储存结构为线性表结构,可以输入大小写的英文字母,任何数字和标点符号。
四川师范大学成都学院高级语言程序课程设计文本编辑器设计学生姓名xxx学号x所在学院x专业名称x班级x级x班指导教师x成绩x学院二○一四年十二月课程设计任务书文本编辑器设计内容摘要:当今,计算机以及网络技术的飞速发展,社会正快速向信息化社会前进,我们需要更智能,更专业的软件帮助我们完成工作,从而提高了工作效率。
目前文本编辑器种类很多,所提供的功能也很多,但是能满足用户实现多种功能和进行C++程序语言的编译与运行很少,不能更好的适应当前用户的要求。
本设计所完成的文本编辑器功能是针对学习C++程序语言,因此我们利用C++程序设计虚拟机和软件用户以及使用者的应用过程形成一整套完整的编写代码,编译,运行。
本文本编辑器的开发主要包括界面窗口的菜单栏和工具栏,还有链接C++语言虚拟机实现编译与运行。
操作系统为Windows 7。
关键词:文本编辑器C++程序语言编译运行The design of text editorAbstract:Today, the rapid development of computer and network technology, society is rapidly advancing to the information society, we need a more intelligent, more professional software to help us to finish the work, so as to improve work efficiency.At present, many text editors species, to provide the function of many, but can satisfy the compiling and running the user to achieve a variety of functions and the C++ programming language is very few, can better adapt to the requirements of the current user. The completion of the design of the text editor function is for learning C++ programming language, so we use the C++ program design of virtual machines and software users and users of the application process of form a complete set of code, compile, run. The development of the text editor includes interface window menus and toolbars, and link the C + + programming language virtual machine implementation compile and run.The development of the text editor use VC++6.0 as the development tool, and the operating system is Window 7.Keywords:The text editor C + + programming language compile function目录前言 (1)1 课程设计的意义及目的 (1)2 文本编辑器总体结构设计 (2)2.1 文本编辑器功能 (2)2.1.1 文本编辑器的基本功能 (2)2.2 总体结构 (2)3 文本编辑器各功能模块 (4)3.1需求分析 (4)3.2 功能模块 (4)4 软件结构设计 (5)4.1 撤销 (5)4.2 删除 (6)4.3 剪切 (7)4.4 复制 (9)4.5 粘贴 (10)5 操作步骤 (12)5.1打开文本编辑窗口 (12)5.2输入文本 (12)5.3删除文本内容 (12)5.4在编辑里选择撤销 (13)5.5选中文本,编辑里选复制 (13)5.6在编辑里选择粘贴 (14)5.7再次选中文本内容,剪切 (14)5.8再粘贴 (15)结束语 (16)附录 (17)文本编辑器前言在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。
简易文本编辑器摘要:此次课程设计设计了一个简易的文本编辑器,该程序主要用于文本编辑的几个操作,主要由C语言实现。
基于对文本编辑的需求该程序的功能在于:输入一页文字,程序可以统计出文字、数字、空格的个数统计某一字符串在文章中出现的次数,并输出该次数;删除某一子串,并将后面的字符前移。
程序算法立足于书本并适当改良,能够实现文本的一些特定操作。
关键词:文本编辑 C语言程序算法Abstract:The curriculum designed a simple text editor, which is mainly used for text editing of several operations, mainly by the C programming language. Based on the needs of the program text editing ,the program can input a text, count the number of words numbers and spaces in the file, statistics the number of a string of in the article, and output the number of times; to remove a substring, and the characters behind the forward. Program algorithm based on the book also have some improvement. Able to achieve some specific text operations.Key words:Text editing C programming language Program algorithm1引言目前社会上文字编辑系统发展飞快,文本编辑软件在人们的日常生活和学习、科研、生产等各个方面有着重要的应用。
《数据结构》课程设计报告题目:基于顺序结构的文本编辑器的设计专业:计算机科学与技术班级:姓名:学号:指导教师:成绩:2014-2015学年第一学期目录1课程设计内容 (1)1.1 设计内容 (1)1.2 设计任务 (1)1.3 具体要求 (1)2 概要设计 (1)2.1 系统的功能简介 (1)2.2 各个模块之间的主要关系 (2)3 设计过程及代码分析 (2)4 设计结果与分析 (15)5 源程序 (16)6 总结 (24)7 致谢 (24)8 参考文献 (25)1 课程设计内容1.1 设计内容《文本编辑器》主要根据课程设计要求进行设计的,本次课程设计的内容及要求是设计一个文本编辑器,能实现文本内容输入、显示、统计、处理、保存和退出文本编辑器等基本功能,主界面具有图形菜单界面、输入文本、打开文件、显示当前文本内容、进入文本内容统计菜单、进入文本内容处理菜单、保存、退出文本编辑器。
其中文本内容统计菜单包含大小写字母、数字、标点符号、空格、所有字符的统计;文本内容处理菜单包含查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。
1.2 设计任务主要利用C语言的文件操作能力设计一个简单的文本编辑器,对于文本编辑器来说,数据结构相对简单,使用一个有较大长度的顺序表即可,在程序中可采用一维数组来实现。
使用数组表示的顺序表来存储文本具有简洁、访问方便、输出方便等特点。
1.3 具体要求明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用数据结构进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。
2 概要设计2.1 系统的功能简介该系统的主要功能是实现文本内容输入、显示、统计、处理、保存。
首先,输入文本内容并保存;选择打开文件,打开刚才保存的文件;选择显示当前文章内容,可以预览文件内容;进入文章内容统计菜单,可以对文章中大写字母、小写字母、数字、标点符号、空格、所有字数的统计;进入文章内容处理菜单,查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。
c 设计文本编辑器课程设计一、教学目标本课程的设计文本编辑器课程旨在让学生掌握文本编辑器的基本概念、原理和应用,培养学生具备文本编辑器的使用和开发能力。
具体的教学目标如下:1.知识目标:(1)了解文本编辑器的发展历程和基本原理。
(2)掌握文本编辑器的主要功能和特点。
(3)了解文本编辑器的应用领域和前景。
2.技能目标:(1)能够熟练使用常见的文本编辑器。
(2)能够根据实际需求,编写简单的文本编辑器程序。
(3)能够对文本编辑器进行基本的维护和优化。
3.情感态度价值观目标:(1)培养学生对文本编辑器的兴趣,提高学生主动学习的积极性。
(2)培养学生团队协作的精神,提高学生的沟通与协作能力。
(3)培养学生勇于创新、追求卓越的品质,提高学生的自主创新能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.文本编辑器概述:介绍文本编辑器的发展历程、基本原理和主要功能。
2.文本编辑器的使用:讲解如何熟练使用常见的文本编辑器,包括基本操作和高级功能。
3.文本编辑器程序设计:介绍文本编辑器的程序设计方法,包括界面设计、字符处理、文件操作等。
4.文本编辑器的维护与优化:讲解如何对文本编辑器进行维护和优化,以提高性能和稳定性。
5.文本编辑器的应用案例:介绍文本编辑器在实际应用中的案例,激发学生的学习兴趣和应用能力。
三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:通过讲解文本编辑器的基本概念、原理和应用,使学生掌握相关知识。
2.案例分析法:分析文本编辑器的实际应用案例,使学生更好地理解文本编辑器的功能和作用。
3.实验法:让学生动手编写文本编辑器程序,提高学生的实际操作能力和实践能力。
4.讨论法:学生进行小组讨论,培养学生的团队协作能力和沟通与表达能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用一本与文本编辑器相关的教材,作为学生学习的主要参考资料。
2.参考书:提供一些与文本编辑器相关的参考书籍,供学生拓展阅读。
前言《delphi课程设计》是计算机科学与技术专业学生的专业实践必修课程,是学习《delphi应用程序》课程非常重要的综合性实践教学环节。
课程设计是检验学生是否掌握相关专业课程知识的重要手段,同时课程设计应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生实践应用能力和自学能力的培养。
1 、设计的目的与要求(1)设计的目的:《课程设计》是计算机科学与技术专业学生的专业实践必修课程,是学习《delphi应用程序设计》课程非常重要的综合性实践教学环节。
课程设计是检验学生是否掌握相关专业课程知识的重要手段,同时课程设计应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生实践应用能力和自学能力的培养。
通过设计文本编辑器并实现其功能来熟练掌握delphi语言基础,,初步掌握软件开发中系统分析、系统设计、系统实现和系统测试等阶段的基本方法与技术,培养学生的创新意识,提高实践应用能力,为培养应用型人才服务。
(2)做文本编辑器的要求:<1>菜单要求:要求有新建、保存、另存为、退出、拷贝、剪切、粘贴、帮助等功能。
<2>要求其操作简单、界面清晰、灵活、实用、方便。
<3>要求程序须经调试,并添加异常处理和代码注释,同时在功能实现后,要将代码进行优化。
<4>最好能响应键盘和鼠标事件,同时可添加快捷键。
2 、设计进度及完成情况目录前言 (I)1 、设计的目的与要求 (II)2 、设计进度及完成情况 (III)目录 (I)1引言 (1)2设计任务与目的 (2)3. 需求分析 (3)4 系统设计 (4)4.1 总体设计 (4)4.1.1 系统功能 (4)详细设计 (4)5 系统实现 (7)5.1 系统主要用例的实现 (7)运行用例运行效果 (7)5.1.2 打开文档用例运行效果 (8)5.1.3 关于用例运行效果 (9)6 结束语 (10)致谢 (11)参考文献 (12)附录A:系统源程序 (13)1引言计算机的普及发展,软件行业在社会占着举足轻重的作用。
编辑器课程设计一、课程目标知识目标:1. 学生能理解编辑器的基本概念,掌握其功能及操作方法。
2. 学生能学会使用编辑器进行文本编辑、格式设置、插入图片等基本操作。
3. 学生能了解编辑器在不同学科领域的应用,并能够运用编辑器完成相关学科作业。
技能目标:1. 学生能熟练运用编辑器进行文本编辑,提高文字处理速度和准确性。
2. 学生能通过编辑器创作个性作品,培养创新意识和审美能力。
3. 学生能运用编辑器进行协同创作,提高团队协作能力。
情感态度价值观目标:1. 学生能树立正确的信息素养观念,认识到编辑器在学习和生活中的重要性。
2. 学生在编辑器使用过程中,培养耐心、细心和责任心的品质。
3. 学生通过编辑器创作,激发对学科知识的兴趣,提高学习积极性。
课程性质:本课程为实践性课程,以学生动手操作为主,注重培养学生的实际应用能力。
学生特点:考虑到学生所在年级,课程设计将充分考虑学生的认知水平、操作能力和学习兴趣。
教学要求:教师应注重启发式教学,引导学生主动探索,鼓励学生相互交流与合作,提高学生的实际操作能力。
同时,关注学生的个体差异,给予个性化指导,确保课程目标的实现。
在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容本课程教学内容围绕编辑器的功能与应用展开,结合课程目标,具体包括以下三个方面:1. 编辑器基础知识:- 编辑器概述:介绍编辑器的发展历程、分类及作用。
- 基本操作:学习文本输入、删除、复制、粘贴等基本操作。
- 格式设置:掌握字体、字号、颜色、对齐方式等设置方法。
2. 编辑器高级应用:- 插入图片:学会在文档中插入图片,并进行大小、位置调整。
- 表格制作:学习创建表格、调整行列、设置表格样式等操作。
- 批注与审阅:了解如何在文档中进行批注,以及如何进行文档审阅。
3. 编辑器综合实践:- 学科应用:结合各学科特点,运用编辑器完成相关作业和作品。
- 协同创作:培养学生团队协作能力,共同完成编辑任务。
河南中医学院《C#程序设计》课程设计报告文本编辑器院系:信息技术学院专业:信息管理与信息系统专业班级: 2010级信管一班姓名:指导教师:完成日期: 2011年6月10日设计题目:文本编辑器1.题目描述设计一个文本编辑器,能够实现对文本的编辑,窗体应有:文件,编辑,格式,查看,帮助。
(模拟文本文档,添加部分word功能)提供以下功能:1.1文件操作能够实现:新建、打开、保存、另存为、页面属性、打印、打印预览、退出功能。
1.2编辑操作能够实现:撤销、剪切、复制、粘贴、删除、查找、转到、全选、时间/日期、替换功能。
1.3格式操作能够实现:自动换行、字体、颜色、背景颜色设置。
1.4查看操作能够实现:状态栏。
1.5 帮助操作能够实现:帮助主题、关于记事本。
另:(1)实现鼠标的右键常用功能,如复制、粘贴、剪切、撤销、全选、颜色。
(2)实现各功能的快捷键设置(3)实现文本框的外观设置2.应用程序功能说明新建:在未保存的情况下提示是否需要对文件进行保存打开:打开已有的文件保存:对文件进行保存,并显示保存的位置另存为:和保存的功能基本相似文件页面属性:显示文本文档的页面属性打印:实现对文本的打印功能打印预览:打印前对打印效果的预览退出:关闭打开的文本文档撤销:撤除上一步操作剪切:将选中的部分剪切掉复制:复制选中的部分粘贴:对剪切和复制的部分进行粘贴编辑删除:删除选中的部分查找:实现单方向查找全选:选中文本文档中的全部内容时间/日期:在文本后加上时间替换:对那些需要改变的内容实施替换和全部替换自动换行:在一行写满之后,自动跳转到下一行格式字体:调用系统中自带的字体,实现对字体样式和大小的改变颜色:调用系统中自带的颜色,实现对字体颜色的改变背景颜色:在给定的几种颜色中选一种作为背景颜色查看状态栏:显示当前输入文本的字数和年/月/日帮助主题:显示帮助部分帮助关于记事本:版权的说明客户反馈:对客户的满意程度实施调查3. 源程序3.1 Form1部分源代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;//调用命名空间using System.Drawing.Printing;//调用打印命名空间namespace模拟文本文档Ì{public partial class Form1 : Form{string name;string dk;StringReader streamToPrint = null;Font printFont;//int FindPosition = 0;public int k = 0;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){撤销¨²ToolStripMenuItem.Enabled = false;//在程序运行开始时这些选择都是无效的剪切DToolStripMenuItem.Enabled = false;复制ToolStripMenuItem.Enabled = false;删除yToolStripMenuItem.Enabled = false;转到Ì?ToolStripMenuItem.Enabled = false;//状态栏ToolStripMenuItem.Enabled = false;查找替换ToolStripMenuItem.Enabled = false;this.richTextBox1.Anchor =(System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Left |System.Windows.Forms.AnchorStyles.Bottom |System.Windows.Forms.AnchorStyles.Right |System.Windows.Forms.AnchorStyles.Top);//richTextBox1的放大与还原代码}private void字体¬?ToolStripMenuItem_Click(object sender, EventArgs e){if (fontDialog1.ShowDialog() == DialogResult.OK)//获取对话框的返回值是确定richTextBox1.SelectionFont = fontDialog1.Font;//获取系统的字体}private void新建ToolStripMenuItem_Click(object sender, EventArgs e){if (richTextBox1.Modified == true){DialogResult n = MessageBox.Show("文件" + Text + "”内容已修改\n是否要保存", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);//带有黄色感叹号的MessageBoxswitch (n)//使switch用语句判断{case (DialogResult.Yes):保存ToolStripMenuItem_Click(sender, e);break;case (DialogResult.No):richTextBox1.Text = "";break;case (DialogResult.Cancel):richTextBox1.Modified = false;break;}}}private void打开ToolStripMenuItem_Click_1(object sender, EventArgs e){OpenFileDialog newdk = new OpenFileDialog();//实例化 newdknewdk.Title = "打开";//设置文件对话框的标题string dakai =Environment.GetFolderPath(Environment.SpecialFolder.Desktop);//从电脑中检索的对应文件赋值给字符串变量dakainewdk.InitialDirectory = dakai;//将dakai赋值给newdknewdk.Filter = "纯文本(*.txt)|*.txt|c#源文件(*.cs)|*.cs|10信管一班陈勇(*.txt)|*.10信管一班陈勇";//文件名筛选器newdk.ValidateNames = true;newdk.CheckFileExists = true;newdk.ShowHelp = true;//获取帮助按钮newdk.Multiselect = true;newdk.FilterIndex = 2;//表示32位的有效整数不可随意赋值if (openFileDialog1.ShowDialog() == DialogResult.OK)//在打开对话框确认的情况下{dk = openFileDialog1.FileName;//将获取的文件名字符串赋值给dkthis.richTextBox1.Text = newdk.FileName;richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);}}private void保存ToolStripMenuItem_Click(object sender, EventArgs e){try//使用语句处理异常情况{StreamWriter bc = new StreamWriter(name, false,Encoding.GetEncoding("gb2312"));string baocun = richTextBox1.Text;bc.Write(baocun);bc.Close();}catch{saveFileDialog1.Filter = "纯文本(*.txt)|*.txt|10信管一班陈勇c#源文件(*.cs)|*.cs";saveFileDialog1.OverwritePrompt = true;if (richTextBox1.Text == ""){MessageBox.Show("请输入要保存的内容", "提示");}else{if (saveFileDialog1.ShowDialog() == DialogResult.OK){StreamWriter c = new StreamWriter(saveFileDialog1.FileName, false, Encoding.GetEncoding("gb2312"));//gb2312国标,中国自己的name = saveFileDialog1.FileName;string d = richTextBox1.Text;//将文本中的字符串赋值给局部变量c.Write(d);//将字符串重载c.Close();}}}}private void另存为aToolStripMenuItem_Click(object sender, EventArgs e)//类似保存{if (richTextBox1.Modified == true){DialogResult close = MessageBox.Show("是否保存已修改的内容, "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);switch (close){case DialogResult.Yes:this.保存ToolStripMenuItem_Click(sender, e);try//使用语句处理异常情况{StreamWriter sww = new StreamWriter(name, false, Encoding.GetEncoding("gb2312"));string data = richTextBox1.Text;sww.Write(data);sww.Close();}catch{saveFileDialog1.Filter = "文件t|*.txt";saveFileDialog1.OverwritePrompt = true;if (saveFileDialog1.ShowDialog() == DialogResult.OK){StreamWriter sww = newStreamWriter(saveFileDialog1.FileName, false, Encoding.GetEncoding("gb2312"));name = saveFileDialog1.FileName;string data = richTextBox1.Text;sww.Write(data);sww.Close();}}break;case DialogResult.No:richTextBox1.Clear();break;case DialogResult.Cancel:break;}}}private void撤销ToolStripMenuItem_Click(object sender, EventArgs e){richTextBox1.Undo();//撤销}private void richTextBox1_TextChanged(object sender, EventArgs e){if (richTextBox1 == null){剪切DToolStripMenuItem.Enabled = false;}else{剪切DToolStripMenuItem.Enabled = true;}if (richTextBox1.Text == null){撤销ToolStripMenuItem.Enabled = false;//如果richTextBox1为空则无法执行}else{撤销ToolStripMenuItem.Enabled = true;}if (richTextBox1.Text == null)//复制{复制ToolStripMenuItem.Enabled = false;}else{复制ToolStripMenuItem.Enabled = true;}if (richTextBox1.Text == null)//粘贴{粘贴ToolStripMenuItem.Enabled = false;}else{粘贴ToolStripMenuItem.Enabled = true;}if (richTextBox1.Text == null){删除ToolStripMenuItem.Enabled = false;}else{删除ToolStripMenuItem.Enabled = true;}if (richTextBox1.Text == null){查找替换ToolStripMenuItem.Enabled = false;}else{查找替换ToolStripMenuItem.Enabled = true;}this.toolStripStatusLabel5.Text = "当前文档字数合计为" +this.richTextBox1.Text.Length;this.toolStripStatusLabel6.Text =datetime.now.Tosting();}private void剪?切DToolStripMenuItem_Click(object sender, EventArgs e) {richTextBox1.Cut();//剪切}private void复制ToolStripMenuItem_Click(object sender, EventArgs e){richTextBox1.Copy();//复制}private void粘贴ToolStripMenuItem_Click(object sender, EventArgs e){richTextBox1.Paste();//粘贴}private void删除ToolStripMenuItem_Click(object sender, EventArgs e){richTextBox1.SelectedText = "";//删除}private void撤销ToolStripMenuItem1_Click(object sender, EventArgs e) {richTextBox1.Undo();}private void全选ToolStripMenuItem1_Click(object sender, EventArgs e) {richTextBox1.SelectAll();}private void剪切ToolStripMenuItem1_Click(object sender, EventArgs e) {richTextBox1.Cut();}private void复制ToolStripMenuItem1_Click_1(object sender, EventArgs e) {richTextBox1.Copy();}private void Form1_FormClosing(object sender, FormClosingEventArgs e)}private void saveFileDialog1_FileOk(object sender, CancelEventArgs e){}private void自动换行ToolStripMenuItem_Click(object sender, EventArgs e){richTextBox1.WordWrap = true;}private void打开ToolStripMenuItem_Click(object sender, EventArgs e){this.openFileDialog1.Title = "打开";this.openFileDialog1.Filter = "文本文件t(*.txt;*.rtf)|*.txt;*.rtf|所有文件t(*.*)|*.*";this.openFileDialog1.FilterIndex = 1;this.openFileDialog1.InitialDirectory = "桌面";this.openFileDialog1.ShowReadOnly = true;this.openFileDialog1.ReadOnlyChecked = false;this.openFileDialog1.FileName = "";if (this.openFileDialog1.ShowDialog() == DialogResult.OK){this.Text = this.openFileDialog1.FileName;StreamReader str = new StreamReader(this.openFileDialog1.FileName, Encoding.Default);this.richTextBox1.Text = str.ReadToEnd();str.Close();}}private void页面属性ToolStripMenuItem_Click(object sender, EventArgs e){printDialog1.Document = printDocument1;printDialog1.ShowDialog();}private void粘贴ToolStripMenuItem1_Click(object sender, EventArgs e){richTextBox1.Paste();}private void复制ToolStripMenuItem1_Click(object sender, EventArgs e){richTextBox1.Copy();}private void粘贴ToolStripMenuItem1_Click_1(object sender, EventArgs e){richTextBox1.Paste();}private void页面属性ToolStripMenuItem_Click_1(object sender, EventArgs e)pageSetupDialog1.Document = printDocument1;pageSetupDialog1.ShowDialog();}private void颜色ToolStripMenuItem_Click(object sender, EventArgs e){if (colorDialog1.ShowDialog() == DialogResult.OK)//对Click事件中的颜色richTextBox1.SelectionColor = colorDialog1.Color;}private void颜色ToolStripMenuItem_Click(object sender, EventArgs e){if (colorDialog1.ShowDialog() == DialogResult.OK)//右键功能中的颜色设置对选中的进行修改richTextBox1.SelectionColor = colorDialog1.Color;//获取选中的文字}private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)//打印{//用浮点类型因为可能出现小数float linesPerPage = 0;//记录每页的最大行数float yPosition = 0;//垂直方向的位置int count = 0;//每页打印的行数float leftMargin = e.MarginBounds.Left;//左边距float topMargin = e.MarginBounds.Top;//顶边距string line = null;//从中读取段字符串存储到line中linesPerPage = e.MarginBounds.Height / printFont.GetHeight(e.Graphics);//行数总高度每行高度while(count < linesPerPage && ((line = streamToPrint.ReadLine())) != null)//如果当前打印页面行数不足页的最大行数并且读取的行数不为空那么继续打印{yPosition = topMargin + (count * printFont.GetHeight(e.Graphics));//计算高度e.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPosition, new StringFormat());count++;//已打印行数再加}if (line != null)//判断是否需要打印下一页e.HasMorePages = true;elsee.HasMorePages = false;}private void printDocument1_BeginPrint(object sender, PrintEventArgs e){printFont = richTextBox1.Font;//打印使用的字体将richTextBox中的赋值给printFontstreamToPrint = new StringReader(richTextBox1.Text);//创建读取字符串的对象}private void printDocument1_EndPrint(object sender, PrintEventArgs e){if (streamToPrint != null)streamToPrint.Close();}private void退出XToolStripMenuItem_Click(object sender, EventArgs e){if (this.richTextBox1.Modified == true){DialogResult tc =MessageBox.Show("文件t“¡”" + this.Text + "的内容已经修改是否要保存", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);if (tc == DialogResult.Yes){另存为aToolStripMenuItem_Click(sender, e);this.richTextBox1.Clear();this.Text = "";}if (tc == DialogResult.No){Application.Exit();}else{this.Close();}}}private void toolStripMenuItem1_Click(object sender, EventArgs e)//打印预览 {printPreviewDialog1.Document = printDocument1;printPreviewDialog1.ShowDialog();}private void打印ToolStripMenuItem_Click_2(object sender, EventArgs e){printDialog1.Document = printDocument1;if (printDialog1.ShowDialog(this) == DialogResult.OK)printDocument1.Print();}private void fileSystemWatcher1_Changed(object sender, FileSystemEventArgs e) {}private void页面属性ToolStripMenuItem_Click_2(object sender, EventArgs e) {pageSetupDialog1.Document = printDocument1;//添加控件pageSetupDialog1.ShowDialog();}private void颜?色ToolStripMenuItem_Click_1(object sender, EventArgs e){if (colorDialog1.ShowDialog() == DialogResult.OK)richTextBox1.SelectionColor = colorDialog1.Color;}private void颜色ToolStripMenuItem_Click_1(object sender, EventArgs e){if (colorDialog1.ShowDialog() == DialogResult.OK)richTextBox1.SelectionColor = colorDialog1.Color;}private void关于记事本ToolStripMenuItem_Click_1(object sender, EventArgs e) {formabout about = new formabout();about.ShowDialog();}private void全选ToolStripMenuItem_Click_1(object sender, EventArgs e){richTextBox1.SelectAll();}private void日期时间ToolStripMenuItem_Click_1(object sender, EventArgs e) {richTextBox1.Text = richTextBox1.Text + DateTime.Now.ToString();}private void查找ToolStripMenuItem_Click(object sender, EventArgs e)//查找替换{//FindPosition = 0;//formFind FindReplaceDialog = new formFind();//FindReplaceDialog.Show();formFind f = new formFind();f.rtb = this.richTextBox1; //传值(从主窗口传到FindForm)f.Owner = this; //悬浮于当前窗体f.Show();}private void状态栏ToolStripMenuItem_Click(object sender, EventArgs e){if (k == -1){statusStrip1.Show();状态栏ToolStripMenuItem.Checked = true;k = 0;}else{statusStrip1.Hide();状态栏ToolStripMenuItem.Checked = false;k = -1;}}private void toolStripStatusLabel5_Click(object sender, EventArgs e){}private void白色ToolStripMenuItem_Click(object sender, EventArgs e) {richTextBox1.BackColor = Color.White;白色ToolStripMenuItem.Enabled = true;灰色ToolStripMenuItem.Enabled = false;咖啡色ToolStripMenuItem.Enabled = false;}private void灰色ToolStripMenuItem_Click(object sender, EventArgs e) {richTextBox1.BackColor = Color.Gray;白色ToolStripMenuItem.Enabled = false;灰色ToolStripMenuItem.Enabled = true;咖啡色ToolStripMenuItem.Enabled = false;}private void咖啡色ToolStripMenuItem_Click(object sender, EventArgs e) {richTextBox1.BackColor = Color.BurlyWood;白色ToolStripMenuItem.Enabled = false;灰色ToolStripMenuItem.Enabled = false;咖啡色ToolStripMenuItem.Enabled = true;}private void替换TToolStripMenuItem_Click(object sender, EventArgs e) {tihuan newth = new tihuan();// newth.Show();newth.rtb = this.richTextBox1; //传值(从主窗口传到FindForm)newth.Owner = this; //悬浮于当前窗体newth.Show();// tihuan newth = new tihuan();// newth.Show();}3.2 formabout部分源代码(关于)using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace模拟文本文档{public partial class formabout : Form{public formabout(){InitializeComponent();}private void formabout_Load(object sender, EventArgs e){MaximizeBox = false;//没有最大化MinimizeBox = false;//没有最小化label1.Text = "Microsoft(R)文本文档版本:模拟Windows记事本,添加部分offce 功能版权所有严禁盗版本产品最终解释权归冰点所有;}private void pictureBox1_Click(object sender, EventArgs e){}private void label1_Click(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){Close();}private void pictureBox1_Click_1(object sender, EventArgs e){}3.3 formFind部分源代码(查找)using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace模拟文本文档{public partial class formFind : Form{ public formFind(){InitializeComponent();}public RichTextBox rtb;int start = 0;//查找的起始位置?string nr = "";//查找的内容RichTextBoxFinds f=0;private void button1_Click_1(object sender, EventArgs e){this.Close();}private void button3_Click(object sender, EventArgs e){nr = this.textBox1.Text; //查找start = rtb.Find(nr, start, f);if (start == -1){MessageBox.Show("对不起查找不到与+ nr +相符的内容, (记事本)查找示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);start = 0;}else{start = start + nr.Length;//找到后从找到位置之后开始下一次rtb.Focus(); //给予焦点}}private void formFind_Load(object sender, EventArgs e){}3.4 tihuan部分源代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace模拟文本文档{public partial class tihuan : Form{public tihuan(){InitializeComponent();}public RichTextBox rtb;int start = 0;//开始位置string nr = "";//定义内容字符串string th = "";//定义转换字符串RichTextBoxFinds f=0;//int i = 0;private void tihuan_Load(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e)//查找{nr = this.textBox1.Text;//将textBox1中的内容赋值给start = rtb.Find(nr, start, f);//开始的位置是找到的内容if (start == -1)//找不到啊{MessageBox.Show("对不起查找不到与+ nr +内容相匹配的信息, 记事本查找提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);start = 0;//返回开始位置}else{start = start + nr.Length;//找到后从找到位置之后开始下一次rtb.Focus(); //给予焦点,此处不解}}private void button2_Click(object sender, EventArgs e){nr = this.textBox1.Text;//找的内容th = this.textBox2.Text;//替换的内容// rtb.SelectedText = th;//start = rtb.Find(nr, start, f);if (start == -1){MessageBox.Show("对不起查找不到与+ nr + 内容相匹配的信息, 记事本查找提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}else{rtb.SelectedText =th;// start = start + th.Length;//找到后从找到位置之后开始下一次// rtb.Focus(); //给予焦点}}private void button3_Click(object sender, EventArgs e){nr = this.textBox1.Text;//找的内容th = this.textBox2.Text;start = rtb.Find(nr, start, f);while (start != -1){rtb.SelectedText = th;start = start + nr.Length;start = rtb.Find(nr, start, f);i++;}MessageBox.Show("全部替换完毕,全部一共替换了 + i.ToString() + "次, "记事本替换完毕信息);start = 0;}private void button4_Click(object sender, EventArgs e){this.Close();}}}4. 调试结果4.1在实现查找功能时无法在文本文档中找到相应的内容一个警告,原因是我在别人的电脑上调试,出现这种情况解决方案4.2解决方案是在主窗体中将定义的初始位置注释掉,结果发现还不行,于是从新分析查找过程,根据过程再修改代码,调试成功。
语言课程设计文本编辑器一、教学目标本课程的教学目标是让学生掌握文本编辑器的基本操作和使用技巧,培养学生熟练运用文本编辑器进行文本处理和排版的能力。
具体分为以下三个部分:1.知识目标:使学生了解文本编辑器的发展历程、基本功能和常用操作,理解文本编辑器在现代办公和学术研究中的重要性。
2.技能目标:培养学生能够熟练使用文本编辑器进行文本输入、编辑、排版、校对和打印输出,掌握字体设置、段落调整、制作等基本技能。
3.情感态度价值观目标:培养学生对文本编辑器的正确使用态度,注重知识产权保护,养成规范、高效的文本处理习惯,提高学生的信息素养和职业道德。
二、教学内容本课程的教学内容主要包括以下几个部分:1.文本编辑器的基本概念和功能介绍,包括文本编辑器的发展历程、种类和特点。
2.文本编辑器的基本操作,包括文本输入、编辑、复制、剪切、粘贴、撤销和恢复等。
3.文本编辑器的排版技巧,包括字体设置、段落调整、标题编号、列表制作、制作等。
4.文本编辑器的的高级应用,包括查找和替换、语法检查、拼音输入、文本朗读等。
5.文本编辑器在实际应用中的案例分析,例如:撰写教案、编写程序代码、撰写学术论文等。
三、教学方法本课程采用讲授法、实践操作法和案例分析法进行教学。
在教学过程中,教师首先向学生讲解文本编辑器的基本概念和功能,然后引导学生进行实践操作,让学生在实际操作中掌握文本编辑器的使用技巧。
同时,通过案例分析法,让学生了解文本编辑器在实际应用中的重要性,提高学生的学习兴趣和主动性。
四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。
教材主要用于为学生提供理论知识和操作指南,多媒体资料用于辅助教学,丰富学生的学习体验。
实验设备则是学生进行实践操作的重要工具,包括计算机、投影仪等。
在教学过程中,教师还可以利用网络资源,为学生提供更多的学习资料和实践案例,帮助学生更好地掌握文本编辑器的使用技巧。
五、教学评估本课程的教学评估主要包括以下几个方面:1.平时表现:评估学生的课堂参与度、提问回答、小组讨论等,以检验学生的学习态度和积极性。
*******************实践教学*******************兰州理工大学2010年春季学期微型计算机原理及应用课程设计题目:简易文本编辑器专业班级:姓名:学号:指导教师:成绩:目录(一)摘要 (3)(二)前言 (4)(三)正文 (5)1.设计内容 (5)2.设计目的 (5)3.设计要求 (5)4.设计分析 (5)(四)程序调试与测试 (16)(五)设计总结 (17)(六)使用说明 (19)(七)参考文献 (20)(八)致谢 (21)附件程序代码 (22)设计一个功能比较完备的文本编辑器,文本编辑器的大小为24行80列。
这个课程设计是利用DOS系统功能调用和BIOS功能调用设计一个有菜单栏的编辑窗口。
在该窗口中双击可执行文件textedit.exe,在出现的界面中输入任意文本内容,利用DEL键、BACKSPACE键、HOME键、END键、上下左右光标键对文本进行全屏幕编辑,按f1键激活菜单file,下移光标,选择save,输入文件名。
也可以选择FILE菜单的其他菜单项,他们的功能均可实现。
按f10激活帮助,按ESC键退出帮助。
其界面如图1-1所示。
关键词:宏、子程序、文本编辑、DOS、BIOS、缓冲存储器汇编语言是微型计算机原理及应用的基础,微机主机和接口所要实现的功能都要通过汇编语言来实现。
尽管汇编语言程序设计编程效率低,但其运行效率高、速度快。
因此掌握汇编语言是学好微机原理和接口设计的第一步。
文本编辑器(或称文字编辑器)是用作编写普通文字的应用软件,它与文档编辑器(或称文字处理器)不同之处在于它并非用作桌面排版(例如文档格式处理)。
它常用来编写程序的源代码,1.设计内容设计一个功能比较完备的文本编辑器,文本编辑器的大小为24行80列。
其界面如图1-1所示。
2.设计目的学习磁盘文件的新建、打开、关闭和读写等操作,实现磁盘文件的存取。
熟练掌握BIOS、DOS的系统功能调用。
《高级语言程序设计》课程设计报告题目: 文本编辑器的设计 专业: 计算机科学与技术 班级: 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开头的文件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是约定的消息参数类型。