【数据结构课程设计】文章编辑系统剖析

【数据结构课程设计】文章编辑系统剖析
【数据结构课程设计】文章编辑系统剖析

《数据结构》课程设计说明书

文章编辑

班级计科卓越1401 组别: 4

指导老师:彭代文完成时间:2016年6月15日组长:李光耀学号:14020340316 组员1:李达学号:1460140311 成绩:

目录

1系统需求分析 (5)

2系统设计 (6)

2.1输入模块 (6)

2.2统计模块 (6)

2.3删除模块 (6)

3程序设计流程图 (7)

4测试结果及运行效果 (9)

5测试过程中的问题及注意事项 (13)

5.1问题 (13)

5.2注意事项 (13)

总结 (14)

参考文献 (15)

1系统需求分析

本实验所要实现的功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行;

要求:

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

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

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

存储结构使用线性表,分别用几个子函数实现相应的功能;

输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:

(1)分行输出用户输入的各行字符;

(2)分4行输出"全部字母数"、"数字个数"、 "空格个数"和"文章总字数" 输出删除某一字符串后的文章;

用链表存放数据非常灵活,只要内存足够大,对链表可以做任意扩充和修改。主要的手段为链表的遍历。定义一个头指针head,每个结点的数据域存放数据本身,指针域存放下一个结点地址,所以,我们只要知道head,就可以遍历整个链表,找到我们所需要的字符(串),进行相应的操作。

2 系统设计

2.1输入模块

存储结构:采用单链表结构存储文章,每个结点存储一行,每行最长不超过80个字符。

结构定义:

typedef struct line{

char *data; //字符串指针需要时动态分配内存

struct line *next;

}LINE;

算法描述:用gets函数接收输入,每遇到一个回车换行就新建一个结点,将当前行存入其data域。当发现输入为^E时,在Data的最后加上字符串结束标志,并置当前结点的Next指针域为NULL。

2.2统计模块

统计模块包括统计全部字母数,统计数字个数,统计空格个数,以及统计文章总字数,这四个部分的实现算法大体相同,四者的关系是:全部字母数+数字个数+空格个数=文章总字数,也就是说可以在统计出其中三者的前提下计算出第四个的数量。

另外一个重要的统计功能是统计某一字符串在整篇文章中出现的次数,这个需要用到串的模式匹配算法来实现。

2.3删除模块

删除模块的算法思想类同统计字符串的算法思想,由于采用了链表的存储结构,使得删除算法的时间复杂度大大减少。

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); //遍历链表

3程序设计流程图

根据题目与上述分析,可得主程序设计流程图如下所示:

图3-1 主程序设计流程图

文章输入、浏览、统计串、统计及删除的详细流程如图1—2所示:

图3-2 详细流程图

4测试结果及运行效果

程序运行,首先显示选择菜单,如图示:

图4-1 选择菜单选择1,输入文章,界面运行结果如下:

图4-2 输入界面

按回车,调出开始菜单,输入2,选择浏览,可以原样显示出刚才输入的文本:

图4-3 文章浏览界面

回车后输入3,可以看到文章统计信息结果:

图4-4 统计结果界面

根据页面提示,回车

统计字符串模块,输入要统计的字符串,可以查找出该字符串在文章中出现过的次数。运行情况如下图示:

图4-5 统计字符串出现次数界面

根据页面提示,回车

删除模块,输入要删除的字符串,执行删除后可以显示删除后的文本。界面如下:

图4-6 删除字符串后的界面

根据页面提示,回车:

退出页面,执行后的结果如下:

图4-7 退出界面

5测试过程中的问题及注意事项

5.1 问题

1 . 主流程进入死循环。.

解决方案:每个循环都加break,每跳出一个模块,opt重新赋值为0。

2输入多个变量,需要空格间隔时,程序只读空格前的变量

解决方案:输.入函数用get( )函数,形式为:get(tmp),即可解决着个问题。

3.不识别自定义函数。

解决方案:函数定义前要函数声明,若不声明,则调用函数必须在函数定义之后,否则不识别。

4,程序结束之后,链表仍占空间。

解决方案:在建立链表是所申请的内存空间在程序结束之前用free_link(LINE *&head)函数释放,即删除链表中的全部结点,且将链表头指针置为空。

5.2注意事项

(1) opt代表选项(共六个,多于六个显示“不可识别选项”)。

(2)建立文章,用链表存储,p=p->next=new LINE,即文章的每一行存储在一个结点中。

(3)Ctrl+E为结束标志。

(4)了解常用ASⅡ码。

总结

本实验采用链式顺序表结构实现了文章编辑的基本功能,实验过程中遇到了很多或大或小的问题,在这些问题的解决过程中,加深了对链表的理解,使我对链表操作的字符串的模式匹配有了更深更全面的认识。

本实验提高了我对数据逻辑结构的特点和存储表示方式的认识,培养了我在具体应用中选择合适的数据结构和存储结构的能力。

通过该实验,使我熟悉了软件开发的基本过程,初步掌握了软件开发过程的问题分析、系统设计、程序编码测试等阶段的基本任务和技能方法。

使我的算法设计和算法分析能力以及运用所学理论知识和方法独立分析问题的能力得到全面的提高。

训练了我用系统的观点和软件开发的一般规范。使我认识到一个软件工作者所应该具备的科学的工作方法、作风和相互合作精神。

本实验的模块化比较强,各个模块之间用指针head连接。认清模块化的概念给程序的顺利编制起到了很大的作用。分模块各个调试,可以减少很多不必要的麻烦。

参考资料

[1] 严蔚敏,吴伟民.数据结构[M].清华大学出版社,2002.

[2] 殷人昆.数据结构[M].清华大学出版社,2001.

[3] 金远平.数据结构[M].清华大学出版社,2005.

[4] 许卓群等.数据结构与算法[M].高等教育出版社,2004.

[5] Frank M.Carrano.数据结构与C++高级教程[M].清华大学出版社,2004.

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

个程序员专用的代码编辑器

个程序员专用的代码编 辑器 TPMK standardization office【 TPMK5AB- TPMK08- TPMK2C- TPMK18】

9个程序员专用的代码文本编辑器 下面是笔者总结的 9 个最好的免费代码文本编辑器: 1. NOTEPAD++ NOTEPAD++是一款免费又优秀的文本编辑器,支持在 MS Windows 环境下运行的多种编程语言。NOTEPAD++支持超过 50 种编程、脚本和标记语言的语法高亮显示和代码折叠,能让用户迅速减小或扩大代码段以便查阅整个文档。用户也可以手动设置当前语言,覆盖默认语言。该程序还支持自动完成某些编程语言的 API 子集。 2. VIM VIM 是一个可高度自由配置的文本编辑器。它是 vi 编辑器的改进版,同时也是免费软件。该应有程序的建立是为了处理代码以及其他很多事情,而不只是为了写电子邮件和打开配置文件。它允许你编辑文本并保存简单的文本文件,但它的主要功能是还是编辑代码。它支持语法高亮显示和行编号,这是写程序必备的两个基本功能。用户也可以改变界面颜色以便增加代码的可视性。 对于文本编辑,VIM 这个程序囊括了多种语言的拼写检查器,并有建议如何更正拼写错误的能力。甚至是当你正在编写代码的时候,它也能派上用场,因为该应用程序只检查不被识别为代码的文本。当然你也可以快速地从这个错误跳到下一个以便更好地校对文本。 VIM 是程序员和开发人员应对各种文本编辑的最佳选择。 3. GNU Emacs

Emacs 是一个可移植、可扩展、免费的文本编辑器。 Emacs 提供了一些命令来管理语句和段落,高亮的语法使得源代码更易于阅读,以及“键盘宏”的方式来执行用户定义的编辑命令。 Emacs 可以在若干个操作系统上运行,无论你使用的是哪一种机器类型。这让程序员非常受用。如果你使用的是通用的编程语言,Emacs 还会为你提供模式以及相应的排版和布局,更加方便你编辑代码。 Emacs 或许不是最简单的工具,但它绝对是最强大的编辑器之一。相比 vim,Emacs 的启动时间更长,所需要的内存也更多。但是,它是高度可定制的,并且包括了大量的功能。 4. SUBLIME TEXT SUBLIME TEXT 是一个超棒的免费软件/商业性质的文本编辑器。漂亮的用户界面、卓越的功能和令人惊叹的性能一定会让你爱不释手。它可用于 Windows、Mac OS X 和 Linux 系统,并且是免费试用的,而且这个免费时间没有限制。当然你也可以花费 70 美元买个完整的许可证。一份许可证就能允许你在自己拥有的多台计算机上使用,不管每一台计算机使用的是什么操作系统。 5. ATOM Atom 是一款由 GitHub 开发的,支持用 Node.js 编写插件和嵌入Git Contral,面向 Mac OS X、GNU/ Linux 和 Windows 的免费的开源文本和源代码编辑器。没人愿意将时间浪费在配置自己的编辑器上面,于是ATOM 横空出世。它预装了所有你期望一个现代化的文本编辑器所应该具备

《数据结构》课程设计报告-运动会分数统计 一元多项式 迷宫求解 文章编辑 纸牌游戏等

南京林业大学 数据结构课程设计报告 专业:计算机科学与技术 课程名称:数据结构 姓名: 学号:090801126 指导老师: 时间: 2011年1月

目录要点: 一.具体内容(题目) (1) 二.需求分析(功能要求) (2) 三.概要设计(程序设计思想) (3) 四.详细设计(源代码) (6) 五.调试分析(运行结果显示及说明) (31) 六.课设总结 (34) 具体内容: 题目1: 运动会分数统计** 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7,5,3,2,1,取前三名的积分分别为:5,3,2,;哪些取前五名或前三名由学生自己设定。(m〈=20,n〈=20); 题目2:一元多项式** 任务:能够按照指数降序排列建立并输出多项式; 能够完成两个多项式的相加,相减,并将结果输入; 题目4:迷宫求解 任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出; 题目5:文章编辑** 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 题目6:Joseph环 任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m 时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有的人出列为止。设计一个程序来求出出列的顺序。

数据结构课程设计文章编辑(附录中有全部代码)

课程设计任务书 专业名称:计算机科学与技术(软件工程) 课程名称:数据结构课程设计 设计题目:文章编辑问题 起止时间:2013年6 月24 日至2013年7 月12 日 问题描述 静态存储一页文章,每行最多不超过80个字符,共N行,程序可以统计出文字、数字、空格的个数,并且可以对文章中特定内容进行查找及替换,同时也可以删除指定内容。 基本要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)查找出文章中某一段文字,并用其他文字进行替换; (4)删除某一子串,并将后面的字符前移。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"; (3)查找出指定字符串在文章中出现的所有地方并替换,输出替换后结果; (4)输出删除某一字符串后的文章; 实现提示 存储结构使用线性表,分别用几个子函数实现相应的功能,并且使用菜单的形式,可以选择所要进行的操作(查找、替换、删除、统计等)。

文章编辑系统 1概要设计 本次课程设计的题目是文章编辑系统,本系统的功能描述如下:用户新建文本、浏览新建文本、文本字符统计、指定字符串统计、指定字符串删除、指定字符串替换等操作。 1.新建文本 2.浏览输入文本 3.文本字符统计 4.指定字符串统计 5.指定字符串删除 6.指定字符串替换 7.退出系统 本系统包含七个功能模块,分别为:新建文本模块,浏览输入文本模块,指定字符串统计模块,指定字符串删除模块,指定字符串删除模块,指定字符串替换模块以退出系统模块。新建文本模块实现用户录入文本信息,并且系统自动保存录入信息。浏览输入文本模块实现了显示用户录入信息的功能。指定字符串统模块实现了对英文字母数和空格数及整篇文章总字数的统计。指定字符串统计实现了统计用户自定义字符串个数的功能。指定字符串删除模块实现了对用户自定义字符串的删除。指定字符串替换模块实现了替换用户自定义字符串为用户定义的新字符功能。退出系统模块实现了退出系统功能。

数据结构课程设计题目

“数据结构”课程设计题目 1、城市链表(3) [问题描述] 将若干城市的信息,存入一个带头结点的单链表。结点中的城市信息包括:城市名,城市的位置坐标。要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。 [基本要求] (1)给定一个城市名,返回其位置坐标; (2)给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。 [测试数据] 由学生依据软件工程的测试技术自己确定。注意测试边界数据。 2、约瑟夫生死者游戏(3) [问题描述] 约瑟夫(Joeph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 [基本要求] 利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。 [测试数据] m的初值为20;密码:3,1,7,2,4,8,4(正确的结果应为6,1,4,7,2,3,5)。 [实现提示] 程序运行后首先要求用户指定初始报数上限值,然后读取各人的密码。设n≤30。 [选作内容] 向上述程序中添加在顺序结构上实现的部分。 3、括号匹配的检验(3) [问题描述] 假设表达式中允许有两种括号:圆括号和方括号,其嵌套的顺序随意,即(()[ ])或[([ ] [ ])]等为正确格式,[( ])或(((]均为不正确的格式。检验括号是否匹配的方法可用“期待的紧迫程度”这个概念来描述。例如:考虑下列的括号序列:

文章编辑课程设计报告

实验报告 (课程设计)课程名称:数据结构 实验项目名称:文章编辑 学院:计算机与软件学院指导教师: 报告人: 实验时间 实验报告提交时间: 教务处制

实验项目名称 一、问题描述 描述算法设计的内容、约束条件,要求达到的目标等内容。(由老师公布) 输入一页文字,每行最多不超过80个字符,共N行; 程序可以统计出文字、数字、空格的个数 要求在光标下(与记事本相似)做插入、删除等操作 要求能够存盘,并能对老文件打开进行修改操作 采用的数据结构及其算法:线性结构[采用顺序存储方式];查找、插入、删除 二、基本要求 描述算法设计项目应达到的基本要求。 应该实现基本的删除插入查找打开文件以及存盘等操作.并能对打开的文件里的内容进行插入删除查找等操作,并且在进行完这些操作之后能够进行存盘. 三、分析与实验 分析算法设计方法,拟采用的数据结构(类结构)与主要算法实现原理等内容。 拟采用链表进行操作,与字符串结合. 主要运用了KMP算法进行查找操作,在删除中也有涉及. void GetNext(string p, int next[]) //求模式串p的next[j]的值 { int j = 0, k = -1; next[0] = -1; int length = p.length() - 1; while (j

else k = next[k]; } } int KMPFind(string p, int next[], string q,int search[]) //用KMP算法在主串中查找子串,p为主串,q为子串{ int i = 0, j = 0, k = 0, plength = p.length(), qlength=q.length(),flag=0,t=0; while (i < plength) { if (j == -1 || p[i] == q[j]) { i++; j++; } else j = next[j]; if (j == qlength) { flag++; search[t]= i-qlength;//flag存放的是每一次匹配到的字符的首位置 t++; } } return flag; } Search[]数组存放子串出现的位置.

数据结构课设——文章编辑

课程设计报告 课程设计题目: 文 章 编 辑 专业:信息工程 班级:1720601 学生姓名: 指导教师: 、 实验目的及要求: 任务:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行; 要求: (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章; 实验时间、地点: 一、概要设计(实验思路) 1.问题分析

本程序是对一段英文文章的内容进行处理,存储方式采用链式存储。 对于文本的输入,采用头插法将文本信息存储到链表已申请好的存储空间中,在此部分设计中最大的问题在于输入文章过程中输入的字符数大于80时如何换行; 对于文本内容的统计,使用循环对已存储的文章进行匹配,字母数、空格数、数字数直接通过比较即可得到; 对于文本内容的处理,查找部分仍是使用循环对已存储的文章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相同,如果存在相同的记录相同的个数及位置并输出个数及位置。 删除部分先使用程序的查找功能对文章中需要删除的字符或者字符串进行查找,然后对其进行删除。 2. 数据结构选择 本程序是对输入的文字进行操作,故使用的数据结构为单链表操作。根据第一部分的问题分析有该链表操作有3部分: 另有全局变量 *head,作为文章的头指针。 创建结构体: typedef struct list { char data[80]; //记录一行字符 int length; //记录一行字符长度 struct _list *next; //后继指针 struct _list *pre; //前趋指针 int row; //记录整篇文章的行数 }LinkList; 在文章内容创建部分中使用线性表的链式存储,并使用全局变量对文本的各种信息进行存储;文章的读取、内容统计、删除、查找都采用链表操作完成。 3.流程图 (1)主框架: (2)文章内容统计子菜单 (3)文章内容处理子菜单

杂志编辑工作流程

杂志编辑工作流程 这个是比较详尽的编辑部工作流程,以财经杂志为例。 ?????? 杂志编辑工作流程 根据整个编辑流程和操作程序,流程报告按顺序分为三个部分:第一个部分是信息收集与整理,第二个部分是信息的再造,第三个部分产品生产流程。? 信息收集和整理???????? 该项主要解决编辑部的信息来源的问题,一方面要保证不遗漏重要行业的重大经济事件,同时统一报道的角度和降低采访的难度;另外一方面要积累各种行业和公司的资源,提高记者和编辑对行业和公司的理解能力。? 1.研究工作:研究工作是指对具体的行业和地区经济进行深入的研究,以提高我们杂志文章的深度和广度。 ■行业研究:对行业、公司资料的收集整理。内容包括:每个行业营业额前30名企业资料:联系人、公关公司、上下游客户、代表人物;政府、研究机构、代表人物、行业协会、主要网站等相关资源的联系方式。 ■区域研究:对一定地域内的主要行业及知名企业进行的调查工作。例如云南的烟草业,山东的家电制造业,四川的传媒业等。具体内容包括:区域内特色行业概述,包括行业规模,龙头企业、典型企业的联系人、上下游客户和代表人物。 2.常规工作:编辑记者在日常的采访报道流程中,随时积累的采访资源。 信息再造??????????? ????????????????? 信息搜集汇总后,由信息变为选题,并且在编辑记者的协作下进行文章写作。 1.选题产生:每月召开选题探讨会,所有编辑记者都必须参加。选题会的主要职能是综合编辑部的意见,将信息转化为选题,并为每一选题确定执行编辑、执行记者,并控制流程。在理想的情况下,编辑部应设立编委会来确定选题、安排工作,这样有助于提高效率。选题来源包括: ■主编和编辑部主任收集每月重大新闻及信息供所有编辑参考。 ■对行业信息的研究分析,以及研究工作的阶段性成果。 ■编辑记者的自身资源及资源开发成果。

文章编辑课程设计报告及代码

*****工学院 数据结构课程设计报告 选题名称:文章编辑 系(院): ***工程学院 专业: 班级: 姓名: ** 学号: 指导教师: 学年学期:2009 ~ 2010 学年第 2 学期2010 年 6 月16 日

设计任务书

摘要: 随着社会的高速发展,现在人们对信息的处理要求越来越高,使得文章内容、数量也越变庞大,所以,随之而来的就是对文章的处理变得越来越复杂。设计此程序以方便人们对文章的处理。此程序的功能有查找文章中某个字符串出现的次数,统计文章中数字,字母,空格等信息出现的次数,分行显示用户输入的文章,输入一字符串并删除文章中所有该字符串,最后,此程序功能简单,操作方便,所以,试验证明,本程序是一款很实用的程序。 关键字:文章编辑;字符查找;统计;删除

目录 1需求分析 (5) 2概要设计 (5) 2.1主要模块的描述 (5) 2.2程序流程框图如图1所示 (6) 2.3各功能函数描述 (6) 3详细设计和实现 (7) 3.1存储结构设计 (7) 3.2主要算法设计 (7) 3.3程序运行流程说明 (9) 4调试与操作说明 (9)

1需求分析 这一次数据结构课程设计,我做的课题是文章编辑。 任务与要求包括: 输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; void InitList(wzbj *L) //查找文章结尾有无结束符“#” void StrNo(wzbj *L) //统计某一字符串出现的次数 wzbj *DelStr(wzbj *L) //删除某一字段 void print1(wzbj *L) //分行输出用户的输入的各行字符 void print2(wzbj *L, int &p1, int &p2, int &p3, int &n) //统计字符信息输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;运行环境包括: Windows2000以上操作系统、Visual C++6.0以上编译环境。 2概要设计 对于文章的处理,我用的是for语句查找,即将符合条件的字符查找出来,然后通过函数实现字符的统计,删除等操作。同时,存储用线性表的链表结构,然后通过设计四个函数,实现设计要求的4个基本功能。 2.1主要模块的描述 while(L->next) { for (p = L, q = s; *q != '\0' && p->next; p = p->next, q++) if (p->wz!= *q) break; if (*q == '\0') n++;

数据结构课程设计文章编辑附录中有全部代码精修订

数据结构课程设计文章编辑附录中有全部代码 GE GROUP system office room 【GEIHUA16H-GEIHUA GEIHUA8Q8-

课程设计任务书专业名称:计算机科学与技术(软件工程) 课程名称:数据结构课程设计 设计题目:文章编辑问题 起止时间:2013年6 月24 日至2013年7 月12 日 问题描述 静态存储一页文章,每行最多不超过80个字符,共N行,程序可以统计出文字、数字、空格的个数,并且可以对文章中特定内容进行查找及替换,同时也可以删除指定内容。 基本要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)查找出文章中某一段文字,并用其他文字进行替换; (4)删除某一子串,并将后面的字符前移。输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数";

(3)查找出指定字符串在文章中出现的所有地方并替换,输出替换后结果; (4)输出删除某一字符串后的文章; 实现提示 存储结构使用线性表,分别用几个子函数实现相应的功能,并且使用菜单的形式,可以选择所要进行的操作(查找、替换、删除、统计等)。

文章编辑系统 1概要设计 本次课程设计的题目是文章编辑系统,本系统的功能描述如下:用户新建文本、浏览新建文本、文本字符统计、指定字符串统计、指定字符串删除、指定字符串替换等操作。 1.新建文本 2.浏览输入文本 3.文本字符统计 4.指定字符串统计 5.指定字符串删除 6.指定字符串替换 7.退出系统 本系统包含七个功能模块,分别为:新建文本模块,浏览输入文本模块,指定字符串统计模块,指定字符串删除模块,指

文章编辑的源程序

#include #include #include #define MAXSIZE 1000 typedef char datatype; typedef struct { datatype a[MAXSIZE]; int size; }e_list; e_list s; e_list t; void ptint_slt(e_list slt); /*输出文本*/ void letter_number(e_list slt); /*全部字母个数*/ void space_number(e_list slt); /*全部空格个数*/ void digit_number(e_list slt); /*全部数字总数*/ void size_number(e_list slt); /*文章总字数*/ void dele_print(e_list p,e_list slt); /*输出删除某一字符串后的文章*/ void ptint_slt(e_list slt) /*输出文本*/ { int i,j=0; if(!slt.size) {printf("\n错误!");exit(1);} else for(i=0;i='a'&&slt.a[i]<='z')||(slt.a[i]>='A'&&slt.a[i]<='Z')) j++; }

数据结构课程设计——文字编辑实验报告

课程设计报告课程设计题目:文章编辑 姓名杨博 学号201520220205 班级1522202 指导教师邹国华 2016年6月30日

东华理工大学 课程设计评分表 学生姓名:杨博班级:1522202 学号:201520220205 课程设计题目:文章编辑 项目内容满分实评 选题能结合所学课程知识、有一定的能力训练。符合选题要求 (5人一题) 10 工作量适中,难易度合理10 能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10 理论依据充分,数据准确,公式推导正确10 能应用计算机软件进行编程、资料搜集录入、加工、排版、 制图等 10 能体现创造性思维,或有独特见解10 成果质量总体设计正确、合理,各项技术指标符合要求。10 说明书综述简练完整,概念清楚、立论正确、技术用语准确、 结论严谨合理;分析处理科学、条理分明、语言流畅、结构 严谨、版面清晰 10 设计说明书栏目齐全、合理,符号统一、编号齐全。格式、 绘图、表格、插图等规范准确,符合国家标准 10 有一定篇幅,字符数不少于5000 10 总分100 指导教师评语: 指导教师签名: 2016年6月30 日

实验题目:简单的文本编辑器 1、题目及要求 名称:简单的文本编辑器 内容:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章, 每行最多不超过80个字符,共N行。 要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一字符或者子串,并将后面的字符前移。 (4)插入某一字符或者子串。 (5)查找某一字符或者子串。 存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章。 2、对题目的大概理解: 本程序应实现以下功能: (1)文章内容的输入:包括字母、标点符号、数字、空格等; (2)文章内容的统计:包括文章中大写字母、小写字母、数字、标点符号、空格以 及文章所有字数的个数的统计; (3)文章内容的处理:包括对文章内容的查找、删除以及对指定位置进行插入操作,其中在查找的过程中统计出该字符或字符串在文章中出现的次数; 1、问题分析 本程序是对一段英文文章的内容进行处理,存储方式采用链式存储,没有文件操作,故本程序对其文本内容的所有操作都是在链表中进行的。对于文本的输入,采用头插法将文本信息存储到链表已申请好的存储空间中,在此部分设计中最大的问题在于输入文章过程中输 入的字符数大于80时如何换行;对于文本内容的统计,使用循环对已存储的文章进行匹配,大写字母数、小写字母数、空格数、数字数直接通过比较即可得到,标点符号通过ASCⅡ比较即可得到;对于文本内容的处理,查找部分仍是使用循环对已存储的文章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相同,如果存在相同的记录相同的个数及位置并输出个数及位置。删除部分先使用程序的查找功能对文章中需要删除的字符或者字 符串进行查找,然后对其进行删除。插入部分为通过输入的插入位置(行、列)将字符或者 字符串插入到文章制定位置。 一、数据结构选择和概要设计

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

. 《高级语言程序设计》 课程设计报告 题目: 文本编辑器的设计 专业: 计算机科学与技术 班级: 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 概要设计

杂志编辑工作流程样本

杂志编辑工作流程

杂志编辑工作流程 这个是比较详尽的编辑部工作流程,以财经杂志为例。 杂志编辑工作流程 根据整个编辑流程和操作程序,流程报告按顺序分为三个部分:第一个部分是信息收集与整理,第二个部分是信息的再造,第三个部分产品生产流程。 信息收集和整理 该项主要解决编辑部的信息来源的问题,一方面要保证不遗漏重要行业的重大经济事件,同时统一报道的角度和降低采访的难度;另外一方面要积累各种行业和公司的资源,提高记者和编辑对行业和公司的理解能力。 1.研究工作:研究工作是指对具体的行业和地区经济进行深入的研究,以提高我们杂志文章的深度和广度。 ■行业研究:对行业、公司资料的收集整理。内容包括:每个行业营业额前30名企业资料:联系人、公关公司、上下游客户、代表人物;政府、研究机构、代表人物、行业协会、主要网站等相关资源的联系方式。 ■区域研究:对一定地域内的主要行业及知名企业进行的调查工作。例如云南的烟草业,山东的家电制造业,四川的传媒业等。具体内容包括:区域内特色行业概述,包括行业规模,龙头企业、典型企业的联系人、上下游客户和代表人物。

2.常规工作:编辑记者在日常的采访报道流程中,随时积累的采访资源。 信息再造 信息搜集汇总后,由信息变为选题,而且在编辑记者的协作下进行文章写作。 1.选题产生:每月召开选题探讨会,所有编辑记者都必须参加。选题会的主要职能是综合编辑部的意见,将信息转化为选题,并为每一选题确定执行编辑、执行记者,并控制流程。在理想的情况下,编辑部应设立编委会来确定选题、安排工作,这样有助于提高效率。选题来源包括: ■主编和编辑部主任收集每月重大新闻及信息供所有编辑参考。 ■对行业信息的研究分析,以及研究工作的阶段性成果。 ■编辑记者的自身资源及资源开发成果。 2.选题操作:在选题探讨会上由编辑部讨论后决定选题操作的规模和执行人员。 ■填写选题执行单:确认的选题,由编辑部主任统一编写“任务摘要”。任务摘要的主要目的是划分选题归属栏目,确认操作选题的执行编辑记者以及执行时间和线索,明确工作目标和进度,在编辑部内部为记者工作提供足够帮助。

vb课程设计报告心得感想模板.doc

vb课程设计报告心得感想 vb课程设计报告心得感想篇1 在课程设计过程中,虽然我对程序设计不是很熟悉,但是通过老师详细的讲解,我按照步骤去做,遇到问题的时候先自己想办法解决,解决不了的就去问同学,问老师,通过这种学习,收获很大,学会了自己解决棘手问题,知道了团结的力量。 刚开始做程序的时候,就是完全按照老师的要求,老师的步骤去做的,结果却发现,怎么运行不了?明明是按照老师的步骤去做的,明明是按照老师的要求去做的,但是就是会遇到一些问题使程序运行不了。开始也没有管那么多,仍然是按照课本上的去做。 第一次,在上机课的时候,我根据老师讲的,在机房里做了一次,但没有做完。于是把东西存在了自己的MP3里面,以便以后上机的时候再来做。但真的没有想到,我的MP3,在一次上电子阅览室的时候,忘了拔了。于是乎,我辛辛苦苦做了一大节课的程序就这样没了。心里真的很不舒服,但是,不舒服归不舒服,这个程序,还是得继续做下去,这么以点点小小的失误不算什么,然后跑到学校机房,继续我的VB程序设计。但由于时间问题,做的还是有点粗糙,还是不免存在一定的问题,比如说开始的时候打开不了文件,总是出现错误,自己总也找不出来,后来请教了一下同学,结果发现时代码的编写出现了错误,把代码改过来之后,程序终于可以打开运行了。然后,检查的时候,又发现查找运行错误,又是代码那里出现的黄色的字样,结果发现,是代码拼写错误,于是,拿着同学的代码对比一下,发现了错误所在之地,然后更正了过来。 经过一番努力,程序终于做完了。 后来,室友看了我的程序,她说运行不了的,就是出现了错误,出现了错误,就应该改过啊,这时的我才恍然大。是错误,那么就要改正的! 于是当天,我就去了学校机房,再一次运行我的程序,仍然出现错误情况,需要调试,我回忆起上课的时候,老师是怎么跟我们讲的,哪里出现了错误,需要怎么样改正。于是,我就耐着性子,一个一个,一个一个得改正,编辑代码,一个一个得检查,终于完成了。完成之后,我在运行一下,一切正常,心里终于舒了一口气。经过这次的VB程序设计,让我知道了更多学习的方法。具体如下:(1)保持良好的学习心态,第一,要有自信,自强,积极主动学习.第二,克服畏难情绪,树立学好程序设计的信心(2)要了解概念:VB程序设计本身并不复杂,变量,函数,条件语句,循环语句等概念较多.要真正能进行程序设计,就要深入理解这些概念.应该重视概念的学习. (3)自己动手编写程序,亲自动手进行程序设计是培养逻辑思维的好方法.因此我们得多动手编写程序,逐渐提高写程序的能力.自己动手,编写一些程

数据结构课程设计报告

数据结构课程设计报告书 学校青岛科技大学 学号 姓名 指导老师刘勇

课程设计的名称:学生成绩管理 1.问题描述: 学生成绩管理是学校教务管理的重要组成部分,其处理信息量很大,该题目是对学生的成 绩管理作一个简单的模拟,其中学生信息包括:学号、姓名与成绩。成绩分为课程1成绩、课程2成绩、课程3成绩和总成绩。要求设计一个简易的成绩管理系统,输入各门功课的 成绩后能自动求出总成绩,并通过菜单选择操作方式完成下列功能: ①登记学生成绩; ②②查询学生成绩; ③插入学生成绩; ④④删除学生成绩; ⑤按总成绩降序排序。 2.基本要求: 该题目涉及到单链表的各种操作,包括单链表的建立、结点的查找、插入、删除等基本运算。首先建立学生成绩单链表,链表中每个结点由4个域组成,分别为:学号、姓名、成绩、存放下一个结点地址的next域。然后将要求完成的四项功能写成四个函数,登记学生 成绩对应建立学生单链表的功能,后三个功能分别对应单链表的查询、插入与删除三大基 本操作。 3.算法思想: Creat()函数算法思想:从0至n循环输入n个同学的三科成绩,并且计算总成绩。 Inquiry()函数算法思想:将学号与已输入的所有学号做比较,一旦相同则输出该学号信息,否则显示没有该学生信息。 Insert()函数算法思想:生成一个新节点,然后将其接到原有链表尾部。 Delete()函数算法思想:通过ID找到该节点,并删去该节点。 Sort(函数算法思想:利用排序算法对每一个节点作比较并更换其在链表中的位置顺序。 4.模块划分 (1)LinkList Creat(LinkList T,int n)其功能是创造节点,录入成绩。 (2)void Inquiry(LinkList T)其功能是查询与已知ID一致的学生信息并展示出来。(3)void Insert(LinkList T,int n)其功能是添加若干个学生的成绩信息。 (4)void Delete(LinkList T)其功能是删除若干个学生的成绩信息。 (5)void Sort(LNode*p)其功能是排序并展示若干个学生的成绩信息。

简单行编辑器 数据结构 课程设计汇总

中国矿业大学徐海学院计算机系《软件认知实践》报告 姓名:学号: 专业: 设计题目:简单行编辑器 指导教师: 2012年12月25

目录 第1章题目概述 (1) 第1.1节题目要求 (1) 第1.2节主要难点 (2) 第2章系统流程图 (3) 第3章数据结构和算法 (4) 第4章核心代码分析 (6) 第5章复杂度分析 (10) 第6章总结 (11) 参考文献 (13)

第1章题目概述 在这次课程设计中我选的题目是文本编辑,文本编辑几乎是每个使用电脑 的人都会遇到的问题,特别是网络小说作家们。在文本的编辑中,我们会时常 遇到文本信息的统计问题、小型子串的查找问题、子串的查找和删除问题等。 如果靠人自己去观察和执行相关操作的话,不仅累人,而且很容易出错。而使 用计算机程序去实现的话,则会省力不少,而且相对来说非常精确。本程序使 用了较快速的查找算法,可以大大提高检索的效率,相信这可一极大的方便用 户用电脑编辑文本文件。 第1.1节题目要求 文章编辑 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标 点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章; 实现功能 (1)文章内容的输入:包括字母、标点符号、数字等; (2)文章内容的统计:包括文章中大写字母、小写字母、数字、标点符

文本编辑器课程设计报告

. I Java课程设计报告 题目:文本编辑器 班级: 学号: 姓名: 成绩: 日期:年月日

目录 一、综合设计的目的与要求 (3) 二、综合设计正文 (3) 1.系统分析 (3) 1.1系统开发背景、开发围、建设目标与必要性开发 (3) 1.2需求分析 (3) 2.系统设计 (3) 2.1功能设计 (3) 2.2系统运行环境与开发工具 (4) 3 .系统实施 (4) 3.1源程序 (4) 3.2.系统测试及部分截图 (12) 三、综合设计总结或结论 (13) 四、参考文献 (13)

《文本编辑器》 一、综合设计的目的与要求 要求在学生能够较熟练使用java程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统的练习。 二、综合设计正文 1 系统分析 1.1系统开发背景、开发围、建设目标与必要性 随着计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。当然对文本编辑操作仍然占据着重要地位,记事本是简单便捷的文本编辑器,可实现对文本编辑操作的基本功能。 1.2需求分析 程序设计主要分为两大部分:简单GUI设计和程序功能设计。通过GUI设计实现图形用户界面,提供图形菜单,方便用户操作。使用Java语言编写一个能够对输入文字进行操作,具有合理的界面,能够在界面中实现右键快捷方式,对文档容进行编辑操作,并且能够顺利退出的程序。通过设计和实现一个具有基本功能的文本编辑器,提高我们对Java语言设计的掌握能力,理论联系实际,进一步提高软件开发技术,从而培养我们分析、解决问题的能力。 2 系统设计 2.1功能设计 根据系统自带的文档编辑器的特征设计,包括如下的功能模块: 一、整体结构框架包括:菜单栏和文档编辑区 二、每个框架分别包含不同的子框架,各个模块的具体框架: 1.菜单栏:文件、编辑、工具、帮助 2.菜单栏中各个子菜单功能 文件:新建、打开、保存、另存为、退出 编辑:剪切、复制、粘贴 工具:查找、替换 3.子菜单功能的实现主要的几个功能介绍

数据结构课程设计题目

数据结构课程设计题目 1、运动会分数统计 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分; 取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 功能要求: 产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号,名次,姓名和得分;产生团体总分报表,内容包括校号,男子团体总分,女子团体总分和团体总分. 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构: 学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构; 测试数据: 要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 2、约瑟夫环 问题描述: 编号为1,2… n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个开始重新从1报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序。 基本要求: 1、利用单循环链表作为存储结构模拟此过程; 2、键盘输入总人数、初始报数上限值m及各人密码; 3、按照出列顺序输出各人的编号。 3、算术表达式求值演示 任务: 表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子设计一个程序,实现利用算符优先算法计算算术表达式求值。 基本要求: (1)通过键盘输入表达式字符序列,并转换为整数表达式。 (2)进行输入合法性验证,对于错误表达式给出提示; (3)对算术运算表达式求值,对于正确的表达式给出最后的结果 (4)运算符包括乘方,开方,单目减等运算符 界面要求:有合理的提示,每个表达式求值结束后,根据提示,决定是否进行下一个表达式的计算; 提示: (1)设置运算符栈和运算数栈辅助分析算符优先关系;

相关文档
最新文档