版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉工程大学计算机科学与工程学院设计名称:软件基础综合设计设计题目:简易交互式文本文件编辑器学生学号:1305120703专业班级:2013计算机科学与技术05学生姓名: 学生成绩:学涛指导教师(职称):张俊(副教授)、王邯(讲师)课题工作时间:2015.6.3至2015.6.26说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个 学生;四、五两项(中英文摘耍)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计 完成情况、报告的质量及答辩情况,给出客观、全面的评价。
2、4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,丼成绩一律 按不及格处理。答辩小组成员应由2人及以上教师组成。5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设 计的情况另行规定。6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用 于学院各类综合设计),各教研室可根掘本门综合设计的特点及内容做 适当的调整,并上报学院批准。答辩记录表05术技与学机算计3201班70320711053 号学涛学高 :录己 、名 点容 姓地内 生辩辩 学答答答辩成绩计值合分项值各分准标分评际分实得计分合得注备25o
3、进点 容论 内, 的出 什突 t'重 就, 能鉚bfiro jrt简清rihil一口3;时,务 定述, 规阐确 在行正54地利流完1确问 准的 能出 内提 1 hj所 吋帀定粉规答在回曰62月6年0521)z字签z(x员成nh-辩答成绩评定表学生姓名:高学涛学号:1305120703班级:2013计算机科学与技术05别计值合分项值各分准标分评计分合得注备时现平表oxox任计设合综成完io极况餅情u等好退良早现、表到,迟律、纪课习旷学无宁1糸3020,现善奶,去s能 功技 m业方专,用容运袖能、t , o没满题成饱问完量际求作实要工决照计解按设与odi实手动力匕匕4冃 o习识学意的新强创
4、较和了力hq 匕匕uu 厶冃现作展协中队程团过、计力设能在践告量报质53odi30献3文 f考lie-<o组。求 容求要 内要合 节范符 章规1 ffl ,合弓 晰符及 清,式 述备格 表完, ,表上 范图以规,篇式一 5格统在告号量报符数5di清论分 绍,以 介整加 景完题 背程问 题过对 课要识 。主知 理等业 合现专 谨实学 严与所象 构计用现 结没运袭 ,。能抄 ,分。无 離於彻。 容述透解 内综体求 告,具和 报楚述析odi现体结总o 面果 全结 y或 行论 进结 程的 过值 计价 设有 个了 整出 对得 告, 报获 计收 没了52odi简言述。 阐晰 行清 进理 容条 内,
5、的确 计正 设点 所论 就, 能出 内突 间点 时重 定, 规明 在意5di所帀答回地利流完准能内。 间题 时、问 定的 规出 在提绩成评总曰62月6年0521期曰语评帀导 釣 指 签4jj z(x帀謝指一、综合设计0的、条件、任务和内容要求:设计目的软件基础综合设计是计算机科学与技术专业学生进入专业课学习后,综合运用所学习的而向对象程序设计思想和方法、c+语言及工具环境、算法与数据结构等知识完成较为复杂的程序设计。通过该设计,能够锻炼学生的综合应用能力,为后续专业学习奠定知识和能力基础。具备条件己经学习过c程序设计、c+面向对象程序设计、算法与数据结构等一系列专业相关课程。设计任务1、用面向
6、对象思想和方法完成较为简单程序系统的设计和实现;2、完成所设计系统的报告撰写。设计内容1、用c+语言开发出一个功能较为完善的简单应用程序;2、撰写规范、详细的综合设计报告;3、设计陈述及答辩。指导教师签字:张俊、王邯2015 年 5 月 29 日二、进度安排:软件设计与实现:6个单元时间 撰写报告:3个单元时间 检查设计及答辩:1个单元时间三、应收集资料及主要参考文献:应收集如下几方面资料:1、c+面向对象程序设计相关书籍2、算法与数据结构相关参考书籍主要参考文献:1 (美)horton,i.著;李予敏译.c+入门经典(第3版).北京蒲华大学出版社,2006.12 (德)nicolai m.
7、josuttis著;候捷/孟岩译.c+标准程序库.武汉:华中科技大学出版社,2002.93 张俊著.c+面向对象程序设计.北京:中国铁道出版社,2012.84 李春葆著.数据结构教程.北京:清华大学出版社,2013.15 秦锋、袁志祥著.数据结构(c语言版)例题详解与课程设计指导m. 北京:清华大学出版社,2011.361李春葆著.数据结构教程(第4版)上机实验指导m.北京:清华大 学出版社,2013.17李春葆著.数据结构教程(第4版)学习指导m.北京:清华大学出 版社,2013. 1四、综合设计(课程设计)摘要(中文):在计算机的文件屮,经常使用的一种是文本文件,其屮文字除了如回车换行和跳
8、 格外,并不包含其他控制字符,一般程序的源文件也是输入这一类。通过完成文本编 辑器,重点掌握字符类型的各种操作,如模式匹配等。简易交互式文木文件编辑器实现了打幵、保存、输出、删除、查找、插入和替换 等功能。循环读入指令到读到退出指令为止,将指令分割为操作码位和操作数位用不 同变量存放。用switch-case语句以操作码不同分别对不同指令分开处理。通过双向单 链表实现每行文字的连接和存储,使用双向链表的基本操作对节点操作,如插入,删 除使用cstring头文件内的库函数进行字符串的操作。优点是操作简便,缺点是只能对整行的文字进行操作,而不能对行内单个字符进 行编辑。下一步的改进方向应该是增加对
9、行内单个字符编辑的方法。五、综合设计(课程设计)abstract (英文):in the computer file,text file is usually used, the text except as enter and table extremely, does not include other control characters, general program source file is input this class. through the completion of the text editor,focus on the characters of the typ
10、e of operation,such as pattern matching, etc.simple interactive text editor to achieve the open,save,output, delete,find,insert and replace. read instructions to read instructions to read out the instruction,the instruction is divided into the operation code bit and operation of digital with differe
11、nt variable storage. the switch-case statement is used to separate the different instruction. through two-way chain table for each line of the text to achieve the connection and storage,using two-way linked list of basic operations of nodes,such as insert,delete using cstring header in the library s
12、tring operations.the advantage is that the operation is simple,the disadvantage is that the entire line of text can only be operated,and can not be a single character in the line edit. the next step should be to increase the direction of a single character editor.目录t商 iiabstractii第一章设计概述11.1设计背景11.2
13、设计目的和意义11.3主要问题及技术要求1第二章系统分析32. 1需求相无述32.2难点分析32.3系统构成及相互关系4第三章设计与实现53.1功能设计53.2功能实现6第四章功能测试及分析104.1显示“l”的功能测试及分析104.2删除“d”的功能测试及分析124.3增补“a”的功能测试及分析144.4保存“s”的功能测试及分析154.5打开“0”的功能测试及分析164.6插入“i”的功能测试及分析174.7查找“f”的功能测试及分析184.8替换“r”的功能测试及分析194.9改变“c”的功能测试及分析204.10退出“x”的功能测试及分析该寸参考文献21222324在计算机的文件中,经
14、常使用的一种是文本文件,其中文字除了如回车换行和跳格 外,并不包含其他控制字符,一般程序的源文件也是输入这一类。通过完成文本编辑器, 重点掌握字符类型的各种操作,如模式匹配等。简易交互式文本文件编辑器实现了打开、保存、输出、删除、查找、插入和替换等 功能。循环读入指令到读到退出指令为止,将指令分割为操作码位和操作数位用不同变 量存放。用switch-case语句以操作码不同分别对不同指令分开处理。通过双向单链表实 现每行文字的连接和存储,使用双向链表的基本操作对节点操作,如插入,删除使用 cstring头文件内的库函数进行字符串的操作。优点是操作简便,缺点是只能对整行的文字进行操作,而不能对行
15、内单个字符进行 编辑。下一步的改进方向应该是增加对行内单个字符编辑的方法。关键词:文本文件;编辑;字符操作。abstractin the computer file, text file is usually used, the text except as enter and table extremely, does not include other control characters, general program source file is input this class. through the completion of the text editor,focus on
16、the characters of the type of operation, such as pattern matching, etc.simple interactive text editor to achieve the open,save, output,delete,find,insert and replace. read instructions to read instructions to read out the instruction, the instruction is divided into the operation code bit and operat
17、ion of digital with different variable storage. the switch-case statement is used to separate the different instruction. through two-way chain table for each line of the text to achieve the connection and storage,using two-way linked list of basic operations of nodes,such as insert,delete using cstr
18、ing header in the library string operations.the advantage is that the operation is simple, the disadvantage is that the entire line of text can only be operated, and can not be a single character in the line edit. the next step should be to increase the direction of a single character editor.keyword
19、s: text file;edit; character operation第一章设计概述1.1设计背景计算机中有许多种类型的文件,文本文件是其屮一种常见的文件类型。而计算机屮 对文本文件的处理工具也多种多样。然而我们只知去使用这些工具,却未普想过其中的 原理,未曾考虑过如何实现。简易交互式文本文件编辑器需要我们自己动手实现,可以 帮助我们去了解编辑器的基木实现思路,去探寻事物的实质。简易交互式文木文件编辑 器是根据课程设计课题要求,使用c+语言编写出来的小程序。1.2设计目的和意义在计算机的文件中,经常使用的一种是文本文件,其中文字除了如回车换行和跳格 外,并不包含其他控制字符,一般程序的源
20、文件也是输入这一类。通过完成文本编辑器,重点掌握字符类型的各种操作,如模式匹配等。课程设计旨在提高学生的动手能力和思考能力,对学生自身而言有很大的益处。1.3设计理论依据我们所设计的文木文件编辑器所使用的数据结构为结点类型为字符串的双链表类 型。相对于艽他数据类型(如顺序表)而言,在链表上进行插入删除等操作比较容易实 现,而我们使用的双链表则会更加方便。在字符串操作上,可以使用string.h头文件中 的库函数来进行,比如求字符串长度的strleno函数,复制字符申的strcpyo函数,求是 否包含子串rep的strstr()函数。读文件操作上可以使用fopen()函数判断文件是否存在、 建立
21、文件输入输出流等,对文件写和读分别可以用fputso和fgetso函数来实现。1.4主要问题及技术要求1.4. 1主要问题主要的问题在于对字符串的操作上,需要截取特定的字符串,转化为整型,还需要 在替换的时候,字符数组需要进行部分后移和部分前移的操作。苏次便是链表节点指针 域的移动,还有键盘格式敲入的回车在字符串屮会以两个字符的格式出现,需要使用清 空输入流语句将多余的一个清除。其他问题就是这次的课程设计主要实在cmd命令窗口下操作,界面还是比较粗糙, 可读性也不强。1.4.2技术要求技术上,我们需要熟悉string.h头文件内的库函数操作;熟悉链表的构建、插入、删 除等操作;熟悉文件流的操作
22、。本次课程设计,程序均在dev c+上运行,我们需要熟悉该软件的操作和运行环境, 需要有在出现异常时调试程序的能力。第二章系统分析2. 1需求概述主要功能需求包括编辑、显示、查找、増加、删除和替换等。下面我将一步步进行 功能的分析。功能的调出通过在命令行输入特定的字母来实现,当然,不区分大小写。但是对于 命令的格式却有一定的要求。显示:调用字母为l/1 (为避免分析冗杂,此后只表述大写字母格式),命令格式可 以为:l 起始行号终止行号(以下所有的“”和“”在命令行窗门运行程序时均 不需要输入)、l 行号、l。三种命令从左至右依次表示:显示起始行号至终止行号之 间的内容、显示特定行号的内容、显示
23、当前行号的内容(关于当前行号,会在后面有所 表述)。上述三种命令己经可以自动识別,若出现其他样式的命令,则提示”指令错误!” (以下命令中若出现同样情况,也提示”指令错误”)。删除:调用字母为d/d,命令格式可以为:d 起始行号终止行号、d 行号、 d。三种命令从左至右依次表示:删除从起始行号至终止行号之间的内容、删除特定行 号的内容、删除当前行号的内容。追加增补:调用字母为a/a,命令格式为:a。由于增补即在文件结尾增加,所以 并无其他可用命令格式。保存文件:调用字母为s/s,命令格式为:s 文件名、s。若仅输入s,则继续提 示输入保存文件名打开文件:调用字母为0/0,命令格式为0 文件名、
24、0。若仅输入0,则继续提 示输入打开文件名。插入:调用字母为i/i,命令格式为i 行号、i,两种命令依次表示:在行号前插入 一行内容、在当前行前插入一行内容。查找字符申:调用字母为f/f,命令格式为:f、f 待查找字符申,若仅输入f, 则继续提示输入待查找的字符串。替换字符串:调用字母为r/r,命令格式为:r 源字符串目标字符串,表示为将 文件中所有的源字符串都用目标字符串代替。改变当前行号:调用字母为c/c,命令格式为:c 行号、c,若仅输入c,则继续 提示输入改变值。退出:调用字母为x/x。命令格式为x。2.2难点分析难点主要是在字符串的分割上,还有就是字符的移位处理和链表上指针的移动操作
25、, 即指针域的改变。2.3系统构成及相互关系主体是while循环内的switch-case语句代表的功能区,其次是外部自定义函数帮助 功能实现。int main() while(l)cout«"请输入指令:”endl;gets(ins);char c=ins01;switch(c) if(closeflag) break;return 0;>saveflag和closeflag的存在连接起了 switch-case语句和while语句。以及实现了 x 功能退出程序。第三章设计与实现3.1功能设计3.1.1显示“l”的设计l 起始行号终止行号显示从起始行号到终止行号的所
26、有内容,如果缺乏终止行号,则只是显示起始 行号的内容,如果只是单独的“l”,则代表显示当前行;如果没有满足条件要求的 内容,则显示“命令错误”。3.1.2删除“d”的设计d 起始行号终止行号;删除从起始行号到终止行号的所有内容,如果缺乏终止行号,则只是删除起始 行号的内容,如果只是单独的“d”,则代表删除当前行;如果没有满足条件要求的 内容,则显示“命令错误”。3.1.3增补“a”的设计a在当前文本最后增补1行,输入命令后,接着输入要增补1行的内容,并且最 后一行变为当前行。3.1.4保存“s”的设计s 文件名保存当前编辑内容到文本文件,如果命令后面无文件名,接着进入提示会话, 要求输入保存的
27、文件名。3.1.5打开“0”的设计0 文件名打开新文件,如果命令后面无文件名,接着进入提示会话,要求输入待打开的文件名。如果当前编辑的文件未保存,应当提醒保存后在打开。3.1.6插入“i”的设计i 行号在行号前插入1行,输入命令后,接着输入要插入1行的内容,并ii该行变为 当前行,如果没有行号,则指的是在当前行前插入。3.1.7查找“f”的设计f 字符串查找给定的字符串,并逐行显示所有包含该字符串的行,其中在匹配字串吋不 跨行,如果命令后无待查找字符串,则提示输入。3.1.8替换“r”的设计r源字符串目标字符串将文中所有的源字符串用目标字符串替代,如果源字符串或者目标字符串中间 有空格或者跳格
28、,则该串需要用双引号“"”括起来。3.1.9改变行号“c”的设计c行号改变当前行为行号,如果不能满足要求,则显示“命令错误”。3. 1.10退出“x”的设计x退出程序运行,如果当前编辑的文件未保存,需要提醒保存。3.2功能实现3.2.1实现概述以switch-case语句为整个程序的主体,除了替换功能需要调用外部自定义函数外 其他功能均在case语句中实现,这样的缺点是主程序比较冗长。3. 2.2程序实现程序中需要使用cin、cout读取和输出变量;使用malloco函数动态分配空间构建链 表;使用gets()函数读取字符串;使用strlen()函数计算字符串讼度;使用strstr(
29、)函数获 取字串位置;使用strcpyo函数拷贝字符串;使用abs()函数求绝对值。故需要用到以下 头文件:#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>构建链表节点: struct strnodechar datafmaxsize;strnode *prior,*next;>$甫助函数替换str中rel为re2:bool strrep(char *str,char *rel,char *re2)打印菜单函数:
30、void printmenu()功能的实现建立在switch-case语句的基础上,在主函数屮读取指令字符串ins后, 将ins数组的第一个字符赋给字符变量c, switch(c)来区分是何种功能:(1) case l:读取指令后先用strleno函数求指令的长度。当指令长度小于2吋,证明指令中 只含有一个l字符,表示显示当前行,如果当前行存在,则输出now-data的数掘; 如果当前行不存在,则输出“指令错误”。当指令长度大于2时,则需要将ins数组 中后面的行号从字符转换成数字,starts表示起始行,ends表示终止行。关键代码如 下:char *q=&ins2;starts=*
31、q-o;q+;while(*q!=* '&&*q!=,0,) starts=starts*10+(*q-0,); q+;当读取完起始行后根据指针q指向的元素是否为0来判断有无终止行,若有终 止行,则按照求starts的方法同样求ends后,从头指针指向的节点移动到第starts 个节点并从第starts个节点开始输出节点的数据域到第ends个节点为止;若无则需 输出第starts行的数据域,贝懦从头指针开始往后移动starts-1个,并输出此节点的 数据域。(2) case d:这里读取指令的方式跟“l”功能类似,剩下的便是链表的操作,删除节点改变指针域。(3) cas
32、e a:由于这条指令之后不带参数,于是可以直接读取要增补的字符串,并构建一个 节点存放,再链接到链表最后,主要操作还是链表的操作。(4) case s:读取指令后首先还是用strleno函数求指令长度。当指令长度小于2时,证明s 后面没有带文件名,所以需要提示输入文件名,然后读入name。当指令长度大于2 时,s后面带文件名,用strcpyo函数将ins数组第3个字符及以后的字符拷贝到文 件名变量name中。使用name构建文件输出流变量file,并且用fputs()函数将每个 节点的数据域输入到name文件中,并将saveflag赋为真,核心代码如卜:strnode *p=head;file
33、=fopen(name,wt");while(p)fputs(p-data,file);strnode *q=p;p=p->next;free(q);(5) case 0:读取指令后须先判断saveflag是否为真,若saveflag为假证明上一文件未保存, 提示需要保存后才能打开,若saveflag为真则开始用strleno函数判断指令长度是否 大于2,读取文件名name,这点跟s指令中的方法类似,接着用name构建文件输 入流变量file,如果fopen()函数的返还值为空,证明文件不存在,则提示文件未找 到,否则直到文件结束循环读取每行字符串构建链表节点。再将savefl
34、ag赋为false。 核心代码如下:strnode *p=(strnode *)malloc(sizeof(strnode);p->next=rear->next;rear-next=p;p-prior=rear;rear=p;fgets(p-data,maxsize,file);(6) case t:读取指令后须先用strleno函数判断指令长度是否大于2,如果小于2则在当前 行前插入,则读入str后在now前插入一个节点便可,如果大于2,则用linenum 保存转化后的行号,转化方法与l和d功能中的类似。(7) case f :读取完指令后,仍用strleno函数求指令长度,并
35、判断长度是否大于2,若小于2 则需要提示输入要查找的文字,读取并存放在str屮,若大于2则用strcpyo函数将 ins数组中第三个元素开始的所有字符都复制到str中。遍历链表的所有节点,用strstro 函数判断是否行内包含str子串,若包含则输出行号加行内容。若无一行包含str则 需要输出没有铋含str的行。(8) case r:读取完指令后,根据ins数组的第三个字符判断,定义指#q=&ins2,若第三 个字符为”,则后面的字符串含空格,用while循环当指针指向的元素不为”时, 复制字符到strl数组中,若第三个字符不为 ,则用while循环当指针指向的元素 不为”“时复制字符
36、到strl屮。其后的字符串截取方式与上述方式类似,在结尾时判 断结束的标致变为是否等于0。将指令分割完毕后,遍历链表所有的节点,用strstr() 函数查找每行中strl的位置用str2替换。替换时根据strl和str2的长度,需要前移 或后移部分字符,通过for循环实现。核心代码如下:for(int j=0;j<abs(len2-len 1 );j+) if(lenl<len2)strlen+j+l=o;for(int i=len+j ;ilen-strlen(p)+len 1 ;i-) stri=stri-l;else if(lenl>len2) strlen-j-l=o
37、;for(int i=len-strlen(p)+j ;i<len;i+) str|ij=str|i+l 1;(9) case c:读取指令后,若now为空则需要输出“指令错误”,否则跟l和d功能一样截 取第三个字符以后的所有字符转化为整型存放在mrni中。接着将now节点取出来插 入到第mm行之前。均为链表的基本操作。(10) case x:当读到x指令后,判断saveflag是否为真,若saveflag为真则证明文件已经保 存,将closeflag赋为真,在循环的最后会判断closeflag是否为真,若为真则跳出 循环结束程序,若saveflag为假,则需要提示文件未保存。第四章功能
38、测试及分析4.1显示“l”的功能测试及分析4.1.1功能测试l指令根据参数的不同分为3种:(1) l n m如下图:t:uocumentcvulb笠及 api 帮助林林林林林林林林林林林林林林林instructions林林林林林林林林林林林林林林林林ws1i的内容_ 増加一行内容s丁内登林林林林林林林林林林/n林 林 林 林 林f str在当前客土早印了* r strlstr2将文本中所有stri替操为str2 ttc改芰当輪杆为行号#x浪屮#林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林请输入指令:0 1.txt審讓开!l 1 6从第1到第6行的内容如
39、下:123456789abcdefghiabcdefghi98765432122335 58866992222333555ssdda请输入指令:图4-1 “l”功能带双参数测试(2) ln如下图:e:documentc2015$ 桥钚 dev-cpp5a0 及 api 報助文括林林林林林林林林林林林林林林林instructions林林林林林林林林林林林林林林林林林林林林林林林林林林l n n显不从叫亍到itd n n删塗丛讀n:林 林 林 林 林f str在当前客土早印2c-1 了* r strlstr2将文本中所有stri替操为str2 ttc改芰当輪杆为行号#x浪屮#nws1i的内容_ 増
40、加一行内容s丁内登林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林请输入指令:0 1-txt審灘开!l 3第3行如下:abcdefghi请输入指令:图4-2 “l”功能带单参数测试(3) l如下图:e:documentc2015 翌拆砰dev-cpp5.4.0 及 api 帮助文档林ttldasoifrcx 林 林林林林林林林林林林林林林林林林r 二,二cuimlmtrs容内i 丁ns内内加林林林林林林林林林林林林林林号&&共亍s月亍 亍-j仃肆r拽中相_j德4 |口丄冃.一 刖ttl-存2彳当 bybr般 g显名苐在"苏: e
41、当-4ls-prl号出 m n在文文sts#林林林林林林 令打令指t讀入tx正入 输1.s请o.文请林林林林林林林林林林1u林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林当前行如下:2222333555ssdda凊输入指令:图4-3 “l”功能无参数测试4.1.2功能分析此处使用指针将ins字符数组中的数字通过ascall码和减转化成im类型,从而提取 出了起始行和结朿行。之后用指针在链表上的移动输出行。而参数的数量分别对应不同 操作。双参数:显示从第n到m行的内容(图4-1);单参数:显示第n行的内容(图 4-2);无参数:显示当前行的内容(图4-3)。4.2删除“d”
42、的功能测试及分析4.2.1功能测试d指令根据参数数量不同也分为三种: (1) d n m如下图请输入指令:0 1-txt審鵬开!l 1 6从第1到第6行的内客如下123456789abcdefghiabcdefghi98765432122335 58866992222333555ssdda请输入指令:d 2 3已成第2到第3行l 1 4从第1到第4行的内客如下12345678998765432122335 58866992222333555ssdda请输入指令:图4-4 “d”带功能双参数测试(2) dn如下图:睛输入指令:14从第1到第4行的内容如下:2345678987654321:233
43、5 5886699!222333555ssdda请输入指令:2醐攀第2行13从第1到第3行的内容如下23456789:2335 5886699!222333555ssdda睛输入指令,(3) d如下图:t:uocumeniczu丄介仰uev-cppoz+.u汉祐wj乂ra." v j 图4-5 “d”功能带单参数测试4. 2.2功能分析此处提取参数的方法与“l”的相似,这里需要注意的就是当要删除节点为第一个 或是最后一个的时候,改变的指针域由原来的四个变为两个,且需要注意头指针和尾指 针的位置。根据参数的数量,分为了三个不同的删除方式。双参数:删除从第n到m行 的闪容;单参数:删除第
44、n行;无参数:删除当前行。4.3増补“a”的功能测试及分析4.3.1功能测试a功能测试如小*图:请输入指令:0 1.txtl 1 6从第1到第6行的内容如下:123456789abcdefghiabcdefghi98765432122335 58866992222333555ssdda请输入指令:请输入增加行:ddas冊 2223131请输入指令:l 1 7从第i到第7行的内容如下:123456789abcdefghiabcdefghi98765432122335 58866992222333555ssdda ddasww 2223131请输入指令:图4-7 “a”功能测试4. 3.2功能分析
45、此功能实现比较简单,就在当前行后增加一个节点,读入数据后修改3个指针便可。4.4保存“s”的功能测试及分析4.4.1功能测试根据s后有无文件名分为两种方式如下图:e:documentc2015至桥坏dev-cpp5.4.0及api報助文括i a i tt林林林林林林林林林林林林林林instructions林林林林林林林林林林林林林林林林林林林林林林tt l n n显示从n括到nf的内容林d n, ?.脚輸以窗n翊庐容一tttttttttttttttt丁增加一行内容o文枓名个文 in在菱mt則趕人二1亍内賓& + n f str tt当刖客丢祛符韦悬吾存在tt r strl str2将文
46、本冲所有strl替換为str2 ttc位亨改变当®亍为行号x ir.t#tt林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林名件文的件:刑:文闬:刑:闬: 令打令存>令打令>令指t讀#讀t讀t讀入tx正入入t正入tx正入tx正入输1-篇输tx篇1-篇1-篇请o文请s请1 文请o文请s文请in图4-8 “s”功能测试4.4.2功能分析此功能的实现是运用了 strcpyo函数获取文件名,运用文件流的写入函数fputso将每 个节点的数据域写入文件。并用一个保存标记saveflag来记录保存状态。4.5打开“0”的功能测试及分析4.5. 1功
47、能测试o功能测试如下图:e:documentc2015 至侨杯dev-cpp5.4.0 及 ap 獨助文.刪鵬爾鵬刪instructions鵬爾鵬爾鵬# l n n显示从n行到n行的内容it d 趣堡丛绩叫i链庐容士 1丁掉加一行内容s评仔当目;0文今:茗杵卉一个文八in在于内賓牡虫f str在刍刖x主拿垫符串r strl str2将文本中所有str改变当®于为行号x林林林林林林林林林林林林林林林2 n林林刪鵬爾鵬爾鵬爾鵬爾鵬爾鵬爾鵬#请输入指令:0 1.txt打开!撤觀0 1.txt上一文请输入s l.txt保存?保存!撤驟请输入打开文件的文件名:1 .txt打开!撤觀图4-9 “
48、0”功能测试4.5.2功能分析此功能的实现运用了 strcpyo函数获取文件名,文件流读取函数fgets()读取每行的文 字建立链表的节点。并设置saveflag为未保存状态。4.6插入的功能测试及分析4.6.1功能测试i功能测试如下图:e:documentc2015 至侨杯 dev-cpp5.4.0 及 ap 閣助文括dev-cpp5.4.0 及 api報助文档dev-cp".请输入指令:!青输入要插入的文字,lllllllllllllllllll请输入指令:l 1 10从第i到第10行的内容如下:i have a dreammartin luther king, jr-an ha
49、pp</ to join with you today in what will go down in history as the greate st demonstrat ion for freedom in the history of our nation.five score yeaps agoj. a great american, in whose symbolic shadow we stand todap signed the emancipation proclamation. this momentous decree cane as a great b eacon
50、 light of hope to millions of negro slaves who had been seared in the flan es of withering injustice. it came as a joyous daybreak to end the long night ollllllllllllllllllltheir captivity.请論入旨令:请输入要插入的文字:lllllllllllllllllll请输入指令:l 1 11从第1到第11行的内容如下:have a dreanmart in luther king, jr.an bappp to jo
51、in with you today in ubat uill go down in history as the greate lllllllllllllllllllst demonstration for freedom in the history of our nation.five score years ago a great american, in whose s</nbolic shadow we stand today signed the emancipation proclamation. this momentous decree came as a great
52、b eacon light of hope to millions of negro slaves who had been seared in the flam es of withering injustice. it came as a joyous daybreak to end the long night olllllllllllllllllll图 4-10功能测试4. 6. 2功能分析插入指令的实现主要是靠指针移动和修改指针域实现的,读取则还是用gets()函数配 合strcpyo函数实现,根据需要插入的位罝是否为第一个节点而修改的指针域不同。4.7查找“f”的功能测试及分析4.7.1功能测试f功能测试如下图:e:documentc2015 至拆杯 dev-cpp5.4.0 及 api 耗助文桂dev-cpp5.4.0 及 api 報助文搭dev-cp."请输入指令:0 1-txt觀rl 1 9从第i到第9行的内容如下:i have a dreamlart in luther king, jr-an happy to join with you
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年青少建筑教育合同
- 2026年农业援外项目实施合同
- 2026年烟草销售合同范本
- 重冶萃取工操作安全知识考核试卷含答案
- 塑料制品生产检验工班组管理强化考核试卷含答案
- 高效废气净化技术-洞察与解读
- 数控机床装调维修工班组协作模拟考核试卷含答案
- 渔船电机员改进能力考核试卷含答案
- 装修人工劳务合同范本
- 解除派遣劳动合同协议
- 2025年全国专利代理人考试《专利法》试题及答案
- 四季里的汗水与智慧课件
- 2025年青少年航天知识竞赛真题卷及答案
- 2025年大学《传播学-传播研究方法》考试备考题库及答案解析
- 2025年压疮护理指南
- 按摩行业服务礼仪培训
- 预应力管桩施工培训
- DB62T 3130-2017 公路沥青路面碎石封层设计与施工技术规范
- 饲料安全生产培训课件下载
- 2025年高中信息技术学业水平考试真题及答案
- 旅行应急预案范文
评论
0/150
提交评论