文章编辑系统文章编辑系统
课程名称:,数据结构课程设计,,, 题目:,,,,文章编辑系统,,,,
院 系: 理学院 ,
专业班级:应用数学09-2班
学 号:,2009303604,
学生姓名:,,代国棒,,,
指导教师:, 郭娟,,,,
2012年 1月 6 日
1
安徽理工大学课程设计(论文)任务书
理学院 院系 信计 教研室
学生姓学 号 2009303604 代国棒 专业(班级) 应数09-2 名
设计题文章编辑系统 目
数据结构
设计 C语言
技术 概念结构设计ER图
参数
设计 该设计可以实...
文章编辑系统
课程名称:,数据结构课程设计,,,
目:,,,,文章编辑系统,,,,
院 系: 理学院 ,
专业班级:应用数学09-2班
学 号:,2009303604,
学生姓名:,,代国棒,,,
指导教师:, 郭娟,,,,
2012年 1月 6 日
1
安徽理工大学课程设计(论文)任务书
理学院 院系 信计 教研室
学生姓学 号 2009303604 代国棒 专业(班级) 应数09-2 名
设计题文章编辑系统 目
数据结构
设计 C语言
技术 概念结构设计ER图
参数
设计 该设计可以实现文章的输入,浏览,删除字符串,统计文章要求 信息等功能
工 设计文章编辑系统,单独编写源代码以及说明书,结果以报作 告和电子文档形式展示 量
2012年1月6日前提交课程设计说明书打印稿,电子稿,完工作 整的程序,并按照指定格式完成
[1] 严蔚敏,吴伟民主编.数据结构[M].清华大学出版社,
2002
[2] 殷人昆等著.数据结构[M].清华大学出版社,2001 参 [3] 金远平著.数据结构[M].清华大学出版社,2005 考
[4] 许卓群等著.数据结构与算法[M].高等教育出版社,资
料 2004
[5] Frank M.Carrano等著.数据结构与,++高级教程[M].
清华大学出版社,2004
指导教师签字 教研室主任签字
2012年1 月 6 日
2
安徽理工大学课程设计(论文)成绩评定表
学生姓名: 代国棒 学号: 2009303604 专业班级: 应数09-2 课程设计题目: 文章编辑系统
指导教师评语:
成绩:
指导教师:
年 月 日
3
目录
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
4
,系统需求分析
本实验所要实现的功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行; 要求:
(1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子
实现相应的功能;
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:
(1)分行输出用户输入的各行字符;
(2)分4行输出"全部字母数"、"数字个数"、 "空格个数"和"文章总字数" 输出删除某一字符串后的文章;
用链表存放数据非常灵活,只要内存足够大,对链表可以做任意扩充和修改。 主要的手段为链表的遍历。定义一个头指针head,每个结点的数据域存放数据本身,指针域存放下一个结点地址,所以,我们只要知道head,就可以遍历整个链表,找到我们所需要的字符(串),进行相应的操作。
5
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); //遍历链表
6
,程序设计流程图
根据题目与上述分析,可得主程序设计流程图如下所示:
开始
输入文章 统计字符
串
浏览文章 菜单
删除字符统计信息 串
退出
图3-1
文章输入、浏览、统计串、统计及删除的详细流程如图1—2所示:
开始
回车 回车 回车 输入文本信息(<=80) 显示文本信息且换行 选定选项1 Ctrl+E
显示输入内容 回车 调出主菜单 并调出主菜单 选定选项2
回车
回车
调出主菜单 回车 选定选项3 显示文章统计信息的结果
7
(接上页图)
回车 回车
选定选项4 输入要统计的字符串 显示出现次数
回车
调出主菜单
回车 回车 选定选项5 显示删除后的文本 输入要删除的字符串
回车
回车 调出主菜单 选定选项6 退出
图3-2
8
,测试结果及运行效果
程序运行,首先显示选择菜单,如图示:
图4-1 选择菜单 选择1,输入文章,界面运行结果如下:
图4-2 输入界面
9
按回车,调出开始菜单,输入2,选择浏览,可以原样显示出刚才输入的文
本:
图4-3 文章浏览界面
回车后输入3,可以看到文章统计信息结果:
图4-4 统计结果界面
10
根据页面提示,回车
统计字符串模块,输入要统计的字符串,可以查找出该字符串在文章中出现过的次数。运行情况如下图示:
图4-5 统计字符串出现次数界面
根据页面提示,回车
删除模块,输入要删除的字符串,执行删除后可以显示删除后的文本。界面如下:
图4-6 删除字符串后的界面
11
根据页面提示,回车:
退出页面,执行后的结果如下:
图4-7 退出界面
12
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?码。
13
总结
本实验采用链式顺序表结构实现了文章编辑的基本功能,实验过程中遇到了很多或大或小的问题,在这些问题的解决过程中,加深了对链表的理解,使我对链表操作的字符串的模式匹配有了更深更全面的认识。
本实验提高了我对数据逻辑结构的特点和存储表示方式的认识,培养了我在具体应用中选择合适的数据结构和存储结构的能力。
通过该实验,使我熟悉了软件开发的基本过程,初步掌握了软件开发过程的问题分析、系统设计、程序编码测试等阶段的基本任务和技能方法。
使我的算法设计和算法分析能力以及运用所学理论知识和方法独立分析问题的能力得到全面的提高。
训练了我用系统的观点和软件开发的一般规范。使我认识到一个软件工作者所应该具备的科学的工作方法、作风和相互合作精神。
本实验的模块化比较强,各个模块之间用指针head连接。认清模块化的概念给程序的顺利编制起到了很大的作用。分模块各个调试,可以减少很多不必要的麻烦。
14
参考资料
[1] 严蔚敏,吴伟民主编.数据结构[M].清华大学出版社,2002 [2] 殷人昆等著.数据结构[M].清华大学出版社,2001
[3] 金远平著.数据结构[M].清华大学出版社,2005
[4] 许卓群等著.数据结构与算法[M].高等教育出版社,2004 [5] Frank M.Carrano等著.数据结构与,++高级教程[M].清华大学出版社,2004
15
本文档为【文章编辑系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。