文章编辑数据结构课程设计报告书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
理工大学
《数据结构》课程设计报告
学院专业
班级学号
学生指导教师
课程成绩完成日期
课程设计成绩评定
学院专业
班级学号
学生指导教师
完成日期
指导教师对学生在课程设计中的评价
课程设计任务书
计算机与通信工程学院软件工程专业
文章编辑
学生:旖指导老师:倩诒
摘要本课程设计主要解决了基本的文章编辑问题。对于一页按要求输入到程序执行窗口的文章,静态存储结构使用线性表中,分别完成统计文章总字符数、文章中空格个数、文章中英文字母数、统计文章中英文字母数的操作和文章中某一字符串的出现的次数,并输出该次数;除以上的统计操作,还实现删除文章中指定字符串,并且将删除字符串后面的字符前移,再保存为编辑后的文章。
关键字静态存储;线性表;编辑;字符串
目录
1.引言 (1)
1.1课程设计意义 (1)
1.2课程设计目的 (1)
1.3课题要求 (1)
2.设计思路与方案 (2)
2.1函数流程 (2)
2.2功能函数 (4)
3.详细实现 (5)
3.1数据结构设计 (5)
3.2功能函数设计 (5)
3.3函数分析 (6)
4.运行环境与结果 (12)
4.1运行环境 (12)
4.2运行结果 (12)
5.结束语 (16)
6.参考文献 (17)
7.附录 (18)
代码清单 (18)
1引言
1.1课程设计意义
在实践教学中,课程设计是一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。数据结构[1]是一门重要的专业基础课,是计算机理论和应用的核心基础课程。
数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计[2]及其实现等方面,加深对课程基本容的理解[3]。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
1.2课程设计目的
1.提高对数据逻辑结构[4]的特点以及存储表示方式的认识,培养在具体应用中选择合适的数据结构和存储结构的能力。
2.熟悉软件开发的基本过程,初步掌握软件开发过程的问题分析、系统设计、程序编码[5]、测试等阶段基本任务和技能方法。
3.培养自己的算法设计和算法分析能力,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。
4.训练用系统的观点和软件开发一般规进行软件开发,培养软件工作者所应具备的工作方法、作风和相互合作的精神。
5.综合运用链表[6]的查找、插入和删除,理论结合实际,将其运用到文章编辑这一实验中。使这些知识得到进一步巩固、加深和拓展。利用模块的思想,模块之间用指针连接,减少了不必要的麻烦。巩固加深指针的用途,理解模块的优点。加深对链表的理解,全面认识链表操作的字符串的模式匹配操作。
1.3课题要求
课题名称:文章编辑
具体要求:
(1)静态存储一页文章,每行最多不超过80个字符,共N行;
(2)分别统计出其中英文字母数和空格数及整篇文章总字数;
(3)统计某一字符串在文章中出现的次数,并输出该次数;
(4)删除某一子串,并将后面的字符前移;
(5)存储结构使用线性表[3],分别用几个子函数实现相应的功能。
2 设计思路与方案
2.1函数流程
根据课题文章编辑的详细要求,可将程序的运行分为三个模块,即文章输入和文章输出模块、指令输入和指令判断模块、执行指令操作模块。
构造多个线性表,将输入的文章的每一行字符,都分别静态存储[4]在相应的线性表中。每个线性表的存储容量不超过80个字符。
文章输入结束后,程序输出指令菜单,列出程序可以合法执行的操作指令,并选择输入合法的指令,以执行相应的指令操作。
依照课题要求,程序设计了6大功能,分别为统计文章中总字符数、统计文章中空格个数、统计文章中数字个数、统计文章中英文字母个数、删除文章中指定字符串、统计文章中指定字符串出现次数,并且为每一项功能提供相信的执行指令。
程序的执行流程如图2.1所示。首先按要求输入文章,然后按照指令菜单选择要执行的指令,程序判断指令,并且执行相应的指令操作,输出指令执行结果后,重新返回指令菜单,再次等待指令输入。指令书输入和指令执行为无限循环,在用户退出程序前,程序不会自动结束。
开机
输入文章
指令判断
统
计文章中英文
字母数
统
计
指
定
字
符
串
出
现
次
数删
除
文
章
中
指
定
字
符
串
统
计文章中总字
符数
统
计
文
章
中
数
字
个
数
统
计
文
章
中
空
格
个
数
输入指令
正确错误
图2.1 函数执行流程图
2.2功能函数
为实现6个执行指令操作,分别设计相应的功能函数,并运用C语言数据结构构造相关代码。功能函数名以功能说明如表2.2所示。
3 详细实现
3.1数据结构设计
(1)定义
结构体:typedef struct line
{
char *data;
struct line *next;
}LINE;
LINE为单链表存储结构。
3.2功能函数设计
(1)统计文章总字数:void CountAll(LINE * &head)
将p付给表头指针;
初始化count为0;
用do-while语句遍历链表,同时统计字符串中总字数;
用printf语句输出文章中总字数,调用子函数menu()。
(2)统计文章中的空格数:void CountSpace(LINE * &head)