文章编辑管理系统课程设计实验报告
- 格式:doc
- 大小:329.54 KB
- 文档页数:24
一、实训目的本次实训旨在通过实际操作,让学生熟悉并掌握文字处理系统的基本功能和使用方法,提高文字编辑、排版和格式化的能力,培养学生的信息素养和计算机应用能力。
同时,通过实训,使学生对文字处理系统在实际工作中的应用有更深入的了解,为今后从事相关工作奠定基础。
二、实训环境1. 操作系统:Windows 102. 文字处理系统:Microsoft Word 20163. 实训设备:计算机、投影仪三、实训原理文字处理系统是一种广泛应用于办公、教育、科研等领域的计算机软件,具有编辑、排版、格式化、打印等功能。
通过文字处理系统,用户可以方便地进行文字的输入、修改、删除、复制、粘贴等操作,并对文本进行排版、格式化、添加图形、表格等。
四、实训内容1. 文字输入与编辑(1)学习键盘布局,提高打字速度和准确率;(2)掌握文字输入方法,如全角、半角输入,特殊字符输入等;(3)学习编辑技巧,如文本的选择、复制、粘贴、删除、查找、替换等;(4)学习撤销和重做操作,以恢复误操作。
2. 文字排版与格式化(1)了解文字处理系统的排版功能,如段落格式、页边距、行间距、字体、字号等;(2)学习设置标题、副标题、正文等格式;(3)学习插入表格、图形、图片等元素;(4)学习使用样式和模板,提高排版效率。
3. 文档打印与保存(1)了解打印设置,如纸张大小、方向、边距等;(2)学习打印预览,确保打印效果;(3)掌握文档保存方法,如保存为Word文档、PDF文档等;(4)学习文档加密和设置访问权限。
4. 实际应用案例(1)制作一份个人简历,包括个人信息、教育背景、工作经历等;(2)撰写一篇会议纪要,包括会议时间、地点、参会人员、会议内容等;(3)设计一份报告封面,包括报告名称、作者、日期等;(4)制作一份宣传海报,包括活动主题、时间、地点、参与方式等。
五、实训过程1. 讲解文字处理系统基本操作,如新建文档、保存文档、关闭文档等;2. 演示文字输入与编辑、文字排版与格式化、文档打印与保存等操作;3. 学生跟随教师进行实际操作,巩固所学知识;4. 学生独立完成实际应用案例,教师巡回指导;5. 学生提交实训报告,总结实训成果。
综合性实验文本编辑器一.实验要求1.参考系统的写字板功能,编写一个小型的文字编辑工具;2.该文档编辑器,至少完成以下功能:A、文件操作:新建,打开,保存,退出;B、编辑操作:复制,剪切,黏贴,全选;C、查找与替换:查找,替换;D、格式操作:字体,颜色等。
3.界面设计应考虑美观,操作简便等问题,应有工具栏,右键菜单;二.设计思路1、首先,设计一个整体框架。
文本编辑器有一个主的窗体form1,文件的新建,打开,保存,退出;复制,剪切,黏贴,全选;字体,颜色等都是在这个窗体上进行的。
而这些操作的进行,都需要在richtextbox上进行,并且要允许用户打开多个窗口,所以我又增加了一个窗体newform(父窗体为form1),作为用户新建时调用的窗口。
其次,可以增加一个新的窗体searchform,作为查找、替换字符串的操作窗口。
所以,总的来说,有三个窗体,form1为主窗体,newform是用户在新建时调用的窗体,searchform为用户在操作查找、替换功能时需要调用的窗体。
2、接下来,就是对各个窗体的实现了。
Form1是主窗体,上面有菜单栏,工具栏,可以新建窗口,以及支持右键菜单。
3、Newform是用户新建时调用的。
它主要就是一个窗体中放了一个richtextbox,以及支持右键菜单。
4、Searchform是一个查询、替换窗体。
上面有2个label,2个textbox,3个button。
2个textbox的作用为获取要查找的字符串,已经要替换的字符串。
3个button的作用分别为“查询”、“单个替换”、“全部替换”。
5、此文本编辑器支持新建,打开,保存,退出,复制,剪切,黏贴,全选,查找,替换,字体,颜色以及支持右键菜单。
只要把鼠标放到主窗体上,就可支持右键新建、打开;把鼠标放到richtextbox上时,就可以支持右键复制、黏贴、剪切、关闭。
四则运算核心代码:private void打开ToolStripMenuItem1_Click(object sender, EventArgs e)//打开{//OpenFileDialog openfileDialog = new OpenFileDialog();openFileDialog1.Filter = "纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (this.openFileDialog1.ShowDialog()== DialogResult.OK){s_FileName= openFileDialog1.FileName;NewForm nf = new NewForm();nf.MdiParent = thi s;nf.Text = s_FileName;using (StreamReader read = new StreamReader(s_FileName)){nf.richTextBox1.Text = read.ReadToEnd();}nf.Show();}}public void savefile()//保存文件{//SaveFileDialog saveFileDialog1 = new SaveFileDialog();saveFileDialog1.Filter = "纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";saveFileDialog1.FilterIndex = 0;saveFileDialog1.RestoreDirectory = true;NewForm nf = (NewForm)this.ActiveMdiChild;if (nf == null){MessageBox.Show("没有文档可保存!");return;}if (s_FileName.Length != 0){if (File.Exists(@s_FileName)){StreamWriter sw = null;sw = new StreamWriter(s_FileName);sw.Write(nf.richTextBox1.Text);sw.Flush();sw.Close();return;}}if (saveFileDialog1.ShowDialog() == DialogResult.OK){if (s_FileName.Length != 0){nf.richTextBox1.SaveFile(s_FileName, RichTextBoxStreamType.PlainText);}else{s_FileName = saveFileDialog1.FileName;nf.richTextBox1.SaveFile(s_FileName, RichTextBoxStreamType.PlainText);}}}private void保存ToolStripMenuItem_Click(object sender, EventArgs e)//保存{savefile();}private void查找ToolStripMenuItem_Click(object sender, EventArgs e)//查找替换功能{if (searchform == null){searchform = new searchForm();searchform.SearchAction+=new searchForm.SearchEventHandle(OnSearch);}searchform.Show();}private void OnSearch(){NewForm nf=(NewForm)this.ActiveMdiChild;this.SearchString = searchform.SearchString;start = nf.richTextBox1.Find(SearchString,start,RichTextBoxFinds.MatchCase);if (searchform.two == 1){if (start >= 0){nf.richTextBox1.SelectedText = searchform.ReplaceStr;start += searchform.ReplaceStr.Length;}else{MessageBox.Show("已到文档末尾!");start = 0;}}else if (searchform.three == 1){string replaceall=nf.richTextBox1.Text.Replace(searchform.SearchString, searchform.ReplaceStr);nf.richTextBox1.Text = replaceall;start = 0;}else{if (start >= 0) start += thi s.SearchString.Length;else{MessageBox.Show("已到文档末尾!");start = 0;}}}private void全选ToolStripMenuItem_Click(object sender, EventArgs e)//后退{NewForm nf = (NewForm)this.ActiveMdiChild;nf.richTextBox1.Undo();}private void全选ToolStripMenuItem1_Click(object sender, EventArgs e)//全选{NewForm nf = (NewForm)this.ActiveMdiChild;nf.richTextBox1.SelectAll();}三.程序运行效果图1.开始运行的界面:2、新建文档:3、文本编辑:4、文档保存5、查找:6、替换:4实验总结教你如何用WORD文档(2012-06-27 192246)转载▼标签:杂谈1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?答:分节,每节可以设置不同的页眉。
摘要:本报告针对文字处理课程实训进行了详细的记录和分析。
通过对文字处理软件的学习和应用,加深了对文字编辑、排版、格式设置等基本技能的理解,提高了实际操作能力。
以下为实训报告的具体内容。
一、实训目的1. 熟悉文字处理软件的基本操作,掌握文字编辑、排版、格式设置等基本技能。
2. 培养学生独立完成文档编辑、排版的能力,提高文档质量和效率。
3. 培养学生良好的文字表达能力和审美观。
二、实训内容1. 文字编辑(1)创建新文档:了解文档的基本结构,掌握新建、打开、保存、关闭文档的方法。
(2)输入文本:学习各种输入法的使用,提高输入速度和准确性。
(3)编辑文本:熟练运用文本选择、复制、粘贴、删除等操作,掌握文本的查找、替换、定位等功能。
(4)设置文本格式:学习字体、字号、颜色、加粗、斜体、下划线等格式设置,提高文档美观度。
2. 排版(1)页面设置:掌握页面大小、边距、页眉页脚等设置,使文档布局合理。
(2)段落设置:学习段落缩进、间距、对齐方式等设置,使文本层次分明。
(3)表格制作:掌握表格的创建、编辑、格式设置等操作,提高文档信息呈现的清晰度。
(4)图文混排:学习插入图片、艺术字、超链接等元素,丰富文档内容。
3. 格式设置(1)模板应用:了解模板的概念,掌握模板的创建、修改和应用方法。
(2)样式设置:学习样式的创建、修改和应用,提高文档格式设置的效率。
(3)目录生成:掌握目录的自动生成方法,使文档结构清晰。
三、实训过程1. 首先了解文字处理软件的基本操作,通过观看视频教程和阅读相关书籍,掌握新建、打开、保存、关闭文档的方法。
2. 学习各种输入法的使用,提高输入速度和准确性。
尝试使用五笔、拼音、笔画等多种输入法,找到适合自己的输入方式。
3. 熟练运用文本选择、复制、粘贴、删除等操作,掌握文本的查找、替换、定位等功能。
通过实际操作,提高文本编辑能力。
4. 学习字体、字号、颜色、加粗、斜体、下划线等格式设置,提高文档美观度。
实验名称:文章编辑实验实验目的:1. 掌握文章编辑的基本流程和技巧。
2. 提高文章的准确性和可读性。
3. 培养严谨的编辑态度和团队协作精神。
实验时间:2023年X月X日实验地点:XX大学XX学院实验人员:XXX、XXX、XXX实验设备:电脑、文档编辑软件实验材料:实验教材、待编辑文章实验过程:一、实验准备1. 实验人员分组,每组3人,分别担任组长、编辑、校对三个角色。
2. 每组领取一篇待编辑文章,了解文章的基本内容和要求。
3. 学习文章编辑的基本知识和技巧,包括文章结构、语言表达、语法规范、标点符号使用等。
二、实验实施1. 编辑阶段:(1)组长带领组员阅读文章,了解文章的主题和结构。
(2)编辑根据文章内容,对文章进行修改,包括:a. 检查文章结构,确保段落划分合理,层次分明;b. 修改语言表达,使文章更加通顺、准确;c. 规范语法,纠正错别字、病句等;d. 检查标点符号使用,确保正确。
(3)编辑完成后,组长对文章进行初步审核,提出修改意见。
2. 校对阶段:(1)校对人员根据编辑阶段的修改意见,对文章进行仔细校对,确保文章质量。
(2)校对内容包括:a. 再次检查文章结构,确保段落划分合理;b. 核实语言表达,确保准确无误;c. 严格检查语法规范,纠正错别字、病句等;d. 核实标点符号使用,确保正确。
(3)校对完成后,组长对文章进行最终审核,确认无误后提交。
三、实验总结1. 实验过程中,各组员充分发挥各自优势,相互协作,共同完成了文章编辑任务。
2. 通过本次实验,我们掌握了文章编辑的基本流程和技巧,提高了文章的准确性和可读性。
3. 实验过程中,我们发现了以下问题:a. 部分组员对文章编辑的基本知识和技巧掌握不够熟练;b. 实验过程中,部分组员缺乏沟通和协作,影响了编辑效率。
4. 针对以上问题,我们提出以下改进措施:a. 加强对文章编辑基本知识和技巧的培训,提高组员的专业素养;b. 强化团队协作意识,鼓励组员在实验过程中积极沟通,共同完成任务。
课程设计文章编辑系统一、教学目标本课程的教学目标是使学生掌握文章编辑系统的基本原理和操作技能,能够熟练使用文章编辑系统进行文章的编写、编辑和排版。
具体分为以下三个方面的目标:1.知识目标:使学生了解文章编辑系统的历史发展、基本原理和主要功能,理解文章编辑系统在现代社会中的重要性和应用范围。
2.技能目标:使学生能够熟练操作文章编辑系统,进行文章的编写、编辑和排版,掌握常用的编辑技巧和格式设置方法。
3.情感态度价值观目标:培养学生对文章编辑系统的正确使用态度,使其认识到文章编辑系统是提高工作效率和质量的重要工具,同时也要注重保护知识产权和隐私权。
二、教学内容本课程的教学内容主要包括以下几个部分:1.文章编辑系统的基本原理:介绍文章编辑系统的历史发展、工作原理和主要功能。
2.文章编辑系统的操作技能:讲解如何进行文章的编写、编辑和排版,以及常用的编辑技巧和格式设置方法。
3.文章编辑系统的应用案例:分析文章编辑系统在实际工作中的应用案例,让学生了解文章编辑系统在现代社会中的重要性和作用。
三、教学方法为了达到本课程的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解文章编辑系统的基本原理和操作技能,使学生掌握相关知识。
2.案例分析法:分析实际工作中的文章编辑系统应用案例,让学生了解文章编辑系统的作用和价值。
3.实验法:让学生动手操作文章编辑系统,进行实际操作练习,提高其操作技能。
四、教学资源为了保证本课程的教学质量,我们将准备以下教学资源:1.教材:选择合适的文章编辑系统教材,为学生提供系统的学习资料。
2.多媒体资料:制作相关的教学课件和视频,为学生提供直观的学习资源。
3.实验设备:准备足够数量的计算机和文章编辑软件,为学生提供实际操作的机会。
五、教学评估为了全面、客观地评估学生在文章编辑系统课程中的学习成果,我们将采用以下几种评估方式:1.平时表现:通过学生在课堂上的参与程度、提问回答、小组讨论等表现,评估其对文章编辑系统的理解和掌握程度。
文章管理系统课程设计一、课程目标知识目标:1. 理解文章管理系统的基本概念、功能与操作流程;2. 掌握文章的分类、检索、编辑、存储等基本知识;3. 了解文章管理系统在现实生活中的应用及其重要性。
技能目标:1. 学会使用文章管理系统进行文章的检索、分类、编辑与存储;2. 培养学生运用信息技术手段解决实际问题的能力;3. 提高学生的团队协作能力和沟通表达能力。
情感态度价值观目标:1. 培养学生热爱学习、积极探究的良好学习态度;2. 增强学生对文章管理系统在生活、学习、工作中的重要性的认识;3. 培养学生遵守网络道德规范,尊重他人知识产权的意识。
课程性质分析:本课程为信息技术课程,旨在帮助学生掌握文章管理系统的基本知识和操作技能,提高学生在实际应用中解决问题的能力。
学生特点分析:六年级学生具备一定的计算机操作基础,对新知识充满好奇,喜欢动手实践,但注意力集中时间较短,需要结合实际案例,激发学习兴趣。
教学要求:1. 结合实际案例,让学生在实际操作中掌握文章管理系统的相关知识;2. 采用任务驱动法,引导学生主动探究,培养学生的自主学习能力;3. 注重团队合作,提高学生的沟通表达能力,培养良好的网络道德观念。
二、教学内容1. 文章管理系统概述- 系统定义、功能与应用场景- 文章管理系统的基本操作流程2. 文章的分类与检索- 文章分类的方法与原则- 文章检索技巧与策略3. 文章编辑与管理- 文章编辑的基本操作与技巧- 文章存储、备份与共享4. 文章管理系统在实际应用中的案例分析- 校园网文章发布与管理- 企业内部知识库建设与管理5. 文章管理系统的伦理与法律问题- 知识产权保护意识- 遵守网络道德规范教学大纲安排:第一课时:文章管理系统概述,引导学生了解系统定义、功能与应用场景,熟悉基本操作流程;第二课时:文章的分类与检索,教授分类方法与原则,训练学生检索技巧与策略;第三课时:文章编辑与管理,讲解编辑操作与技巧,指导学生进行文章存储、备份与共享;第四课时:案例分析,通过实际案例,让学生了解文章管理系统在生活中的应用;第五课时:文章管理系统的伦理与法律问题,培养学生的法律意识和网络道德观念。
一、实验目的1. 掌握编辑的基本概念和原则。
2. 学会使用常用的编辑软件进行排版和编辑。
3. 提高对文字、图片、表格等编辑技巧的运用能力。
4. 培养团队协作精神,提高编辑效率。
二、实验内容1. 熟悉编辑软件的基本操作。
2. 完成一篇论文的排版和编辑。
3. 对图片、表格进行编辑处理。
4. 进行团队合作,完成实验报告。
三、实验过程1. 熟悉编辑软件(1)打开编辑软件,了解其界面布局。
(2)学习编辑软件的基本操作,如字体、字号、颜色、段落格式、页边距等设置。
(3)掌握查找、替换、剪切、复制、粘贴等基本编辑技巧。
2. 论文排版与编辑(1)根据论文要求,设置页面格式,包括页边距、页眉页脚、页码等。
(2)设置字体、字号、颜色,使论文整体风格统一。
(3)调整段落格式,使文章层次分明,易于阅读。
(4)对论文中的图表进行排版,确保图表清晰、美观。
(5)对论文中的参考文献进行编辑,确保格式正确。
3. 图片、表格编辑(1)对图片进行编辑,包括调整大小、裁剪、旋转等。
(2)对表格进行编辑,包括调整表格样式、合并单元格、插入行列等。
4. 团队合作(1)明确分工,确定各成员负责的内容。
(2)定期召开会议,交流进度,解决问题。
(3)互相学习,提高编辑技巧。
四、实验结果与分析1. 成功完成论文的排版和编辑,包括字体、字号、段落格式、图表、参考文献等。
2. 图片、表格编辑符合要求,美观、清晰。
3. 团队合作顺畅,成员之间互相支持,共同完成任务。
4. 通过本次实验,掌握了编辑软件的基本操作,提高了编辑技巧。
五、实验总结1. 通过本次实验,我们对编辑的基本概念和原则有了更深入的了解。
2. 学会了使用编辑软件进行排版和编辑,提高了文字、图片、表格等编辑技巧的运用能力。
3. 培养了团队协作精神,提高了编辑效率。
4. 在实验过程中,我们遇到了一些问题,通过查阅资料、请教同学、与老师沟通等方式,最终解决了这些问题。
5. 本次实验使我们认识到,编辑工作需要耐心、细心和责任心,同时也需要不断学习和提高。
文章编辑课程设计报告文章编辑一、目的数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
1.提高对数据逻辑结构的特点以及存储表示方式的认识,培养在具体应用中选择合适的数据结构和存储结构的能力。
2.熟悉软件开发的基本过程,初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等阶段基本任务和技能方法。
3.培养自己的算法设计和算法分析能力,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。
4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的工作方法、作风和相互合作的精神。
5.综合运用链表的查找、插入和删除,理论结合实际,将其运用到文章编辑这一实验中。
使这些知识得到进一步巩固、加深和拓展。
利用模块的思想,模块之间用指针连接,减少了不必要的麻烦。
巩固加深指针的用途,理解模块的优点。
加深对链表的理解,全面认识链表操作的字符串的模式匹配操作。
二、需求分析功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、 "空格个数"、"文章总字数"和输出删除某一字符串后的文章;用链表存放数据非常灵活,只要内存足够大,对链表可以做任意扩充和修改。
实验名称:编辑实验一、实验目的1. 掌握编辑的基本概念和技能;2. 熟悉编辑的基本流程和原则;3. 提高对稿件内容的理解和把握能力;4. 培养严谨细致、精益求精的编辑素养。
二、实验背景随着信息时代的到来,编辑工作在传播领域扮演着越来越重要的角色。
编辑不仅需要对稿件进行文字加工、润色,还要对稿件内容进行审核、校对,确保稿件的质量。
因此,编辑技能和素养的提升对于传播行业的健康发展具有重要意义。
三、实验内容1. 实验一:编辑基本概念和技能(1)概念:编辑是指对稿件进行审查、加工、整理、校对等一系列工作,使之达到出版标准的过程。
(2)技能:包括文字加工、润色、审核、校对、版式设计等。
(3)操作步骤:①审查稿件:了解稿件内容、作者背景、出版目的等;②文字加工:对稿件进行修改、补充、删减等;③润色:调整句子结构、用词、修辞等,使稿件更加通顺、生动;④审核:对稿件内容进行审查,确保稿件符合出版标准;⑤校对:对稿件进行逐字逐句的核对,发现并纠正错误;⑥版式设计:根据稿件内容,设计合适的版式,使稿件更加美观。
2. 实验二:编辑基本流程和原则(1)流程:①收稿:接收作者提交的稿件;②审稿:对稿件进行审查,确定稿件是否符合出版要求;③加工:对稿件进行文字加工、润色等;④校对:对稿件进行逐字逐句的核对,发现并纠正错误;⑤版式设计:根据稿件内容,设计合适的版式;⑥排版:将稿件排版成册;⑦校对:对排版后的稿件进行校对;⑧出版:将稿件印刷、发行。
(2)原则:①质量第一:确保稿件内容、质量符合出版标准;②严谨细致:对稿件进行逐字逐句的核对,确保无误;③精益求精:不断改进编辑技能,提高稿件质量;④尊重作者:尊重作者的创作意图,保护作者权益。
3. 实验三:提高对稿件内容的理解和把握能力(1)阅读理解:提高对稿件内容的理解能力,准确把握作者意图;(2)背景知识:了解稿件所属领域的相关知识,提高对稿件内容的把握;(3)沟通能力:与作者进行有效沟通,了解作者创作意图,确保稿件质量。
数据结构课程设计设计题目:文章编辑系统系(院):理学院专业:信息与计算科学班级: 1191301组员:张策 2013213056王坤 2013212975学年学期:2014 ~ 2015 学年第 1 学期2014年12 月目录1 摘要..................................................2 设计题目. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 需求分析..............................................3.1 用户需求分析......................................3.2 功能需求分析..................................... .4 概要设计............................................. .4.1 各模块的算法设计说明 ............................. .4.2 存储结构设计说明 ................................. . 5详细设计 .............................................. .6 实际运行结果.......................................... .7 总结.................................................. .8 参考资料................................................9 附录....................................................一、摘要摘要:本系统使用Visual C++6.0 语言编写制作一个对文章编辑的管理系统,对于信息管理的具体分类,例如:输出原文,统计文章字母数,统计某一字符串在文章中出现的次数等,能更加方便地减少人工所花费的时间,提高了管理的水平和服务质量,使得查询降低了错误率。
本系统具有的功能如下:输出原文,统计文章字母数,统计某一字符串在文章中出现的次数删除等一系列操作。
退出系统功能:完成了对英文编辑管理系统的操作后,应该可以安全的离开该系统,通过该模块可以离开英文编辑管理系统。
关键词:功能英文编辑信息管理二、设计题目2.1实验目的(1)培养学生正确的设计思想,将理论与实际相结合,严肃认真、实事求是的科学态度和勇于探索的创新精神。
(2)培养学生综合运用所学知识与生产实践经验,分析和解决工程技术问题的能力。
(3)通过课程设计实践,建立系统设计的整体思想,锻炼编写程序、调试程序的能力,学习文档编写规范,培养独立学习、吸取他人经验、探索前言知识的习惯。
同时,C++语言程序设计课程设计可以充分弥补课堂教学及普通实验中知识深度与广度有限的缺陷,更好地帮助学生从全局角度把握课程体系。
2.2实验内容与要求功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;三、需求分析3.1 用户需求分析随着社会的发展,人们对信息的处理要求逐渐增高,设计这个程序是为了方便人们能更加迅速地处理文字信息,从而提高工作效率。
3.2 功能需求分析功能说明:输出原文:此功能是将原先录入的信息读出,并在屏幕上显示出来。
统计文章字数:此功能是统计出文章中的字母数,空格数,数字数和文章总字数。
统计某一字符串在文章中出现的次数:通过用户输入要查询项来统计要查询的字符在文章中的出现次数。
删除某一字符串并输出文章:删除文章中用户希望删除的字符,并将修改后的文章在屏幕上显示出来。
结束:退出程序。
3.3 系统需求分析(开发环境、工具)Windows操作系统,visualc++ 6.0编译环境四、概要设计4.1 各模块的算法设计说明本程序由输入、输出、统计、查找、删除、选择功能模块组成,以下为重要模块的流程图:1.输入模块2.统计模块4.2 存储结构设计说明线性表是我们最常用的一种简单而基本的数据结构,线性表中数据元素间的关系是一对一的,就是说除了头尾数据元素外,其他元素都是首尾相接的。
其逻辑结构简单,便于实现和操作,因此是一种在实际应用中广泛采用的数据结构。
五、 详细设计为实现本程序功能所包含的库函数有:#include<iostream>#include<string>为实现本程序功能所包含的功能模块及注释有:输出模块:代码:#include <iostream.h>#include <string.h>#include <stdio.h>#include <windows.h>typedef struct line{char *data; //字符串指针需要时动态分配内存struct line *next;}LINE;void CreateTXT(LINE * &head); //创建一张链表,同时向里面输入文本数据int Count_Space(LINE * &head); //统计空格数int Count_ZM(LINE * &head); // 统计字母数int Count_All_Word(LINE * &head); //统计文章的总字数int Find_Word(LINE * &head,char *sch); //统计sch 在文章中出现的次数int Count_Num(LINE * &head); //统计数字数void Del_String(LINE * &head,char *sch); //删除指定的字符串void OutPutTxt(LINE * &head); //向屏幕输出文章void Tj(LINE * &head); //统计int read_text(LINE * &head);int free_link(LINE *&head);int free_link(LINE *&head){LINE *p=head;do{p->data=NULL;free(p->data);}while((p=p->next)!=NULL);head->next=NULL;return 0;}void setcolor(unsigned short color){HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,color);}void CreateTXT(LINE * &head){head=new LINE;LINE *end=head;LINE *p; //首先为链表建立一个附加表头结点// head=p; //将p付给表头指针char tmp[80];while(true){gets(tmp); //输入字符串!使用C的输入函数if(tmp[0]==5)break; //如果发现输入^E,则退出输入p=new LINE;p->data=new char[strlen(tmp)+1];//为结点分配空间strcpy(p->data,tmp);end->next=p;end=p;if(tmp[strlen(tmp)-1]==5){ //除去最后一个控制符^Ep->data[strlen(tmp)-1]='\0';break;}}p->next=NULL; //是最后的一个指针为空。
head=head->next;}int Count_Space(LINE * &head){ //统计空格数LINE *p=head;int asc_space=32; //空格的ASCIC 码值int count=0;do{int Len=strlen(p->data); //计算当前data 里的数据元素的个数for(int i=0;i<Len;i++)if(p->data[i]==asc_space)count++; //计算空格数}while((p=p->next)!=NULL); //遍历链表return count;}int Count_Num(LINE * &head){ //统计数字数LINE *p=head;int count=0;do{int Len=strlen(p->data); //计算当前data 里的数据元素的个数for(int i=0;i<Len;i++)if(p->data[i]>=48 && p->data[i]<=57)count++; //计算数字数}while((p=p->next)!=NULL); //遍历链表return count;}int Count_ZM(LINE * &head){ // 统计字母数int count=Count_All_Word(head); //总的字符数,包含空格int space_count=Count_Space(head); //空格数int num_count=Count_Num(head);//数字数return count-space_count-num_count; //返回文章的字母总数}int Count_All_Word(LINE * &head){ //统计文章的总字数LINE *p=head; //保存链表的首地址int count=0; //总字母数do{count+=strlen(p->data);} //计算当前行内的字符数while((p=p->next)!=NULL); //遍历链表return count;}int Find_Word(LINE * &head,char *sch){ //统计sch 在文章中出现的次数LINE *p=head;int count=0;// int h=0;int len1=0; //保存当前行的总字符数int len2=strlen(sch); //待统计字符串的长度int i,j,k;do{len1=strlen(p->data);//当前行的字符数for(i=0;i<len1;i++){if(p->data[i]==sch[0]){k=0;for(j=0;j<=len2-1;j++)if(p->data[i+j]==sch[j])k=k+1;if(k==len2){count++;i=i+k-1;}}}}while((p=p->next)!=NULL); //遍历链表return count;}void del_string_word(char *s,char *sch){// *s为输入的字符串// *sch 为将要删除的字符char *p=strstr(s,sch); //查询结果char tmp[80];int len=strlen(s);int i=len-strlen(p);int j=i+strlen(sch);int count=0;for(int k=0;k<i;k++)tmp[count++]=s[k];for(int kk=j;kk<len;kk++)tmp[count++]=s[kk];tmp[count]='\0';strcpy(s,tmp); //返回新的字符串}void Del_String(LINE * &head,char *sch){ //删除指定的字符串LINE *p=head;do{while(strstr(p->data,sch)!=NULL)del_string_word(p->data,sch);}while((p=p->next)!=NULL); //遍历链表}void OutPutTxt(LINE * &head){ //向屏幕输出文章line *p=head;while(p!=NULL){cout<<p->data<<endl;p=p->next;}//遍历链表}void Print(LINE * &head){ //向屏幕输出文章line *p=head;cout<<p->data<<endl;}void Search(LINE * &head,char *sch){LINE *p=head;int count=0;// int h=0;int len1=0; //保存当前行的总字符数int len2=strlen(sch); //待统计字符串的长度int i,j,k;do{len1=strlen(p->data);//当前行的字符数for(i=0;i<len1;i++){if(p->data[i]==sch[0]){k=0;for(j=0;j<=len2-1;j++)if(p->data[i+j]==sch[j])k=k+1;if(k==len2){count++;break;}}}if(i<len1){cout<<" 所在文章"<<endl;Print(p);}}while((p=p->next)!=NULL); //遍历链表if(cout==0)cout<<"没有找到您所要查找的内容"<<endl;}void Tj(LINE * &head){ //统计cout<<"文章统计信息结果如下:"<<endl;cout<<"英文字母数:"<<Count_ZM(head)<<endl;cout<<"空格数: "<<Count_Space(head)<<endl;cout<<"文章中共出现数字:"<<Count_Num(head)<<endl;cout<<"统计文章的总字符: "<<Count_All_Word(head)<<endl;}void main(){setcolor(10);LINE *head;int opt;while(true){cout<<"*******************请选择操作********************"<<endl;cout<<"■----------------1 新建-------------------------■"<<endl;//存储模式:链表没遇到回车就存放一个(一句话存放一个链表空间)cout<<"■----------------2 浏览-------------------------■"<<endl;//链表的遍历cout<<"■----------------3 统计-------------------------■"<<endl;//用三个函数三次遍历确定字母、数字、空格以及总共字符的数量cout<<"■----------------4 串符统计---------------------■"<<endl;//通过遍历来确定所输入的字符串与文章一一比较cout<<"■----------------5 删除-------------------------■"<<endl;cout<<"■----------------6 查找-------------------------■"<<endl;cout<<"■----------------7 退出-------------------------■"<<endl;cout<<"☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl;cout<<"请选择一个操作[1-7]:";cin>>opt;//switch (opt){case 1:{cout<<"--------新建文本---------------"<<endl;cout<<"请输入文本,每行最多输入80字符!(结束请按Ctrl + E)"<<endl;setcolor(14);CreateTXT(head);setcolor(10);cout<<endl<<"-------------------------------"<<endl;cout<<"创建完毕"<<endl;Sleep(1500);system("cls");break;}case 2:{cout<<"--------浏览输入文本------------"<<endl;setcolor(14);OutPutTxt(head);setcolor(10);cout<<endl<<"-------------------------------"<<endl;cout<<"按回车进行其他操作……"<<endl;getchar();system("cls");break;}case 3:{cout<<"-----------文本统计-------------"<<endl;setcolor(14);Tj(head);setcolor(10);cout<<endl<<"-------------------------------"<<endl;cout<<"按回车进行其他操作……"<<endl;getchar();Sleep(1000);system("cls");break;}case 4:{cout<<"----请输入要统计的字符串-----"<<endl;setcolor(14);char sch[20];gets(sch);cout<<endl;cout<<sch<<"出现的次数为:"<<Find_Word(head,sch)<<endl;setcolor(10);cout<<"-------------------------------"<<endl;cout<<"按回车进行其他操作……"<<endl;getchar();Sleep(1000);system("cls");break;}case 5:{cout<<"------字符串删除------------"<<endl;setcolor(14);cout<<"请输入要删除的某一字符串:"<<endl;char tmp_sch[20]; //cin>>tmp_sch;gets(tmp_sch);Del_String(head,tmp_sch);//删除指定字符cout<<"--------字符串"<<tmp_sch<<" 被删除后---------"<<endl;OutPutTxt(head);//向屏幕输出文章setcolor(10);cout<<endl<<"-------------------------------"<<endl;cout<<"按回车进行其他操作……"<<endl;getchar();Sleep(1000);system("cls");break;}case 6:{cout<<"------字符串查找------------"<<endl;setcolor(14);cout<<"请输入要查找的某一字符串:"<<endl;char tmp_sch[20]; //cin>>tmp_sch;gets(tmp_sch);Search(head,tmp_sch);setcolor(10);cout<<endl<<"-------------------------------"<<endl;cout<<"按回车进行其他操作……"<<endl;getchar();Sleep(1000);system("cls");break;}case 7:exit(0);default:{cout<<"请输入1~6之间的数字!"<<endl;cout<<"按回车进行其他操作……"<<endl;getchar();Sleep(1000);system("cls");break;}}}}5 实际运行结果5.1 界面5.2 新建文本5.4 统计6 总结通过这次课程设计,我们对C++语言以及数据结构有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念也又模糊逐渐变的清晰了。