《简单的行编辑器》由会员分享,可在线阅读,更多相关《简单的行编辑器(23页珍藏版)》请在金锄头文库上搜索。
1、 计算机工程学院课程设计报告设计名称: 数据结构课程设计 选题名称: 简单的行编辑器 姓 名: 学 号: 专业班级: 软件工程 软件 102 系 ( 院): 计算机工程学院 设计时间: 2011.12.192011.12.30 设计地点: 软件工程实验室、教室 指导教师评语:签名: 成绩: 年 月 日数据结构课程设计报告 第 1 页,共 页1课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4
2、.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。2课程设计任务与要求:任务根据教材数据结构-C 语言描述 (耿国华主编)和参考书数据结构题集(C 语言版) (严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。设计题目从任务书所列选题表中选取,每班每题不得超过 2 人。学生自选课题学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知
3、识。学生自选课题需在 18 周前报课程设计指导教师批准方可生效。要求:1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、.设计的题目要求达到一定工作量(300 行以上代码) ,并具有一定的深度和难度。3、程序设计语言推荐使用 C/C+,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5 、每位同学需独立提交设计报告书(每人一份) ,要求
4、编排格式统一、规范、内容充实,不少于 10 页(代码不算) ;6、课程设计实践作为培养学生动手能力的一种手段,单独考核。3课程设计说明书数据结构课程设计报告 第 2 页,共 页一 需求分析该程序的工作是模拟文本编辑,为用户提供简单的字符编辑。(1)数据分析:用户输入要编辑的字符要在系统给数组分配的空间之内,每行步超过 80 个字符,字符可以是大写,小写的英文字母,任何数字及标点符号。在创建数组时,用户要从键盘上输入 char 型字符,统计某一字在文章中出现次数时要输入一个 char 型变量 k,定义两个整型变量 i 和 n, i 是数组中标识位置的变量,n 是统计变量若 k 在文章中出现一次责
5、则 n 加 1,k 就是要统计的字符。统计空格,数字,字母个数只要定义两个整型变量 i 和 n,删除某一字串时要从键盘输入两个整型变量 pos 和 len,pos 是位置变量,len 是长度变量。在主函数中设计了 3 个功能;需要输入 char 型字符进行功能选择调用,(2)功能分析:设计的程序能够实现以下功能: (1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。(4)输出形式:1)分行输出用户输入的各行字符;2)分 4 行输出全部字母数、数字个数、空格个数、文章总字数3)输出删除某一字符串后的文
6、章;(3)性能分析:此程序性能一般。二 概要设计m a i n 主函数统计数字个数 统计空格个数 统计字母个数 统计总字符数删除某一子串后文章统计某一字符出现次数系统用到的抽象数据类型定义:ADT String数据对象:D=a i|aiCharacterSet,i=1,2,n;n=0;/D 是一个集合,集合中所有元素具有相同的性质。数据结构课程设计报告 第 3 页,共 页数据关系:R=|ai-1,aD,i=2,n;n=0/ai属于 D。基本操作:(1)StrAsign(S,chars)(2)StrDelete(S,pos,len)(3)StrLength(S) ADT String系统中子程序
7、及功能要求:(1)CreatStr(HString *s)/创建字符串(2)tongjishuzi(HString *s)/统计数字数(3)tongjizimu(HString s)/统计字母数(4)tongjikongge(HString *s)/统计空格数(5)tongjizongzifushu(HString s)/统计总字数(6)tongjimouyyizifu(HString s ,char k)/统计某某一字符出现的次数(7)shanshuzichan(HString s,int pos,int len)删除某一子串后的文章三 详细设计(1) CreatStr(HString *s
8、)/ 创建字符数组定义字符变量 k;定义整型变量 i,n;/i 是字符在数组中位置变量;给字符数组分配空间(1000) ;给定一个控制符*;从键盘输入字符,储存到字符数组中,当输入字符是控制符时输入结束;把用户吃呢个键盘上输入入的字符输出到显示器上;结束数组的创建几赋值;(2) tongjishuzi(HString *s)/统计数字数定义两个整型变量 i,n;/i 是数组中位置变量,n 是统计变量即统计数组中数字的个数if(s-chi=数字字符)那么,n+;(3) tongjizimu(HString s)/统计字母数定义两个整型变量 i,n;/i 是数组中位置变量,n 是统计变量即统计数组
9、中数字的个数if(s-chi=字母字符)那么,n+;(4) tongjikongge(HString *s)/统计空格数定义两个整型变量 i,n;/i 是数组中位置变量,n 是统计变量即统计数组中数字的个数if(s-chi=空格字符)那么,n+;数据结构课程设计报告 第 4 页,共 页(5) tongjizongzifushu(HString s)/统计总字数返回字符数组的长度;/即为输入的总字数(6) tongjimouyyizifu(HString s ,char k)/统计某某一字符出现的次数定义两个整型变量 i,n;从键盘上输入要统计的字符;从数组中第一个字符开始比较;当数组中字符与输
10、入字符一致时n+;把 n 的值返回给调用函数;(7) shanshuzichan(HString s,int pos,int len)删除某一子串后的文章定义一个整型变量 i;定义一个字符数组*temp;把主函数中传来的实参 pos 与 0 和 s.len-len 比较/len 也是主函数中传来的实参如果 poss.len-len把 0 返回给主函数 /也可以返回 ERROR给数组 temp 分配空间大小为 s.len-len;如果数组 temp 是空数组,即 temp 的空间大小为零;那么把 0 返回给主函数 /也可以返回 ERROR;If 上面情况都没出现那么将 ch 数组中 pos 之前
11、的字符赋给数组 temp 对应位置;将 ch 数组中 pos 之后的 pos+len 位置的元素赋给 temp 数组中第 pos 位置把 ch 数组长度变为 s.len-len;清空数组 ch把 temp 数组中元素赋给 ch 数组;输出数组 temp;或者 s.ch返回 1;四 测试用例设计与测试分析当程序运行时会出现如下界面“请输入要编辑的字符”提示用户输入字符。用户可从键盘上输入字符,以*结尾表示输入字符结束,界面上会输出用户输入的字符,以及行编辑的功能选择项。(如输入如下字符 beijing huan ying ni *) 数据结构课程设计报告 第 5 页,共 页输入选择 1,则依次输
12、出:字母个数:17数字个数:0空格个数:4字符总数:21是否继续使用(Y/N):选择 Y,则出现行编辑器的功能选择,数据结构课程设计报告 第 6 页,共 页如果第三步结束选择 N,则输出*谢谢使用*第三步结束选 Y 后,再次需要进行行编辑器功能选择:输入选择 2;则输出“请输入要统计的某一字符”提示用户输入要查找的字符假如输入 i;则输出:i 在文章中出现次数为: 4;是否继续使用(Y/N)数据结构课程设计报告 第 7 页,共 页选择 N 则输出*谢谢使用*数据结构课程设计报告 第 8 页,共 页选择 Y则输出行编辑器的功能选择项目;选择 3;输出“请输入要删除子串的起始位置和长度:”提示用户
13、输入,如果输入 0 7输出“删除某一子串后:”huan ying ni *谢谢使用*其他字符测试;例如用户输入:beijing BEIJING 520*输出字母个数:14数字个数:3空格个数:2字符总数:19数据结构课程设计报告 第 9 页,共 页统计字符 i 出现次数为 2;删除从 8 号位器长度为 7 的字串后输出字符为 beijing 520五 用户手册1运行程序,首先出现主界面。主界面首行显示“欢迎使用文本编辑器” ,输出提示信息“请输入要编辑的字符” ,然后界面显示用户输入的字符。然后主界面文本编辑器的功能菜单,功能菜单包括三个选项:选项一:统计字数,选择该项可进字数统计,当用户输入
14、字符结束后,选择功能选项一,主界面回自动统计各字符数,然后输出。2;选项二:统计出现次数,选择该项可进行对文章中某一字符出现字数的统计,当用户选择功能二时,主界面回输出提示信息,提示用户输入要统计的字符,用户可从键盘任意输入字符,以回车键结束。然后主界面就会输出用户输入的字符在出现的次数。3;选项三:删除字符,选择该项可删除文章中的某一字符及字串,当用户选择功能三时,主界面输出提示,提示用户输入,要删除字符的起始位置,以及删除字串的长,输入后以回车键结束,主界面会输出删除字串后的文章。数据结构课程设计报告 第 10 页,共 页六 测试成果七 附录(源程序清单)#include#include#include#includetypedef struct数据结构课程设计报告 第 11 页,共 页char *ch;int len;/ char k;HString;int CreatStr(HString *s)char k;