- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机系数据结构实验报告( 4)
姓名: 翁恒丛 学号: 6100410184 专业班级:卓越工程师 101
一、实验目的
掌握串类型的实现方法和文本模式匹配方法,熟悉一般文字处理软件的设计方法。
二、问题描述
全屏幕文本编辑器通过终端对文本文件进行创建、插入、删除、修改、存储等操作。用户可完成对文本的插入、删除、修改等功能。
三、实验要求
1、 对光标实现如下操作:上、下、左、右移动一个字符位置;向前、后翻页;光标移至文件首、尾;光标移至本行首、尾。
2、 实现基本编辑命令:
I 在当前光标前插入内容,按ESC 结束
F 在当前光标后插入内容,按ESC 结束
D 删除光标所在行
ND 删除光标位置开始的n 行
N 删除光标上的字符
W 将修改后的文本保存下来
Q 退出编辑状态
四、算法分析
(一)串基本操作算法:
字符串初始化
Status StrAssign(HString S,char *T) //生成一个其值为串常量*T 的串 S
{
int len=strlen(T); if(S.chars!=NULL) delete S.chars; S.chars=new char[len]; if(S.chars==NULL) return WRONG; for(i=0;ilen;i++) S.chars[i]=T[i]; S.len=len;
return OK;
}
取子串位置
int Index(HString S,HString T,int pos)
{ //取串T 中和主串S 中相同字串在第pos 位置为第一次出现的位置
next=new int[T.len]; GetNext(T,next); while(iS.lenjT.len)
if(j==-1||S.chars[i]==T.chars[j])
{
i++; j++;
}
else j=next[j];
if(j=T.len) return i-T.len+1; else
return 0;
}
打印字符串
void StrPrint(HString S) //输出串 S
{
for(i=0;iS.len;i++) coutS.chars[i]; coutstd::endl;
}
(二)文本操作函数
打开文本文件
void Open() //打开文本文件
{
if(filename[0]!=\0) //判断当前文件是否处于打开状态cout文件已经打开!endl;
else
{
cout输入文件名; cinfilename;
fstream File(filename);
if(!File) //文件名不存在,创建新文件cout新文件endl;
else
{
while(!File.eof()) //判断文件是否为空,若否,读入行数据给 str
{
File.getline(str,LINE_WORD);
if(n=MAX_LINE) //判断文件是否超出最大行数
{
return error; return ;
}
StrAssign(T[n],str); n++;
}
File.close();
}
}
}
保存文本文件
void Save() //保存文本
{
ofstream File(filename); if(!File)
return error ;
for(i=0;in;i++) //将字符串存入 T 中
{
File.write(T[i].chars,T[i].len); if(i!=n-1)
Fileendl;
}
File.close(); return OK;
}
五、实验内容和过程
测试英文选段
One may fall in love with many people during the lifetime. When youfinally get your own happiness, you will understand the previoussadness is kind of treasure, which makes you better to hold and cherishthe people you love.
分步测试程序功能,其结果显示参考“实验结果”
a.打开文本并显示b.插入
c.删除d.修改e.查找f.保存g.退出
源程序代码请参考文档尾部“附录”
六、实验结果
打开并显示文本
酝瞿戳霪 1 . 打开文件
3 . 插,人行
2 .显示文件内容
.,删除行
,5. f卢改勹
6 .查找字符串
7 . 存盘
1
8 . 退出
··请笣\文件名(最大3,0
··
i、.
字符): C: \ t e s t . t xt
一',,请选择: 1 打 开文件 2 . 显示文件内
一'
,,
3
您可能关注的文档
最近下载
- 品管基础知识培训课件.pptx VIP
- 人教版数学小学三年级上册《口算乘法》说课稿.doc VIP
- 2019冀教版高中英语必修二单词表.docx VIP
- (高清版)C-H-T 8024-2011 机载激光雷达数据获取技术规范.pdf VIP
- 工厂有关员工权益保护的四个政策(反骚扰、虐待、强迫、歧视).doc VIP
- 2025年河北机关事业单位工人技能等级考试(仓库保管员·中级)历年参考题库含答案详解.docx VIP
- 全国化工大赛-恒逸石化杯-中石化茂名分公司乙烯厂建造年产4.9万吨的醋酸乙烯酯3-反应器的选型与设计说明书.docx VIP
- 干部履历表填写范本(中共中央组织部1999年).doc VIP
- 2025陕西公需课党的二十届三中全会精神解读与高质量发展答案.docx VIP
- 正交曲线壳体物理方程.ppt VIP
原创力文档


文档评论(0)