1、 数 据 结 构 课 程 设 计 报 告 书 专 业: 计算机科学与技术 课程设计名称: 数据结构课程设计 题 目:简易文本编辑器 班 级: 姓 名: 学 号: 指 导 教 师: 完 成 时 间:2013 年 6 月 27 日 2 目录目录 一一. . 设计的目的和要求设计的目的和要求3 课程设计的课程设计的目的目的3 基本要求基本要求3 二二. . 课程设计任务要求课程设计任务要求3 需求分析需求分析3 三. 具体设计具体设计3 主程序流程图主程序流程图4 详细详细设计功能分析设计功能分析4 函数分析函数分析 源程序代码源程序代码6 四. 调试分析和测试结果调试分析和测试结果20 代码测试截
2、图结果分析代码测试截图结果分析20 五. 总结总结心得与体会心得与体会25 3 一课程设计目的和要求一课程设计目的和要求 设计目的 数据结构课程设计是一门实践性非常强的课程,不但结合了 C 语言的设计基本知识,更 加注重技能的培养,是学生能够允许渐进的把握 C 语言 C+的程序设计的技能。通过此课程设 计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高,同时提以下几个方 面的能力。 1. 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3. 提高综合运用所学的理论知识和方法独立分
3、析和解决问题的能力; 4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科 学的工作方法和作风。 二课程设计任务要求课程设计任务要求 需求分析 1. 具有图形菜单界面; 2. 查找,替换(等长,不等长) ,插入(插串,文本块的插入) 、块移动(行块,列块移 动) ,删除 3. 可正确存盘、取盘; 4. 正确显示总行数。 三具体设计具体设计 主程序流程图 如(图 1)所示 程序中用链表来保存文本,每一行为一个单向链表,每一行的表头保存在 一个行链表中,形成了一个 2 维链表,结构如下(图 2)所示: 详细设计功能实现 (一) 打开文件 1. 提示用户输入文件路径 2.
4、 判断文件路径是否有效,若无效,则提示错误信息并返回,否则继续执行。 3. 若文件成功打开并且文件指针没有到文件尾,则从文件中一次读取一个字符,并将该 字符添加到一列单链表节点中, 直至遇到换行符 (ASCII 码 10) 。 当列单链表形成后, 它的首地址将被保存至行单链表的相应节点的数据域中,如此动作,直至文件指针 指向文件尾部而结束。 (二) 新建文件 1. 若行链表中有数据存在,则提示用户保存文件。 4 2. 提示用户输入新建文件的保存路径。 3. 测试新文件路径是否有效。 (三) 保存文件 1. 打开文件。 2. 遍历行单链表,遍历行单链表节点指向的列单链表,并将数据输出到文件,每个
5、列单 链表遍历完后,输出换行符到文件。 3. 关闭文件 (图 1) (四) 插入字符串 1. 提示用户输入要插入字符串的位置(行号 row,列号 col)以及要插入的字符串。 2. 先在行单链表中找到该行(第 row 行),若超出现有行数,则添加空行补齐; 3. 将字符串插入该行(第 row 行)节点指向的列链表中的 col-1 位置, 若超出现有节点数, 则添加保存字符为空格的节点补齐。 (五) 删除字符串 (1) 提示用户输入要删除字符串的开始位置(行号 row,列号 col)以及要插入的字符串 的长度 len。 (2) 在链表中定位到该行节点,若不存在,则提示无法删除并返回;否则继续执行。 (3) 在该行中定位到该 col 字符节点 node,若不存在,则提示无法删除并返回;否则继 续执行。 (4) 删除从 node 字符节点开始的 len 个节点。若不满 len 个,则全部删除。 5 (六) 查找替换 1. 提示用户输入要查找的字符串。 2. 遍历链表,找到每一个出现此字符串的位置并输出。 3. 询问用户是否要进行替