- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
33简单行编辑程序
简单行编辑程序
一.实验目的
设计一个简单行编辑程序,对文字进行加工,实现对文本文件的插入、删除等修改操作。
二.实验内容
【问题描述】文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。一种解决方法是逐段地编辑。任何时刻只把待编辑文件的一段放在内存,称为活区。试按照这种方法实现一个简单的行编辑程序。设文件每行不超过320个字符,很少超过80个字符。
【基本要求】实现以下4条基本编辑命令:
(1)行插入。格式:i行号回车文本.回车将文本插入活区中第行号行之后。
(2)行删除。格式:d行号1[空格行号2]回车删除活区中第行号1(到第行号2)。
(3)活区切换。格式:n回车将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。
(4)活区显示。格式:p回车。
三.实验步骤(可选)
#includeiostream
#includestring
#includeiomanip
#includefstream
const int activeMaxLen=50; //活区最大行数
const int pageRowNum=10; //每页的行数
using namespace std;
struct Row
{Public:
int num;
string content;};
class Active
{public:
Active(){sumRowNum=activeMaxLenRowNum;}
void putIn(int numth,string temp) //输入
{r[numth].num=numth; r[numth].content=temp;}
void putOut(int i) //输出
{coutr[i].num r[i].contentendl;}
void del(int k) //删除
{for(int i=k;i=sumRowNum-1;i++)
r[i].content=r[i+1].content;
sumRowNum--;}
void insert(int k,string temp) //插入
{for(int i=sumRowNum+1;i=k+1;i--)
r[i].content=r[i-1].content;
sumRowNum++;
r[k].content=temp;
r[sumRowNum].num=sumRowNum; }
void change(int left,int right) //交换
{string temp;
temp=r[left].content;
r[left].content=r[right].content;
r[right].content=temp;}
int getSumRowNum() //取值
{return sumRowNum;}
void backSumRowNum() //初始化
{sumRowNum=activeMaxLenRowNum;}
string get(int i){return r[i].content; }
private:
int sumRowNum;
Row r[activeMaxLen+1];};
void printPage(int page,Active act) //显示页
{ int i;
if(page==1){for(i=page;i=pageRowNum;i++)act.putOut(i);}
else{for(i=(1)*pageRowNum+1;i=page*pageRowNum;i++)
if(iact.getSumRowNum()) return;act.putOut(i);}}
int main()
{ cout****************************************endl;
cout***** 欢迎使用简单行编辑程序 *****endl;
cout****************************************endl;
cout请输入要编辑的文件名:endl;//要编辑的文件名的输入
string fileName; //文件名
beg:cinfileName;
ifstream infile(fileName.c_str());//coutfileName.c_str()endl
if(!i
您可能关注的文档
- 三角函数的诱导公式(学生版).doc
- 中考英语专题二:句法.doc
- 中考电学物理训练题.doc
- 三线八角练习.doc
- 中考数学压轴题八种分类典型例题.doc
- 三年级语文复习——读读背背.docx
- 中考复习:不等式及不等式组.doc
- 三年级下语文二单元拼音练习.docx
- 三年级下册英语小练习.doc
- 三、解读欲望-根本源心智开发课件.ppt
- 25上半年2期套题班-行政职业能力测验(八).docx
- 公考讲义-2025年1月时政汇总.pdf
- 2025年省考逻辑填空1000 高频实词积累+刷题早读课 讲义.pdf
- 25上半年2期套题班-行政职业能力测验(九).docx
- 2025四川事业编FB综合岗考试-综合能力测试讲义-主观题基础,案例分析题,公文写作及文章写作题.pdf
- 25上半年2期套题班-行政职业能力测验(五).docx
- 2025申论多省联考刷题课真题资料-2025国考执法课程.doc
- 2025申论多省联考刷题课真题资料-2024江西执法课程.doc
- 25上半年2期套题班-行政职业能力测验(十).docx
- 2025申论多省联考刷题课真题资料-2024福建县乡课程.doc
最近下载
- 13S201室外消火栓及消防水鹤安装.docx
- 2025年春北师大版数学四年级下册教学计划.docx VIP
- 整理书桌课件(共28张PPT) 二年级上册劳动鲁科版.pptx VIP
- 2023年中国即时配送行业趋势白皮书-沙利文-2024.3.pptx
- 玻璃绝缘子技术规范书.docx
- 2023版新版资质认定评审准则培训课件.pptx
- 四年级下册科学活动手册答案(2023年新教科版).docx
- 2024_2025学年新教材高中地理第三章区域合作测评含解析湘教版选择性必修第二册.docx VIP
- 七年级下册第三单元整体教学说课课件.pptx
- GB∕T 26714-2019 油墨圆珠笔和笔芯(可复制版).pdf
文档评论(0)